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
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
0or 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
tokenparameter in request body is received from previous steps (Steps 2, 4, 5, 7 require the body token).
Rate Limits
60/min