Skip to main content

Integration with Signify using the user import API

The user import API should be used when a third party needs to push data to Signify on a specific ruleset to update employee records.

1. Get an Access Token

First, you need to authenticate and get an access token.
Run the cURL command (replace the values as needed):

curl --request POST \
  --url https://live.signifyhr.co.za/api/identity/v1/CreateUserAccessToken \
  --header 'Content-Type: application/json' \
  --cookie .AspNetCore.Antiforgery.3CuCAIFqZrU=YOUR_ANTIFORGERY_COOKIE \
  --data '{"username":"YOUR_USERNAME","password":"YOUR_PASSWORD","clientId":"YOUR_CLIENT_ID","skipRulesetActiveCheck":false}'
  • This will return a JSON response with an accessToken field.
  • The values for YOUR_USERNAME, YOUR_PASSWORD must be generated for a valid user in the system and provided by your system administrator.
  • The value YOUR_CLIENT_ID can be retrieved on the ruleset by going to
    • Ruleset Management | System Access| Additional Service Section | Copy the GUID e.g.
    • image.png

2. Use the Access Token to Import Users

Copy the value of accessToken (it starts with Bearer ...).
Now, use this token in the next cURL command to import your user data:

curl --request POST \
  --url https://live.signifyhr.co.za/api/importapi/v1/ImportUsers \
  --header 'Authorization: YOUR_ACCESS_TOKEN' \
  --header 'Content-Type: application/json' \
  --cookie .AspNetCore.Antiforgery.aJ9qYnOEx9w=YOUR_ANTIFORGERY_COOKIE \
  --data '{
    "users": [
      {
        "username": "JDoe123",
        "name": "John",
        "surname": "Doe",
        ...
      }
      // Add more users as needed
    ]
  }'
  •  Replace YOUR_ACCESS_TOKEN with the value from step 1.
  • Replace the user data in the user's array as needed. The following code snippet shows all the current available fields for import
{
  "users": [
    {
      "externalId": 0,
      "username": "string",
      "name": "string",
      "surname": "string",
      "emailAddress": "string",
      "idNumber": "string",
      "mobileNumber": "string",
      "orgLevel1": {
        "externalId": 0,
        "name": "string",
        "code": "string",
        "workLocationName": "string"
      },
      "orgLevel2": {
        "externalId": 0,
        "name": "string",
        "code": "string",
        "workLocationName": "string"
      },
      "orgLevel3": {
        "externalId": 0,
        "name": "string",
        "code": "string",
        "workLocationName": "string"
      },
      "orgLevel4": {
        "externalId": 0,
        "name": "string",
        "code": "string",
        "workLocationName": "string"
      },
      "orgLevel5": {
        "externalId": 0,
        "name": "string",
        "code": "string",
        "workLocationName": "string"
      },
      "orgLevel6": {
        "externalId": 0,
        "name": "string",
        "code": "string",
        "workLocationName": "string"
      },
      "orgLevel7": {
        "externalId": 0,
        "name": "string",
        "code": "string",
        "workLocationName": "string"
      },
      "orgLevel8": {
        "externalId": 0,
        "name": "string",
        "code": "string",
        "workLocationName": "string"
      },
      "orgLevel9": {
        "externalId": 0,
        "name": "string",
        "code": "string",
        "workLocationName": "string"
      },
      "jobExternalId": 0,
      "jobTitle": "string",
      "jobCode": "string",
      "positionExternalId": 0,
      "positionTitle": "string",
      "positionCode": "string",
      "appointmentType": "string",
      "lineManagerUsername": "string",
      "performanceManagerUsername": "string",
      "startDate": "string",
      "endDate": "string",
      "reasonForTermination": "string",
      "passportNumber": "string",
      "payrollConnectorName": "string",
      "payrollId": "string",
      "middleName": "string",
      "initials": "string",
      "title": "string",
      "knownAs": "string",
      "homeLanguage": "string",
      "gender": "string",
      "race": "string",
      "citizenship": "string",
      "maritalStatus": "string",
      "maritalDate": "string",
      "workNumber": "string",
      "homeNumber": "string",
      "birthDay": "string",
      "residentialUnitNumber": "string",
      "residentialComplexName": "string",
      "residentialStreetNumber": "string",
      "residentialStreetName": "string",
      "residentialSuburbDistrict": "string",
      "residentialCityTown": "string",
      "residentialCountry": "string",
      "residentialProvince": "string",
      "residentialPostalCode": "string",
      "residentialAsPostal": "string",
      "postalUnitNumber": "string",
      "postalComplexName": "string",
      "postalStreetNumber": "string",
      "postalStreetName": "string",
      "postalSuburbDistrict": "string",
      "postalCityTown": "string",
      "postalCountry": "string",
      "postalProvince": "string",
      "postalCode": "string",
      "occupationalCategory": "string",
      "occupationalLevel": "string",
      "jobOfoCode": "string",
      "jobGrade": "string",
      "gradingType": "string",
      "departmentManagerUsername": "string",
      "trainingManagerUsername": "string",
      "pdpFirstApproverUsername": "string",
      "pdpSecondApproverUsername": "string",
      "leaveManagerUsername": "string",
      "salaryReviewManagerUsername": "string",
      "talentManagementManagerUsername": "string",
      "secondaryReportingManagerUsername": "string",
      "lineManagerOnceRemovedUsername": "string",
      "workflowOriginatorUsername": "string",
      "financeManagerUsername": "string",
      "financeOfficerUsername": "string",
      "hrOfficerUsername": "string",
      "hrRecruitmentOfficerUsername": "string",
      "businessUnitHrManagerUsername": "string",
      "disability": "string",
      "alternateEmailAddress": "string",
      "location": "string",
      "employeeCode": "string",
      "startDateInGroup": "string",
      "secondaryJobRequisitionApproverUsername": "string",
      "leaveManagerAlternateApproverUsername": "string",
      "validationReason": "string",
      "startDateInCompany": "string"
    }
  ]
}

