---
page_source: https://juspay.io/in/docs/ec-api/docs/mandates/mandate-registration-api
page_title: Mandate Registration API
---

## API Version: default


# 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.

> **Note**
> * **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,** 
>   
>   * Based on the Payment method API response, pass the appropriate values for **payment_method_type** and **payment_method**  in transaction calls.
>     
>     * For example,- If "payment_method": "UPI_PAY", then pass UPI_PAY in transaction calls- If "payment_method": "UPI", then pass UPI in transaction calls along with txn_type as "UPI_PAY"




### **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 successfuland 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 successfuland 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: 123OTP: 123456

VPA: 9999999999@upi

**Paytm V2** 

Card Number: 4761360075863216Expiry: 12/27CVV: 123## Endpoints:
- Sandbox: https://payments.sandbox.juspay.in/txns

- Production: https://payments.juspay.in/txns

## Request Type: 
POST

## Headers:

#### Content-Type:
It should be **`application/x-www-form-urlencoded`** 
- Tags: string

#### x-routing-id:
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.

> **Warning**
> 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.


- Value: customer_1122
- Tags: String, Required
## Sample Code Snippets:
### Sample Request:

#### Request - Netbanking Code Snippet:

```request - netbanking
curl -X POST 'https://api.juspay.in/txns' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'x-routing-id: customer_1122'\
-d 'order_id=ORD1622098688' \
-d 'merchant_id=guest' \
-d 'payment_method_type=NB' \
-d 'payment_method=JP_HDFC' \
-d 'bank_ifsc=HDFC0000053' \
-d 'bank_account_number=50100013132000' \
-d 'bank_beneficiary_name=test' \
-d 'should_create_mandate=true' \
-d 'mandate_type=EMANDATE' \
-d 'format=json' \
-d 'redirect_after_payment=true'


```

#### Request - UPI Collect Old Code Snippet:

```request - upi collect old
curl -X POST 'https://api.juspay.in/txns' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'x-routing-id: customer_1122'\
-d 'order_id=234823498237423894273498' \
-d 'merchant_id=merchant' \
-d 'payment_method_type=UPI' \
-d 'payment_method=COLLECT' \
-d 'payment_channel=ANDROID_APP | ANDROID_WEB | IOS_APP | IOS_WEB | DESKTOP' \
-d 'upi_vpa=9483407288@paytm' \
-d 'redirect_after_payment=true' \
-d 'format=json' \
-d 'should_create_mandate=true' \
-d 'mandate_type=EMANDATE'

```

#### Request - UPI Intent Old Code Snippet:

```request - upi intent old
curl --location --request POST 'https://api.juspay.in/txns' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'x-routing-id: customer_1122'\
--data-urlencode 'order_id=DW-1dvn6nL9AD' \
--data-urlencode 'merchant_id=merchantId' \
--data-urlencode 'should_create_mandate=true' \
--data-urlencode 'payment_method_type=UPI' \
--data-urlencode 'payment_method=PAY' \
--data-urlencode 'txn_type=UPI_PAY' \
--data-urlencode 'sdk_params=true' \
--data-urlencode 'mandate_type=EMANDATE'\
--data-urlencode 'redirect_after_payment=true' \
--data-urlencode 'format=json' 

```

#### Request - UPI Collect New Code Snippet:

```request - upi collect new
curl --location 'https://api.juspay.in/txns' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic MzJCNDM3QTZCNUI0OEE5OUEwQTQ4ODU4RDNCQzU1Og==' \
--data-urlencode 'order_id=test_4_aj' \
--data-urlencode 'merchant_id=mandate_juspay' \
--data-urlencode 'payment_method_type=UPI' \
--data-urlencode 'payment_method=UPI_COLLECT' \
--data-urlencode 'payment_channel=ANDROID_APP | ANDROID_WEB | IOS_APP | IOS_WEB | DESKTOP' \
--data-urlencode 'redirect_after_payment=true' \
--data-urlencode 'format=json' \
--data-urlencode 'should_create_mandate=true' \
--data-urlencode 'mandate_type=EMANDATE'

```

#### Request - UPI Intent New Code Snippet:

```request - upi intent new
{"success":false,"message":"No Data found for the given path"}
```

#### Request - New Card Code Snippet:

