This API initiates an eligible initial debit against an approved UPI AutoPay mandate. Its use is subject to the bank/backend's eligibility rules.
API Details
| Parameter | Value |
|---|---|
| Method | POST |
| Endpoint | /mandate-execute |
| Base URL | {{BASE_URL}} |
| Content-Type | application/json |
Authentication
Include the following credentials in the JSON request body. These credentials are available in the WowPe Dashboard.
| Parameter | Location | Type | Mandatory | Description |
|---|---|---|---|---|
clientId | Request Body | String | Yes | Merchant Client ID provided in the WowPe Dashboard. |
secretKey | Request Body | String | Yes | Merchant Secret Key provided in the WowPe Dashboard. |
Request Header
| Header | Value |
|---|---|
Content-Type | application/json |
Request Parameters
The following parameters are required or supported in addition to the authentication credentials.
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
orderId | String | Yes | Merchant reference associated with the mandate. |
debitId | String | Yes | Unique merchant reference for the initial debit. |
amount | Number | Yes | Initial debit amount permitted by the mandate. |
remarks | String | Not specified | Additional remarks for the debit. |
Sample Request
{
"clientId": "YOUR_CLIENT_ID",
"secretKey": "YOUR_SECRET_KEY",
"debitId": "ORDMANUAL01-D0",
"orderId": "ORDMANUAL01",
"amount": 1,
"remarks": "First debit"
}
cURL Request
curl --request POST '{{BASE_URL}}/mandate-execute' \
--header 'Content-Type: application/json' \
--data '{
"clientId": "YOUR_CLIENT_ID",
"secretKey": "YOUR_SECRET_KEY",
"debitId": "ORDMANUAL01-D0",
"orderId": "ORDMANUAL01",
"amount": 1,
"remarks": "First debit"
}'
Replace {{BASE_URL}} with the applicable WowPe API environment URL and use your merchant credentials securely.
Sample Response
Pending Response
{
"statusCode": 2,
"message": "Mandate execution request accepted",
"debitId": "ORDMANUAL01-D0",
"amount": "1.00",
"notifyStatus": "NotSent",
"txnStatus": "Pending",
"executeRef": "ME261101101630696642",
"yppReferenceNumber": null,
"rrn": null,
"executionDateTime": "2026-11-01T10:16:30",
"executedDateTime": null
}
Response Parameters
| Parameter | Type | Description |
|---|---|---|
statusCode | Number | Indicates the API operation status. 0 = Failed, 1 = Succeeded, 2 = Pending. |
message | String | Provides the response message for the execution request. |
debitId | String | Debit reference submitted in the request. |
amount | String | Debit amount, returned as a decimal string. |
notifyStatus | String | Notification status: NotSent, Pending, Success, or Failed. |
txnStatus | String | Debit transaction status: NotInitiated, Pending, Success, or Failed. |
executeRef | String / Null | Unique execution request reference, when available. |
yppReferenceNumber | String / Null | Provider reference number, when available. |
rrn | String / Null | Bank reference number used for transaction tracing. |
executionDateTime | String | Scheduled or recorded execution date and time. |
executedDateTime | String / Null | Actual date and time of debit execution, when available. |
Error Handling
| Status Code | Description | Action |
|---|---|---|
0 | API operation failed. | Check the response message and review the request parameters. |
2 | Execution request is pending. | Use the Execute Status API to track the transaction outcome. |
If a request times out or its outcome is unknown, check the existing debit status before submitting another execution request.
Documented Validation Messages
| Error Message | Action |
|---|---|
Pre-debit notification not successful. | Check the notification status and verify the applicable execution flow. |
Mandate cannot be executed before <time>. | Wait until the permitted execution time. |
Amount not allowed by mandate (MAX 99.00). | Ensure the debit amount complies with the mandate's authorised amount rule. |
Mandate is not valid today. | Check the mandate status and validity dates. |
Important Notes
- The initial debit flow is subject to bank/backend eligibility rules. Confirm the applicable execution window before using this API.
- Use an approved mandate that does not already have an automatic first debit configured.
- Provide a unique
debitIdfor the initial debit. - The requested debit amount must comply with the mandate's amount rule.
- The sample request uses a separate mandate created without an automatic plan.
txnStatus: "Pending"indicates that the payment outcome has not yet been confirmed.- A pre-debit notification is not required for the documented eligible initial-debit example. This must not be interpreted as a general exemption from pre-debit notification requirements.
- For individually notified debits, the debit is processed automatically at the specified execution time. Do not routinely submit another Execute Debit request for the same debit.
What's Next
Use the Execute Status API with the same debitId to track the transaction and confirm its final outcome.
