Verification Management

The Verification Management endpoints allow you to manage the verification process for both individual and business customers, including KYC and KYB verification workflows.

Capability Requirements

Verification Management is available to all subscription tiers with SCT01 (B2C) and/or SCT02 (B2B) capabilities. Advanced verification features require SCT11 capability.

Verification Process Overview

The verification process typically follows these steps:

  1. Customer registration and profile creation
  2. Document submission and verification request
  3. Verification status tracking
  4. Verification completion or remediation

Verification Status

Retrieve the current verification status for a customer.

GET /verification/{customerId}/status
Authorization: Bearer {access_token}

Response

{
  "status": "success",
  "data": {
    "customerId": "CUST123456",
    "verificationStatus": "VERIFIED",
    "verificationLevel": "FULL",
    "lastUpdated": "2025-06-01T14:30:45Z",
    "verificationDetails": {
      "identity": "VERIFIED",
      "address": "VERIFIED",
      "documents": "VERIFIED",
      "sanctions": "PASSED",
      "peps": "PASSED"
    }
  }
}

Verification Status Values

StatusDescription
PENDINGVerification has been initiated but not completed
IN_PROGRESSVerification is currently being processed
VERIFIEDCustomer has been successfully verified
REJECTEDVerification has been rejected
EXPIREDVerification has expired and needs to be redone
ADDITIONAL_INFO_REQUIREDAdditional information is needed to complete verification

Initiate Verification

Start the verification process for a customer.

POST /verification/{customerId}/initiate
Content-Type: application/json
Authorization: Bearer {access_token}

Request Body

{
  "verificationType": "FULL",
  "callbackUrl": "https://api.example.com/verification-callbacks",
  "documentIds": ["DOC123456", "DOC123457"]
}
ParameterTypeRequiredDescription
verificationTypestringYesType of verification: “BASIC”, “STANDARD”, or “FULL”
callbackUrlstringNoURL to receive verification status updates
documentIdsarrayNoIDs of documents already uploaded for verification

Response

{
  "status": "success",
  "data": {
    "verificationId": "VER123456",
    "customerId": "CUST123456",
    "status": "PENDING",
    "initiatedAt": "2025-06-02T15:45:30Z",
    "estimatedCompletionTime": "2025-06-02T16:45:30Z"
  }
}

Submit Verification Documents

Upload documents for the verification process.

POST /verification/{customerId}/documents
Content-Type: multipart/form-data
Authorization: Bearer {access_token}

Request Parameters

ParameterTypeRequiredDescription
documentTypestringYesType of document: “ID_CARD”, “PASSPORT”, “DRIVING_LICENSE”, “PROOF_OF_ADDRESS”, etc.
documentFilefileYesThe document file (PDF, JPG, PNG)
documentSidestringNoFor ID cards: “FRONT” or “BACK”
expiryDatestringNoDocument expiry date in ISO 8601 format
issuingCountrystringNoISO country code of the issuing country

Response

{
  "status": "success",
  "data": {
    "documentId": "DOC123456",
    "customerId": "CUST123456",
    "documentType": "PASSPORT",
    "uploadedAt": "2025-06-02T15:50:20Z",
    "status": "RECEIVED"
  }
}

Cancel Verification

Cancel an ongoing verification process.

POST /verification/{customerId}/cancel
Authorization: Bearer {access_token}

Response

{
  "status": "success",
  "data": {
    "verificationId": "VER123456",
    "customerId": "CUST123456",
    "status": "CANCELLED",
    "cancelledAt": "2025-06-02T16:10:45Z"
  }
}

Verification Webhook Events

When using the webhook callback URL, you will receive the following event types:

EventDescription
verification.initiatedVerification process has been initiated
verification.document_receivedDocument has been received for verification
verification.in_progressVerification is being processed
verification.completedVerification has been completed
verification.rejectedVerification has been rejected
verification.additional_info_requiredAdditional information is needed

Webhook Payload Example

{
  "event": "verification.completed",
  "timestamp": "2025-06-02T16:45:30Z",
  "data": {
    "verificationId": "VER123456",
    "customerId": "CUST123456",
    "status": "VERIFIED",
    "verificationLevel": "FULL",
    "completedAt": "2025-06-02T16:45:30Z"
  }
}

Best Practices

  • Implement proper error handling for all verification API responses
  • Store verification IDs and status for audit purposes
  • Implement a robust webhook handler for real-time verification updates
  • Provide clear guidance to customers on document requirements
  • Implement retry logic for failed verifications with appropriate cooldown periods

For more information on document management, refer to the Document Management section.