Below is the list of fields that are required and recommended. Fields with no comment are optional.

Field Name API Field Type Required / Recommended / Notes Example
externalId Int

username
string


employeeCode
string


name
string


surname
string


emailAddress
string


alternateEmailAddress
string


idNumber
string


passportNumber
string


mobileNumber
string


workNumber
string


homeNumber
string


middleName
string


initials
string


title
string


knownAs
string


homeLanguage
string


gender
string


race
string


citizenship
string


maritalStatus
string


birthDay
string


disability
string


residentialUnitNumber
string


residentialComplexName
string


residentialStreetNumber
string


residentialStreetName
string


residentialSuburbDistrict
string


residentialCityTown
string


residentialCountry
string


residentialProvince
string


residentialPostalCode
string


residentialAsPostal
string


postalUnitNumber
string


postalComplexName
string


postalStreetNumber
string


postalStreetName
string


postalSuburbDistrict
string


postalCityTown
string


postalCountry
string


postalProvince
string


postalCode
string


jobExternalId
int


jobTitle
string


jobCode
string


occupationalCategory
string


occupationalLevel
string


jobOfoCode
string


jobGrade
string


gradingType
string


positionExternalId
int


positionTitle
string


positionCode
string


appointmentType
string


startDate
string


endDate
string


reasonForTermination
string


startDateInGroup
string


startDateInCompany
string


orgLevel1_externalId
Int


orgLevel1_name
string


orgLevel1_code
string


orgLevel1_workLocationName
string


orgLevel2_externalId
Int


orgLevel2_name
string


orgLevel2_code
string


orgLevel2_workLocationName
string


orgLevel3_externalId
Int


orgLevel3_name
string


orgLevel3_code
string


orgLevel3_workLocationName
string


orgLevel4_externalId
Int


orgLevel4_name
string


orgLevel4_code
string


orgLevel4_workLocationName
string


orgLevel5_externalId
Int


orgLevel5_name
string


orgLevel5_code
string


orgLevel5_workLocationName
string


orgLevel6_externalId
Int


orgLevel6_name
string


orgLevel6_code
string


orgLevel6_workLocationName
string


orgLevel7_externalId
Int


orgLevel7_name
string


orgLevel7_code
string


orgLevel7_workLocationName
string


orgLevel8_externalId
Int


orgLevel8_name
string


orgLevel8_code
string


orgLevel8_workLocationName
string


orgLevel9_externalId
Int


orgLevel9_name
string


orgLevel9_code
string


orgLevel9_workLocationName
string


lineManagerUsername
string


performanceManagerUsername
string


departmentManagerUsername
string


trainingManagerUsername
string


pdpFirstApproverUsername
string


pdpSecondApproverUsername
string


leaveManagerUsername
string


salaryReviewManagerUsername
string


talentManagementManagerUsername
string


secondaryReportingManagerUsername
string


lineManagerOnceRemovedUsername
string


workflowOriginatorUsername
string


financeManagerUsername
string


financeOfficerUsername
string


hrOfficerUsername
string


hrRecruitmentOfficerUsername
string


businessUnitHrManagerUsername
string


secondaryJobRequisitionApproverUsername
string


leaveManagerAlternateApproverUsername
string