Revoke Mandate

Submit a request to revoke an existing UPI Mandate. Once revoked, the associated schedules and plans are also stopped.

API Details

FieldValue
MethodPOST
Endpoint/mandate-modify
Base URL{{BASE_URL}}
Content-Typeapplication/json

Authentication

Include the following credentials in the JSON request body:

Parameter / HeaderLocationTypeMandatoryDescription
clientIdJSON bodyStringYesMerchant client ID from the WowPe Dashboard.
secretKeyJSON bodyStringYesMerchant secret key from the WowPe Dashboard. Keep it on your server.
Content-TypeHeaderStringYesapplication/json

Both credential fields must be included in every request.

Request Parameters

The authentication fields above are required in addition to the following parameters:

ParameterTypeMandatoryDescription
orderIdStringYesMerchant mandate reference.
requestTypeStringYesUse REVOKE to submit a mandate revocation request.
amountNullInclude as shownSend null in the request.
validityEndNullInclude as shownSend null in the request.
remarksStringNot specifiedRemarks associated with the revocation request. Requiredness is not specified.

Sample Request

Request Body

{
  "clientId": "YOUR_CLIENT_ID",
  "secretKey": "YOUR_SECRET_KEY",
  "orderId": "ORD10001",
  "requestType": "REVOKE",
  "amount": null,
  "validityEnd": null,
  "remarks": "Customer cancelled"
}

cURL Request

curl --request POST '{{BASE_URL}}/mandate-modify' \
  --header 'Content-Type: application/json' \
  --data-binary '@mandate-modify.json'

Sample Response

Illustrative response from the supplied integration guide; not a verified UAT capture.

{
  "statusCode": 2,
  "message": "Mandate modification request accepted",
  "orderId": "ORD10001",
  "requestRef": "MM261110113012345678",
  "umn": "722710901d824182a759192d859e8c7e@ptyes",
  "requestExpiryTime": "2026-11-10T11:35:12"
}

Response Parameters

ParameterTypeDescription
statusCodeNumberOperation status: 0 = Failed, 1 = Succeeded, 2 = Pending. Interpret the business-status fields separately.
messageStringOperation or plan message. It is not a substitute for the relevant status field.
orderIdStringMerchant mandate reference.
requestRefStringModification request reference used for status lookup.
umnStringReturned unique mandate identifier.
requestExpiryTimeStringRequest expiry time returned by the API.

Error Handling

ConditionHandling
statusCode: 0Operation failed. Inspect the message and any operation-specific status fields.
statusCode: 2Operation is pending. Use the Request Status API to check the outcome.
Timeout or unknown outcomeCheck 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

  • Use requestType: "REVOKE" to submit a revocation request.
  • Preserve amount and validityEnd as null in the request until the API's handling of omitted and null fields is confirmed.
  • Store the returned requestRef. It is required to track the revocation request through the Request Status API.
  • An initial response with statusCode: 2 indicates that the request is pending. Do not treat the mandate as revoked solely because the request was accepted.
  • After checking the request status, verify that the Mandate Details API returns mandateStatus: "Revoked".
  • Customers can also revoke a mandate through their UPI app. The Mandate Details API will then reflect mandateStatus: "Revoked".
  • The impact on any debit already in flight requires backend confirmation.
  • The supplied integration guide does not support changing the amount or validity end date using requestType: "UPDATE" for QR/intent mandates. Revoke the existing mandate and create a new one for such changes.

What's Next

Use the Request Status API with the returned requestRef to track the revocation request.

Once processed, use the Mandate Details API to verify that mandateStatus is Revoked.