Webhook Payload
Payload
{
"result_id": "936f35a8-4921-430e-b016-15be48968886",
"event": "COMPLETED",
"data": {
// step type eg. "dv" or "poa" or "form" or "wallet"
"<type>": {
// ... data here
}
},
"custom": null
}
Result Information
- Result ID: an identifier of the result
- Event: the status of the verification process (not the status of the KYC)
Document Verification
{
"result_id": "936f35a8-4921-430e-b016-15be48968886",
"event": "COMPLETED",
"data": {
"dv": {
"version": 0,
"id": "d65fa9a0-596e-4d7e-afd1-59a23bfb5a74",
"verificationRequestId": "cf52e18e-28d1-4a2f-8304-c04ef5a75d0f",
"flowId": "2d8285d7-f4ba-42df-ab3f-681d9870d37a",
"flowStepId": "03559a0f-be8e-4ab7-964d-1ff4745d92a4",
"createdAt": "2025-04-25T19:32:14.558006634Z",
"customData": {},
"status": "PASSED",
"reason": null,
"documentId": "d41bc0ea-3b5c-4342-a1ae-a46dd0a770f8",
"documentType": "Driving License",
"class": null,
"platform": null,
"browser": null,
"scoreBiometricSelfie": 99,
"errorMessage": null,
"processAdditionalData": {},
"identityEmail": "applicant01@example.com"
}
},
"custom": null
}
KYC Data
The information about the document verification can be found under the "dv" key of the JSON object. It includes essential information about the KYC process.
- Version: the version of the document verification processor that has been used
- Id: the id of the DvResult (result of the document verification step)
- Verification Request ID: identifier of the verification request that generated the result
- Flow ID: identifier of the flow the result refers to
- Flow Step ID: identifier of the flow step the result refers to
- Created At: timestamp when the result has been created
- CustomData: custom parameters that has been collected from the url query parameters
- Status: status of the document verification (eg. PASSED or FAILED)
- Reason: reason in case of failure
- Document Type: type of the document that has been used for the verification
- Document ID: identifier of the document that has been recorded on the user personal storage
KYC Scores
During the KYC process several checks on document authenticity are performed. The most relevant scores are sent through the webhook.
- Score Biometric Selfie: the portrait match score from the Liveness Verification step. This represents the similarity between the live selfie and the portrait image extracted from the identity document during the Document Verification step
Process Information
Provide a way to collect any relevant information collected during the verification process.
- Process Additional Data: N/A
Identity Information
Identifies the individual associated with the KYC process, in this case, by their email address.
- Identity ID: the identifier for the identity that went through the verification process (usually the email address)
Proof of address
{
"result_id": "0e66460a-c189-48a0-8a1a-a3f846c992e5",
"event": "COMPLETED",
"data": {
"poa": {
"version": 0,
"id": "cdf75b57-a1d8-4c1c-8718-c367206707b4",
"verificationRequestId": "19234ab9-33df-4fae-a636-361f0f5ca607",
"flowId": "2d8285d7-f4ba-42df-ab3f-681d9870d37a",
"flowStepId": "56efd673-24d1-455b-a5b9-8ddf02a9b5f2",
"createdAt": "2025-04-25T19:32:25.799246492Z",
"customData": {},
"status": "PASSED",
"reason": null,
"documentId": "e04a00e6-ccf9-4593-ab86-4b2c01f3bb95",
"documentType": "PAY_SLIP",
"identityEmail": "applicant01@example.com"
}
},
"custom": {}
}
Proof of Address Data
The information about the proof of address can be found under the "poa" key of the JSON object. It includes essential information about the Proof of Address process.
- Version: the version of the document verification processor that has been used
- Id: the id of the PoaResult (result of the proof of address step)
- Verification Request ID: identifier of the verification request that generated the result
- Flow ID: identifier of the flow the result refers to
- Flow Step ID: identifier of the flow step the result refers to
- Created At: timestamp when the result has been created
- CustomData: custom parameters that has been collected from the url query parameters
- Status: status of the document verification (eg. PASSED or FAILED)
- Reason: reason in case of failure
- Document Type: type of the document that has been used for the verification
- Document ID: identifier of the document that has been recorded on the user personal storage
Identity Information
Identifies the individual associated with the KYC process, in this case, by their email address.
- Identity ID: the identifier for the identity that went through the verification process (usually the email address)
Phone Verification
{
"result_id": "a7b8c9d0-1234-5678-90ab-cdef12345678",
"event": "COMPLETED",
"data": {
"phone": {
"id": "f8e7d6c5-4321-8765-09ba-fedcba987654",
"verificationRequestId": "b1c2d3e4-5678-90ab-cdef-1234567890ab",
"flowId": "2d8285d7-f4ba-42df-ab3f-681d9870d37a",
"flowStepId": "c3d4e5f6-7890-abcd-ef12-34567890abcd",
"createdAt": "2025-04-25T19:35:30.123456789Z",
"customData": {},
"status": "PASSED",
"reason": null,
"phoneNumberLast4": "1234",
"identityEmail": "applicant01@example.com"
}
},
"custom": null
}
Phone Verification Data
The information about the phone verification can be found under the "phone" key of the JSON object. It includes essential information about the phone verification process.
- Id: the id of the PhoneResult (result of the phone verification step)
- Verification Request ID: identifier of the verification request that generated the result
- Flow ID: identifier of the flow the result refers to
- Flow Step ID: identifier of the flow step the result refers to
- Created At: timestamp when the result has been created
- CustomData: custom parameters that have been collected from the url query parameters
- Status: status of the phone verification (e.g., PASSED or FAILED)
- Reason: reason in case of failure
- Phone Number Last 4: the last 4 digits of the verified phone number (for reference purposes)
For privacy and security reasons, the full phone number is not included in the webhook payload. The phone number is stored as a SHA-256 hash in the database, with only the last 4 digits available in plain text for reference.
Identity Information
Identifies the individual associated with the verification process, in this case, by their email address.
- Identity Email: the email address of the identity that went through the verification process
Wallet Verification
{
"result_id": "a7b8c9d0-1234-5678-90ab-cdef12345678",
"event": "COMPLETED",
"data": {
"wallet": {
"version": 0,
"id": "b1c2d3e4-5678-90ab-cdef-123456789012",
"verificationRequestId": "c2d3e4f5-6789-01bc-def1-23456789abcd",
"flowId": "d3e4f5g6-7890-12cd-ef12-3456789abcde",
"flowStepId": "e4f5g6h7-8901-23de-f123-456789abcdef",
"createdAt": "2025-10-17T10:15:30.123456789Z",
"customData": {},
"status": "PASSED",
"walletAddress": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
"walletChain": "ETHEREUM",
"message": "example.com wants you to sign in with your Ethereum account...",
"signature": "0x1234567890abcdef...",
"identityEmail": "applicant01@example.com"
}
},
"custom": null
}
Wallet Verification Data
The information about the wallet verification can be found under the "wallet" key of the JSON object. It includes essential information about the wallet ownership verification process.
- Version: the version of the wallet verification processor that has been used
- Id: the id of the WalletResult (result of the wallet verification step)
- Verification Request ID: identifier of the verification request that generated the result
- Flow ID: identifier of the flow the result refers to
- Flow Step ID: identifier of the flow step the result refers to
- Created At: timestamp when the result has been created
- CustomData: custom parameters that has been collected from the url query parameters
- Status: status of the wallet verification (eg. PASSED or FAILED)
- Wallet Address: the cryptocurrency wallet address that was verified
- Wallet Chain: the blockchain network used for verification (e.g., ETHEREUM, SOLANA, ETHEREUM_TESTNET, SOLANA_TESTNET)
- Message: the SIWX (Sign-In With X) message that was signed by the user
- Signature: the cryptographic signature produced by signing the message with the wallet's private key
Identity Information
Identifies the individual associated with the verification process, in this case, by their email address.
- Identity Email: the email address for the identity that went through the verification process
Other events
Document Expired
Triggered whenever a document attached to a user that has been verified is expired.
The check is performed every day.
{
"result_id": "",
"event": "NOTIFICATION",
"data": {
"eventData": {
"version": 0,
"type": "DOCUMENT_EXPIRED",
"flowResultId": "d65fa9a0-596e-4d7e-afd1-59a23bfb5a74",
"verificationRequestId": "cf52e18e-28d1-4a2f-8304-c04ef5a75d0f",
"flowId": "2d8285d7-f4ba-42df-ab3f-681d9870d37a",
"flowStepId": "03559a0f-be8e-4ab7-964d-1ff4745d92a4",
"expiryDate": "2025-04-25T00:00:00.00Z",
"customData": {},
"documentId": "d41bc0ea-3b5c-4342-a1ae-a46dd0a770f8",
"documentType": "Driving License",
"identityEmail": "applicant01@example.com"
}
},
"custom": {}
}
Event Data
- Version: the version of the document verification processor that has been used
- Type: type of the event the notification refers to
- Flow Result ID: identifier of the flow result the expired document refers to
- Verification Request ID: identifier of the verification request that generated the result
- Flow ID: identifier of the flow the result refers to
- Flow Step ID: identifier of the flow step the result refers to
- ExpiryDate: expiration date of the document
- CustomData: custom parameters that has been collected from the url query parameters
- Document Type: type of the document that has been used for the verification
- Document ID: identifier of the document that has been recorded on the user personal storage
- Identity ID: the identifier for the identity that went through the verification process (usually the email address)