Mandate Execution API

After the successful Mandate registration, Merchant will receive a mandate_id, mandate_token from Juspay that should be stored against a customer at their end. For the subsequent charge transactions, the merchant is supposed to pass a combination of customer_id and mandate_id to do a debit without a 2FA. This API will create an order and perform a transaction with PG based on the mandate_id passed in the request.

Response Parameters:

Field

Type

Description

order_id

String

Unique Identifier for the order.

txn_id

String

Transaction Id for the payment

txn_uuid

String

Transaction UUID for the payment

status

String

Status of the transaction. See Appendix for status mapping.

payment.authentication.method

String

HTTP Method for authentication. Can be one of GET or POST

payment.authentication.url

String

URL to which the user has to be taken to for completing the authentication

payment.authentication.params

Params Object

Present only when the method is POST. Parameter map that has to be sent along with the URL for authentication.

Mandate Execution API failure responses:

Status code

Reason

Response

401

Invalid Authentication

{
"status": "error",
"error_code": "access_denied"
}

400

Duplicate order id

{
"status_id": 40,
"status": "DUPLICATE_ORDER_ID",
"error_message": "Order already exists with the given order_id"
}

400

Invalid order amount

{"status":"Invalid Request","error_message":Invalid order amount","error_code":"Invalid"}

400

Mandate max amount not found

{"status":"Invalid Request","error_message":"Mandate max amount not found.","error_code":"Invalid"}

400

Amount not found in request.

{"status":"Invalid Request","error_message":"Amount not found in request.","error_code":"Invalid"}

400

Order amount greater than mandate max amount

{"status":"Invalid Request","error_message":"Order amount greater than mandate max amount (<currency <> max amount>)","error_code":"Invalid"}

400

Order amount not equal to mandate max amount.

{"status":"Invalid Request","error_message":"Order amount not equal to mandate max amount.","error_code":"Invalid"}

400

Currency not valid for mandate transaction

{"status":"Invalid Request","error_message":"currency not valid for mandate transaction.","error_code":"Invalid"}

400

notification_id not found in request.

{"status":"Invalid Request","error_message":"mandate.notification_id is mandatory.","error_code":"Invalid"}

400

Notification record not found

{"status":"Invalid Request","error_message":"Notification record not found for ","error_code":"Invalid"}

400

Notification status is not success.

{"status":"Invalid Request","error_message":"Notification status is not success.","error_code":"Invalid"}

400

Mandate not found

{"status":"invalid_request_error","error_message":"Mandate not found","error_code":"Mandate not found"}

400

Mandate not in active state.

{"status":"invalid_request_error","error_message":"Mandate is in non active(REVOKED / FAILURE) state. Recurring cannot be executed","error_code":"Mandate is in non active(REVOKED / FAILURE) state. Recurring cannot be executed"}

Language
Authentication
Basic
base64
:
Click Try It! to start a request and see the response here!