```request - new card
curl -X POST 'https://api.juspay.io/txns' \
-H 'Content-Type: application/x-www-form-urlencoded'\
-H 'x-routing-id: customer_1122'\
-d 'order_id=152664118690577-910' \
-d 'merchant_id=guest' \
-d 'payment_method_type=CARD' \
-d 'payment_method=MASTERCARD' \
-d 'card_number=5243681100075285' \
-d 'card_exp_month=10' \
-d 'card_exp_year=20' \
-d 'name_on_card=name' \
-d 'card_security_code=111' \
-d 'save_to_locker=true' \
-d 'should_create_mandate=true' \
-d 'tokenize=true' \
-d 'format=json' \
-d 'redirect_after_payment=true' \
-d 'mandate_type= MANDATE'
```

#### Request - Saved Card Code Snippet:

```request - saved card
curl -X POST 'https://api.juspay.io/txns' \
-H 'Content-Type: application/x-www-form-urlencoded'\
-H 'x-routing-id: customer_1122'\
-d 'order_id=152664118690577-910' \
-d 'merchant_id=guest' \
-d 'payment_method_type=CARD' \
-d 'payment_method=MASTERCARD' \
-d 'card_security_code=111' \
-d 'card_token=:card_token' \
-d 'should_create_mandate=true' \
-d 'mandate_type=MANDATE' \
-d 'format=json' \
-d 'redirect_after_payment=true'

```

### Sample Response:

#### UPI:
```json
{
  "txn_uuid": "eulmyxQn6bQso6y1Syy",
  "txn_id": "merchant-234823498237423894273498-1",
  "status": "PENDING_VBV",
  "payment": {
    "authentication": {
      "url": "https://api.juspay.in/v2/pay/start/paypal/euxxxxQn6bQso6y1Syy",
      "method": "GET"
    }
  },
  "order_id": "234823498237423894273498"
}
```

#### Card:
```json
{
  "txn_uuid": "eulmyxQn6bQso6y1Syy",
  "txn_id": "merchant-234823498237423894273498-1",
  "status": "PENDING_VBV",
  "payment": {
    "authentication": {
      "url": "https://api.juspay.in/v2/pay/start/paypal/eulmycxxxxxso6y1Syy",
      "method": "GET"
    }
  },
  "order_id": "234823498237423894273498"
}
```

#### Net Banking:
```json
{
  "txn_uuid": "eul6Abg3131133ZYj3U",
  "txn_id": "ORD1622098688",
  "status": "PENDING_VBV",
  "payment": {
    "authentication": {
      "url": "https://api.juspay.in/v2/pay/start/guest/eul6xxx3xx1133ZYj3U",
      "method": "GET"
    }
  },
  "order_id": "ORD1622098688"
}
```

## Body Parameters:
### Parameters:

#### order_id:
- Description: Unique Identifier for the order.
- Tags: string, Mandatory

#### merchant_id:
- Description: ID of the **merchant_account**  that you hold with us.
- Tags: string, Mandatory

