---
page_title: Mandate Registration
product: EC Headless
platform: Capacitor
page_source: https://juspay.io/in/docs/ec-headless/capacitor/mandates/mandate-registration-1
llms_txt: https://juspay.io/in/docs/llms.txt
product_llms_txt: https://juspay.io/in/docs/ec-headless/llms.txt
---


## Mandate Registration



To register mandate, pass mandate related parameters in the Create Order API to create a mandate registration order. Post transaction completion, use Order Status API and Webhooks to capture mandate registration details.

> **Note**
> CVV Less flow is not applicable for Mandate registration using saved cards & CVV is mandatory in these cases.




### Step 1.1. Create Order with Mandate Details


Pass mandate related parameters in [Create Order API](/ec-headless/android/mandates/mandates-create-order-api). Make sure all the required fields for mandates are passed correctly.




### Step 1.2. Render Checkout Screen with Mandate supported payment methods


Call the [Payment Methods API](/ec-headless/capacitor/mandates/payment-methods-api) keeping value for `options.add_emandate_payment_methods` as true to fetch payment methods that support mandates. Supported Payment Methods include UPI, Card, Wallet, eNACH with Card/NB/Aadhaar authentication and eMandate (Direct Bank NB Mandate).




### Step 1.3. Initiate Transaction


Follow [Step 5.2: Transaction Initiation](/ec-headless/capacitor/base-sdk-integration/making-a-payment#transaction-initiation) of the base integration process. Make sure to pass `shouldCreateMandate` as true in the process payload for the selected payment method in order to create a mandate registration. Additionally,

* For mandates on cards - Call [Card Info API](/ec-headless/capacitor/mandates/card-info-api) to validate if the customer's card is eligible for mandates.
* For mandates on UPI collect - Call [Verify VPA API](/ec-headless/capacitor/mandates/verify-vpa-api) to verify if the customer's VPA handle supports mandates.




### Step 1.4. Handle Payment Response with Mandate Details


Post the transaction is completed, follow [Step 6](/ec-headless/capacitor/base-sdk-integration/handling-payment-response) of the Base Integration to handle the trasaction response. Mandate status will be sent in the Order Status API and Webhook.

In order to retrieve the mandate details in the [Order Status API](https://juspay.io/in/docs/ec-headless/capacitor/mandates/mandate-order-status-api) and [Webhooks](/ec-headless/capacitor/base-sdk-integration/webhooks), you should consume the mandate block that comes in the response. Some important parameters to look out for include `mandate_id`, `mandate_status`, and `mandate_token`. Along with Order and Transaction related webhooks, you will also receive mandate-specific webhooks which are: `Mandate Created`, `Mandate Active` and `Mandate Failed` webhooks. These webhooks will provide you with additional information about the mandate. It's important to handle these webhooks to ensure that the mandate is properly managed.



## Sample Code Snippets:
### Requests:

#### Step 1: Call Create Mandate Order API Code Snippet:

```step 1: call create mandate order api
{"success":false,"message":"Failed to fetch snippet"}
```

#### Step 2: Call Payment Methods API Code Snippet:

```step 2: call payment methods api
{"success":false,"message":"Failed to fetch snippet"}
```

#### Step 3a: Call Card Info API Code Snippet:

```step 3a: call card info api
{"success":false,"message":"Failed to fetch snippet"}
```

#### Step 3b: Call Verify VPA API Code Snippet:

```step 3b: call verify vpa api
{"success":false,"message":"Failed to fetch snippet"}
```

#### Step 4: Get Mandate Order status Code Snippet:

```step 4: get mandate order status
{"success":false,"message":"Failed to fetch snippet"}
```

### Responses:

#### Step 1: Call Create Mandate Order API:
```plaintext
{"success":false,"message":"Failed to fetch snippet"}
```

#### Step 2: Call Payment Methods API:
```plaintext
{"success":false,"message":"Failed to fetch snippet"}
```

#### Step 3a: Call Card Info API:
```plaintext
{"success":false,"message":"Failed to fetch snippet"}
```

#### Step 3b: Call Verify VPA API:
```plaintext
{"success":false,"message":"Failed to fetch snippet"}
```

#### Step 4: Get Mandate Order status:
```plaintext
{"success":false,"message":"Failed to fetch snippet"}
```



---

## See Also

- [Mandate Integration Architecture](https://juspay.io/in/docs/ec-headless/capacitor/mandates/mandate-integration-architecture)
- [Mandate Execution](https://juspay.io/in/docs/ec-headless/capacitor/mandates/mandate-execution)
