Introduction
Welcome to the IDKIT API Documentation and guide. Here you will find everything you need to seamlessly integrate our next generation ID Verification API into your application. We offer you two simple methods.
- Creating an ID Verification transaction.
- Getting the ID Verification transaction results.
On your IDKit home screen is the developer section, you will find your endpoints URL and API keys along with further instructions and tools to help make your integration process fast and seamless.
Open API Spec & Postman Collection
You can download the OpenAPI/Swagger spec file here,
and the Postman Collection here.
The Transaction
In IDKit, the main resource is called a Transaction.
It represents a single Identity Verification.
It starts when you create it (either via the Web portal or the API), typically resulting in an SMS being sent to the end user.
It is then populated by the end user and our systems,
and last, can be accessed (here again, either via the Web portal or the API).
Anatomy of a Transaction
The data inside a transaction's record is a mix of the data populated by the user, the data extracted from their documents by our systems, the result of various validity checks also performed by our systems, and the result of external data providers (like government databases).
It also contains the images of the documents and the liveness video.
In the API, it is represented by a JSON object.
The assets (images and video) are represented as temporary links to downloadable files.
The links are valid for 10 minutes after fetching the transaction.
You can fetch the transaction again to generate a new set of links.
Lifecycle
A transaction can have one of several states throughout its lifecycle. It is represented under the status
attribute.
- It starts as PENDING
, after creation but before the user taps the link
- evolves through INPROGRESS
while the user is using identifying themselves
- and SUBMITTED
once they are done.
- It ends with COMPLETE
once the system has finished running the checks.
- It can also be EXPIRED
if the user did not submit before the expiration time
- or CANCELLED
if the user (or operator) explicitly exited/canceled the transaction.
We consider a transaction as closed when it reaches one of the last three statuses (COMPLETE
, EXPIRED
, or CANCELLED
).
Required Headers
On top of the authentication headers, every call to the API must include a user-agent
header. Lack of a user-agent header will result in a 401
error being thrown.
Verifying a completed transaction
There are two methods to tell when a customer has completed their ID verification.
Method 1: Webhook Notification.
"notifications": {
"complete": [
{
"type": "https",
"url": "https://example.com/auth",
"auth_header_name": "Authorization",
"auth_header_value": "Basic dXNlcm5hbWU6cGFzc3dvcmQ="
}
]
}
In the Create a transaction API request, you can specify your own notification webhook URL. Once the transaction is considered as closed, we send a notification to your endpoint with the transaction_id
so you can retrieve the results.
You need to pass the connection details via the notifications
object when creating the transaction:
auth_header_name
and auth_header_value
will be used to define an authentication header sent with the notification. They are both optional.
Currently, the only supported event is complete
and the only supported type is https
.
Your webhook endpoint must return a 200
response upon successful delivery of the notification.
Method 2: Redirect and Poll.
In the Create a transaction API request, you can specify a redirect_success_url
so that once a customer completes, we can redirect them to that URL.
Once the customer has accessed your given URL, you can then poll the Get Transaction endpoint until the overall status Complete
.
Polling is required because we redirect the user before the results are ready, ensuring the best user experience -- it typically takes less than 30 seconds for a transaction to complete.
Interpreting the Results
The record for a completed transaction will contain a results
object.
A transaction results object
"results": {
"overall": "FLAGGED",
"liveness": "FLAGGED",
"data": "FLAGGED",
"documents": "PASSED",
"facematch": "FLAGGED"
}
Overall Results
If the overall result (under results.overall
) is PASSED
, the customer has passed all checks including document fraud analysis, face matching between their face and ID document, the liveness check and where applicable, the check from a third party data provider.
If the overall result is FLAGGED
we suggest analysing the breakdown of the results more carefully.
Understanding the Breakdowns
The results
object also contains a breakdown of the checks:
liveness
: If liveness result isFLAGGED
, manually check the video for suspicious activity.data
: If the data check isFLAGGED
, check that the data confirmed by the client matches what is on the identity document. If incorrect we recommend you get the customer to try again using correct data.documents
: if this isFLAGGED
, check the reason and then the document image.facematch
: If face match isFLAGGED
, manually check both faces and see if they match keeping in mind our result.
Authentication
IDKit uses OAuth 2.0 authentication to grant access to the API and your data. Your code will ask for a temporary access token from the OAuth endpoint, and then make the actual API calls using this access token.
The OAuth endpoint URL is unique per tenant and you can create multiple API keys.
You will find both of them in the developer section of your IDKit portal.
Create an api_key
by selecting "Generate New Key". You can generate as many API Keys as you like.
Fetching an Access Token
With the url and the API key token, you can request an access token.
Pass your API key via the Authorization
header (type Basic
)
Fetch an access_token
curl -I --request POST {oauth_endpoint_url} \
--header 'Authorization: Basic {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded'
Example Responses
{
"access_token":"eyJr [SNIP] z_Q",
"expires_in":3600,
"token_type":"Bearer"
}
An access_token
is valid for 60 minutes. Your code should handle its caching and renewal.
Attributes
Attribute | Description |
---|---|
oauth_endpoint_url Required |
The Oauth endpoint URL from the IDKit developer module. |
api_key Required |
The API key from the IDKit developer module. |
Making an API call
Once you have an access token, you can perform API calls.
The API URL is unique per tenant. You will also find it in the developer section of your IDKit portal.
See beside for an example of a GET transaction request
Get a transaction record
curl --request GET '{api_url}/v1/transactions/{transaction_id}/{format}' \
--header 'authorization: Bearer eyJraW [SNIP] kvogCA' \
--header 'Content-Type: application/json'
Example Responses (see the endpoint's description for a complete response)
{
"flow_type": "NORMAL",
"transaction_id": "01ERNGD38KE9T54YHJM7K1WAMV",
"created_at": "2020-12-03T23:53:38.324Z",
"tenant_id": "ap-southeast-2:b8381b45-a795-4d15-b184-d655c5262cf2",
"status": "COMPLETE",
...
}
Attributes
Attribute | Description |
---|---|
api_url Required |
The API URL from the IDKit developer module. |
access_token Required |
The Access Token you have fetched from the OAuth endpoint. |
IDKit API Spec
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
DEFAULT
Base URLs:
Operations about Transactions
Create a transaction
POST /transactions
curl -X POST https://example.api.au.idkit.com/v1/transactions \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
Triggers an ID verification, either as an SMS we will send to your customers or as a link which you can pass on or redirect your customer to however you like.
Body parameter
{
"name": "MyTest",
"reference": "Demo",
"flow_type": "NORMAL",
"phone_region_code": "61",
"phone_number": "00000000",
"redirect_url_success": "https://google.com/?success",
"redirect_url_exit": "https://google.com/?exit",
"notifications": {
"complete": [
{
"type": "https",
"url": "https://example.com/auth",
"auth_header_name": "Authorization",
"auth_header_value": "Basic dXNlcm5hbWU6cGFzc3dvcmQ="
}
]
}
}
Parameters
body body object
Create Transaction Parameters
» flow_type body string
» name body optional¦string
You can specify a "name" reference that may be seen in the SMS and is stored in the transaction record. (eg. Daniel).
» notifications body optional¦object
»» complete body [object]
»»» auth_header_name body string
Optional Name of an authorization header for us to use when contacting your webhook URL.
»»» auth_header_value body optional¦string
Optional Value of an authorization header for us to use when contacting your webhook URL.
»»» type body optional¦string
»»» url body optional¦string
Your webhook URL for where we should send the notification that the transaction has been completed.
» phone_number body optional¦string
The mobile number without region code (eg. 0400123456 or 400123456).
» phone_region_code body optional¦string
The region code for the mobile number (eg. +61)
» redirect_url_exit body optional¦string
A URL for the customer to be redirected to if exiting within the journey without completing.
» redirect_url_success body optional¦string
A URL for the customer to be redirected to once successfully completing the journey.
» reference body optional¦string
You can specify a reference that may be seen in the SMS and is stored in the transaction record. (eg. 0000001).
Example responses
200 Response
{
"transaction_id": "01ERZZN650QZM9N7C20E4G8760",
"url": "https://example.idkit.com/01ERZZN650QZM9N7C20E4G8760"
}
400 Response
{
"message": "Bad Request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | CreateTransactionResponse |
400 | Bad Request | The server could not understand the request due to invalid syntax. | BadRequestResponse |
401 | Unauthorized | Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. | UnauthenticatedResponse |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle. | InternalServerErrorResponse |
Fetch a transaction
GET /transactions/{transaction_id}/{format}
curl -X GET https://example.api.au.idkit.com/v1/transactions/{transaction_id}/{format} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
Get the transaction payload data by trasanction_id
. You can generate a PDF (Base64 data) by setting the format
to "pdf".
Parameters
transaction_id path string
Transaction ID
format path string
Available values are: json, pdf
Example responses
Get Transaction response after completion
{
"current_step": "SUBMITTED",
"user_details": {
"country_code": "AUS",
"id_number": 123456789,
"document_number": 123456789,
"address": {
"street_address": "FakeData",
"country": "AUS",
"post_code": 9999,
"was_validated": true,
"suburb": "FakeData",
"full_address": "FakeData",
"state": "FakeData",
"street_address_2": "FakeData"
},
"date_of_expiry": "2030-12-31",
"date_of_birth": "1980-01-01",
"last_name": "FakeData",
"middle_name": "FakeData",
"first_name": "FakeData",
"document_type": "Driver Licence",
"licence_number": 123456789
},
"status": "COMPLETE",
"created_by": "API",
"transaction_id": "01FX6X3Y8M7FRNDE0G2WMRKPFQ",
"closed_at": "2022-03-03T03:30:41.095Z",
"spoof_result": "Low Risk",
"name": "MyTest",
"reference": "Demo",
"documents": [
{
"created_at": "2022-03-03T03:29:18.595Z",
"document_id": "2e20ccc18094d7f8760a6c76dc33fdb1",
"extracted": {
"country": "Australia",
"id_number": 123456789,
"address": "FakeData",
"document_number": 3333333333,
"city": "FakeData",
"expiry_date": "31/12/2030",
"birth_date": "01/01/1980",
"last_name": "FakeData",
"given_names": "FakeData",
"middle_name": "FakeData",
"country_code": "AUS",
"full_name": "FakeData",
"street": "FakeData",
"post_code": 9999,
"state": "FakeData",
"class": "C",
"first_name": "FakeData",
"document_type": "Driver Licence"
},
"asf_breakdown": {
"document_integrity": "PASSED",
"image_composition": "FLAGGED",
"photo_check": "PASSED",
"detail_check": "PASSED"
},
"identity_document_type": "AUS_NSW_DRIVERLICENCE",
"updated_at": "2022-03-03T03:29:18.595Z",
"ocr": true,
"face_photo": {
"url": "https://fakedomain.url",
"size": 7392,
"content_type": "image/jpeg"
},
"front_document": {
"url": "https://fakedomain.url",
"size": 70064,
"content_type": "image/jpeg"
},
"original_front_document": {
"url": "https://fakedomain.url",
"size": 100400,
"content_type": "image/jpeg"
},
"signature_photo": {
"url": "https://fakedomain.url",
"size": 23056,
"content_type": "image/jpeg"
}
}
],
"likeness_overall": "Fail",
"results": {
"liveness": "PASSED",
"overall": "FLAGGED",
"data": "PASSED",
"documents": "FLAGGED",
"facematch": "FLAGGED"
},
"invitation_phone_region_code": 61,
"data_provider": {
"DATA_CONNECT": {
"overall": "FAILED",
"data": {
"rapidID": "<check-id>",
"VerifyDocumentResult": {
"attributes": {
"i:type": "DriverLicenceResponse"
},
"VerificationResultCode": "N",
"OriginatingAgencyCode": "XXXX",
"ActivityId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"VerificationRequestNumber": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
},
"fieldDetails": {
"BirthYear": "No Match",
"BirthMonth": "No Match",
"FamilyName": "No Match",
"LicenceNumber": "No Match",
"GivenName": "No Match",
"BirthDay": "No Match",
"StateOfIssue": "No Match",
"ImmiCardNumber": "No Match",
"MiddleName": "No Match",
"ExpiryDay": "No Match",
"RegistrationState": "No Match",
"CardType": "No Match",
"CountryOfIssue": "No Match",
"BirthDate": "No Match"
}
},
"message": "OK",
"version": "1.0.0",
"xml": false
},
"GREEN_ID": {
"data": {
"individualResults": {
"background": [],
"dvs": [
{
"components": {
"dob": "PASS",
"firstName": "PASS",
"id": "PASS",
"surName": "PASS"
},
"label": "DVS - NSW Driver Licence",
"result": "PASS"
}
],
"watchlist": {
"ERROR": [],
"FOUND_ON_LIST": [],
"NOT_FOUND_ON_LIST": [
"Politically Exposed Persons Watchlist",
"Department of Foreign Affairs and Trade Watchlist",
"US, Dept of Treasury, Office of Foreign Assets Control - Specially Designated Nationals List",
"US, Dept of Treasury, Office of Foreign Assets Control - Palestinian Legislative Council (PLC) List",
"Consolidated list of persons subject to EU financial sanctions",
"UK, HM Treasury - Consolidated List of Financial Sanctions Targets in the UK",
"UK - Members of Parliament",
"New Zealand - Members of Parliament",
"Cyprus - Members of Parliament",
"Russia - Deputies of the State Duma",
"US, Immigration and Customs Enforcement - Most Wanted Fugitives List",
"US, System for Award Management - Exclusions List",
"INTERPOL - Wanted Persons List"
]
}
},
"overall": "VERIFIED",
"registrationDetails": [
{
"label": "Data Provider",
"value": "Illion / GreenID"
},
{
"label": "Time & Date",
"value": "2020-07-16T13:29:23.485+1000"
},
{
"label": "Reference",
"value": "1EwoGOGzO"
},
{
"label": "Rule ID",
"value": "default"
}
]
},
"encrypted_xml": "example/01ERZZN650QZM9N7C20E4G8760/encrypted-green-id-response.xml.enc",
"message": "OK",
"version": "1.0.0"
},
"ID_MATRIX": {
"data": {
"fraudAssessment": {
"dataSource": [
{
"name": "Politically Exposed Person (PEP) Verification",
"result": "PASS",
"score": "100.0",
"threshold": "50.0",
"weight": "0.25"
},
{
"name": "Velocity Verification",
"result": "PASS",
"score": "100.0",
"threshold": "50.0",
"weight": "0.25"
},
{
"name": "FraudCheck Shared Fraud Database",
"result": "PASS",
"score": "100.0",
"threshold": "50.0",
"weight": "0.25"
},
{
"name": "Sanctions Check",
"result": "PASS",
"score": "100.0",
"threshold": "50.0",
"weight": "0.25"
}
],
"overall": [
{
"name": "Overall Result",
"value": "PASS"
},
{
"name": "Overall Fraud Score",
"value": "100/100"
},
{
"name": "Overall Threshold",
"value": "50.0"
}
]
},
"overall": "ACCEPT",
"searchResults": {
"overall": "ACCEPT",
"rulesResults": [
{
"name": "Overall Decision",
"value": "ACCEPT"
},
{
"name": "Overall Points",
"value": "119.0"
},
{
"name": "IDMatrix Minimum Requirements Verification",
"value": "MATCH"
},
{
"name": "IDMatrix Safe Harbour Verification",
"value": "MATCH"
}
],
"searchResults": {
"fraudassessment": [
{
"components": {
"address": "NO MATCH",
"dob": "NO MATCH",
"fraud": "NO MATCH",
"full_name": "NO MATCH",
"id": "NO MATCH",
"name": "NO MATCH"
},
"name": "Velocity (v1.0)",
"points": "0",
"results": 0,
"searchName": "VEDA-EVVELOCITY-0026",
"value": "NO MATCH"
},
{
"components": {
"address": "NO MATCH",
"dob": "NO MATCH",
"fraud": "NO MATCH",
"full_name": "NO MATCH",
"id": "NO MATCH",
"name": "NO MATCH"
},
"name": "GlobalScreening - PEPs (Domestic) (v1.0)",
"points": "0",
"results": 0,
"searchName": "ACC-PEPS-0048",
"value": "NO MATCH"
},
{
"components": {
"address": "NO MATCH",
"dob": "NO MATCH",
"fraud": "NO MATCH",
"full_name": "NO MATCH",
"id": "NO MATCH",
"name": "NO MATCH"
},
"name": "GlobalScreening - Sanctions (International) (v2.0)",
"points": "0",
"results": 0,
"searchName": "ACC-COMPLINK-0021",
"value": "NO MATCH"
},
{
"components": {
"address": "NO MATCH",
"dob": "NO MATCH",
"fraud": "NO MATCH",
"full_name": "NO MATCH",
"id": "NO MATCH",
"name": "NO MATCH"
},
"name": "Fraud Lookup - Address (v1.0)",
"points": "0",
"results": "0",
"searchName": "VEDA-SFDADDR-0023",
"value": "NO MATCH"
}
],
"verification": [
{
"components": {
"address": "PASS",
"dob": "PASS",
"fraud": "PASS",
"full_name": "PASS",
"id": "PASS",
"name": "PASS"
},
"name": "Credit Bureau Consumer (v3.0)",
"points": "59",
"results": "98",
"searchName": "VEDA-CBCONS-0050",
"value": "PASS"
},
{
"components": {
"address": "PASS",
"dob": "PASS",
"fraud": "PASS",
"full_name": "PASS",
"id": "PASS",
"name": "PASS"
},
"name": "Credit Bureau Consumer (v3.2)",
"points": "0",
"results": "100",
"searchName": "VEDA-CBCONS-0066",
"value": "PASS"
},
{
"components": {
"address": "PASS",
"dob": "PASS",
"fraud": "PASS",
"full_name": "PASS",
"id": "PASS",
"name": "PASS"
},
"name": "Australian Electoral Roll (v3.0)",
"points": "60",
"results": "100",
"searchName": "AEC-ER-0049",
"value": "PASS"
}
]
},
"verificationOutcome": {
"indicator": "ACCEPT",
"totalPoints": "119"
}
},
"summary": [
{
"name": "Reference",
"value": "200822-98BE2-ADFA9"
},
{
"name": "Profile Name",
"value": "KYC-TEST_PROFILE_GEE-Service1"
},
{
"name": "Profile Version",
"value": "1"
}
]
},
"encrypted_xml": "example/01ERZZN650QZM9N7C20E4G8760/encrypted-id-matrix-response.xml.enc",
"message": "OK",
"version": "1.0.0"
}
},
"device_info": {
"browser": "Chrome 98.0.4758.101",
"country": "Japan",
"geolocation": "41.7531013,123.353001",
"ip": "91.207.174.99",
"ip_location": "35.6164,139.7425",
"isp": "M247 Ltd",
"os": "Android 12",
"vpn": true
},
"created_at": "2022-03-03T03:28:00.788Z",
"flow_type": "NORMAL2",
"liveness_attempts": [
{
"result": false,
"session_id": "FakeData",
"actions": "SMILE LEFT",
"video": {
"url": "https://fakedomain.url",
"size": 150688,
"content_type": "video/webm"
}
}
],
"activated_at": "2022-03-03T03:28:33.163Z",
"computed_statistics": {
"steps": [
{
"name": "PRIVACY",
"start_time": "2022-03-03T03:28:34.607Z",
"total_duration_seconds": 55
},
{
"name": "ID_INFORMATION",
"start_time": "2022-03-03T03:29:30.127Z",
"total_duration_seconds": 22
},
{
"name": "FACE_MATCH_CAPTURE",
"start_time": "2022-03-03T03:29:52.654Z",
"total_duration_seconds": 28
},
{
"name": "SUBMITTED",
"start_time": "2022-03-03T03:30:21.226Z",
"total_duration_seconds": 0
}
],
"total_duration_seconds": 105,
"total_duration_excl_privacy_seconds": 50
},
"invitation_phone_number": 0,
"likeness_features": {
"right_eye": "Fail",
"nose": "Fail",
"philtrum": "Pass",
"jaw": "Fail",
"middle_forehead": "Fail",
"mouth": "Fail",
"left_eye": "Fail",
"forehead": "Fail",
"left_cheek": "Fail",
"right_brow": "Fail",
"left_brow": "Fail",
"right_cheek": "Fail"
},
"facematch_best_frame": {
"url": "https://fakedomain.url",
"size": 24432
},
"pdf_report_number": "01FX6X3Y8M7FRNDE0G2WMRKPFQ"
}
Get transaction response after redacted all data types (records, assets, face, data)
{
"current_step": "SUBMITTED",
"user_details": {
"address": null,
"country_code": null,
"date_of_birth": null,
"date_of_expiry": null,
"document_type": null,
"edited_fields": null,
"first_name": null,
"last_name": null,
"middle_name": null
},
"status": "COMPLETE",
"created_by": "API",
"transaction_id": "01FXGZEDEZK44H0SHA90DHTHPW",
"closed_at": "2022-03-07T01:23:43.046Z",
"spoof_result": "Low Risk",
"record_redacted_at": "2022-03-07T01:24:57.007Z",
"name": null,
"data_redacted_at": "2022-03-07T01:24:57.007Z",
"reference": "Demo",
"documents": [
{
"asf_breakdown": {
"document_integrity": "PASSED",
"image_composition": "PASSED",
"photo_check": "PASSED",
"detail_check": "PASSED"
},
"created_at": "2022-03-07T01:22:26.637Z",
"document_id": "f398e839d348c7088cbea284d3c7caa7",
"extracted": null,
"identity_document_type": "AUS_NSW_DRIVERLICENCE",
"ocr": true,
"submitted_data": null,
"updated_at": "2022-03-07T01:22:26.637Z",
"face_photo": {
"url": null,
"size": 0,
"content_type": null
},
"front_document": {
"url": null,
"size": 0,
"content_type": null
},
"original_front_document": {
"url": null,
"size": 0,
"content_type": null
},
"signature_photo": {
"url": null,
"size": 0,
"content_type": null
}
}
],
"face_redacted_at": "2022-03-07T01:24:57.007Z",
"likeness_overall": "Fail",
"results": {
"liveness": "PASSED",
"overall": "FLAGGED",
"data": "PASSED",
"documents": "PASSED",
"facematch": "FLAGGED"
},
"invitation_phone_region_code": null,
"data_provider": {
"DATA_CONNECT": null
},
"device_info": {
"browser": "Mobile Safari 10.0",
"country": "United States",
"geolocation": "41.7531341,123.3531192",
"ip": "66.115.157.242",
"ip_location": "37.3881,-121.8756",
"isp": "Total Server Solutions L.L.C.",
"os": "iOS 10.3.1",
"vpn": true
},
"assets_redacted_at": "2022-03-07T01:24:57.007Z",
"created_at": "2022-03-07T01:21:05.503Z",
"flow_type": "NORMAL2",
"liveness_attempts": [
{
"actions": "SMILE LEFT",
"result": true,
"session_id": "5c0d45b8-406c-f210-8248-905e45-f18ccf71486d57a8",
"video": {
"url": null,
"size": 0,
"content_type": null
}
}
],
"activated_at": "2022-03-07T01:21:46.447Z",
"computed_statistics": {
"steps": [
{
"name": "PRIVACY",
"start_time": "2022-03-07T01:21:49.295Z",
"total_duration_seconds": 45
},
{
"name": "ID_INFORMATION",
"start_time": "2022-03-07T01:22:35.206Z",
"total_duration_seconds": 24
},
{
"name": "FACE_MATCH_CAPTURE",
"start_time": "2022-03-07T01:22:59.848Z",
"total_duration_seconds": 21
},
{
"name": "SUBMITTED",
"start_time": "2022-03-07T01:23:21.483Z",
"total_duration_seconds": 0
}
],
"total_duration_seconds": 90,
"total_duration_excl_privacy_seconds": 45
},
"invitation_phone_number": null,
"likeness_features": {
"right_eye": "Fail",
"nose": "Fail",
"philtrum": "Pass",
"jaw": "Fail",
"middle_forehead": "Fail",
"mouth": "Fail",
"left_eye": "Fail",
"forehead": "Fail",
"left_cheek": "Fail",
"right_brow": "Fail",
"left_brow": "Fail",
"right_cheek": "Fail"
},
"facematch_best_frame": {
"url": null,
"size": 0,
"content_type": null
},
"pdf_report_number": "01FXGZEDEZK44H0SHA90DHTHPW"
}
OK
{
"transaction_id": "01ERZZN650QZM9N7C20E4G8760",
"status": "COMPLETE",
"created_at": "2020-12-08T02:01:42.824Z",
"flow_type": "NORMAL",
"pdf_binary_base64": "AMgAuADYpCi9Qcm9kdWNlciAo/v8AUQB0ACAAN..."
}
400 Response
{
"message": "Bad Request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | The server could not understand the request due to invalid syntax. | BadRequestResponse |
401 | Unauthorized | Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. | UnauthenticatedResponse |
404 | Not Found | Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. | UnauthenticatedResponse |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle. | InternalServerErrorResponse |
Response Schema
Redact a transaction
POST /transactions/redact
curl -X POST https://example.api.au.idkit.com/v1/transactions/redact \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
Redact the specified information of a certain transaction. Redacted transaction will contain timestamps “records_redacted_at”, “assets_redacted_at”, “face_redacted_at”, “data_redacted_at” depending on data redacted in Get Transaction response of the redacted transaction.
Body parameter
{
"transaction_id": "01ERZZN650QZM9N7C20E4G8760",
"data_to_redact": [
"records",
"assets",
"face",
"data"
]
}
Parameters
body body object
Redact Transaction Parameters
» transaction_id body string
Transaction ID
» data_to_redact body [string]
Data to redact. Can be an array of 'records', 'assets', 'face', 'data'
Example responses
OK
{
"status": "success",
"transaction_id": "01ERZZN650QZM9N7C20E4G8760",
"redacted_at": "2022-02-03T05:35:09.843Z",
"redacted_data": [
"records",
"assets",
"face",
"data"
]
}
400 Response
{
"message": "Bad Request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | RedactTransactionResponseJson |
400 | Bad Request | The server could not understand the request due to invalid syntax. | BadRequestResponse |
401 | Unauthorized | Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. | UnauthenticatedResponse |
404 | Not Found | Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. | UnauthenticatedResponse |
409 | Conflict | Transaction itself is still in progress and not available for redaction yet. | ConflictResponse |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle. | InternalServerErrorResponse |
Redact multiple transactions
POST /transactions/batch_redact
curl -X POST https://example.api.au.idkit.com/v1/transactions/batch_redact \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
Redact transactions by certain condition. Redacted transactions will contain timestamps “records_redacted_at”, “assets_redacted_at”, “face_redacted_at”, “data_redacted_at” depending on data redacted in Get Transaction response of the redacted transaction.
Body parameter
{
"transaction_ids": [
"01ERZZN650QZM9N7C20E4G8760",
"01ERZZN650QZM9N7C20E4G8761"
],
"data_to_redact": [
"records",
"assets",
"face",
"data"
],
"closed_before": "2022-02-03T05:35:09.843Z"
}
Parameters
body body object
Redact Transaction Parameters
» data_to_redact body [string]
Data to redact. Can be an array of 'records', 'assets', 'face', 'data'
» transaction_ids body [string]
Transaction ID array. One of transaction_ids or closed_before must be provided. If both are provided, closed_before will be used.
» closed_before body string
Those transactions that are closed before this timestamp(UTC) will be redacted. One of transaction_ids or closed_before must be provided.
Example responses
Accepted
{
"status": "success",
"transaction_ids": [
"01ERZZN650QZM9N7C20E4G8760",
"01ERZZN650QZM9N7C20E4G8761"
],
"redacted_at": "2022-02-03T05:35:09.843Z",
"redacted_data": [
"records",
"assets",
"face",
"data"
]
}
400 Response
{
"message": "Bad Request."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
202 | Accepted | Accepted | BatchTransactionRedactionResponseJson |
400 | Bad Request | The server could not understand the request due to invalid syntax. | BadRequestResponse |
401 | Unauthorized | Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. | UnauthenticatedResponse |
404 | Not Found | Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. | UnauthenticatedResponse |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle. | InternalServerErrorResponse |
DataProviderData
{
"DATA_CONNECT": {
"data": {
"fieldDetails": {
"BirthDate": "string",
"BirthDay": "string",
"BirthMonth": "string",
"BirthYear": "string",
"CardType": "string",
"CountryOfIssue": "string",
"ExpiryDay": "string",
"FamilyName": "string",
"GivenName": "string",
"ImmiCardNumber": "string",
"LicenceNumber": "string",
"MiddleName": "string",
"RegistrationState": "string",
"StateOfIssue": "string"
},
"rapidID": "string",
"VerifyDocumentResult": {
"ActivityId": "string",
"attributes": {
"i_type": "string"
},
"OriginatingAgencyCode": "string",
"VerificationRequestNumber": "string",
"VerificationResultCode": "string"
}
},
"message": "string",
"overall": "string",
"version": "string",
"xml": true
},
"GREEN_ID": {
"data": {
"fieldDetails": {
"BirthDate": "string",
"BirthDay": "string",
"BirthMonth": "string",
"BirthYear": "string",
"CardType": "string",
"CountryOfIssue": "string",
"ExpiryDay": "string",
"FamilyName": "string",
"GivenName": "string",
"ImmiCardNumber": "string",
"LicenceNumber": "string",
"MiddleName": "string",
"RegistrationState": "string",
"StateOfIssue": "string"
},
"rapidID": "string",
"VerifyDocumentResult": {
"ActivityId": "string",
"attributes": {
"i_type": "string"
},
"OriginatingAgencyCode": "string",
"VerificationRequestNumber": "string",
"VerificationResultCode": "string"
}
},
"message": "string",
"overall": "string",
"version": "string",
"xml": true
},
"ID_MATRIX": {
"data": {
"fieldDetails": {
"BirthDate": "string",
"BirthDay": "string",
"BirthMonth": "string",
"BirthYear": "string",
"CardType": "string",
"CountryOfIssue": "string",
"ExpiryDay": "string",
"FamilyName": "string",
"GivenName": "string",
"ImmiCardNumber": "string",
"LicenceNumber": "string",
"MiddleName": "string",
"RegistrationState": "string",
"StateOfIssue": "string"
},
"rapidID": "string",
"VerifyDocumentResult": {
"ActivityId": "string",
"attributes": {
"i_type": "string"
},
"OriginatingAgencyCode": "string",
"VerificationRequestNumber": "string",
"VerificationResultCode": "string"
}
},
"message": "string",
"overall": "string",
"version": "string",
"xml": true
}
}
Model for DataProvider
Properties
DATA_CONNECT DataProvider
Model for DataConnect
GREEN_ID DataProvider
Model for DataConnect
ID_MATRIX DataProvider
Model for DataConnect
SearchResults
{
"fraudassessment": [
{
"address": "string",
"dob": "string",
"firstName": "string",
"fraud": "string",
"full_name": "string",
"id": "string",
"name": "string",
"surName": "string"
}
],
"verification": [
{
"components": {
"address": "string",
"dob": "string",
"firstName": "string",
"fraud": "string",
"full_name": "string",
"id": "string",
"name": "string",
"surName": "string"
},
"name": "string",
"points": "string",
"results": "string",
"searchName": "string",
"value": "string"
}
]
}
Model for SearchResults
Properties
fraudassessment [Components]
[Model for Components]
verification [Verification]
[Model for Verification]
IdMatrixResults
{
"overall": "string",
"rulesResults": [
{
"name": "string",
"value": "string"
}
],
"searchResults": {
"fraudassessment": [
{
"address": "string",
"dob": "string",
"firstName": "string",
"fraud": "string",
"full_name": "string",
"id": "string",
"name": "string",
"surName": "string"
}
],
"verification": [
{
"components": {
"address": "string",
"dob": "string",
"firstName": "string",
"fraud": "string",
"full_name": "string",
"id": "string",
"name": "string",
"surName": "string"
},
"name": "string",
"points": "string",
"results": "string",
"searchName": "string",
"value": "string"
}
]
},
"verificationOutcome": {
"indicator": "string",
"totalPoints": "string"
}
}
Model for SearchResults
Properties
overall string
rulesResults [RulesResults]
[Model for RulesResults]
searchResults SearchResults
Model for SearchResults
verificationOutcome VerificationOutcome
Model for VerificationOutcome
IdMatrixData
{
"fraudAssessment": {
"dataSource": [
{
"name": "string",
"result": "string",
"score": "string",
"threshold": "string",
"weight": "string"
}
],
"overall": [
{
"name": "string",
"value": "string"
}
]
},
"overall": "string",
"searchResults": {
"overall": "string",
"rulesResults": [
{
"name": "string",
"value": "string"
}
],
"searchResults": {
"fraudassessment": [
{
"address": "string",
"dob": "string",
"firstName": "string",
"fraud": "string",
"full_name": "string",
"id": "string",
"name": "string",
"surName": "string"
}
],
"verification": [
{
"components": {
"address": "string",
"dob": "string",
"firstName": "string",
"fraud": "string",
"full_name": "string",
"id": "string",
"name": "string",
"surName": "string"
},
"name": "string",
"points": "string",
"results": "string",
"searchName": "string",
"value": "string"
}
]
},
"verificationOutcome": {
"indicator": "string",
"totalPoints": "string"
}
},
"summary": [
{
"name": "string",
"value": "string"
}
]
}
Model for IdMatrix
Properties
fraudAssessment FraudAssessment
Model for FraudAssessment
overall string
searchResults IdMatrixResults
Model for SearchResults
summary [Summary]
[Model for Summary]
Summary
{
"name": "string",
"value": "string"
}
Model for Summary
Properties
name string
value string
VerificationOutcome
{
"indicator": "string",
"totalPoints": "string"
}
Model for VerificationOutcome
Properties
indicator string
totalPoints string
Verification
{
"components": {
"address": "string",
"dob": "string",
"firstName": "string",
"fraud": "string",
"full_name": "string",
"id": "string",
"name": "string",
"surName": "string"
},
"name": "string",
"points": "string",
"results": "string",
"searchName": "string",
"value": "string"
}
Model for Verification
Properties
components Components
Model for Components
name string
points string
results string
searchName string
value string
RulesResults
{
"name": "string",
"value": "string"
}
Model for RulesResults
Properties
name string
value string
Overall
{
"name": "string",
"value": "string"
}
Model for Overall
Properties
name string
value string
FraudAssessment
{
"dataSource": [
{
"name": "string",
"result": "string",
"score": "string",
"threshold": "string",
"weight": "string"
}
],
"overall": [
{
"name": "string",
"value": "string"
}
]
}
Model for FraudAssessment
Properties
dataSource [DataSource]
[Model for DataSource]
overall [Overall]
[Model for Overall]
DataSource
{
"name": "string",
"result": "string",
"score": "string",
"threshold": "string",
"weight": "string"
}
Model for DataSource
Properties
name string
result string
score string
threshold string
weight string
GreenIdData
{
"individualResults": {
"background": [
"string"
],
"dvs": [
{
"components": {
"address": "string",
"dob": "string",
"firstName": "string",
"fraud": "string",
"full_name": "string",
"id": "string",
"name": "string",
"surName": "string"
},
"label": "string",
"result": "string"
}
],
"watchlist": {
"ERROR": [
"string"
],
"FOUND_ON_LIST": [
"string"
],
"NOT_FOUND_ON_LIST": [
"string"
]
}
},
"overall": "string",
"registrationDetails": [
{
"label": "string",
"value": "string"
}
]
}
Model for GreenIdData
Properties
individualResults IndividualResults
Model for IndividualResults
overall string
registrationDetails [RegistrationDetails]
[Model for RegistrationDetails]
RegistrationDetails
{
"label": "string",
"value": "string"
}
Model for RegistrationDetails
Properties
label string
value string
IndividualResults
{
"background": [
"string"
],
"dvs": [
{
"components": {
"address": "string",
"dob": "string",
"firstName": "string",
"fraud": "string",
"full_name": "string",
"id": "string",
"name": "string",
"surName": "string"
},
"label": "string",
"result": "string"
}
],
"watchlist": {
"ERROR": [
"string"
],
"FOUND_ON_LIST": [
"string"
],
"NOT_FOUND_ON_LIST": [
"string"
]
}
}
Model for IndividualResults
Properties
background [string]
dvs [Dvs]
[Model for Dvs]
watchlist Watchlist
Model for Watchlist
Watchlist
{
"ERROR": [
"string"
],
"FOUND_ON_LIST": [
"string"
],
"NOT_FOUND_ON_LIST": [
"string"
]
}
Model for Watchlist
Properties
ERROR [string]
FOUND_ON_LIST [string]
NOT_FOUND_ON_LIST [string]
Components
{
"address": "string",
"dob": "string",
"firstName": "string",
"fraud": "string",
"full_name": "string",
"id": "string",
"name": "string",
"surName": "string"
}
Model for Components
Properties
address string
dob string
firstName string
fraud string
full_name string
id string
name string
surName string
Dvs
{
"components": {
"address": "string",
"dob": "string",
"firstName": "string",
"fraud": "string",
"full_name": "string",
"id": "string",
"name": "string",
"surName": "string"
},
"label": "string",
"result": "string"
}
Model for Dvs
Properties
components Components
Model for Components
label string
result string
Step
{
"name": "string",
"start_time": "2019-08-24T14:15:22Z",
"total_duration_seconds": 0
}
Model for mobile flow step
Properties
name string
start_time string(date-time)
total_duration_seconds number
Documents
{
"created_at": "2019-08-24T14:15:22Z",
"document_id": "string",
"extracted": {},
"asf_breakdown": {
"detail_check": "string",
"document_integrity": "string",
"image_composition": "string",
"photo_check": "string"
},
"identity_document_type": "string",
"updated_at": "2019-08-24T14:15:22Z",
"ocr": true,
"face_photo": {
"content_type": "string",
"size": 0,
"url": "string"
},
"front_document": {
"content_type": "string",
"size": 0,
"url": "string"
},
"original_front_document": {
"content_type": "string",
"size": 0,
"url": "string"
},
"signature_photo": {
"content_type": "string",
"size": 0,
"url": "string"
}
}
Model for Documents
Properties
created_at string(date-time)
document_id string
extracted Extracted
Model for Extracted
asf_breakdown AsfBreakdown
Model for AsfBreakdown
identity_document_type string
updated_at string(date-time)
ocr boolean
face_photo File
Model for File
front_document File
Model for File
original_front_document File
Model for File
signature_photo File
Model for File
File
{
"content_type": "string",
"size": 0,
"url": "string"
}
Model for File
Properties
content_type string
size integer(int32)
url string
SelfieImage
{
"action": "string",
"base_image": {
"content_type": "string",
"size": 0,
"url": "string"
},
"original_image": {
"content_type": "string",
"size": 0,
"url": "string"
}
}
Model for File
Properties
action string
base_image File
Model for File
original_image File
Model for File
DataProvider
{
"data": {
"fieldDetails": {
"BirthDate": "string",
"BirthDay": "string",
"BirthMonth": "string",
"BirthYear": "string",
"CardType": "string",
"CountryOfIssue": "string",
"ExpiryDay": "string",
"FamilyName": "string",
"GivenName": "string",
"ImmiCardNumber": "string",
"LicenceNumber": "string",
"MiddleName": "string",
"RegistrationState": "string",
"StateOfIssue": "string"
},
"rapidID": "string",
"VerifyDocumentResult": {
"ActivityId": "string",
"attributes": {
"i_type": "string"
},
"OriginatingAgencyCode": "string",
"VerificationRequestNumber": "string",
"VerificationResultCode": "string"
}
},
"message": "string",
"overall": "string",
"version": "string",
"xml": true
}
Model for DataConnect
Properties
data DataConnectData
Model for DataConnectData
message string
overall string
version string
xml boolean
DataConnectData
{
"fieldDetails": {
"BirthDate": "string",
"BirthDay": "string",
"BirthMonth": "string",
"BirthYear": "string",
"CardType": "string",
"CountryOfIssue": "string",
"ExpiryDay": "string",
"FamilyName": "string",
"GivenName": "string",
"ImmiCardNumber": "string",
"LicenceNumber": "string",
"MiddleName": "string",
"RegistrationState": "string",
"StateOfIssue": "string"
},
"rapidID": "string",
"VerifyDocumentResult": {
"ActivityId": "string",
"attributes": {
"i_type": "string"
},
"OriginatingAgencyCode": "string",
"VerificationRequestNumber": "string",
"VerificationResultCode": "string"
}
}
Model for DataConnectData
Properties
fieldDetails FieldDetails
Model for FieldDetails
rapidID string
VerifyDocumentResult VerifyDocumentResult
Model for VerifyDocumentResult
FieldDetails
{
"BirthDate": "string",
"BirthDay": "string",
"BirthMonth": "string",
"BirthYear": "string",
"CardType": "string",
"CountryOfIssue": "string",
"ExpiryDay": "string",
"FamilyName": "string",
"GivenName": "string",
"ImmiCardNumber": "string",
"LicenceNumber": "string",
"MiddleName": "string",
"RegistrationState": "string",
"StateOfIssue": "string"
}
Model for FieldDetails
Properties
BirthDate string
BirthDay string
BirthMonth string
BirthYear string
CardType string
CountryOfIssue string
ExpiryDay string
FamilyName string
GivenName string
ImmiCardNumber string
LicenceNumber string
MiddleName string
RegistrationState string
StateOfIssue string
Attributes
{
"i_type": "string"
}
Model for Attributes
Properties
i_type string
VerifyDocumentResult
{
"ActivityId": "string",
"attributes": {
"i_type": "string"
},
"OriginatingAgencyCode": "string",
"VerificationRequestNumber": "string",
"VerificationResultCode": "string"
}
Model for VerifyDocumentResult
Properties
ActivityId string
attributes Attributes
Model for Attributes
OriginatingAgencyCode string
VerificationRequestNumber string
VerificationResultCode string
Results
{
"data": "string",
"documents": "string",
"facematch": "string",
"liveness": "string",
"overall": "string"
}
Model for Results
Properties
data string
documents string
facematch string
liveness string
overall string
LikenessFeatures
{
"forehead": "string",
"jaw": "string",
"left_brow": "string",
"left_cheek": "string",
"left_eye": "string",
"middle_forehead": "string",
"mouth": "string",
"nose": "string",
"philtrum": "string",
"right_brow": "string",
"right_cheek": "string",
"right_eye": "string"
}
Model for LikenessFeatures
Properties
forehead string
jaw string
left_brow string
left_cheek string
left_eye string
middle_forehead string
mouth string
nose string
philtrum string
right_brow string
right_cheek string
right_eye string
AsfBreakdown
{
"detail_check": "string",
"document_integrity": "string",
"image_composition": "string",
"photo_check": "string"
}
Model for AsfBreakdown
Properties
detail_check string
document_integrity string
image_composition string
photo_check string
Extracted
{}
Model for Extracted
Properties
None
GetTransactionJson
{
"created_at": "2019-08-24T14:15:22Z",
"activated_at": "2019-08-24T14:15:22Z",
"created_by": "string",
"closed_at": "2019-08-24T14:15:22Z",
"name": "string",
"reference": "string",
"invitation_phone_region_code": "string",
"invitation_phone_number": "string",
"current_step": "string",
"data_provider": {
"DATA_CONNECT": {
"data": {
"fieldDetails": {
"BirthDate": "string",
"BirthDay": "string",
"BirthMonth": "string",
"BirthYear": "string",
"CardType": "string",
"CountryOfIssue": "string",
"ExpiryDay": "string",
"FamilyName": "string",
"GivenName": "string",
"ImmiCardNumber": "string",
"LicenceNumber": "string",
"MiddleName": "string",
"RegistrationState": "string",
"StateOfIssue": "string"
},
"rapidID": "string",
"VerifyDocumentResult": {
"ActivityId": "string",
"attributes": {
"i_type": "string"
},
"OriginatingAgencyCode": "string",
"VerificationRequestNumber": "string",
"VerificationResultCode": "string"
}
},
"message": "string",
"overall": "string",
"version": "string",
"xml": true
},
"GREEN_ID": {
"data": {
"fieldDetails": {
"BirthDate": "string",
"BirthDay": "string",
"BirthMonth": "string",
"BirthYear": "string",
"CardType": "string",
"CountryOfIssue": "string",
"ExpiryDay": "string",
"FamilyName": "string",
"GivenName": "string",
"ImmiCardNumber": "string",
"LicenceNumber": "string",
"MiddleName": "string",
"RegistrationState": "string",
"StateOfIssue": "string"
},
"rapidID": "string",
"VerifyDocumentResult": {
"ActivityId": "string",
"attributes": {
"i_type": "string"
},
"OriginatingAgencyCode": "string",
"VerificationRequestNumber": "string",
"VerificationResultCode": "string"
}
},
"message": "string",
"overall": "string",
"version": "string",
"xml": true
},
"ID_MATRIX": {
"data": {
"fieldDetails": {
"BirthDate": "string",
"BirthDay": "string",
"BirthMonth": "string",
"BirthYear": "string",
"CardType": "string",
"CountryOfIssue": "string",
"ExpiryDay": "string",
"FamilyName": "string",
"GivenName": "string",
"ImmiCardNumber": "string",
"LicenceNumber": "string",
"MiddleName": "string",
"RegistrationState": "string",
"StateOfIssue": "string"
},
"rapidID": "string",
"VerifyDocumentResult": {
"ActivityId": "string",
"attributes": {
"i_type": "string"
},
"OriginatingAgencyCode": "string",
"VerificationRequestNumber": "string",
"VerificationResultCode": "string"
}
},
"message": "string",
"overall": "string",
"version": "string",
"xml": true
}
},
"device_info": {
"browser": "string",
"country": "string",
"geolocation": "string",
"ip": "string",
"ip_location": "string",
"isp": "string",
"os": "string",
"vpn": true
},
"computed_statistics": {
"total_duration_seconds": 0,
"total_duration_excl_privacy_seconds": 0,
"steps": [
{
"name": "string",
"start_time": "2019-08-24T14:15:22Z",
"total_duration_seconds": 0
}
]
},
"documents": [
{
"created_at": "2019-08-24T14:15:22Z",
"document_id": "string",
"extracted": {},
"asf_breakdown": {
"detail_check": "string",
"document_integrity": "string",
"image_composition": "string",
"photo_check": "string"
},
"identity_document_type": "string",
"updated_at": "2019-08-24T14:15:22Z",
"ocr": true,
"face_photo": {
"content_type": "string",
"size": 0,
"url": "string"
},
"front_document": {
"content_type": "string",
"size": 0,
"url": "string"
},
"original_front_document": {
"content_type": "string",
"size": 0,
"url": "string"
},
"signature_photo": {
"content_type": "string",
"size": 0,
"url": "string"
}
}
],
"facematch_best_frame": {
"content_type": "string",
"size": 0,
"url": "string"
},
"flow_type": "string",
"likeness_features": {
"forehead": "string",
"jaw": "string",
"left_brow": "string",
"left_cheek": "string",
"left_eye": "string",
"middle_forehead": "string",
"mouth": "string",
"nose": "string",
"philtrum": "string",
"right_brow": "string",
"right_cheek": "string",
"right_eye": "string"
},
"likeness_overall": "string",
"liveness_attempts": [
{
"actions": [
"string"
],
"result": true,
"session_id": "string",
"flow": "string",
"video": {
"content_type": "string",
"size": 0,
"url": "string"
},
"images": [
{
"action": "string",
"base_image": {
"content_type": "string",
"size": 0,
"url": "string"
},
"original_image": {
"content_type": "string",
"size": 0,
"url": "string"
}
}
]
}
],
"results": {
"data": "string",
"documents": "string",
"facematch": "string",
"liveness": "string",
"overall": "string"
},
"spoof_result": "string",
"status": "string",
"records_redacted_at": "string",
"assets_redacted_at": "string",
"face_redacted_at": "string",
"data_redacted_at": "string",
"transaction_id": "string",
"user_details": {
"address": {
"city": "string",
"country": "string",
"full_address": "string",
"post_code": "string",
"state": "string",
"street_address": "string",
"street_address_2": "string",
"suburb": "string"
},
"date_of_birth": "2019-08-24",
"date_of_expiry": "2019-08-24",
"first_name": "string",
"last_name": "string",
"licence_number": "string",
"id_number": "string",
"middle_name": "string",
"passport_number": "string",
"document_number": "string"
},
"pdf_report_number": 0
}
Model for Get Transaction as JSON
Properties
created_at string(date-time)
UTC timestamp when transaction was created
activated_at string(date-time)
UTC timestamp when transaction was opened by user
created_by string
Username who creates this transaction or API when created by API.
closed_at string(date-time)
UTC timestamp when transaction was closed
name string
UTC Timestamp of records redaction or NULL if not redacted yet
reference string
Optional customer parameter for user experience
invitation_phone_region_code string
Invitation phone number region code
invitation_phone_number string
Invitation phone number
current_step string
Current step in which mobile flow is at
data_provider DataProviderData
Model for DataProvider
device_info DeviceInfo
Model for DeviceInfo
computed_statistics object
Statistics of the mobile flow process.
» total_duration_seconds number
» total_duration_excl_privacy_seconds number
» steps [Step]
[Model for mobile flow step]
documents [Documents]
[Model for Documents]
facematch_best_frame File
Model for File
flow_type string
Flow type indicator.
likeness_features LikenessFeatures
Model for LikenessFeatures
likeness_overall string
liveness_attempts [LivenessAttempts]
[Model for LivenessAttempts]
results Results
Model for Results
spoof_result string
Spoof result indicator.
status string
Current transaction status.
records_redacted_at string
UTC Timestamp of records redaction or NULL if not redacted yet
assets_redacted_at string
UTC Timestamp of assets redaction or NULL if not redacted yet
face_redacted_at string
UTC Timestamp of face redaction or NULL if not redacted yet
data_redacted_at string
UTC Timestamp of data provider redaction or NULL if not redacted yet
transaction_id string
Transaction unique identifier.
user_details UserDetails
Model for UserDetails
pdf_report_number number
PDF report identifier (The same as transaction id)
GetTransactionPDF
{
"created_at": "2019-08-24T14:15:22Z",
"flow_type": "string",
"status": "string",
"transaction_id": "string"
}
Model for Get Transaction as JSON
Properties
created_at string(date-time)
flow_type string
status string
transaction_id string
RedactTransactionResponseJson
{
"status": "string",
"transaction_id": "string",
"redacted_at": "2019-08-24T14:15:22Z",
"data_to_redact": [
"string"
]
}
Model for Get Transaction as JSON
Properties
status string
transaction_id string
redacted_at string(date-time)
data_to_redact [string]
BatchTransactionRedactionResponseJson
{
"status": "string",
"transaction_ids": [
"string"
],
"redacted_at": "2019-08-24T14:15:22Z",
"redacted_data": [
"string"
]
}
Model for Get Transaction as JSON
Properties
status string
transaction_ids [string]
redacted_at string(date-time)
redacted_data [string]
LivenessAttempts
{
"actions": [
"string"
],
"result": true,
"session_id": "string",
"flow": "string",
"video": {
"content_type": "string",
"size": 0,
"url": "string"
},
"images": [
{
"action": "string",
"base_image": {
"content_type": "string",
"size": 0,
"url": "string"
},
"original_image": {
"content_type": "string",
"size": 0,
"url": "string"
}
}
]
}
Model for LivenessAttempts
Properties
actions [string]
result boolean
session_id string
Available for liveness flow only
flow string
"selfie" for alternative flow. Not present for liveness flow.
video File
Liveness video files. Available for liveness flow only.
images [SelfieImage]
Selfie Image files. Available for alternative flow only.
UserDetails
{
"address": {
"city": "string",
"country": "string",
"full_address": "string",
"post_code": "string",
"state": "string",
"street_address": "string",
"street_address_2": "string",
"suburb": "string"
},
"date_of_birth": "2019-08-24",
"date_of_expiry": "2019-08-24",
"first_name": "string",
"last_name": "string",
"licence_number": "string",
"id_number": "string",
"middle_name": "string",
"passport_number": "string",
"document_number": "string"
}
Model for UserDetails
Properties
address Address
Model for Address
date_of_birth string(date)
date_of_expiry string(date)
first_name string
last_name string
licence_number string
Deprecated now. Recommended to use id_number instead
id_number string
middle_name string
passport_number string
Deprecated now. Recommended to use document_number instead
document_number string
Address
{
"city": "string",
"country": "string",
"full_address": "string",
"post_code": "string",
"state": "string",
"street_address": "string",
"street_address_2": "string",
"suburb": "string"
}
Model for Address
Properties
city string
country string
full_address string
post_code string
state string
street_address string
street_address_2 string
suburb string
DeviceInfo
{
"browser": "string",
"country": "string",
"geolocation": "string",
"ip": "string",
"ip_location": "string",
"isp": "string",
"os": "string",
"vpn": true
}
Model for DeviceInfo
Properties
browser string
country string
geolocation string
ip string
ip_location string
isp string
os string
vpn boolean
CreateTransactionResponse
{
"transaction_id": "string",
"url": "string"
}
Model for Create
Properties
transaction_id string
url string
BadRequestResponse
{
"message": "Bad Request."
}
Properties
message string
UnauthenticatedResponse
{
"message": "Unauthenticated."
}
Properties
message string
ConflictResponse
{
"message": "Transaction not ready for redaction."
}
Properties
message string
NotFoundResponse
{
"message": "The token was not found."
}
Properties
message string
InternalServerErrorResponse
{
"message": "Internal Server Error."
}
Properties
message string
Frequently Asked Questions
How do we integrate IDKIT into our Mobile APP?
When implementing in to a web app, it is a simple redirect to the URL and if needed, you specify a redirect URL for us to redirect the customer back to the web app. For integrating within a mobile app, there are a few options as per the below:
- Open Mobile Browser: You are able to redirect the customer outside of the mobile app to their mobile browser with the OCR Labs transaction URL. On the last screen we can change the content to say something along the lines of “Your ID verification is successful. Please close this tab and return to the App”. Because you will know the transaction is completed, when they return to the app the verification can be handled according to the results.
- Open Mobile Browser and Redirect via Deeplink back to the app: When using storeTransaction API to create a transaction/URL, you are able to specify a link to redirect the customer to afterwards. You can specify a deep link as the redirect URL to bring the customer back into your mobile app. So the customer experience would be that your mobile app will open the OCR Labs transaction URL in the mobile browser (external to your app) and once completing, the customer will be redirected via the deep link back into the app where you can handle them accordingly.
- Web View in App: OCR Labs camera controls are able to work in web view for devices/OS that allow it. For iOS this is currently iOS13+ and Android is more open. So you could just open the URL in web view. Please note you need to use: For inside an iOS app- the in-app browser we would be expecting you to use is: “SFSafariController”. For Android, you can use the normal WebView as it should be supported from Android SDK.
Do you have any libraries or SDK's available?**
We don't currently provide SDK's or libraries.
Are there any authentication specs to abide by when using webhooks?**
It is not mandatory to add authentication to your webhooks. But if you want to, in the POST Transaction API you can add the authorisation like this: auth_header_name
: "Authorization" and the access token as auth_header_value
: "Basic <TOKEN HERE>
" l
Which output details do I run DVS checks against?
If you are opting to connect to a DVS (Data Verification Service) outside of the IDKIT platform, you need to make sure you are running the DVS check against user_details
not the extracted
data from the JSON output.
When does an incomplete transaction expire?
Once a transaction is created it will expire after 48 hours by default. If you require the expiry time to to be longer than that contact us via Live Chat or submit a support ticket via the IDKit portal.. We can adjust it up to a maximum of 7 days.
What mobile devices and browsers do the IDKIT mobile flows support?
Currently the ID Verification Flows work on Safari for Apple iPhones and Chrome for Android phones. If the user has set their default mobile browser as something other than the device standard, when they open the ID Verification Flow they will be prompted to copy and paste the link into devices standard browser.
Changelog
- 1.0.0 - It's alive!