swagger: '2.0' info: title: Pulse Public Authentication Sync API API version: 1.0.1 description: "The Pulse API is targeted towards developers looking to automate tasks in Pulse. \n\n# Authentication\nAll endpoints in Pulse require authentication. Legacy endpoints require only a Private API Key, while all new endpoints incorporate JSON Web Tokens. \n\n**API Key**\nTo consume a Pulse endpoint using API Key authentication, :\n * Contact Pulse support at support@pulsesoftware.com to enable the Pulse Public API and issue your API key.\n * Pass the API key in the **'x-Api-Key'** header with each request.\n\nNote: It is recommended to use a User Private API key where possible, rather than the Application Private Key. When using a User API key, functionality will be restricted based on the role of the User for which the API key was generated. See API endpoint documentation for authorised roles. \n\n**JSON Web Token (JWT)**\nTo consume a Pulse endpoint using JWT authentication:\n * Contact Pulse support at support@pulsesoftware.com to enable the Pulse Public API and issue your API key.\n * Request a bearer token from /pulse/jwt, passing the API key in the **'x-Api-Key'** header with the request.\n * Pass the token issued in the **'Authorization'** header of all requests as **'bearer [token]'**\n\n**Note** Tokens will expire 60 minutes after being issued, at which point your application will need to request a new token.\n\n# Requests\nThe Pulse API follows REST principles. Data resources are accessed via standard HTTPS requests in UTF-8 format to an API endpoint. Where possible, Web API uses appropriate HTTP verbs for each action.\nHTTP Verbs:\n * **GET** Retrieves resources\n * **POST** Creates resources\n * **PUT** Changes and/or replaces resources or collections\n * **DELETE** Deletes resources\n\nThe Pulse API accepts the following ISO-8601 formats for date strings:\n * Date, Time, Timezone: e.g. \"2021-06-02T21:39:18+00:00\"\n * Date, Time: e.g. \"2021-06-02T21:39:18Z\"\n * Date: e.g. \"2021-06-02\"\n\n# Responses\nPulse API returns all response data as a JSON object. \n\n# Response Status Codes\nPulse API uses the following status codes:\n * **200** OK - Request succeeded. Result provided in response body.\n * **400** Bad Request - Malformed syntax. See message body for information.\n * **401** Unauthorised - Missing authentication (API Key or JWT).\n * **403** Forbidden - API user is not authorised to access requested resource.\n * **404** Not Found - Request resource does not exist.\n\n# Support\nContact support@pulsesoftware.com for any queries or issues related to this API\n" termsOfService: http://www.apache.org/licenses/LICENSE-2.0.html contact: email: support@pulsesoftware.com license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html host: '*.pulsesoftware.com' basePath: /webservices/api schemes: - https - http tags: - name: Sync API description: API for handling synchronisation data from and/or to Pulse including for managing sync history records paths: /security/PatchUserSync: post: security: - BearerJWT: [] tags: - Sync API summary: Update user in Pulse description: 'Update user in Pulse based on userId provided in request body ' consumes: - application/json produces: - application/json parameters: - in: header name: x-api-key description: API key required: true type: string - in: body name: body description: User detail required: true schema: $ref: '#/definitions/UserSyncDTOs' responses: 200: description: OK. Request completed successfully. 401: description: Missing JWT Bearer token in the Authorization header or the given JWT token is invalid. /security/IntegrationSyncData: post: security: - BearerJWT: [] tags: - Sync API summary: Store integration sync data in Pulse for history purpose description: 'Store integration sync data in Pulse for history purpose ' consumes: - application/json produces: - application/json parameters: - in: header name: x-api-key description: API key required: true type: string - in: body name: body description: Integration sync data required: true schema: $ref: '#/definitions/StoreSyncData' responses: 200: description: OK. Request completed successfully. Returns the fileId of the logged sync data. schema: type: string 401: description: Missing JWT Bearer token in the Authorization header or the given JWT token is invalid. /security/IntegrationSyncToPayrollLog: post: security: - BearerJWT: [] tags: - Sync API summary: Add sync history in Pulse description: 'Add sync history in Pulse ' consumes: - application/json produces: - application/json parameters: - in: header name: x-api-key description: API key required: true type: string - in: body name: body description: Sync history data required: true schema: $ref: '#/definitions/AddIntegrationSyncToPayrollHistory' responses: 200: description: OK. Request completed successfully. Returns the id of the sync history. schema: type: number 401: description: Missing JWT Bearer token in the Authorization header or the given JWT token is invalid. definitions: UserSyncDTOs: type: array items: $ref: '#/definitions/UserSyncDTO' AdditionalAttributesDTO: type: object properties: tabId: type: integer format: int32 tabName: type: string attributeId: type: integer format: int32 attributeName: type: string attributeValue: type: string attributeDataType: type: string StoreSyncData: type: object properties: jsonStringData: type: string folder: type: string AdditionalPositionsDTO: type: object properties: positionNo: type: string positionName: type: string positionStartDate: type: string positionEndDate: type: string positionDivision: type: string positionUnit: type: string positionSection: type: string positionSupervisor: type: string positionTeam: type: string positionIncumbentsAssigned: type: string ExternalUserSyncStatusDetailDTO: type: object properties: status: type: string syncCategory: type: string key: type: string objectHash: type: string UserSyncDTO: type: object properties: title: type: string firstName: type: string middleName: type: string surname: type: string lastName: type: string preferredName: type: string email: type: string additionalEmail: type: string dob: type: string gender: type: string mobilePhone: type: string workPhone: type: string telephone: type: string home_AddressLine1: type: string home_AddressLine2: type: string home_City: type: string home_Country: type: string home_PostCode: type: string home_State: type: string postal_AddressLine1: type: string postal_AddressLine2: type: string postal_City: type: string postal_Country: type: string postal_PostCode: type: string postal_State: type: string employmentStartDate: type: string employmentEndDate: type: string reasonOfTermination: type: string councilNetworkLogin: type: string payrollNo: type: string positionNo: type: string positionName: type: string positionStartDate: type: string positionEndDate: type: string positionDivision: type: string positionUnit: type: string positionSection: type: string positionTeam: type: string positionSupervisor: type: string positionIncumbentsAssigned: type: string supervisor: type: string supervisorPayrollNo: type: string divisionCode: type: string divisionName: type: string unitCode: type: string unitName: type: string sectionCode: type: string sectionName: type: string empType: type: string team: type: string emergencyContact1_Name: type: string emergencyContact1_Relationship: type: string emergencyContact1_AddressLine1: type: string emergencyContact1_AddressLine2: type: string emergencyContact1_City: type: string emergencyContact1_State: type: string emergencyContact1_PostCode: type: string emergencyContact1_Country: type: string emergencyContact1_Mobile: type: string emergencyContact1_WorkPhone: type: string emergencyContact1_Email: type: string emergencyContact1_Telephone: type: string emergencyContact2_Name: type: string emergencyContact2_Relationship: type: string emergencyContact2_AddressLine1: type: string emergencyContact2_AddressLine2: type: string emergencyContact2_City: type: string emergencyContact2_State: type: string emergencyContact2_PostCode: type: string emergencyContact2_Country: type: string emergencyContact2_Mobile: type: string emergencyContact2_WorkPhone: type: string emergencyContact2_Email: type: string emergencyContact2_Telephone: type: string isActive: type: string externalUserId: type: string integrationName: type: string siteName: type: string employmentType: type: string permissions: type: array items: type: string additionalAttributes: type: array items: $ref: '#/definitions/AdditionalAttributesDTO' additionalPositions: type: string additionalUserPositions: type: array items: $ref: '#/definitions/AdditionalPositionsDTO' roles: type: string ExternalUserSyncStatusDTO: type: object properties: userId: type: string status: type: string syncCategory: type: string message: type: string integrationUserId: type: string integrationName: type: string objectHash: type: string details: type: array items: $ref: '#/definitions/ExternalUserSyncStatusDetailDTO' AddIntegrationSyncToPayrollHistory: type: object properties: integrationName: type: string jsonFile: type: string userId: type: string format: uuid source: type: string externalUserSyncStatuses: type: array items: $ref: '#/definitions/ExternalUserSyncStatusDTO' securityDefinitions: ApiKey: type: apiKey name: x-Api-Key in: header BearerJWT: type: apiKey name: Authorisation in: header externalDocs: description: Find out more about Swagger url: http://swagger.io