/

to search

Introducing Setu Changelog Check it out ↗

#Revoking a mandate

PREREQUISITES 

🌟 UPI mandates generic operations ↗

Revoking a UPI mandate ensures no further actions can be taken on it, including updates to the mandate, pre-debit notifications against mandate, or execution of mandate.

Merchants or aggregators can revoke a mandate by using the collect flow by calling the revoke mandate API, or customers can do so from their UPI app. Jump to the below sections to see how the following scenarios are handled—


#Customer initiated revoking

The process for revoking a mandate initiated from the customer's UPI app is described in the below diagram

Bridge

Post this, once the customer initiates mandate revoke process on their UPI app, the merchant will receive webhooks for following events

  • mandate_operation.revoke.initiated, if mandate revoke is initiated successfully

  • mandate.revoked, if mandate revoke is successful

  • mandate_operation.revoke.success, if mandate revoke is successful

  • mandate_operation.revoke.failed, if mandate revoke fails

  • mandate.live, if mandate revoke fails

Read more about mandate status notifications here and mandate revoke operation notifications here

After receiving mandate_operation.revoke.initiated notification,, the merchant can also use check mandate operation status API to check if mandate revoke is successful


A single block multi debit mandate can only be revoked via merchant initiated collect flow and not via customer initiated flow


#Merchant initiated revoking

The process for revoking a mandate by the merchant is described in the below diagram

BridgeThe merchant or aggregator will have to call the revoke mandate API with the correct set of parameters.
Staging hosthttps://umap.setu.co/api
MethodPUT
Path/v1/merchants/mandates/{mandateId}/revoke
HeadermerchantId
Authorization: Bearer <insert_token_here>. Generate this token using OAuth.

Content-Type—will be application/json
Sample request
{
"expireAfter": 120,
"merchantReferenceId": "ABC1234789"
}
Sample response
{
"expireAfter": 120,
"id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"mandateId": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"merchantId": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"merchantReferenceId": "ABC1234789",
"mode": "collect",
"status": "initiated",
"txnId": "BTTZrc5gDFkuCr3n3I0ey4aNtzLOLR7K7aR",
"umn": "c27f5fc30d344e9594fce0afa34f8859@mypsp"
}
To know more about all the API params, please refer to the API documentation here.

Post this, once the customer clicks on the revoke mandate notification and enters the mPIN on their UPI app, the merchant will receive webhooks for the following events:
  • mandate.revoked (if mandate revoke is successful)
  • mandate_operation.revoke.success (if mandate revoke is successful)
  • mandate.live (if mandate revoke fails)
  • mandate_operation.revoke.failed (if mandate revoke fails)

Read more about mandate status notifications here and mandate revoke operation notifications here

In addition to the notifications, the merchant can also use check mandate operation status API to check if mandate revoke is successful


Please refer to the Document Reference section for checking the API reference and the notifications.

#Check mandate status (optional)

In addition to the notifications sent by UPI Setu, a merchant can use this API to check the status against a mandate revoke.

Staging hosthttps://umap.setu.co/api
MethodGET
Path/v1/merchants/mandate-operations/{id}
HeadermerchantId
Authorization: Bearer <insert_token_here>. Generate this token using OAuth.

Content-Type—will be application/json
Sample response
{
"amountLimit": 1000,
"createdAt": "2023-09-04T12:08:20+0530",
"endDate": "02012006",
"expireAfter": 120,
"id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"mandateId": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"merchantId": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"merchantReferenceId": "ABC1234789",
"mode": "collect",
"status": "success",
"txnId": "BTTZrc5gDFkuCr3n3I0ey4aNtzLOLR7K7aR",
"type": "revoke",
"umn": "c27f5fc30d344e9594fce0afa34f8859@mypsp"
}
In the above response:
  • id is a unique ID that is associated with this mandate revoke operation and can be used to track it later.

To know more about all the API params, please refer to the API documentation here.