Vizo Digital Api
Sign in

Airtel DMT · Airtel DMT Services

Validate Registration OTP (Step 4)

Validate the registration OTP received by the customer.

POST request

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

Body

{
    "mobileNumber": "9680976136",
    "latitude": "12.9715",
    "longitude": "77.5945",
    "otp": "123456",
    "token": "1729df34-256c-4d6d-bce8-a66aa20b62c8"
}

Include a valid Bearer token with every request

Code sample

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

Success response

{
    "status": 1,
    "statusCode": "SS0011",
    "message": "Success",
    "description": "Success",
    "responseData": [
        {
            "token": "1729df34-256c-4d6d-bce8-a66aa20b62c8",
            "tokenType": "VERIFICATION",
            "expiresIn": "3600",
            "authChallengeURI": "/auth/otp/verify"
        }
    ]
}

Failure response

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

Overview

Validates the 6-digit OTP sent in Step 3. Returns an access token required for Step 5 (E-KYC).

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 Validate Registration OTP (Step 4)

Schema

{
    "type": "object",
    "required": [
        "mobileNumber",
        "latitude",
        "longitude",
        "otp",
        "token"
    ],
    "properties": {
        "mobileNumber": {
            "type": "string",
            "description": "Customer 10-digit mobile number."
        },
        "latitude": {
            "type": "string",
            "description": "Customer latitude coordinate."
        },
        "longitude": {
            "type": "string",
            "description": "Customer longitude coordinate."
        },
        "otp": {
            "type": "string",
            "description": "6-digit OTP received on mobile."
        },
        "token": {
            "type": "string",
            "description": "Token received from Step 3."
        }
    }
}

Example

{
    "mobileNumber": "9680976136",
    "latitude": "12.9715",
    "longitude": "77.5945",
    "otp": "123456",
    "token": "1729df34-256c-4d6d-bce8-a66aa20b62c8"
}

Responses

  • 200 · application/json default

    Registration OTP validated successfully.

    Example

    {
        "status": 1,
        "statusCode": "SS0011",
        "message": "Success",
        "description": "Success",
        "responseData": [
            {
                "token": "1729df34-256c-4d6d-bce8-a66aa20b62c8",
                "tokenType": "VERIFICATION",
                "expiresIn": "3600",
                "authChallengeURI": "/auth/otp/verify"
            }
        ]
    }

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