#### payment_method_type:
- Description: 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](https://www.npci.org.in/PDF/nach/live-members-e-mandates/Live-Banks-in-API-E-Mandate.pdf)
- Tags: string, Mandatory

#### payment_method:
- Description: 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](https://docs.juspay.in/api-reference/docs/express-checkout/payment-methods) for EMANDATE payment_method values.
- Tags: string, Mandatory

#### payment_channel:
- Description: The platform from which the transaction is initiated. This is used to share the payment channel with Juspay. Accepted values: `ANDROID_APP`, `ANDROID_WEB`, `IOS_APP`, `IOS_WEB`, `DESKTOP`.

> **Note**
> NPCI has mandated the removal of UPI Collect for most transactions by **January 31st, 2026** . While iOS and PACB flows are currently **exempt** , merchants must update their integration to pass the `payment_channel` in the Transaction API to Juspay. This ensures that valid, exempted transactions are correctly identified and processed.


- Value:  ANDROID_APP, ANDROID_WEB, IOS_APP, IOS_WEB, DESKTOP.
- Tags: String, Optional

#### upi_vpa:
- Description: **VPA**  to which the collect request must be sent.
- Tags: string

#### redirect_after_payment:
- Description: 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.
- Tags: boolean, Mandatory

#### format:
- Description: 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.
- Tags: string, Mandatory

#### mandate_type:
- Description: **EMANDATE**  in case of UPI/NB/Wallet.**MANDATE**  in case of card
- Tags: string, Mandatory

#### should_create_mandate:
- Description: This is a customer’s consent flag. This should be always **TRUE**  in case of a mandate transaction.
- Tags: boolean

#### bank_account_number:
- Description: Bank account number. Required for emandate/e-NACH.
- Tags: string

#### bank_ifsc:
- Description: Bank IFSC. Required for emandate/e-NACH.
- Tags: string

#### bank_beneficiary_name:
- Description: Account holder name. Should contain alphabetical characters only. Required for emandate/e-NACH.
- Tags: string

#### bank_account_type:
- Description: Possible values are **SAVINGS** , **CURRENT** . Default value will be “SAVINGS”
- Tags: string

#### card_token:
- Description: 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.
- Tags: string

#### card_number:
- Description: A valid credit/debit card number. Required when **mandate_type = MANDATE**  for a new card transaction.
- Tags: string

#### card_exp_year:
- Description: Represent the expiry year of the card as **YY**  (two digits only).Required when **mandate_type = MANDATE**  for a new card transaction.
- Tags: string

#### card_exp_month:
- Description: Represent the expiry month of the card as **MM**  (two digits only). Required when **mandate_type = MANDATE**  for a new card transaction.
- Tags: string

#### card_security_code:
- Description: CVV of the card. Usually three digits. Required when **mandate_type = MANDATE**  for a new card transaction.
- Tags: string

#### name_on_card:
- Description: Card holder name. Should contain **alphabetical characters**  only. Required when **mandate_type = MANDATE**  for a new card transaction.
- Tags: string

#### save_to_locker:
- Description: 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.
- Tags: string
## API Responses:
### 200:

#### UPI Collect/Card/NB:
- Value:
  - **Txn_uuid**:
    - Tags: String
  - **Txn_id**:
    - Description: Transaction ID for the payment attempt.
    - Tags: String
  - **Status**:
    - Description: Status of the transaction. PENDING_VBV indicates that the transaction requires authentication to complete.
    - Tags: String
  - **Payment**:
    - Value:
      - **Authentication**:
        - Value:
          - **Url**:
            - Description: URL to which the user has to be taken to for completing the authentication
            - Tags: String
          - **Method**:
            - Description: HTTP Method for authentication. Can be one of GET or POST
            - Tags: String
        - Tags: object
    - Tags: object
  - **Order_id**:
    - Description: Unique Identifier for the order.
    - Tags: String
- Tags: JSON

#### UPI Intent:
- Value:
  - **Txn_uuid**:
    - Tags: String
  - **Txn_id**:
    - Description: Transaction ID for the payment attempt.
    - Tags: String
  - **Status**:
    - Description: Status of the transaction. PENDING_VBV indicates that the transaction requires authentication to complete.
    - Tags: String
  - **Payment**:
    - Value:
      - **Sdk_params**:
        - Value:
          - **Uri_params**:
            - Value:
              - **Validitystart**:
                - Tags: String
              - **Validityend**:
                - Tags: String
              - **Tr**:
                - Tags: String
              - **Tn**:
                - Tags: String
              - **Tid**:
                - Tags: String
              - **Recur**:
                - Tags: String
              - **Purpose**:
                - Tags: String
              - **Pn**:
                - Tags: String
              - **Pa**:
                - Tags: String
              - **Orgid**:
                - Tags: String
              - **Mode**:
                - Tags: String
              - **Mn**:
                - Tags: String
              - **Mc**:
                - Tags: String
              - **Cu**:
                - Tags: String
              - **Amrule**:
                - Tags: String
              - **Am**:
                - Tags: String
            - Tags: object
          - **Scheme**:
            - Tags: String
        - Tags: object
      - **Authentication**:
        - Value:
          - **Url**:
            - Description: URL to which the user has to be taken to for completing the authentication
            - Tags: String
          - **Method**:
            - Description: HTTP Method for authentication. Can be one of GET or POST
            - Tags: String
        - Tags: object
    - Tags: Object
  - **Order_id**:
    - Tags: String
  - **Offer_details**:
    - Value:
      - **Offers**:
        - Tags: array
    - Tags: object
- Tags: JSON
