Assessio offers a simple API for approved partners to integrate with our development module. The API allows integrators to:
The API is available in two environments:
https://sandbox.api.assessio.systems/https://api.assessio.online/Note: The sandbox environment allows integration testing without affecting live data. It may have limitations compared to production.
To establish an integration utilising the Development API for testing, the following steps need to be completed:
provider-key.integrator-secret: A secret used to sign requests from the Integrator to the Assessio platform.Note: If required, Assessio can disable this signature requirement in the sandbox environment to simplify initial testing.
provider-key: Identifies your Assessio organization. This key must be included in calls to our Assessio-hosted endpoints (e.g. /development/v1/assessment-link-order). If multiple organisations are used with the integration, each one is expected to use its own key.
resultUpdateUrl), you have two options:integrator-api-key). We can either generate it and share it with you, or you can provide a token value that you want us to use.A high-level overview of how an Integrator typically uses this API:
/development/v1/assessment-link-order endpoint./<:integrator-defined-webhook> endpoint.Some requests to our API require an HMAC to be generated from the timestamp combined with the payload. Below is an example in Java:
String encode() throws NoSuchAlgorithmException, InvalidKeyException {
var timestamp = Instant.now().getEpochSecond();
var key = "TODO"; // your integrator-secret
var payload = "{}"; // the raw JSON payload
var data = timestamp + "." + payload;
var sha256Hmac = Mac.getInstance("HmacSHA256");
var secretKey = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "HmacSHA256");
sha256Hmac.init(secretKey);
return String.valueOf(Hex.encode(sha256Hmac.doFinal(data.getBytes(StandardCharsets.UTF_8))));
}
The Signature header must include:
t: The Unix timestamp (in seconds) when the signature was created.signature: The HMAC digest of t + "." + (request body).We allow a timestamp skew of up to 5 minutes (300 seconds). Requests outside that timeframe will be rejected.
This endpoint is used to process an assessment order for an employee as part of processing following actions are performed:
A lookup of the employee by email is performed in the Assessio Platform.
a) if the employee is found, no changes are made to the employee data (employee firstName, lastName payload is ignored).
b) if the employee is not found, a new employee is created with Platform employee role which doesn't allow to login but allows for assessment completion as part of the processes initiated in the Platform.
A link between the assessment order and the employee is created. It shall consist of the webhookCallbackUrl on which updates to the assessment order are sent, as well as redirectUrl to which the employee is redirected after completing the assessment in the Platform.
A link to the assessment of given type is created and returned to the caller. It allows to complete the assessment in the Platform or give consent to share the assessment results with the integrator.
| assessmentType required | string (AssessmentType) Enum: "MAP" "MATCH_V_V2" Assessment type. |
| orderReferenceId required | string The reference ID for submitted order in the Integrator system. Included in webhook updates for reference between systems. |
| webhookCallbackUrl required | string <uri> The webhook URL of the Integrator to receive result updates for requested assessments. |
| redirectUrl required | string <uri> URL to redirect the employee after completing the assessments in Assessio Platform. |
required | object Employee details used when a new employee needs to be created. |
{- "assessmentType": "MAP",
- "orderReferenceId": "string",
- "personDetails": {
- "locale": "en-US",
- "email": "user@example.com",
- "firstName": "string",
- "lastName": "string"
}
}{
}Currently only ASSESSMENT_SUBMITTED event is supported which informs about assessment completion and contains assessment scores.
| eventType required | string Value: "ASSESSMENT_SUBMITTED" |
required | AssessmentSubmittedWebHookRequest (object) |
{- "eventType": "ASSESSMENT_SUBMITTED",
- "payload": {
- "orderReferenceId": "string",
- "assessmentType": "MAP",
- "assessmentScores": [
- {
- "type": "MAP_SCORE",
- "key": "EX",
- "value": 10,
- "subScores": [
- {
- "key": "EX1",
- "value": 10
}
]
}
]
}
}