> ## Documentation Index
> Fetch the complete documentation index at: https://www.cashfree.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Explore Cashfree Payment Gateway APIs for orders, payments, refunds, and more.

Cashfree's RESTful Payment Gateway API provides a robust and flexible interface for integrating payment solutions into your applications. The API uses predictable resource-oriented URLs, accepts JSON request bodies, returns JSON-encoded responses, and supports standard HTTP response codes and authentication. SDKs in popular programming languages help you integrate faster with pre-built handling for authentication, request or response formatting, and error handling.

<Tip>
  We strongly recommend using [SDKs](/docs/api-reference/payments/sdk) to streamline the integration process and ensure optimal performance and security.
</Tip>

## What's new in v2026-01-01

Cashfree Payments API v2026-01-01 is now available. This release includes the following changes:

* A new [Order Pay Authorise Only](/docs/api-reference/payments/latest/payments/order-pay-authorise-only) endpoint for authorising card payments without immediate capture.
* A new controlled subscription payment flow for UPI mandates, with six dedicated APIs for pre-debit notification and charge execution.
* New fields and parameters on Create Order, Order Pay, Create Payment Link, and Get All Settlements.
* A restructured Create Subscription request body, two new fields, and one removed field.
* Breaking response schema changes to settlement endpoints and a removed field on Create Order. Review your integration before upgrading.
* A new NuGet package ID for the .NET SDK: `cashfree-dotnet-pg` from v6.0.7. The previous `cashfree_pg` package is no longer updated.

Expand the sections below for more details:

