Mandate Registration API
Use this API to choose the preferred mode of payment for the mandate. Supported Payment Methods include UPI, Card, Wallet, eNACH with Card/NB/Aadhaar authentication and eMandate (Direct Bank NB Mandate). The same API will also validate the payment method specific data like UPI VPA etc.
Share the URL that you get in the response body with your end customer, for whom this mandate is being initiated. They will have to run the same to authorise the collect request from their UPI App.
The API is not required for the merchants using Juspay's Payment Page product.
For Cards mandates,
To enable mandate on new card transactions,
Tokenization is mandatory for card mandate creation.
To enable mandate on stored/tokenized card transactions,
Only PAYU and BILLDESK support mandate registration on token repeat flow as of now.
This is because other PGs don’t support mandate registration via external token requestor (TR).
To support mandates on cards tokenized with previously tokenized cards, BILLDESK needs to be configured.
For UPI transactions,
Use the relevant parameters received from the Payment Method API in UPI for payment_method_type and payment_method fields.
Test Cards
Please use the below test cards for testing mandates
Billdesk:
VISA
Card Number: 4591500000000055,
Expiry Month: 12,
Expiry Year: 2029,
Name on Card: Test,
CVV: 123
OTP is 123456
Note: For this card, Transaction status will be successful
and Mandate status will be active
MASTERCARD
Card Number: 5252521111111117,
Expiry Month: 12,
Expiry Year: 2029,
Name on Card: Test,
CVV: 123
OTP is 123456
Note: For this card, Transaction status will be successful
and Mandate status will be failure
RAZORPAY
Card Number: 4022757915248950,
Expiry Month: 01,
Expiry Year: 2022,
Name on Card: Test,
CVV: 123
PAYU
Card Number: 5123456789012346,
Expiry Month: 01,
Expiry Year: 2024,
Name on Card: Test,
CVV: 123
OTP: 123456
VPA: 9999999999@upi
Paytm V2
Card Number: 4761360075863216
Expiry: 12/27
CVV: 123
It should be `application/x-www-form-urlencoded`
We recommend passing the customer_id as the x-routing-id. If the customer is checking out as a guest, you can pass an alternative ID that helps track the payment session lifecycle. For example, this could be an Order ID or Cart ID.
This ID is associated with the customer. It plays a key role in ensuring consistency and maintaining connections across different systems. If you fail to pass the same x-routing-id for the same customer in all related API calls, it could lead to issues with API functionality. Therefore, it’s crucial that you use the same x-routing-id for all requests tied to the same customer.
Example:- customer_1122
Unique Identifier for the order.
ID of the merchant_account that you hold with us.
Payment method type of transaction.
Possible values: UPI / NB / CARD / WALLET / AADHAAR
For eNACH, authentication verification can be done via CARD, NB & AADHAAR
(Note: NB eMandate supports only NB login authentication.
Banks live with NB eMandate are HDFC (Register + Debit), ICICI (Register + Debit), SBI (Register only) and Axis (Register only))
Banks live with eNACH for NB, CARD and AADHAAR authentication https://www.npci.org.in/PDF/nach/live-members-e-mandates/Live-Banks-in-API-E-Mandate.pdf
Payment method of transaction.
For UPI transactions - Please use the relevant value received from the Payment Method API in the payment_method field.
For card mandate - One of VISA/MASTERCARD/MAESTRO/AMEX/RUPAY. This is usually inferred from the card number itself and we will take care of this if you are unable to provide this from your end. Please refer to /paymentmethods API https://docs.juspay.in/api-reference/docs/express-checkout/payment-methods for EMANDATE payment_method values.
VPA to which the collect request must be sent.
We recommend that you set this to true and use the redirection flow.
If set to true, then the user is redirected to the return_url configured for the order.
If set to false, then the user will be stopped at the response page from the gateway.
Your client should be able to read the page/title to infer that the user has completed the transaction.
If it is set to json, then the response will be HTTP 200 with a JSON formatted text. Otherwise, the response is HTTP 302 with the Location attribute having the destination URL.
EMANDATE in case of UPI/NB/Wallet.
MANDATE in case of card
This is a customer’s consent flag. This should be always TRUE in case of a mandate transaction.
Bank account number. Required for emandate/e-NACH.
Bank IFSC. Required for emandate/e-NACH.
Account holder name. Should contain alphabetical characters only. Required for emandate/e-NACH.
Possible values are SAVINGS, CURRENT. Default value will be “SAVINGS”
A valid card token obtained using /card/list API. If you send this parameter, then card_number, name_on_card, card_exp_year, card_exp_month fields are not required.
If the token is generated using the /card/tokenize API, card_number, name_on_card, card_exp_year, card_exp_month and card_security_code fields are not required. Required for mandate_type= MANDATE for stored card.
A valid credit/debit card number. Required when mandate_type = MANDATE for a new card transaction.
Represent the expiry year of the card as YY (two digits only).
Required when mandate_type = MANDATE for a new card transaction.
Represent the expiry month of the card as MM (two digits only). Required when mandate_type = MANDATE for a new card transaction.
CVV of the card. Usually three digits. Required when mandate_type = MANDATE for a new card transaction.
Card holder name. Should contain alphabetical characters only. Required when mandate_type = MANDATE for a new card transaction.
This is a boolean variable and accepts true/false. If set to true, then the card will be saved in locker when the transaction is successful. Else, the card will not be saved.
Transaction ID for the payment attempt.
Status of the transaction. PENDING_VBV indicates that the transaction requires authentication to complete.
URL to which the user has to be taken to for completing the authentication
HTTP Method for authentication. Can be one of GET or POST
Unique Identifier for the order.
Transaction ID for the payment attempt.
Status of the transaction. PENDING_VBV indicates that the transaction requires authentication to complete.
URL to which the user has to be taken to for completing the authentication
HTTP Method for authentication. Can be one of GET or POST
Have questions?
- Need help? Contact support
- LLM? Read llms.txt

