Download OpenAPI specification:Download
The export API can be used to receive real time data through the event webhook and to collect data submitted in a batch or query manner. We may support query DSL in the future.
Client Credential Flow (2-legged OAuth)
Authenticated Workflow API: https://developer.trulioo.com/docs/authenticated-workflow-api-copy
Each application (workflow) is assigned a unique Client ID and Client Secret.
A successful access token request returns a JSON object containing the bearer token and the number of seconds until the token expires. Access tokens are issued with a 60 minute lifespan. You can request a new token once your current token expires.
| clientId required | string |
| clientSecret required | string |
{- "accessToken": "string",
- "expires": 0
}Webhooks allows you to receive real-time HTTP notifications of events to specific flows. To use Webhooks, you will need to set up an endpoint on a secure (HTTPS) server, then add and configure the Webhooks in your dashboard. The webhook configuration can also be made through our API if you have already obtained the Authorization bearer token.
Subscribing to event types
To begin working with the Events API, you'll need to configure the Export Api step in the builder if you haven't already.
Since your application will have only one Event Request URL, you'll need to do any additional dispatch or routing server-side after receiving event data.
Your Callback URL will receive JSON-based payloads containing wrapped event types. The volume of events will vary depending on the events you subscribe to, and activity of users on your flow.
Your Callback URL will receive a request for each event matching your subscriptions. One request, one event.
The events sent to your Request URL may contain sensitive information associated with the data submitted in your flow. To ensure that events are being delivered to a server under your direct control, we must verify your ownership by issuing you a challenge request.
We DO NOT support subscription through our API. The definition is right below. Please use the workflow builder to subscribe to our webhooks through the export api step.
After you've completed the configuration on the dashboard or subscribed to receive events on our endpoint, we'll dispatch a HTTP POST to your request URL. We'll verify your SSL certificate and we'll send a application/json POST body containing three fields. Check Url verification handshake.
| callbackUrl required | string The URL to dispatch events to |
| token required | string Verification token is proof that the request is coming from workflow Studio on behalf of your application |
{- "token": "string",
- "challenge": "string",
- "type": "url_verification"
}Query data collected from a workflow. Moreover profile endpoint offers a consolidated view of the data submitted by a user through any workflows.
The v1/query endpoints will be deprecated and use Client Credential Flow (2-legged OAuth) for authentification.
The v2/query endpoints use the Authenticated Workflow API method: https://developer.trulioo.com/docs/authenticated-workflow-api-copy
To use the test version of export rather than the live version, prefix the endpoint paths with /test.
Retrieve all workflows from your organization
| limit | string Maximum number of items to be returned. Must be between 1 - 50 both inclusive. Omitting the limit parameter or using an invalid value will default to 20. |
| page | string You can specify further pages with this parameter. Page numbering is 0-based and omitting the page parameter or using an invalid value will return the first page. |
{- "totalElements": 0,
- "totalPages": 0,
- "number": 0,
- "numberOfElements": 0,
- "last": true,
- "first": true,
- "data": [
- {
- "id": "string",
- "name": "string",
- "corporate": true,
- "published": true,
- "created": 0
}
]
}Download files from a client based on the file key. The key can be found in the response from the 'query client by id' call. It will be available in the flowData object, under the flow ID in whichthe end client uploaded the file, part of the the fileData attribute.
| key required | string Example: key=base64encoded Base64 encoded string |
Retrieve workflows user submissions. This is different from events because it contains the whole data submitted by a user.The parameters before and after can be passed to define a time range for your search
| before | string UNIX timestamp to select events submitted before the specified value |
| after | string UNIX timestamp to select events submitted after the specified value |
| limit | string Maximum number of items to be returned. Must be between 1 - 50 both inclusive. Omitting the limit parameter or using an invalid value will default to 20. |
| page | string You can specify further pages with this parameter. Page numbering is 0-based and omitting the page parameter or using an invalid value will return the first page. |
| statuses | string You can specify the desired end client statuses to filter the results with. Omitting the statuses parameter will return end clients for all available statuses |
| flowId | string You can specify the desired flow id to filter the results with. Only end clients that have interacted with that flow will be returned. |
{- "totalElements": 0,
- "totalPages": 0,
- "number": 0,
- "numberOfElements": 0,
- "last": true,
- "first": true,
- "data": [
- {
- "id": "string",
- "ownerIds": [
- "string"
], - "created": 0,
- "lastModified": 0,
- "profileType": "NORMAL",
- "status": "ACCEPTED",
- "statusManuallyChanged": true,
- "user": "string"
}
]
}Retrieve workflows user submissions. A user can submit data through multiple workflows, that is aggregated here.
| clientId required | string Client identifier |
| includeFullServiceDetails | string Parameter to specify whether full service details should be provided or not. |
{- "id": "string",
- "ownerIds": [
- "string"
], - "created": 0,
- "lastModified": 0,
- "profileType": "NORMAL",
- "status": "ACCEPTED",
- "statusManuallyChanged": true,
- "flowData": {
- "property1": {
- "id": "string",
- "completed": true,
- "fieldData": {
- "property1": {
- "id": "string",
- "name": "string",
- "value": [
- "string"
], - "role": "first_name",
- "normalizedName": "string"
}, - "property2": {
- "id": "string",
- "name": "string",
- "value": [
- "string"
], - "role": "first_name",
- "normalizedName": "string"
}
}, - "fileData": {
- "property1": "string",
- "property2": "string"
}, - "enhancedFileData": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "serviceData": [
- {
- "timestamp": 0,
- "serviceStatus": "COMPLETED",
- "nodeId": "string",
- "nodeTitle": "string",
- "nodeType": "string",
- "match": true,
- "transactionInfo": {
- "accountName": "string",
- "accountIdentifier": "string",
- "countryCode": "string",
- "date": "string",
- "shareableToken": "string",
- "transactionId": "string",
- "transactionRecordId": "string",
- "userName": "string"
}, - "fullServiceDetails": { },
- "secondaryMatch": true
}
]
}, - "property2": {
- "id": "string",
- "completed": true,
- "fieldData": {
- "property1": {
- "id": "string",
- "name": "string",
- "value": [
- "string"
], - "role": "first_name",
- "normalizedName": "string"
}, - "property2": {
- "id": "string",
- "name": "string",
- "value": [
- "string"
], - "role": "first_name",
- "normalizedName": "string"
}
}, - "fileData": {
- "property1": "string",
- "property2": "string"
}, - "enhancedFileData": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "serviceData": [
- {
- "timestamp": 0,
- "serviceStatus": "COMPLETED",
- "nodeId": "string",
- "nodeTitle": "string",
- "nodeType": "string",
- "match": true,
- "transactionInfo": {
- "accountName": "string",
- "accountIdentifier": "string",
- "countryCode": "string",
- "date": "string",
- "shareableToken": "string",
- "transactionId": "string",
- "transactionRecordId": "string",
- "userName": "string"
}, - "fullServiceDetails": { },
- "secondaryMatch": true
}
]
}
}, - "notes": [
- {
- "id": "string",
- "text": "string",
- "createdBy": "string",
- "created": "2019-08-24T14:15:22Z"
}
], - "tasks": [
- {
- "id": "string",
- "text": "string",
- "resolved": true,
- "createdBy": "string",
- "updatedBy": "string",
- "created": "2019-08-24T14:15:22Z",
- "updated": "2019-08-24T14:15:22Z"
}
], - "user": "string"
}Retrieve all workflows from your organization
| limit | string Maximum number of items to be returned. Must be between 1 - 50 both inclusive. Omitting the limit parameter or using an invalid value will default to 20. |
| page | string You can specify further pages with this parameter. Page numbering is 0-based and omitting the page parameter or using an invalid value will return the first page. |
{- "totalElements": 0,
- "totalPages": 0,
- "number": 0,
- "numberOfElements": 0,
- "last": true,
- "first": true,
- "data": [
- {
- "id": "string",
- "name": "string",
- "corporate": true,
- "published": true,
- "created": 0
}
]
}Download files from a client based on the file key. The key can be found in the response from the 'query client by id' call. It will be available in the flowData object, under the flow ID in whichthe end client uploaded the file, part of the the fileData attribute.
| key required | string Example: key=base64encoded Base64 encoded string |
Retrieve workflows user submissions. This is different from events because it contains the whole data submitted by a user.The parameters before and after can be passed to define a time range for your search
| before | string UNIX timestamp to select events submitted before the specified value |
| after | string UNIX timestamp to select events submitted after the specified value |
| limit | string Maximum number of items to be returned. Must be between 1 - 50 both inclusive. Omitting the limit parameter or using an invalid value will default to 20. |
| page | string You can specify further pages with this parameter. Page numbering is 0-based and omitting the page parameter or using an invalid value will return the first page. |
| statuses | string You can specify the desired end client statuses to filter the results with. Omitting the statuses parameter will return end clients for all available statuses |
| flowId | string You can specify the desired flow id to filter the results with. Only end clients that have interacted with that flow will be returned. |
{- "totalElements": 0,
- "totalPages": 0,
- "number": 0,
- "numberOfElements": 0,
- "last": true,
- "first": true,
- "data": [
- {
- "id": "string",
- "ownerIds": [
- "string"
], - "created": 0,
- "lastModified": 0,
- "profileType": "NORMAL",
- "status": "ACCEPTED",
- "statusManuallyChanged": true,
- "user": "string"
}
]
}Retrieve workflows user submissions. A user can submit data through multiple workflows, that is aggregated here.
| clientId required | string Client identifier |
| includeFullServiceDetails | string Parameter to specify whether full service details should be provided or not. |
{- "id": "string",
- "ownerIds": [
- "string"
], - "created": 0,
- "lastModified": 0,
- "profileType": "NORMAL",
- "status": "ACCEPTED",
- "statusManuallyChanged": true,
- "flowData": {
- "property1": {
- "id": "string",
- "completed": true,
- "fieldData": {
- "property1": {
- "id": "string",
- "name": "string",
- "value": [
- "string"
], - "role": "first_name",
- "normalizedName": "string"
}, - "property2": {
- "id": "string",
- "name": "string",
- "value": [
- "string"
], - "role": "first_name",
- "normalizedName": "string"
}
}, - "fileData": {
- "property1": "string",
- "property2": "string"
}, - "enhancedFileData": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "serviceData": [
- {
- "timestamp": 0,
- "serviceStatus": "COMPLETED",
- "nodeId": "string",
- "nodeTitle": "string",
- "nodeType": "string",
- "match": true,
- "transactionInfo": {
- "accountName": "string",
- "accountIdentifier": "string",
- "countryCode": "string",
- "date": "string",
- "shareableToken": "string",
- "transactionId": "string",
- "transactionRecordId": "string",
- "userName": "string"
}, - "fullServiceDetails": { },
- "secondaryMatch": true
}
]
}, - "property2": {
- "id": "string",
- "completed": true,
- "fieldData": {
- "property1": {
- "id": "string",
- "name": "string",
- "value": [
- "string"
], - "role": "first_name",
- "normalizedName": "string"
}, - "property2": {
- "id": "string",
- "name": "string",
- "value": [
- "string"
], - "role": "first_name",
- "normalizedName": "string"
}
}, - "fileData": {
- "property1": "string",
- "property2": "string"
}, - "enhancedFileData": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "serviceData": [
- {
- "timestamp": 0,
- "serviceStatus": "COMPLETED",
- "nodeId": "string",
- "nodeTitle": "string",
- "nodeType": "string",
- "match": true,
- "transactionInfo": {
- "accountName": "string",
- "accountIdentifier": "string",
- "countryCode": "string",
- "date": "string",
- "shareableToken": "string",
- "transactionId": "string",
- "transactionRecordId": "string",
- "userName": "string"
}, - "fullServiceDetails": { },
- "secondaryMatch": true
}
]
}
}, - "notes": [
- {
- "id": "string",
- "text": "string",
- "createdBy": "string",
- "created": "2019-08-24T14:15:22Z"
}
], - "tasks": [
- {
- "id": "string",
- "text": "string",
- "resolved": true,
- "createdBy": "string",
- "updatedBy": "string",
- "created": "2019-08-24T14:15:22Z",
- "updated": "2019-08-24T14:15:22Z"
}
], - "user": "string"
}