<AccordionGroup>
  <Accordion title="New endpoint: Order Pay Authorise Only">
    A new endpoint, [Order Pay Authorise Only](/docs/api-reference/payments/latest/payments/order-pay-authorise-only), is available for merchants with the `AUTHORIZE_ONLY` flag enabled on their account. Use it to authorise a card payment without capturing it immediately.

    The request requires a `payment_session_id` and an `authorization_data` object containing the following 3DS authentication fields:

    | Field                             | Description                                       |
    | --------------------------------- | ------------------------------------------------- |
    | `authentication_token`            | 3DS authentication token                          |
    | `directory_server_transaction_id` | Directory server transaction ID from the 3DS flow |
    | `three_ds_server_transaction_id`  | 3DS server transaction ID                         |
    | `eci`                             | Electronic Commerce Indicator value               |
    | `token_number`                    | Network token number                              |
    | `token_expiry_year`               | Token expiry year                                 |
    | `token_expiry_month`              | Token expiry month                                |
    | `token_cryptogram`                | Cryptogram for the token                          |
    | `transaction_type`                | One of `ALT_ID`, `TOKEN`, or `APPLE_PAY`          |

    The endpoint returns a `PaymentEntity` on success and requires no authentication (`security: []`).
  </Accordion>

  <Accordion title="New: controlled subscription payment flow">
    v2026-01-01 introduces a controlled payment flow for UPI mandate subscriptions, giving you explicit control over when your customers are notified and when the debit is executed. This is a significant change if you need to comply with NPCI pre-debit notification rules.

    <Note>The controlled flow supports UPI mandates only. eNACH and Physical NACH (PNACH) mandates are not supported. Card support is planned for a future release.</Note>

    **How it works**

    The controlled flow replaces the automatic charge trigger with a two-step process you drive:

    1. **Send a pre-debit notification**: notify your customer of the upcoming charge amount before the debit window opens.
    2. **Execute the charge**: trigger the mandate debit after the compliance window elapses. The debit amount must exactly match the notified amount; a mismatch causes the issuing bank to decline the transaction.

    **APIs**

    | API                                                                                                                      | Method                                                                                | Description                                             |
    | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- | ------------------------------------------------------- |
    | [Create Controlled Notification](/docs/api-reference/payments/latest/subscription/payment/create-controlled-notification)     | `POST /subscriptions/pay/controlled/notify-mandate`                                   | Send a pre-debit notification to the customer           |
    | [Fetch Controlled Notification](/docs/api-reference/payments/latest/subscription/payment/fetch-controlled-notification)       | `GET /subscriptions/payments/{payment_id}/controlled/notifications/{notification_id}` | Retrieve a single notification                          |
    | [Fetch All Controlled Notifications](/docs/api-reference/payments/latest/subscription/payment/fetch-controlled-notifications) | `GET /subscriptions/payments/{payment_id}/controlled/notifications`                   | List all notifications for a payment                    |
    | [Create Controlled Execution](/docs/api-reference/payments/latest/subscription/payment/create-controlled-execution)           | `POST /subscriptions/pay/controlled/execute-mandate`                                  | Trigger the mandate debit after the notification window |
    | [Fetch Controlled Execution](/docs/api-reference/payments/latest/subscription/payment/fetch-controlled-execution)             | `GET /subscriptions/payments/{payment_id}/controlled/executions/{execution_id}`       | Retrieve a single execution                             |
    | [Fetch All Controlled Executions](/docs/api-reference/payments/latest/subscription/payment/fetch-controlled-executions)       | `GET /subscriptions/payments/{payment_id}/controlled/executions`                      | List all execution attempts for a payment               |
  </Accordion>

  <Accordion title="New features on existing endpoints">
    **Client environment headers: Order Pay and Get Eligible Payment Methods**

    [Order Pay](/docs/api-reference/payments/latest/payments/order-pay) and [Get Eligible Payment Methods](/docs/api-reference/payments/latest/eligibility/get-eligible-payment-methods) now formally accept four optional device-context headers required for NPCI compliance. These headers were required in practice; they are now part of the spec with full validation.

    | Header                    | Accepted values                                         | Requirement                                 |
    | ------------------------- | ------------------------------------------------------- | ------------------------------------------- |
    | `x-client-device`         | `mobile`, `desktop`, `tablet`                           | Required                                    |
    | `x-client-os`             | `android`, `ios`, `windows`, `macos`, `linux`, `others` | Required                                    |
    | `x-client-browser`        | `safari`, `chrome`, `firefox`, `edge`, `others`         | Required                                    |
    | `x-client-rendering-type` | `mweb`, `webview`, `native`                             | Required when `x-client-device` is `mobile` |

    ***

    **Offer filters and UPI app priority: Create Order**

    Two new optional fields are available on `order_meta` in [Create Order](/docs/api-reference/payments/latest/orders/create-order):

    * `offer_filters`: explicitly allow or deny specific offers for an order. Set `action` to `ALLOW` or `DENY` and provide a list of up to 25 offer values.
    * `upi_app_priority`: control the display order of UPI apps on your checkout page. Accepted values: `gpay`, `phonepe`, `paytm`, `navi`, `cred`, `supermoney`, `amazonpay`, `bhim`, `mobikwik`, `airtel`, `popclub`, `kiwi`.

    ***

    **Settlement status filter: Get All Settlements**

    [Get All Settlements](/docs/api-reference/payments/latest/settlement-reconciliation/get-all-settlements) now accepts a new optional filter field `filters.settlement_status`. Pass an array of one or more of the following values to retrieve settlements by processing state:

    * `SUCCESS`
    * `PENDING`
    * `PENDING_WITH_CASHFREE`
    * `PENDING_WITH_BANK`
    * `FAILED`

    ***

    **Subscription support: Payment Links**

    [Create Payment Link](/docs/api-reference/payments/latest/payment-links/create-payment-link) now accepts an optional `subscription` field to create recurring payment links backed by a plan. The plan is defined inline with the following fields:

    | Field                | Required | Description                            |
    | -------------------- | -------- | -------------------------------------- |
    | `plan_id`            | Yes      | Unique identifier for the plan         |
    | `plan_name`          | Yes      | Display name of the plan               |
    | `plan_type`          | Yes      | Type of plan                           |
    | `plan_max_amount`    | Yes      | Maximum charge amount per cycle        |
    | `plan_currency`      | No       | Currency code (default: INR)           |
    | `plan_amount`        | No       | Fixed amount per cycle                 |
    | `plan_max_cycles`    | No       | Maximum number of billing cycles       |
    | `plan_intervals`     | No       | Number of intervals per cycle          |
    | `plan_interval_type` | No       | Interval unit (day, week, month, year) |
    | `plan_note`          | No       | Internal note for the plan             |

    Additional subscription-level fields: `authorization_amount`, `authorization_amount_refund` (boolean), `subscription_expiry_time`, and `subscription_first_charge_time`.

    ***

    **PAR field: card payments**

    `PayOrderRequest.payment_method.card` now accepts a `par` field (Payment Account Reference received from the card network). This is relevant for token-based and network-tokenised card flows.
  </Accordion>

  <Accordion title="Breaking changes: response schema updates">
    The following endpoints return a different response schema in v2026-01-01. Review and update your integration before switching to this version.

    <Warning>
      These are breaking changes. Existing code that reads from the previous response structure will fail silently or throw errors after upgrading to `x-api-version: 2026-01-01`.
    </Warning>

    **[Get Settlements by Order ID](/docs/api-reference/payments/latest/settlements/get-settlements-by-order-id): nested response object**

    Previously returned a flat `SettlementEntity` object. Now returns `OrderSettlementEntity`, a nested object structured as follows:

    | Sub-object           | Key fields                                                                                      |
    | -------------------- | ----------------------------------------------------------------------------------------------- |
    | `order_details`      | `order_id`, `order_amount`, `order_currency`                                                    |
    | `payment_details`    | `cf_payment_id`, `payment_amount`, `service_charge`, `service_tax`, `charge_type`, `charged_to` |
    | `customer_details`   | `customer_id`, `customer_email`, `customer_phone`                                               |
    | `settlement_details` | `cf_settlement_id`, `settlement_amount`, `settlement_utr`, `settlement_status`, `settled_on`    |

    Update any code that reads `cf_payment_id`, `service_charge`, `settlement_amount`, or other fields directly from the response root.

    ***

    **[Get All Settlements](/docs/api-reference/payments/latest/settlement-reconciliation/get-all-settlements): paginated response**

    Previously returned a single flat settlement record. Now returns a paginated `GetAllSettlementsResponse`:

    ```json theme={"dark"}
    {
      "cursor": "string",
      "limit": 10,
      "data": [
        {
          "cf_settlement_id": "string",
          "status": "SUCCESS | PENDING | PENDING_WITH_CASHFREE | PENDING_WITH_BANK | FAILED",
          "settlement_utr": "string",
          "payment_from": "date",
          "payment_till": "date",
          "settlement_initiated_on": "date",
          "settlement_processed_on": "date",
          "payment_amount": 0,
          "pg_service_charge": 0,
          "pg_service_tax": 0,
          "adjustment": 0,
          "settlement_charge": 0,
          "settlement_tax": 0,
          "split_service_charge": 0,
          "split_service_tax": 0,
          "vendor_commission": 0,
          "amount_settled": 0,
          "charge_type": "PREPAID | POSTPAID | SURCHARGE | PREPAID_SURCHARGE | POSTPAID_SURCHARGE",
          "settlement_type": "string"
        }
      ]
    }
    ```

    Update any code that reads from the flat settlement response to iterate over `data` and handle pagination using `cursor`.

    ***

    **[Mark Order for Settlement](/docs/api-reference/payments/latest/settlements/mark-order-for-settlement): HTTP status code and response body changed**

    Previously returned HTTP `202` with an empty `{}` body. Now returns HTTP `200` with the following body:

    ```json theme={"dark"}
    {
      "order_id": "string",
      "meta_data": {
        "cbriks_id": "string",
        "settlement_date": "date"
      }
    }
    ```

    Update any code that checks for a `202` status or expects an empty response body.

    ***

    **[Get Order Extended](/docs/api-reference/payments/latest/orders/get-order-extended): `offer` renamed to `offers` (array)**

    The `offer` field (a single object of type `OfferExtendedDetails`) in `OrderExtendedDataEntity` is now `offers` (an array of `OfferExtendedDetails` objects). Update field references from `offer` to `offers` and handle the array structure.
  </Accordion>

  <Accordion title="Removed fields">
    The following fields have been removed in v2026-01-01. Requests that include these fields will either be ignored or return a validation error.

    | Field                     | Endpoint                                                           | Reason                                                                                                                             |
    | ------------------------- | ------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
    | `CreateOrderRequest.bbps` | [Create Order](/docs/api-reference/payments/latest/orders/create-order) | The BBPS-specific fields `bill_fetch_ref_id`, `biller_id`, and `agent_id` are no longer accepted on the Create Order request body. |
  </Accordion>

  <Accordion title=".NET SDK: new NuGet package">
    The .NET SDK is now published under a new NuGet package ID starting from version 6.0.7.

    **Install the new package:**

    ```bash theme={"dark"}
    dotnet add package cashfree-dotnet-pg
    ```

    |              | Package              | Version                                  |
    | ------------ | -------------------- | ---------------------------------------- |
    | **New**      | `cashfree-dotnet-pg` | 6.0.7 and above                          |
    | **Previous** | `cashfree_pg`        | Final version: 5.0.6 (no longer updated) |

    No code changes are required beyond updating the package reference. All future .NET SDK releases will be published only under `cashfree-dotnet-pg`. For the full version history, see the [.NET SDK changelog](/docs/payments/developers/changelog/dotnet).
  </Accordion>

  <Accordion title="Updates to Subscription APIs">
    The [Subscription APIs](/docs/api-reference/payments/latest/subscription/overview) in v2026-01-01 include a restructured request body, two new request fields, and one removed field on [Create Subscription](/docs/api-reference/payments/latest/subscription/create-subscription).

    **Restructured request body**

    The `CreateSubscriptionRequest` previously used a flat structure where all fields were at the top level. In v2026-01-01, fields are grouped into four nested objects for clarity and consistency:

    | Object                  | Fields                                                                                                                 |
    | ----------------------- | ---------------------------------------------------------------------------------------------------------------------- |
    | `customer_details`      | `customer_name`, `customer_email`, `customer_phone`, bank account fields                                               |
    | `plan_details`          | `plan_id`, `plan_name`, `plan_type`, `plan_amount`, `plan_max_amount`, `plan_currency`, and related plan configuration |
    | `authorization_details` | `authorization_amount`, `authorization_amount_refund`, `payment_methods`                                               |
    | `subscription_meta`     | `return_url`, `notification_channel`, `session_id_expiry`                                                              |

    <Warning>
      This is a breaking change. Update your Create Subscription integration to use the new nested structure before switching to `x-api-version: 2026-01-01`.
    </Warning>

    ***

    **New field: `subscription_tags`**

    `CreateSubscriptionRequest` now accepts `subscription_tags`, a free-form object for attaching up to 10 custom key-value string entries to a subscription. A commonly used key is `psp_note`, which sets the note displayed to the customer in their payment service provider app or on their bank statement. When using `psp_note`, the value must be between 1 and 255 characters.

    ***

    **New field: `subscription_payment_splits`**

    `CreateSubscriptionRequest` now accepts `subscription_payment_splits`, an array of vendor split items. Each item specifies a `vendor_id` and a `percentage`, allowing subscription charges to be distributed across multiple vendors at the time of collection.

    ***

    **Removed field: `customer_bank_account_holder_name`**

    The `customer_bank_account_holder_name` field has been removed from `CreateSubscriptionRequest`. This field is no longer accepted in v2026-01-01.

    ***

    **New: webhook signature verification**

    A dedicated [Signature Verification](/docs/api-reference/payments/latest/subscription/webhook-signature) page is now available for subscription webhooks, covering how to validate the `x-webhook-signature` header to confirm event authenticity before processing.

    For the controlled subscription payment flow, see the [New: controlled subscription payment flow](#) section above.
  </Accordion>
</AccordionGroup>

<Note>
  To use this version, set `x-api-version: 2026-01-01` in all request headers. If you are using the previous version, see the [v2025-01-01 API reference](/docs/api-reference/payments/previous/v2025-01-01/overview).
</Note>

<Tabs>
  <Tab title="Orders and payments">
    <div class="row relative lowmhr">
      <div class="col-md-6">
        <div class="">
          <h4 class="text-gray-800 semibold dark:text-gray-500 pb-4">Orders</h4>

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/orders/create-order" class="text-cf bold">Create Order</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Create an order to collect payments from your customers.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/orders/get-order" class="text-cf bold">Get Order</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Get status and details of an order.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/orders/terminate-order" class="text-cf bold">Terminate Order</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Terminate an order that's no longer needed.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/orders/get-order-extended" class="text-cf bold">Get Order Extended</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Fetch extended data for an order.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/orders/update-order-extended" class="text-cf bold">Update Order Extended</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Update extended data for an order.
              </p>
            </div>
          </div>

          <hr />

          <h4 class="text-gray-800 semibold dark:text-gray-500 pb-4">Customers</h4>

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/customers/create-customer-at-cashfree" class="text-cf bold">Create Customer</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Create a customer for Token Vault and saved instruments.
              </p>
            </div>
          </div>
        </div>
      </div>

      <div class="col-md-6">
        <div class="">
          <h4 class="text-gray-800 semibold dark:text-gray-500 pb-4">Payments</h4>

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/payments/order-pay" class="text-cf bold">Pay</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Initiate a payment for an order using the chosen payment method.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/payments/submit-or-resend-otp" class="text-cf bold">Authenticate</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Submit or resend OTP in the native OTP flow for card payments.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/payments/preauthorisation" class="text-cf bold"> Authorise</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Capture or void a pre-authorised transaction.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/payments/get-payment-by-id" class="text-cf bold">Get Payment</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Get status and details of a single payment.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/payments/get-payments-for-an-order" class="text-cf bold">Get Payments for Order</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Get status and details of all payments for an order.
              </p>
            </div>
          </div>
        </div>
      </div>
    </div>
  </Tab>

  <Tab title="Links and refunds">
    <div class="row relative lowmhr">
      <div class="col-md-6">
        <div class="">
          <h4 class="text-gray-800 semibold dark:text-gray-500 pb-4">Payment links</h4>

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/payment-links/create-payment-link" class="text-cf bold">Create Payment Link</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Create a shareable payment link for collecting payments.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/payment-links/fetch-payment-link-details" class="text-cf bold">Get Payment Link</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Get details of a payment link.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/payment-links/cancel-payment-link" class="text-cf bold">Cancel Payment Link</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Cancel an active payment link.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/payment-links/get-orders-for-a-payment-link" class="text-cf bold">Get Orders for Link</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Fetch orders associated with a payment link.
              </p>
            </div>
          </div>
        </div>
      </div>

      <div class="col-md-6">
        <div class="">
          <h4 class="text-gray-800 semibold dark:text-gray-500 pb-4">Refunds</h4>

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/refunds/create-refund" class="text-cf bold">Create Refund</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Create a refund for a payment (full or partial).
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/refunds/get-refund" class="text-cf bold">Get Refund</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Get status and details of a refund.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/refunds/get-all-refunds-for-an-order" class="text-cf bold">Get Refunds for Order</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Get all refunds for an order.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/refunds/update-refund" class="text-cf bold">Update Refund</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Update refund details or speed.
              </p>
            </div>
          </div>
        </div>
      </div>
    </div>
  </Tab>

  <Tab title="Vault and offers">
    <div class="row relative lowmhr">
      <div class="col-md-6">
        <div class="">
          <h4 class="text-gray-800 semibold dark:text-gray-500 pb-4">Token Vault</h4>

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/token-vault/fetch-cryptogram-for-a-saved-card-instrument" class="text-cf bold">Generate Cryptogram</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Generate a cryptogram for a saved card to process a payment.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/token-vault/fetch-all-saved-card-instrument" class="text-cf bold">Get All Saved Cards</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Fetch all saved card instruments for a customer.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/token-vault/fetch-specific-saved-card-instrument" class="text-cf bold">Get Saved Card</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Get details of a single saved card instrument.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/token-vault/delete-saved-card-instrument" class="text-cf bold">Delete Saved Card</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Delete a saved card instrument for a customer.
              </p>
            </div>
          </div>
        </div>
      </div>

      <div class="col-md-6">
        <div class="">
          <h4 class="text-gray-800 semibold dark:text-gray-500 pb-4">Eligibility and offers</h4>

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/eligibility/get-eligible-payment-methods" class="text-cf bold">Get Eligible Payment Methods</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Fetch payment methods eligible for an order and account.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/eligibility/get-eligible-cardless-emi-payment-methods-for-a-customer-on-an-order" class="text-cf bold">Get Eligible Cardless EMI</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Get eligible cardless EMI options for a customer and order.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/eligibility/get-eligible-paylater-for-a-customer-on-an-order" class="text-cf bold">Get Eligible Paylater</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Get eligible paylater options for a customer and order.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/eligibility/get-eligible-offers-for-an-order" class="text-cf bold">Get Eligible Offers</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Get offers applicable to an order (for example, no-cost EMI).
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/offers/create-offer" class="text-cf bold">Create Offer</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Create a new offer (card, netbanking, EMI, etc.).
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/offers/get-offer-by-id" class="text-cf bold">Get Offer</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Get details of an offer.
              </p>
            </div>
          </div>
        </div>
      </div>
    </div>
  </Tab>

  <Tab title="Split and settlements">
    <div class="row relative lowmhr">
      <div class="col-md-6">
        <div class="">
          <h4 class="text-gray-800 semibold dark:text-gray-500 pb-4">Easy-Split</h4>

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/split/easy-split-overview" class="text-cf bold">Easy-Split Overview</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Overview of split payments and vendor settlements.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/split/end-points" class="text-cf bold">Easy-Split Endpoints</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                API reference for split and vendor operations.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/easy-split/create-vendor" class="text-cf bold">Create Vendor</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Create a vendor for receiving split payments.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/easy-split/create-static-split-configuration" class="text-cf bold">Static Split</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Configure static split rules for orders.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/easy-split/split-after-payment" class="text-cf bold">Split After Payment</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Create split for an order after payment is received.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/easy-split/create-on-demand-transfer" class="text-cf bold">On-Demand Transfer</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Transfer vendor share on demand.
              </p>
            </div>
          </div>
        </div>
      </div>

      <div class="col-md-6">
        <div class="">
          <h4 class="text-gray-800 semibold dark:text-gray-500 pb-4">Settlements and more</h4>

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/settlement-reconciliation/get-all-settlements" class="text-cf bold">Get Settlements</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Fetch settlement details and history.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/settlements/mark-order-for-settlement" class="text-cf bold">Mark Order for Settlement</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Mark an order for instant settlement.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/disputes/get-disputes-by-order-id" class="text-cf bold">Get Disputes by Order</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Fetch disputes associated with an order.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/subscription/overview" class="text-cf bold">Subscription Overview</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Recurring payments: plans, mandates, and payment flows.
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/subscription/create-subscription" class="text-cf bold">Create Subscription</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Create a subscription with mandate (UPI, card, E-Mandate).
              </p>
            </div>
          </div>

          <hr />

          <div class="">
            <div>
              <a href="/docs/docs/api-reference/payments/latest/offline-payments/create-terminal" class="text-cf bold">softPOS: Create Terminal</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Create a softPOS terminal for in-person card acceptance.
              </p>
            </div>
          </div>
        </div>
      </div>
    </div>
  </Tab>
</Tabs>

The videos below walk through testing Payment Gateway APIs in Postman and using this API reference.

<Columns cols={2}>
  <div>
    <Frame>
      <iframe width="100%" height="315" src="https://www.youtube.com/embed/OkzoR7K3yxw" title="Testing in Postman" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen style={{ maxWidth: '560px' }} />
    </Frame>

    <p style={{ textAlign: 'center', fontSize: '14px', marginTop: '8px', color: '#666' }}>
      Testing APIs in Postman
    </p>
  </div>

  <div>
    <Frame>
      <iframe width="100%" height="315" src="https://www.youtube.com/embed/tqcOHCUZgOM" title="Documentation walkthrough" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen style={{ maxWidth: '560px' }} />
    </Frame>

    <p style={{ textAlign: 'center', fontSize: '14px', marginTop: '8px', color: '#666' }}>
      Documentation Walkthrough
    </p>
  </div>
</Columns>

## Getting started

Use the following resources to begin implementing Payment Gateway APIs:

<CardGroup cols={2}>
  <Card title="Payment SDK" href="/docs/api-reference/payments/sdk" icon="puzzle-piece">
    Integrate the Payment Gateway with web, mobile, and server SDKs for orders, checkout, and tokenisation
  </Card>

  <Card title="API rate limits" href="/docs/api-reference/payments/rate-limits" icon="gauge-high">
    View default limits per minute, monitor usage on the dashboard, and request higher limits when needed
  </Card>
</CardGroup>
