Stop an existing recurring UPI Mandate schedule using its merchant mandate reference. The underlying mandate remains separate and is not revoked by this operation.
API Details
| Field | Value |
|---|---|
| Method | POST |
| Endpoint | /mandate-schedule-stop |
| Base URL | {{BASE_URL}} |
| Content-Type | application/json |
Authentication
Include the following credentials in the JSON request body:
| Parameter / Header | Location | Type | Mandatory | Description |
|---|---|---|---|---|
clientId | JSON body | String | Yes | Merchant client ID from the WowPe Dashboard. |
secretKey | JSON body | String | Yes | Merchant secret key from the WowPe Dashboard. Keep it on your server. |
Content-Type | Header | String | Yes | application/json |
Both credential fields must be included in every request.
Request Parameters
The authentication fields above are required in addition to the following parameter:
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
orderId | String | Yes | Merchant mandate reference. |
Sample Request
Request Body
{
"clientId": "YOUR_CLIENT_ID",
"secretKey": "YOUR_SECRET_KEY",
"orderId": "ORDSCHEDULE01"
}
cURL Request
curl --request POST '{{BASE_URL}}/mandate-schedule-stop' \
--header 'Content-Type: application/json' \
--data-binary '@mandate-schedule-stop.json'
Sample Response
The supplied integration guide does not include a separate JSON response example for this endpoint. It specifies the same response fields as the Create Schedule API.
Capture the actual response in UAT before publishing a definitive sample response.
Response Parameters
| Parameter | Type | Description |
|---|---|---|
statusCode | Number | Operation status: 0 = Failed, 1 = Succeeded, 2 = Pending. Interpret business-status fields separately. |
message | String | Operation or plan message. It is not a substitute for the relevant status field. |
orderId | String | Merchant mandate reference. |
scheduleStatus | String | Schedule state: Active, Stopped, or Completed. |
amount | String | Scheduled debit amount, returned as a decimal string. |
frequency | String | Saved schedule frequency. |
startDateTime | String | First scheduled debit time. |
endDate | String | Last possible scheduled debit date. |
notifyBeforeHours | Number | Saved notification lead time in hours. |
cyclesDone | Number | Returned cycle count. Whether this counts attempts or successful debits is not specified. |
nextExecutionDateTime | String | Returned next debit time. |
nextNotifyDateTime | String | Returned next notification time. |
lastDebitId | String / Null | Most recent cycle debit ID for execute-status lookup, when available. |
lastMessage | String / Null | Latest schedule message, when available. |
Error Handling
| Condition | Handling |
|---|---|
statusCode: 0 | Operation failed. Inspect the message and any operation-specific status fields. |
statusCode: 2 | Operation is pending. Use the applicable status endpoint to check the outcome. |
| Timeout or unknown outcome | Check the existing operation before submitting another mutation. |
The supplied integration guide does not define endpoint-specific HTTP status mappings or a complete error response structure. Confirm these in UAT before documenting them.
Important Notes
- Check the returned
scheduleStatusfield to determine whether the schedule isActive,Stopped, orCompleted. - Use
lastDebitId, when available, with themandate-execute-statusAPI to check the latest cycle's payment outcome. - Stopping a schedule and revoking a mandate are separate operations.
- Do not assume that stopping a schedule cancels a debit that has already been notified, queued, or is executing. Confirm this behaviour with the API owner and inspect outstanding debit statuses.
What's Next
Use the mandate-schedule-status API to confirm that scheduleStatus is Stopped and inspect any outstanding debit outcomes.
If the underlying mandate also needs to be revoked, use the Revoke Mandate API separately.
