Verify Debit Wallet
Completes a debit transaction that requires OTP verification for SMALL_PPI or FULL_KYC_PPI sub-wallets. Use this endpoint after the Debit Wallet API returns status_code: OTP_GENERATED. Pass the debit_id from that response along with the OTP received by the customer through the channels configured in auth.data.notification_modes. On successful verification, the API returns status: SUCCESS and status_code: SUCCESS, and the debit transaction is completed. Each debit_id supports a maximum of three OTP verification attempts.
status_code: OTP_GENERATED for SMALL_PPI or FULL_KYC_PPI sub-wallets. The request accepts two fields: debit_id and otp.status and status_code combinations.
Authorizations
Your unique client identifier issued by Cashfree. You can find this in your Merchant Dashboard.
The secret key associated with your client ID. Use this to authenticate your API requests. You can find this in your Merchant Dashboard.
Headers
API version to be used. Format is in YYYY-MM-DD.
"2025-11-01"
Body
Request parameters to verify the OTP for a wallet debit request.
Unique identifier for the debit transaction, as supplied when you created the debit via Debit Wallet (debit_id in that request).
1 - 50"DEBIT420984"
One-time password received by the end user on the notification channels configured in auth.data.notification_modes on the original Debit Wallet request.
4 - 10"222113"
Response
Success response for verifying a wallet debit OTP.
Unique identifier for the debit transaction, as provided by you during the debit request.
"DEBIT420984"
Unique identifier for the user, as provided by you during PPI user creation.
"USER827364"
Unique identifier for the debit transaction, generated by Cashfree.
"8901234567890123456"
Primary wallet ID from which the amount was debited.
"WALLET936721"
List of gift codes used in the transaction are applicable for GIFT type wallets.
Status of the debit transaction. Refer to Debit status and status-code mapping for all valid combinations.
- For
GIFT_PPIandCLOSED_LOOP_PPIsub-wallets,statusisSUCCESSwhen the debit completes in a single call. - For
SMALL_PPIandFULL_KYC_PPIsub-wallets, the Debit Wallet API returnsstatus: PENDINGandstatus_code: OTP_GENERATEDuntil you verify the OTP using the Verify Debit Wallet API, after whichstatusandstatus_codebecomeSUCCESS.
PENDING, SUCCESS, FAILED, REJECTED, REVERSED "SUCCESS"
Status code for detailed tracking of debit progress. Refer to Debit status and status-code mapping for all valid combinations.
PENDING, OTP_GENERATED, OTP_GENERATION_FAILED, LAST_OTP_ATTEMPT_FAILED, OTP_VERIFICATION_FAILED, OTP_EXPIRED, OTP_VERIFICATION_ATTEMPT_EXHAUSTED, SUCCESS, FAILED, REJECTED, REVERSED "SUCCESS"
Amount that was debited.
600
Remarks for the debit transaction.
"Purchase of electronics item"
Timestamp when the debit transaction was initiated.
"2025-07-28T10:30:00Z"
Timestamp when the debit transaction was processed. Returns null while the debit is awaiting OTP verification or is still in progress.
"2025-07-28T10:30:00Z"
Optional key-value metadata for the debit transaction.
Present only when you sent auth in the Debit Wallet request body for an OTP flow (SMALL_PPI or FULL_KYC_PPI). Echoes the same mode and data you supplied. Omitted for single-step debits (such as GIFT_PPI or CLOSED_LOOP_PPI).