Documentation Index

Fetch the complete documentation index at: https://docs.xendit.co/llms.txt

Use this file to discover all available pages before exploring further.

For archived content, access the previous documentation here or the previous API reference here.

Account verification webhook notification

Prev Next
Post
/your_account_verification_webhook_url

A webhook event sent to your Platform when the KYC verification status of one of your sub-accounts changes.

Configure the Account Verification Status webhook URL on your master account to receive these events. If no URL is set, the webhook service logs CALLBACK_URL_NOT_SET (this is not a delivery failure). There is no master-initiated resend — if you miss an event, poll the Retrieve account verification API as a fallback. Webhook delivery logs appear on the sub-account's dashboard, not the master's, even when the event is routed to the master URL.

When the status is AWAITING_RESUBMISSION, the kyc.failure_reasons array lists each field that needs correcting so you know exactly what to re-upload. field uses dot-notation; for array document fields the specific document type is appended (e.g. business_registration_documents.id_company_npwp). message is a human-readable explanation.

Body parameters
Awaiting resubmission
{
  "event": "account.verification",
  "created": "2026-06-19T04:52:35.291Z",
  "business_id": "68b65fa5c2d38abe0de734ce",
  "data": {
    "id": "6a34caaa8a9c47963f1b7abc",
    "created": "2026-06-19T04:51:02.634Z",
    "updated": "2026-06-19T04:52:33.723Z",
    "kyc": {
      "status": "AWAITING_RESUBMISSION",
      "verified_at": "2026-06-19T04:52:33.723Z",
      "requested_at": "2026-06-19T04:51:03.517Z",
      "failure_reasons": [
        {
          "field": "business_license_documents",
          "reason": "NEW_DOCUMENT",
          "message": "We need to verify this additional document for your business type."
        },
        {
          "field": "business_registration_documents.id_skmenkeh_latest",
          "reason": "WRONG_DOCUMENT",
          "message": "This document is not valid. Make sure you upload the correct one."
        },
        {
          "field": "business_registration_documents.id_company_npwp",
          "reason": "NEW_INFORMATION",
          "message": "We need to collect this additional information for your business type."
        },
        {
          "field": "authorized_person_identification.id_national_id_ktp",
          "reason": "WRONG_DOCUMENT",
          "message": "This document is not valid. Make sure you upload the correct one."
        },
        {
          "field": "authorized_person_selfie_document",
          "reason": "BLURRY_IMAGE",
          "message": "This document is blurry. Please try uploading again and make sure all of your details can be read clearly."
        }
      ]
    }
  },
  "api_version": null
}
Expand All
object
event
string

The KYC verification status of your sub-account has changed

Valid values[ "account.verification" ]
Exampleaccount.verification
business_id
string

ID of your Account, use this in the for-user-id header to create transactions on behalf of your Account

created
string

Timestamp of when the webhook was sent

api_version
string | null

API version of the webhook payload. May be null.

data
object
id
string

ID of the sub-account whose verification status changed

created
string

Timestamp of when the KYC request was created

updated
string

Timestamp of when the KYC request was last updated

kyc
object
status
string

The KYC verification status of the sub-account

Valid values[ "VERIFICATION_IN_PROGRESS", "PASSED", "AWAITING_RESUBMISSION", "FAILED" ]
requested_at
string

Timestamp of the last KYC submission

verified_at
string

Timestamp of when the verification status was last updated

kyc_passed_at
string

Timestamp of when KYC passed. Only present when status is PASSED

failure_reasons
Array of object

Present when status is AWAITING_RESUBMISSION. One entry per field that needs correcting.

object
field
string

The KYC field that needs correcting, in dot-notation. For array document fields the specific document type is appended, e.g. business_registration_documents.id_company_npwp.

reason
string

Machine-readable reason the field needs correcting

Valid values[ "NEW_DOCUMENT", "WRONG_DOCUMENT", "NEW_INFORMATION", "BLURRY_IMAGE" ]
message
string

Human-readable explanation. May be reviewer free-text or a templated message.

Responses
200

OK

400

Bad Request - Invalid webhook payload