Download OpenAPI specification:Download
The Trulioo Platform is used to create fast and compliant onboarding flows. The flow can be published from the dashboard in the Launcher page.
Our new API helps you take advantage of our flow builder and access our catalog of KYC services. Build the flow that fits your requirements thanks to our no-code platform, embed it into your application, and onboard all your end-clients seamlessly, Trulioo Platform takes care of the rest. The orchestration document provides a flow execution API.
The Trulioo Platform API grants control of the flow execution and user state to the client. The user state is associated with a session id (x-hf-session). See the diagram below for an overview of the integration.
Four most important API Calls are:
FlowStep operation
Requests data about the current state of a user in the flow. Creates a state if none is provided by returning a Header (x-hf-session) which represents a session ID. If the header is passed in the request, the operation will return the step response according to the flow execution state, otherwise, it will generate a session and initialize the flow from the first step.
SubmitStep operation
Submits data - triggers the execution of the current step, modifies the state with the data provided, and returns the next step in the flow. The flow execution always ends with an END step even if it is not added to the flow.
getBackStep operation
Returns to the previous step in the flow - computes a backward step in the flow. Multiple backward steps can be performed until the root (first) step of the flow. Non-interactive services are re-executed if they exist between a backward and a forward step.
flowId required | string The ID of the flow |
x-hf-session | string UUID for a user state in the execution flow (generated in the first interaction with a flow) |
x-hf-language | string Selected language for flow execution |
{- "id": "string",
- "title": "string",
- "subtitle": "string",
- "elements": [
- {
- "id": "string",
- "condition": {
- "type": "AND",
- "rules": [
- {
- "fieldId": "string",
- "operator": "null",
- "comparable": { },
- "action": "show"
}
]
}, - "name": "string",
- "placeholder": "string",
- "validations": [
- { }
], - "value": "string",
- "role": "first_name",
- "prefillOptions": "NON_PREFILLABLE",
- "normalizedName": "string"
}
], - "canGoBack": false,
- "countryOfResidence": "string",
- "countryOfIncorporation": "string"
}
flowId required | string The ID of the flow |
x-hf-session | string ID for a user state in the execution flow (generated in the first interaction with a flow). Alternatively, this header can be omitted to directly submit data for the first form node. Note that direct submission is only supported for form nodes. |
x-hf-language | string Selected language for flow execution |
x-hf-retry-on-pending | boolean This header determines whether the conditional node should block the flow’s execution until the service completes and returns the next node. When set to
This mechanism allows the flow to continue progressing, even if the complete result is not immediately available. |
property name* additional property | object |
{- "firstNameFieldId": "John",
- "lastNameFieldId": "Doe",
- "streetFieldId": "main street",
- "aNumberFieldId": 4,
- "aCheckBoxGroupElementId": [
- "first_check_box_selected",
- "second_check_box_selected"
]
}
{- "id": "string",
- "title": "string",
- "subtitle": "string",
- "elements": [
- {
- "id": "string",
- "condition": {
- "type": "AND",
- "rules": [
- {
- "fieldId": "string",
- "operator": "null",
- "comparable": { },
- "action": "show"
}
]
}, - "name": "string",
- "placeholder": "string",
- "validations": [
- { }
], - "value": "string",
- "role": "first_name",
- "prefillOptions": "NON_PREFILLABLE",
- "normalizedName": "string"
}
], - "canGoBack": false,
- "countryOfResidence": "string",
- "countryOfIncorporation": "string"
}
flowId required | string The ID of the flow |
x-hf-session required | string UUID for a user state in the execution flow (generated in the first interaction with a flow) |
{- "key": "string"
}
flowId required | string The ID of the flow |
x-hf-session | string UUID for a user state in the execution flow (generated in the first interaction with a flow) |
x-hf-language | string Selected language for flow execution |
{- "id": "string",
- "title": "string",
- "subtitle": "string",
- "elements": [
- {
- "id": "string",
- "condition": {
- "type": "AND",
- "rules": [
- {
- "fieldId": "string",
- "operator": "null",
- "comparable": { },
- "action": "show"
}
]
}, - "name": "string",
- "placeholder": "string",
- "validations": [
- { }
], - "value": "string",
- "role": "first_name",
- "prefillOptions": "NON_PREFILLABLE",
- "normalizedName": "string"
}
], - "canGoBack": false,
- "countryOfResidence": "string",
- "countryOfIncorporation": "string"
}
clientId required | string UUID for a user state in the execution flow (generated in the first interaction with a flow) |
flowId required | string The ID of the flow |
{- "token": "string"
}
Error code | Description |
---|---|
4000 | Flow not found |
4001 | Flow theme not found |
4002 | Node not found |
4003 | Flow is empty |
4005 | Root node is not a subsequent token node |
4006 | Missing data for required element |
4007 | Submitted data is malformed |
4008 | Failed validation for submitted data |
4009 | Service execution failed |
4011 | Invalid token |
4012 | Token has expired |
4013 | Flow already finished |
4014 | Invalid submit data |
4015 | Invalid direct submit on root not form node |
4050 | Invalid credentials |
4100 | Client not found |
4101 | Client has no flow with given ID |
4102 | Subsequent token not found |
4103 | Illegal back action |
4105 | Create linked leads invalid request |
4106 | Delete linked leads invalid request |
4109 | EndClient marked as abandoned |
4110 | Could not retrieve full end client data |
4200 | Service not configured |
4201 | Service not configured for country |
5000 | Internal error |
5300 | Invalid Twilio code |
5301 | Failed to send SMS to phone number |
5302 | Twilio internal error |
6504 | Service has timed out |
to | string EndClient ID to link to |
from | string EndClient ID to link from |
type | string Enum: "RELATES_TO" "DUPLICATE_OF" "OWNS" "OWNED_BY" Type of the link to be created |
{- "to": "string",
- "from": "string",
- "type": "RELATES_TO"
}
{- "message": "string",
- "code": 0
}
to | string EndClient ID to link to |
from | string EndClient ID to link from |
{- "to": "string",
- "from": "string"
}
{- "message": "string",
- "code": 0
}