Vizo Digital Api
Sign in

Airtel DMT · Airtel DMT Services

Execute Transfer (Step 7)

Validate OTP and execute IMPS/NEFT fund transfer.

POST request

URL: https://uat-api.vizodigital.com/api/v1/dmt/airtel/transfers/execute

Body

{
    "mobileNumber": "9680976136",
    "latitude": "12.9715",
    "longitude": "77.5945",
    "otp": "123456",
    "amount": "1000",
    "transactionId": "TRF_TXN_999901",
    "token": "1729df34-256c-4d6d-bce8-a66aa20b62c8",
    "beneName": "Sunil Verma",
    "bankName": "ICICI Bank",
    "ifsc": "ICIC0000012",
    "beneAccountNumber": "4654646546464454",
    "beneMobileNumber": "9680976135",
    "transferMode": "IMPS"
}

Include a valid Bearer token with every request

Code sample

curl --location 'https://api.vizodigital.com/api/v1/dmt/airtel/transfers/execute' \
  --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",
    "amount": "1000",
    "transactionId": "TRF_TXN_999901",
    "token": "1729df34-256c-4d6d-bce8-a66aa20b62c8",
    "beneName": "Sunil Verma",
    "bankName": "ICICI Bank",
    "ifsc": "ICIC0000012",
    "beneAccountNumber": "4654646546464454",
    "beneMobileNumber": "9680976135",
    "transferMode": "IMPS"
}'

Success response

{
    "status": 1,
    "statusCode": "DB0031",
    "message": "Success",
    "description": "Transaction successful",
    "responseData": [
        {
            "transactionStatus": "Success",
            "transactionId": "654654654654",
            "bankTransactionId": "7194738830",
            "rrn": "518120786738",
            "amount": "1000",
            "charges": "12",
            "detail": ""
        }
    ]
}

Failure response

{
    "status": 0,
    "statusCode": "DB0032",
    "message": "Failed",
    "description": "Insufficient wallet balance. Required: ₹1000.00, Available: ₹250.00",
    "responseData": []
}

Overview

Validates the OTP from Step 6 and executes the fund transfer.

  • Automatically checks wallet balance and debits amount.
  • If downstream transfer fails, 100% instant auto-refund is credited back to your wallet.

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 Execute Transfer (Step 7)

Schema

{
    "type": "object",
    "required": [
        "mobileNumber",
        "latitude",
        "longitude",
        "otp",
        "amount",
        "transactionId",
        "token",
        "beneName",
        "bankName",
        "ifsc",
        "beneAccountNumber",
        "beneMobileNumber",
        "transferMode"
    ],
    "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 in Step 6."
        },
        "amount": {
            "type": "string",
            "description": "Amount between 100 and 5000."
        },
        "transactionId": {
            "type": "string",
            "description": "Unique transaction ID."
        },
        "token": {
            "type": "string",
            "description": "Token received in Step 6."
        },
        "beneName": {
            "type": "string",
            "description": "Beneficiary account holder name."
        },
        "bankName": {
            "type": "string",
            "description": "Beneficiary bank name."
        },
        "ifsc": {
            "type": "string",
            "description": "Beneficiary IFSC code."
        },
        "beneAccountNumber": {
            "type": "string",
            "description": "Beneficiary bank account number."
        },
        "beneMobileNumber": {
            "type": "string",
            "description": "Beneficiary 10-digit mobile number."
        },
        "transferMode": {
            "type": "string",
            "description": "IMPS or NEFT."
        }
    }
}

Example

{
    "mobileNumber": "9680976136",
    "latitude": "12.9715",
    "longitude": "77.5945",
    "otp": "123456",
    "amount": "1000",
    "transactionId": "TRF_TXN_999901",
    "token": "1729df34-256c-4d6d-bce8-a66aa20b62c8",
    "beneName": "Sunil Verma",
    "bankName": "ICICI Bank",
    "ifsc": "ICIC0000012",
    "beneAccountNumber": "4654646546464454",
    "beneMobileNumber": "9680976135",
    "transferMode": "IMPS"
}

Responses

  • 200 · application/json default

    Fund transfer executed successfully.

    Example

    {
        "status": 1,
        "statusCode": "DB0031",
        "message": "Success",
        "description": "Transaction successful",
        "responseData": [
            {
                "transactionStatus": "Success",
                "transactionId": "654654654654",
                "bankTransactionId": "7194738830",
                "rrn": "518120786738",
                "amount": "1000",
                "charges": "12",
                "detail": ""
            }
        ]
    }
  • 422 · application/json

    Insufficient wallet balance.

    Example

    {
        "status": 0,
        "statusCode": "DB0032",
        "message": "Failed",
        "description": "Insufficient wallet balance. Required: ₹1000.00, Available: ₹250.00",
        "responseData": []
    }

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