Vizo Digital Api
Sign in

Airtel DMT · Airtel DMT Services

Sender Registration E-KYC (Step 5)

Complete customer registration using biometric or face e-KYC.

POST request

URL: https://uat-api.vizodigital.com/api/v1/dmt/airtel/customer/ekyc

Body

{
    "mobileNumber": "9680976136",
    "latitude": "12.9715",
    "longitude": "77.5945",
    "transactionId": "KYC_ORD_1001",
    "token": "1729df34-256c-4d6d-bce8-a66aa20b62c8",
    "bioType": "0",
    "pidData": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4..."
}

Include a valid Bearer token with every request

Code sample

curl --location 'https://api.vizodigital.com/api/v1/dmt/airtel/customer/ekyc' \
  --header 'Authorization: Bearer <YOUR_API_TOKEN>' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --data '{
    "mobileNumber": "9680976136",
    "latitude": "12.9715",
    "longitude": "77.5945",
    "transactionId": "KYC_ORD_1001",
    "token": "1729df34-256c-4d6d-bce8-a66aa20b62c8",
    "bioType": "0",
    "pidData": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4..."
}'

Success response

{
    "status": 1,
    "statusCode": "DB0031",
    "message": "Success",
    "description": "Customer is Registered",
    "responseData": [
        {
            "transactionStatus": "Success",
            "transactionId": "654654654654",
            "bankTransactionId": "7194738830",
            "charges": "10",
            "detail": "Customer is Registered"
        }
    ]
}

Failure response

{
    "status": "error",
    "message": "Request failed. Check credentials, wallet balance, or validation errors."
}

Overview

Submits biometric or face scan PID data to complete customer DMT onboarding.

Bio Type Options:

  • 0: Biometric Finger Scan (WADH: E0jzJ/P8UopUHAieZn8CKqS4WPMi5ZSYXgfnlfkWjrc=)
  • 1: Iris Scan
  • 2: Face Authentication (WADH: sgydIC09zzy6f8Lb3xaAqzKquKe9lFcNR9uTvYxFp+A=)

Headers

  • Authorization · string required

    Sanctum Bearer Token from /api/v1/auth/token

    Example: Bearer <YOUR_API_TOKEN>

  • Content-Type · string required

    Must be application/json

    Example: application/json

  • Accept · string required

    Must be application/json

    Example: application/json

Body

application/json required

JSON payload for Sender Registration E-KYC (Step 5)

Schema

{
    "type": "object",
    "required": [
        "mobileNumber",
        "latitude",
        "longitude",
        "transactionId",
        "token",
        "bioType",
        "pidData"
    ],
    "properties": {
        "mobileNumber": {
            "type": "string",
            "description": "Customer 10-digit mobile number."
        },
        "latitude": {
            "type": "string",
            "description": "Customer latitude coordinate."
        },
        "longitude": {
            "type": "string",
            "description": "Customer longitude coordinate."
        },
        "transactionId": {
            "type": "string",
            "description": "Unique partner transaction ID (12 to 25 chars)."
        },
        "token": {
            "type": "string",
            "description": "Token received from Step 4."
        },
        "bioType": {
            "type": "string",
            "description": "0 for Finger, 1 for Iris, 2 for Face."
        },
        "pidData": {
            "type": "string",
            "description": "Base64 encoded biometric PID XML data."
        }
    }
}

Example

{
    "mobileNumber": "9680976136",
    "latitude": "12.9715",
    "longitude": "77.5945",
    "transactionId": "KYC_ORD_1001",
    "token": "1729df34-256c-4d6d-bce8-a66aa20b62c8",
    "bioType": "0",
    "pidData": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4..."
}

Responses

  • 200 · application/json default

    Customer successfully registered.

    Example

    {
        "status": 1,
        "statusCode": "DB0031",
        "message": "Success",
        "description": "Customer is Registered",
        "responseData": [
            {
                "transactionStatus": "Success",
                "transactionId": "654654654654",
                "bankTransactionId": "7194738830",
                "charges": "10",
                "detail": "Customer is Registered"
            }
        ]
    }

Errors

  • service_not_enabled · HTTP 403

    Airtel DMT service is not activated for your account.

    Airtel DMT service is not activated for your account.

    {
        "status": "error",
        "code": "service_not_enabled",
        "message": "Airtel DMT service is not activated for your account."
    }
  • Unauthenticated · HTTP 401

    Missing or invalid Bearer API token.

    Missing or invalid Bearer API token.

    {
        "status": "error",
        "code": "Unauthenticated",
        "message": "Missing or invalid Bearer API token."
    }
  • validation_error · HTTP 422

    Missing or invalid required parameters.

    Missing or invalid required parameters.

    {
        "status": "error",
        "code": "validation_error",
        "message": "Missing or invalid required parameters."
    }

Notes

⏱️ 15-Minute Sequential Flow Window

All requests from Step 1 to Step 7 must be executed sequentially within a 15-minute window. The session token received from Step 1 expires in 15 minutes. Ensure fast and synchronized execution.

💰 Wallet Billing & Instant Auto-Refund

  • For money transfer (Step 7), your wallet is locked and debited atomically.
  • If the downstream transfer fails (Status 0 or provider decline), your wallet is 100% instantly auto-refunded.

🛡️ Dual-Token Security Architecture

  • Header Token: Send standard Sanctum Authorization: Bearer <API_TOKEN> in headers.
  • Body Token: The token parameter in request body is received from previous steps (Steps 2, 4, 5, 7 require the body token).

Rate Limits

60/min