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 NameField TypeRequired / Recommended / NotesExample
externalIdInt

username


employeeCode


name


surname


emailAddress


alternateEmailAddress


idNumber


passportNumber


mobileNumber


workNumber


homeNumber


middleName


initials


title


knownAs


homeLanguage


gender


race


citizenship


maritalStatus


birthDay


disability


residentialUnitNumber


residentialComplexName


residentialStreetNumber


residentialStreetName


residentialSuburbDistrict


residentialCityTown


residentialCountry


residentialProvince


residentialPostalCode


residentialAsPostal


postalUnitNumber


postalComplexName


postalStreetNumber


postalStreetName


postalSuburbDistrict


postalCityTown


postalCountry


postalProvince


postalCode


jobExternalId


jobTitle


jobCode


occupationalCategory


occupationalLevel


jobOfoCode


jobGrade


gradingType


positionExternalId


positionTitle


positionCode


appointmentType


startDate


endDate


reasonForTermination


startDateInGroup


startDateInCompany


orgLevel1_externalId


orgLevel1_name


orgLevel1_code


orgLevel1_workLocationName


orgLevel2_externalId


orgLevel2_name


orgLevel2_code


orgLevel2_workLocationName


orgLevel3_externalId


orgLevel3_name


orgLevel3_code


orgLevel3_workLocationName


orgLevel4_externalId


orgLevel4_name


orgLevel4_code


orgLevel4_workLocationName


orgLevel5_externalId


orgLevel5_name


orgLevel5_code


orgLevel5_workLocationName


orgLevel6_externalId


orgLevel6_name


orgLevel6_code


orgLevel6_workLocationName


orgLevel7_externalId


orgLevel7_name


orgLevel7_code


orgLevel7_workLocationName


orgLevel8_externalId


orgLevel8_name


orgLevel8_code


orgLevel8_workLocationName


orgLevel9_externalId


orgLevel9_name


orgLevel9_code


orgLevel9_workLocationName


lineManagerUsername


performanceManagerUsername


departmentManagerUsername


trainingManagerUsername


pdpFirstApproverUsername


pdpSecondApproverUsername


leaveManagerUsername


salaryReviewManagerUsername


talentManagementManagerUsername


secondaryReportingManagerUsername


lineManagerOnceRemovedUsername


workflowOriginatorUsername


financeManagerUsername


financeOfficerUsername


hrOfficerUsername


hrRecruitmentOfficerUsername


businessUnitHrManagerUsername


secondaryJobRequisitionApproverUsername


leaveManagerAlternateApproverUsername