Table of Contents
About webhooksWebhooks enable Ondato to send real-time notifications about changes in your resources. These notifications are sent as POST requests to your server immediately after the event occurs, and the request body includes information about the resource.
SecurityOndato uses HTTPS to transmit these notifications in the form of a JSON payload.
OrderingOndato delivers events asynchronously. Therefore, you might receive them out of order and need to handle them accordingly.
Webhook IP addressesAll webhook requests will originate from the following IP addresses:
20.31.10.47
20.31.227.231
20.76.229.117
20.76.229.248
213.226.187.101
Please ensure that you whitelist the above IPs to receive webhook notifications.
Retry logicUpon sending a webhook notification, we are waiting for a success response for 30 seconds. Otherwise, if your endpoint does not respond, the webhook is queued for retry.
We use an exponential backoff retry policy for event delivery. The attempt to resend the notifications is according to the following schedule on a best effort basis:
If the endpoint responds within 3 minutes, we will attempt to remove the event from the retry queue on a best-effort basis. However, duplicates may still be received.
A small degree of randomization is incorporated into all retry steps and may selectively skip certain retries if an endpoint is offline for an extended period or seems overloaded.
The maximum number of retry attempts is 30.
When Event Grid is unable to deliver an event within a specific time frame or after attempting to deliver the event a certain number of times, the event is dropped.
How to start receiving webhooks?To begin receiving event notifications in your application, you need to follow these steps:
Identify the events you want to monitor.
Create a webhook endpoint as an HTTP
endpoint on your local server.
Handle requests from Ondato.
Deploy your webhook endpoint to make it publicly accessible via an HTTPS
URL.
Contact the Ondato support team to register the publicly accessible HTTPS
URL and provide a list of events you would like to monitor.
Please note that we also support multiple URLs for sending webhooks.
Requirements for webhook endpointOndato needs to know where to send information about events. To receive webhooks, you must create a webhook endpoint and provide us with a publicly accessible HTTPS
URL that meets the following criteria:
URL format: https://<your-website-name>/<your-webhook-endpoint>
URL must support POST HTTP method.
URL must be secure (HTTPS protocol).
URL must support one of the available authentication flows:
basic
| username, password
oAuth2
| clientID, clientSecret, tokenUrl
HMAC
| client-side verification
Handling webhook events with HMAC AuthenticationTo begin receiving webhook events with HMAC Authentication, you need to first obtain your secret from Ondato.
HMAC webhook verification steps:
In a web request, you would receive the Ondato-Signature header.
Parse the value t
from the header - timestamp
Get the received body/json string - json
The request body must be the raw body string, not a parsed or stringified version, as it may contain escaped characters (e.g., \u0027 vs. ').
Join to a single string $"{timestamp}.{json}"
ย - message
Joining to a single string may vary depending on your programming environment.
Using secret , compute HMACSHA256 hash (lower case) for message - computedHash
Parse the value s
from the header - signature
Compare the computedHash with the signature - they should match.
Events sent by Ondato will have a body in the following structure:
Id
Webhook ID
ApplicationId
Internal ID to identify you in the Ondato system.
CreatedUtc
Date and time when the webhook was generated.
DeliveredUtc
Date and time when the webhook was delivered.
This property is only visible via Webhooks API and is not sent with the body of the Webhook itself.
IsDelivered
Status of the webhook if it was delivered or not. Possible values are true/ false.
This property is only visible via Webhooks API and is not sent with the body of the Webhook itself.
Payload
Depending on the webhook type property, the payload always returns the same information you could obtain from the get endpoint of the resource.
For example, the webhook type is KycIdentification.<event>
, and then the payload will contain information that you can retrieve from the KYC ID endpoint get /identifications/{id}
.
Information about each event payload is here .
Type
Type of the webhook. It consists of two parts (the first part identifies the service and the second one, the event) :
Webhook typesYou have the option to configure various webhook types that can trigger a message to registered webhooks.
Identity Verification (IDV) webhooks
IdentityVerification.StatusChanged
For this webhook type, the payload body depends on the IDV API โ get /v1/identity-verifications/{id}
contract.
You can call IDV API by using "id" โ get /v1/identity-verifications/{id}
to retrieve the information about the user session.
Reference from the Webhook payload
{
"payload": {
"id": "03be8be3-fbd5-4496-b552-bcd3e4918116"
}
}
}
Webhook example
{
"id": "7a21b0e2-580e-4d2d-8578-00fc32a753ad",
"applicationId": "44575362-e08e-4f75-b399-00d9d8916552",
"createdUtc": "2023-01-31T07:25:55.6073016Z",
"payload": {
"id": "03be8be3-fbd5-4496-b552-bcd3e4918116",
"status": "Completed",
"applicationId": "44575362-e08e-4f75-b399-00d9d8916552",
"createdUtc": "2023-01-31T07:22:11.313Z",
"modifiedUtc": "2023-01-31T07:25:55.595Z",
"setup": {
"id": "5f16990b-d00a-4ff2-8102-e7b8d5820c28",
"versionId": "60e8a778-1885-4162-bd58-d8b07bddba2e"
},
"step": {
"kycIdentification": {
"id": "6df0d302-f0bb-441a-804c-5b114b476fc0"
},
"documentSignatures": [],
"forms": [],
"consent": {
"isConsented": true,
"consentedUtc": "2023-01-31T07:22:25.08Z"
}
}
},
"type": "IdentityVerification.StatusChanged"
}
IdentityVerification.Consented
For this webhook type, the payload body depends on the IDV API โ get /v1/identity-verifications/{id}
contract.
In the webhook payload, you receive the "id" as a reference to the Consents API .
You can call Consents API by using โidโ โ get /v1/consents/{id}
to retrieve the information about the consent session.
Reference from the Webhook payload
{
"payload": {
"id": "6c14b207-f73f-4a85-9e38-bbfb5ca62858"
"step": {
"consent": {
}
}
}
}
Webhook example
{
"id": "e4df532d-a448-43b2-a875-031475695cf2",
"applicationId": "a2af2fd1-60aa-4549-ab2e-e6294385af62",
"createdUtc": "2023-02-21T07:47:06.196653Z",
"payload": {
"id": "6c14b207-f73f-4a85-9e38-bbfb5ca62858",
"status": "InProgress",
"applicationId": "a2af2fd1-60aa-4549-ab2e-e6294385af62",
"createdUtc": "2023-02-21T07:46:57.862Z",
"modifiedUtc": "2023-02-21T07:47:06.14Z",
"setup": {
"id": "27820208-e4d0-4841-bacf-93e6e709637b",
"versionId": "7cd83758-bc5f-4aa0-97cc-d7f3fa177dca"
},
"step": {
"documentSignatures": [],
"forms": [],
"consent": {
"isConsented": true,
"consentedUtc": "2023-02-21T07:47:06.14Z"
}
}
},
"type": "IdentityVerification.Consented"
}
Following fields can be ignored (are depreciated):
"isConsented"
"consentedUtc"
KYC Identification webhooks
KycIdentification.Created
For this webhook type, the payload body depends on the KYC ID API โ get /v1/identifications/{id}
contract.
You can call KYC ID API by using โidโ โ get /v1/identifications/{id}
to retrieve the information about the user session.
Reference from the Webhook payload
{
"payload": {
"id": "7175fc81-8ac1-418a-b2e4-89d0e8894442"
}
}
Webhook example
{
"id": "e4e148de-8fd1-4e64-9173-00374ed139d2",
"applicationId": "8c7218bd-9394-4603-b8ba-1ccea0b5e8d7",
"createdUtc": "2023-01-10T12:16:53.4746293Z",
"payload": {
"id": "7175fc81-8ac1-418a-b2e4-89d0e8894442",
"applicationId": "8c7218bd-9394-4603-b8ba-1ccea0b5e8d7",
"createdUtc": "2023-01-10T12:16:53.319Z",
"setup": {
"id": "12d8478b-0174-49e9-b3e6-45f9063ba0d2",
"versionId": "03a5ec17-18af-4e88-8a35-1f8ebdec2d3a"
},
"identityVerificationId": "ef9379b3-652d-44ee-b4c9-8da7a682ce40",
"status": "Awaiting",
"statusReason": "Unfinished",
"isCrossChecked": false
},
"type": "KycIdentification.Created"
}
KycIdentification.Processed
For this webhook type, the payload body depends on the KYC ID API โ get /v1/identifications/{id}
contract.
You can call KYC ID API by using โidโ โ get /v1/identifications/{id}
to retrieve the information about the user session.
Reference from the Webhook payload
{
"payload": {
"id": "c9fc134b-0386-4e4f-940e-f1349b9d3d64"
}
}
Webhook example
{
"id": "25aa5e86-dd51-4a23-870d-0015e7d98227",
"applicationId": "8921c61b-a5c0-4f1f-9d44-5a83009a29b1",
"createdUtc": "2023-02-20T13:24:32.4234105Z",
"payload": {
"id": "c9fc134b-0386-4e4f-940e-f1349b9d3d64",
"applicationId": "8921c61b-a5c0-4f1f-9d44-5a83009a29b1",
"createdUtc": "2023-02-20T13:24:23.938Z",
"setup": {
"id": "d4915b8c-f4a7-4e94-a2c3-16c68a1aee78",
"versionId": "f3135842-d53c-4525-8118-be63a12641ba"
},
"identityVerificationId": "7b4032ff-3a4a-4846-abf3-b1ffa9afbe26",
"status": "Awaiting",
"statusReason": "Processing",
"isCrossChecked": false,
"document": {
"type": "IdCard",
"mrzVerified": false,
"files": [
{
"createdUtc": "2023-02-20T13:24:26Z",
"fileId": "1d712a49-bcb4-47eb-ba33-0652dcebad2f",
"fileName": "c9fc134b03864e4f940ef1349b9d3d64_front_132425267.jpeg",
"fileExtension": "jpeg",
"part": "Front",
"fileType": "DocumentPhoto"
}
],
"ocrValidations": [
{
"key": "Address",
"isValid": false
},
{
"key": "Category",
"isValid": true
},
{
"key": "DateOfBirth",
"isValid": false
},
{
"key": "DateOfExpiration",
"isValid": false
},
{
"key": "DateOfIssue",
"isValid": false
},
{
"key": "DocumentNumber",
"isValid": false
},
{
"key": "FirstName",
"isValid": false
},
{
"key": "LastName",
"isValid": false
},
{
"key": "Gender",
"isValid": false
},
{
"key": "Nationality",
"isValid": false
},
{
"key": "PersonalCode",
"isValid": false
}
]
},
"rules": [
{
"name": "DocumentNotExpired",
"status": "Fail",
"reason": "DocumentExpirationDateNotFound"
},
{
"name": "DocumentHasFace",
"status": "Fail",
"reason": "DocumentHasNoFace"
},
{
"name": "DocumentHasBothSides",
"status": "Fail",
"reason": "DocumentPartTypeNotRecognized"
},
{
"name": "DocumentTypeNotProhibited",
"status": "Success"
},
{
"name": "NotUnder18",
"status": "Fail",
"reason": "BirthDateNotFound"
},
{
"name": "NotProhibitedByCountryOrState",
"status": "Fail",
"reason": "DocumentCountryOrStateUnknown"
}
],
"registries": [],
"fraudChecks": [],
"completedUtc": "2023-02-20T13:24:32Z"
},
"type": "KycIdentification.Processed"
}
KycIdentification.Approved
For this webhook type, the payload body depends on the KYC ID API โ get /v1/identifications/{id}
contract.
You can call KYC ID API by using โidโ โ get /v1/identifications/{id}
to retrieve the information about the user session.
Reference from the Webhook payload
{
"payload": {
"id": "4c0000ac-f116-4dec-93ba-493f3809ca9b"
}
}
Webhook example
{
"id": "00b6c3c8-8219-4206-a4ab-04554c97fa1a",
"applicationId": "00cabb1f-4d7c-41d9-9a97-55482d920160",
"createdUtc": "2023-01-16T23:40:52.4886646Z",
"payload": {
"id": "4c0000ac-f116-4dec-93ba-493f3809ca9b",
"applicationId": "00cabb1f-4d7c-41d9-9a97-55482d920160",
"createdUtc": "2023-01-16T23:40:42.77Z",
"setup": {
"id": "04b803f3-6c62-4560-bf5f-9ef75397ce1d",
"versionId": "fde54820-00ec-4da0-87fa-c70f81729b0e"
},
"identityVerificationId": "d1a76177-00d5-494e-bbba-557527501a0e",
"status": "Approved",
"statusReason": "AutomaticallyIdentified",
"isCrossChecked": false,
"document": {
"fullName": "NAME MIDDLE SURNAME",
"firstName": "NAME MIDDLE",
"lastName": "SURNAME",
"documentNumber": "1740931767",
"dateOfIssue": "2018-12-03",
"dateOfExpiration": "2023-12-01",
"dateOfBirth": "1985-02-27",
"personalCode": "000.000.000-17",
"countryIso3": "BRA",
"type": "DriverLicense",
"mrzVerified": true,
"category": "B",
"files": [
{
"createdUtc": "2023-01-16T23:40:43Z",
"fileId": "e2ec5e00-0000-40f3-9e1c-c7a435d1fe2f",
"fileName": "4c4811acf1164dec93ba493f3809ca9b_front_234040000.jpeg",
"fileExtension": "jpeg",
"part": "Front",
"fileType": "DocumentPhoto"
},
{
"createdUtc": "2023-01-16T23:40:43Z",
"fileId": "717e98b1-00a-0000-ab51-655b8cf0bb2d",
"fileName": "4c4811acf1164dec93ba493f3809ca9b_back_234043541.jpeg",
"fileExtension": "jpeg",
"part": "Back",
"fileType": "DocumentPhoto"
}
],
"ocrValidations": [
{
"key": "Address",
"isValid": true
},
{
"key": "Category",
"isValid": true
},
{
"key": "DateOfBirth",
"isValid": true
},
{
"key": "DateOfExpiration",
"isValid": true
},
{
"key": "DateOfIssue",
"isValid": true
},
{
"key": "DocumentNumber",
"isValid": true
},
{
"key": "FirstName",
"isValid": true
},
{
"key": "LastName",
"isValid": true
},
{
"key": "Gender",
"isValid": true
},
{
"key": "Nationality",
"isValid": true
},
{
"key": "PersonalCode",
"isValid": true
}
]
},
"rules": [
{
"name": "DocumentHasBothSides",
"status": "Success"
},
{
"name": "DocumentNotExpired",
"status": "Success"
},
{
"name": "DocumentHasFace",
"status": "Success"
},
{
"name": "DocumentTypeNotProhibited",
"status": "Success"
},
{
"name": "NotUnder18",
"status": "Success"
}
],
"registries": [],
"fraudChecks": [
{
"name": "DocumentManipulation",
"status": "Success"
}
],
"completedUtc": "2023-01-16T23:40:51Z"
},
"type": "KycIdentification.Approved"
}
KycIdentification.Updated
For this webhook type, the payload body depends on the KYC ID API โ get /v1/identifications/{id}
contract.
You can call KYC ID API by using โidโ โ get /v1/identifications/{id}
to retrieve the information about the user session.
Reference from the Webhook payload
{
"payload": {
"id": "9655ae23-7be6-4df4-98e4-df43a58f9620"
}
}
Webhook example
{
"id": "a59c2055-7655-43bb-923d-0005928301d7",
"applicationId": "8921c61b-a5c0-4f1f-9d44-5a83009a29b1",
"createdUtc": "2023-02-16T14:46:33.1467591Z",
"payload": {
"id": "9655ae23-7be6-4df4-98e4-df43a58f9620",
"applicationId": "8921c61b-a5c0-4f1f-9d44-5a83009a29b1",
"createdUtc": "2023-02-16T14:43:40.503Z",
"setup": {
"id": "d4915b8c-f4a7-4e94-a2c3-16c68a1aee78",
"versionId": "f3135842-d53c-4525-8118-be63a12641ba"
},
"identityVerificationId": "67c8dad4-b8ea-40aa-bced-7cdfb1e3199f",
"status": "Rejected",
"statusReason": "UnrelatedPhotoSubmit",
"isCrossChecked": true,
"document": {
"type": "DriverLicense",
"mrzVerified": true,
"files": [
{
"createdUtc": "2023-02-16T14:43:42Z",
"fileId": "25afc22e-9f87-4466-afb4-e1609141798a",
"fileName": "9655ae237be64df498e4df43a58f9620_front_144342156.png",
"fileExtension": "png",
"part": "Front",
"fileType": "DocumentPhoto"
}
],
"ocrValidations": [
{
"key": "Address",
"isValid": false
},
{
"key": "Category",
"isValid": false
},
{
"key": "DateOfBirth",
"isValid": false
},
{
"key": "DateOfExpiration",
"isValid": false
},
{
"key": "DateOfIssue",
"isValid": false
},
{
"key": "DocumentNumber",
"isValid": false
},
{
"key": "FirstName",
"isValid": false
},
{
"key": "LastName",
"isValid": false
},
{
"key": "Gender",
"isValid": false
},
{
"key": "Nationality",
"isValid": true
},
{
"key": "PersonalCode",
"isValid": false
}
]
},
"rules": [
{
"name": "DocumentNotExpired",
"status": "Fail",
"reason": "DocumentExpirationDateNotFound"
},
{
"name": "DocumentHasFace",
"status": "Fail",
"reason": "DocumentHasNoFace"
},
{
"name": "DocumentHasBothSides",
"status": "Fail",
"reason": "DocumentPartTypeNotRecognized"
},
{
"name": "DocumentTypeNotProhibited",
"status": "Success"
},
{
"name": "NotUnder18",
"status": "Fail",
"reason": "BirthDateNotFound"
},
{
"name": "NotProhibitedByCountryOrState",
"status": "Fail",
"reason": "DocumentCountryOrStateUnknown"
}
],
"registries": [],
"fraudChecks": [],
"completedUtc": "2023-02-16T14:43:47Z"
},
"type": "KycIdentification.Updated"
}
KycIdentification.Rejected
For this webhook type, the payload body depends on the KYC ID API โ get /v1/identifications/{id}
contract.
You can call KYC ID API by using โidโ โ get /v1/identifications/{id}
to retrieve the information about the user session.
Reference from the Webhook payload
{
"payload": {
"id": "832f67ab-0f6f-4a57-bfc2-83abb543bbd0"
}
}
Webhook example
{
"id": "15df07d7-4b54-4674-9dd5-00354e6cd1a9",
"applicationId": "8921c61b-a5c0-4f1f-9d44-5a83009a29b1",
"createdUtc": "2023-02-15T15:10:07.6788678Z",
"payload": {
"id": "832f67ab-0f6f-4a57-bfc2-83abb543bbd0",
"applicationId": "8921c61b-a5c0-4f1f-9d44-5a83009a29b1",
"createdUtc": "2023-02-15T15:09:57.944Z",
"setup": {
"id": "d4915b8c-f4a7-4e94-a2c3-16c68a1aee78",
"versionId": "f3135842-d53c-4525-8118-be63a12641ba"
},
"identityVerificationId": "0458600b-f373-404d-8603-9fcc5c8d5d23",
"status": "Rejected",
"statusReason": "UnrelatedPhotoSubmit",
"isCrossChecked": true,
"document": {
"type": "Passport",
"mrzVerified": true,
"files": [
{
"createdUtc": "2023-02-15T15:09:59Z",
"fileId": "df72c1a0-cb92-43d5-9c32-f15ead7a6c83",
"fileName": "832f67ab0f6f4a57bfc283abb543bbd0_front_150958998.png",
"fileExtension": "png",
"part": "FrontCover",
"fileType": "DocumentPhoto"
}
],
"ocrValidations": [
{
"key": "Address",
"isValid": true
},
{
"key": "Category",
"isValid": true
},
{
"key": "DateOfBirth",
"isValid": false
},
{
"key": "DateOfExpiration",
"isValid": false
},
{
"key": "DateOfIssue",
"isValid": false
},
{
"key": "DocumentNumber",
"isValid": false
},
{
"key": "FirstName",
"isValid": false
},
{
"key": "LastName",
"isValid": false
},
{
"key": "Gender",
"isValid": false
},
{
"key": "Nationality",
"isValid": false
},
{
"key": "PersonalCode",
"isValid": false
}
]
},
"rules": [
{
"name": "DocumentNotExpired",
"status": "Fail",
"reason": "DocumentExpirationDateNotFound"
},
{
"name": "DocumentHasFace",
"status": "Fail",
"reason": "DocumentHasNoFace"
},
{
"name": "DocumentHasBothSides",
"status": "Fail",
"reason": "DocumentPartTypeNotRecognized"
},
{
"name": "DocumentTypeNotProhibited",
"status": "Success"
},
{
"name": "NotUnder18",
"status": "Fail",
"reason": "BirthDateNotFound"
},
{
"name": "NotProhibitedByCountryOrState",
"status": "Fail",
"reason": "DocumentCountryOrStateUnknown"
}
],
"registries": [],
"fraudChecks": [],
"completedUtc": "2023-02-15T15:10:02Z"
},
"type": "KycIdentification.Rejected"
}
KYB identification webhooks
KybIdentification.Created
For this webhook type, the payload body depends on the KYB ID API โ get /v1/identifications/{id}
contract.
You can call KYB ID API by using โidโ โ get /v1/identifications/{id}
to retrieve the information about the user session.
Reference from the Webhook payload
{
"payload": {
"id": "d91b5007-4af7-4980-8c48-b9658826673e"
}
}
Webhook example
{
"id": "019346d0-770c-47a5-b693-049a79d19c51",
"applicationId": "0068a566-b5d2-46f1-b5c3-22fdf895953a",
"createdUtc": "2023-01-02T14:08:01.4572198Z",
"payload": {
"id": "d91b5007-4af7-4980-8c48-b9658826673e",
"createdUtc": "2023-01-02T14:08:01.02",
"setup": [],
"applicationId": "0068a566-b5d2-46f1-b5c3-22fdf895953a",
"legalEntity": {
"name": "Test company SmartId 2",
"code": "401038386"
},
"verificationFormId": "a632cc2d-2717-4183-bee0-1efe1c868904",
"identityVerificationId": "00000000-0000-0000-0000-000000000000",
"representatives": [
"37cab687-a53c-4228-a1ad-d3cac0bcaac7",
"28e92146-d3e3-443c-8d4e-50471481cbfe"
],
"status": "Pending",
"lastStatusChangedUtc": "2023-01-02T14:08:01.02"
},
"type": "KybIdentification.Created"
}
KybIdentification.Approved
For this webhook type, the payload body depends on the KYB ID API โ get /v1/identifications/{id}
contract.
You can call KYB ID API by using โidโ โ get /v1/identifications/{id}
to retrieve the information about the user session.
Reference from the Webhook payload
{
"payload": {
"id": "dc81eb25-8ccb-4ea9-9dde-c8b46e2f12d1"
}
}
Webhook example
{
"id": "54ec3990-4bfb-40d2-84c1-080ba15be61f",
"applicationId": "5d2567dc-1e4e-44bc-a651-7f330a80bd23",
"createdUtc": "2022-12-14T16:38:01.6026518Z",
"payload": {
"id": "dc81eb25-8ccb-4ea9-9dde-c8b46e2f12d1",
"createdUtc": "2022-12-13T15:55:45.983",
"setup": {
"id": null,
"versionId": null
},
"applicationId": "5d2567dc-1e4e-44bc-a651-7f330a80bd23",
"legalEntity": {
"name": "\u041e\u041e\u041e\u041e\u041e\u041e\u041e",
"code": "\u041e\u041e\u041e\u041e\u041e\u041e\u041e"
},
"verificationFormId": null,
"identityVerificationId": "a586a568-b464-420f-a7b3-368f2f208b33",
"representatives": [
"aea305f5-6123-4f1f-a266-535955e2584d",
"e118640c-7e5d-471d-83e7-8cfc43504a03"
],
"status": "Approved",
"statusReason": null,
"statusDescription": null,
"lastStatusChangedUtc": "2022-12-14T16:38:01.53"
},
"type": "KybIdentification.Approved"
}
KybIdentification.Rejected
For this webhook type, the payload body depends on the KYB ID API โ get /v1/identifications/{id}
contract.
You can call KYB ID API by using โidโ โ get /v1/identifications/{id}
to retrieve the information about the user session.
Reference from the Webhook payload
{
"payload": {
"id": "dc81eb25-8ccb-4ea9-9dde-c8b46e2f12d1"
}
}
Webhook example
{
"id": "cbc8f716-425e-4519-990a-584023f9c880",
"applicationId": "5d2567dc-1e4e-44bc-a651-7f330a80bd23",
"createdUtc": "2022-12-14T16:23:50.0805263Z",
"payload": {
"id": "dc81eb25-8ccb-4ea9-9dde-c8b46e2f12d1",
"createdUtc": "2022-12-13T15:55:45.983",
"setup": {
"id": null,
"versionId": null
},
"applicationId": "5d2567dc-1e4e-44bc-a651-7f330a80bd23",
"legalEntity": {
"name": "\u041e\u041e\u041e\u041e\u041e\u041e\u041e",
"code": "\u041e\u041e\u041e\u041e\u041e\u041e\u041e"
},
"verificationFormId": null,
"identityVerificationId": "a586a568-b464-420f-a7b3-368f2f208b33",
"representatives": [
"aea305f5-6123-4f1f-a266-535955e2584d",
"e118640c-7e5d-471d-83e7-8cfc43504a03"
],
"status": "Rejected",
"statusReason": "DataNotMatch",
"statusDescription": null,
"lastStatusChangedUtc": "2022-12-14T16:23:50.033"
},
"type": "KybIdentification.Rejected"
}
KybIdentification.Document.Created
For this webhook type, the payload body depends on the KYB ID API โ get /v1/documents/{id}
contract.
You can call KYB ID API by using โidโ โ get /v1/documents/{id}
to retrieve the information about the user session.
Reference from the Webhook payload
{
"payload": {
"id": "701ded06-f832-45f3-9a66-4378d0ba55ed"
}
}
Webhook example
{
"id": "696ec22d-304a-412a-b719-6eeca663e5fe",
"applicationId": "5d2567dc-1e4e-44bc-a651-7f330a80bd23",
"createdUtc": "2022-12-12T10:12:59.4204Z",
"payload": {
"id": "701ded06-f832-45f3-9a66-4378d0ba55ed",
"applicationId": "5d2567dc-1e4e-44bc-a651-7f330a80bd23",
"identificationId": "eccae495-46fb-4f2c-9eba-863f5f407fb0",
"createdUtc": "2022-12-12T10:12:59.4121043Z",
"lastActionUtc": "2022-12-12T10:12:59.4121045Z",
"lastStatusChangedUtc": null,
"fileId": null,
"status": "NeedReview",
"purpose": "ExternalRegistry",
"title": "SkyNet.pdf"
},
"type": "KybIdentification.Document.Created"
}
KybIdentification.Document.Uploaded
For this webhook type, the payload body depends on the KYB ID API โ get /v1/documents/{id}
contract.
You can call KYB ID API by using โidโ โ get /v1/documents/{id}
to retrieve the information about the user session.
Reference from the Webhook payload
{
"payload": {
"id": "dd8e3b9e-bece-4b79-8c0d-e74412c19067"
}
}
Webhook example
{
"id": "5d9a674a-1d28-45f1-a7fd-cfe920bbdf21",
"applicationId": "5d2567dc-1e4e-44bc-a651-7f330a80bd23",
"createdUtc": "2022-12-12T12:59:33.146706Z",
"payload": {
"id": "dd8e3b9e-bece-4b79-8c0d-e74412c19067",
"applicationId": "5d2567dc-1e4e-44bc-a651-7f330a80bd23",
"identificationId": "85edabe9-3902-483a-9533-f5d48a842d42",
"createdUtc": "2022-12-12T12:59:32.303",
"lastActionUtc": "2022-12-12T12:59:33.123",
"lastStatusChangedUtc": null,
"fileId": "kybid-29b125e08eb8410ea9234de3371f665a",
"status": "NeedReview",
"purpose": "ExternalRegistry",
"title": "SkyNet.pdf"
},
"type": "KybIdentification.Document.Uploaded"
}
KybIdentification.Document.Updated
For this webhook type, the payload body depends on the KYB ID API โ get /v1/documents/{id}
contract.
You can call KYB ID API by using โidโ โ get /v1/documents/{id}
to retrieve the information about the user session.
Reference from the Webhook payload
{
"payload": {
"id": "ef0dbfa6-5533-4463-a4a8-493aeff7d942"
}
}
Webhook example
{
"id": "21e2e190-bc8b-43ef-914f-3c8ab630d2fa",
"applicationId": "5d2567dc-1e4e-44bc-a651-7f330a80bd23",
"createdUtc": "2022-12-13T09:46:15.6314497Z",
"payload": {
"id": "ef0dbfa6-5533-4463-a4a8-493aeff7d942",
"applicationId": "5d2567dc-1e4e-44bc-a651-7f330a80bd23",
"identificationId": "53953073-3acb-4062-bb34-e2830b01d86d",
"createdUtc": "2022-12-11T09:49:49.35",
"lastActionUtc": "2022-12-13T09:46:15.58",
"lastStatusChangedUtc": "2022-12-13T09:46:15.577",
"fileId": "kybid-f1126a9b929d4bd2ba1249058140eb52",
"status": "Invalidated",
"purpose": "ExternalRegistry",
"title": "backend (19).txt"
},
"type": "KybIdentification.Document.Updated"
}
KybIdentification.Document.Deleted
For this webhook type, the payload body depends on the KYB ID API โ get /v1/documents/{id}
contract.
You can call KYB ID API by using โidโ โ get /v1/documents/{id}
to retrieve the information about the user session.
Reference from the Webhook payload
{
"payload": {
"id": "701ded06-f832-45f3-9a66-4378d0ba55ed"
}
}
Webhook example
{
"id": "29cbf14a-9baf-40a1-ba05-e9cf0ed8dee7",
"applicationId": "5d2567dc-1e4e-44bc-a651-7f330a80bd23",
"createdUtc": "2022-12-12T10:15:08.4286841Z",
"payload": {
"id": "701ded06-f832-45f3-9a66-4378d0ba55ed",
"applicationId": "5d2567dc-1e4e-44bc-a651-7f330a80bd23",
"identificationId": "eccae495-46fb-4f2c-9eba-863f5f407fb0",
"createdUtc": "2022-12-12T10:12:59.413",
"lastActionUtc": "2022-12-12T10:13:00.57",
"lastStatusChangedUtc": null,
"fileId": "kybid-2aa9a9c735894ecdabd1451471a604aa",
"status": "NeedReview",
"purpose": "ExternalRegistry",
"title": "SkyNet.pdf"
},
"type": "KybIdentification.Document.Deleted"
}
Form webhooksThe Form webhook events outlined below will provide details on the progress of form steps, excluding form values.
For this webhook type, the payload body depends on the Forms API โ get /v1/forms/{id}
contract.
You can call Forms API by using โidโ โ get /v1/forms/{id}
to retrieve the information about the user session.
Reference from the Webhook payload
{
"payload": {
"id": "2c6a8441-fc31-47ad-95e6-c77c82b6ec95"
}
}
Webhook example
{
"applicationId": "cf7f1581-25bd-47cb-b2d2-19e099477a7f",
"createdUtc": "2024-07-09T06:36:32.5324435",
"id": "b23d9af4-9215-4308-97e5-60dba19d355f",
"payload": {
"id": "2c6a8441-fc31-47ad-95e6-c77c82b6ec95",
"applicationId": "cf7f1581-25bd-47cb-b2d2-19e099477a7f",
"status": "Unfinished",
"createdUtc": "2024-07-09T06:36:32.4558188Z",
"identityVerificationId": "c006aa3c-deba-4054-b92f-0bee3964c30c",
"setupId": "8c9040b1-87b1-4376-af07-72d24ee0b148",
"setupVersionId": "7ff2cd5a-7135-4c96-90fc-cb1ca0783def",
"stepProgress": [
{
"isCompleted": false,
"order": 0,
"ref": "generalInformation"
},
{
"isCompleted": false,
"order": 1,
"ref": "representativeInformation"
},
{
"isCompleted": false,
"order": 2,
"ref": "majorShareholder"
}
]
},
"type": "Form.Created"
}
For this webhook type, the payload body depends on the Forms API โ get /v1/forms/{id}
contract.
You can call Forms API by using โidโ โ get /v1/forms/{id}
to retrieve the information about the user session.
Reference from the Webhook payload
{
"payload": {
"id": "2c6a8441-fc31-47ad-95e6-c77c82b6ec95"
}
}
Webhook example
{
"applicationId": "cf7f1581-25bd-47cb-b2d2-19e099477a7f",
"createdUtc": "2024-07-09T06:37:03.4974234",
"id": "b2b9f203-d95b-4ccc-ac76-8b186ce4fa25",
"payload": {
"id": "2c6a8441-fc31-47ad-95e6-c77c82b6ec95",
"applicationId": "cf7f1581-25bd-47cb-b2d2-19e099477a7f",
"status": "Unfinished",
"createdUtc": "2024-07-09T06:36:32.455Z",
"identityVerificationId": "c006aa3c-deba-4054-b92f-0bee3964c30c",
"setupId": "8c9040b1-87b1-4376-af07-72d24ee0b148",
"setupVersionId": "7ff2cd5a-7135-4c96-90fc-cb1ca0783def",
"stepProgress": [
{
"isCompleted": true,
"order": 0,
"ref": "generalInformation"
},
{
"isCompleted": false,
"order": 1,
"ref": "representativeInformation"
},
{
"isCompleted": false,
"order": 2,
"ref": "majorShareholder"
}
]
},
"type": "Form.Updated"
}
For this webhook type, the payload body depends on the Forms API โ get /v1/forms/{id}
contract.
You can call Forms API by using โidโ โ get /v1/forms/{id}
to retrieve the information about the user session.
Reference from the Webhook payload
{
"payload": {
"id": "2c6a8441-fc31-47ad-95e6-c77c82b6ec95"
}
}
Webhook example
{
"applicationId": "cf7f1581-25bd-47cb-b2d2-19e099477a7f",
"createdUtc": "2024-07-09T06:37:21.5027871",
"id": "cb48242f-4eba-4fcc-99c0-cb326a2f1530",
"payload": {
"id": "2c6a8441-fc31-47ad-95e6-c77c82b6ec95",
"applicationId": "cf7f1581-25bd-47cb-b2d2-19e099477a7f",
"status": "Completed",
"createdUtc": "2024-07-09T06:36:32.455Z",
"identityVerificationId": "c006aa3c-deba-4054-b92f-0bee3964c30c",
"setupId": "8c9040b1-87b1-4376-af07-72d24ee0b148",
"setupVersionId": "7ff2cd5a-7135-4c96-90fc-cb1ca0783def",
"stepProgress": [
{
"isCompleted": true,
"order": 0,
"ref": "generalInformation"
},
{
"isCompleted": true,
"order": 1,
"ref": "representativeInformation"
},
{
"isCompleted": true,
"order": 2,
"ref": "majorShareholder"
}
]
},
"type": "Form.Completed"
}