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

> Use the Cashfree Subscriptions APIs to manage recurring payments, mandate authorisation, charge schedules, and payment instruments at scale across India.

The Subscription APIs provide RESTful endpoints for managing recurring payments, customer mandates, and automated billing schedules. These APIs support both sandbox testing and production environments with consistent authentication and error handling across all endpoints. Real-time webhooks ensure seamless integration for subscription lifecycle events, payment notifications, and mandate status updates.

## API endpoints

| Environment    | Base URL                                                           |
| :------------- | :----------------------------------------------------------------- |
| Test           | [https://sandbox.cashfree.com/pg](https://sandbox.cashfree.com/pg) |
| Production     | [https://api.cashfree.com/pg](https://api.cashfree.com/pg)         |
| Latest version | v5, 2025-01-01                                                     |

## Authentication

All Subscription APIs require authentication. Refer to the [Authentication](/api-reference/authentication) guide for detailed information on API authentication for merchants and partners.

## Subscription APIs

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

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

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Define subscription terms including billing frequency, amount, and recurring payment parameters.
              </p>
            </div>
          </div>

          ***

          <div class="">
            <div>
              <a href="/docs/api-reference/payments/latest/subscription/plans/fetch" class="text-cf bold">Fetch Plan</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Retrieve details of an existing subscription plan using plan ID.
              </p>
            </div>
          </div>
        </div>
      </div>

      <div class="col-md-6">
        <div class="">
          <h4 class="text-gray-800 semibold dark:text-gray-500 pb-4">Mandate (Subscription) management</h4>

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

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Create a subscription mandate with customer details and payment method authorisation.
              </p>
            </div>
          </div>

          ***

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

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Retrieve subscription details using subscription ID or subscription reference ID.
              </p>
            </div>
          </div>

          ***

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

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Update subscription status to activate, pause, or cancel a customer mandate.
              </p>
            </div>
          </div>

          ***

          <div class="">
            <div>
              <a href="/docs/api-reference/payments/latest/subscription/mandate/physical-nach-mandate" class="text-cf bold">Upload Physical NACH Form</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Upload physical NACH registration forms for signature-based mandate creation.
              </p>
            </div>
          </div>

          ***

          <div class="">
            <div>
              <a href="/docs/api-reference/payments/latest/subscription/mandate/payment-methods" class="text-cf bold">Get Payment Methods</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Fetch available payment methods and configurations for subscription creation.
              </p>
            </div>
          </div>

          ***

          <div class="">
            <div>
              <a href="/docs/api-reference/payments/latest/subscription/mandate/generate-transaction-summary" class="text-cf bold">Generate Transaction Summary</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Generate downloadable transaction summary reports for a subscription.
              </p>
            </div>
          </div>
        </div>
      </div>
    </div>
  </Tab>

  <Tab title="Payments 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 management</h4>

          <div class="">
            <div>
              <a href="/docs/api-reference/payments/latest/subscription/payment/raise" class="text-cf bold">Raise Payment</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Initiate a recurring payment charge against an active subscription mandate.
              </p>
            </div>
          </div>

          ***

          <div class="">
            <div>
              <a href="/docs/api-reference/payments/latest/subscription/payment/create-controlled-notification" class="text-cf bold">Create Controlled Notification</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Initiate a merchant-controlled payment notification for an on-demand subscription mandate.
              </p>
            </div>
          </div>

          ***

          <div class="">
            <div>
              <a href="/docs/api-reference/payments/latest/subscription/payment/fetch-controlled-notification" class="text-cf bold">Fetch Controlled Notification</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Retrieve the latest status and identifiers for a controlled payment notification attempt.
              </p>
            </div>
          </div>

          ***

          <div class="">
            <div>
              <a href="/docs/api-reference/payments/latest/subscription/payment/fetch-controlled-notifications" class="text-cf bold">Fetch All Controlled Notifications</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Retrieve status, timestamps, and identifiers for all controlled payment notification attempts for a subscription payment.
              </p>
            </div>
          </div>

          ***

          <div class="">
            <div>
              <a href="/docs/api-reference/payments/latest/subscription/payment/create-controlled-execution" class="text-cf bold">Create Controlled Execution</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Trigger a merchant-controlled charge execution after a successful controlled notification.
              </p>
            </div>
          </div>

          ***

          <div class="">
            <div>
              <a href="/docs/api-reference/payments/latest/subscription/payment/fetch-controlled-execution" class="text-cf bold">Fetch Controlled Execution</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Retrieve execution status, attempt timestamps, and failure details for a controlled charge.
              </p>
            </div>
          </div>

          ***

          <div class="">
            <div>
              <a href="/docs/api-reference/payments/latest/subscription/payment/fetch-controlled-executions" class="text-cf bold">Fetch All Controlled Executions</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Retrieve status, attempt timestamps, and failure details for all controlled execution attempts for a subscription payment.
              </p>
            </div>
          </div>

          ***

          <div class="">
            <div>
              <a href="/docs/api-reference/payments/latest/subscription/payment/fetch" class="text-cf bold">Fetch Payment</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Retrieve details of a specific subscription payment using payment ID.
              </p>
            </div>
          </div>

          ***

          <div class="">
            <div>
              <a href="/docs/api-reference/payments/latest/subscription/payment/manage" class="text-cf bold">Manage Payment</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Retry failed payments or update payment status for subscription charges.
              </p>
            </div>
          </div>

          ***

          <div class="">
            <div>
              <a href="/docs/api-reference/payments/latest/subscription/payment/fetch-payments-for-mandate" class="text-cf bold">Fetch Payments for Mandate</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Retrieve all payment transactions associated with a specific subscription.
              </p>
            </div>
          </div>
        </div>
      </div>

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

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

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Learn about the refund process and workflow for subscription payments.
              </p>
            </div>
          </div>

          ***

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

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Initiate full or partial refunds for subscription payments using payment ID.
              </p>
            </div>
          </div>

          ***

          <div class="">
            <div>
              <a href="/docs/api-reference/payments/latest/subscription/refund/fetch" class="text-cf bold">Fetch Refund</a>

              <p style={{marginBottom: '1rem'}} class="text-gray-500 dark:text-gray-500">
                Retrieve refund details and status using refund ID or payment ID.
              </p>
            </div>
          </div>
        </div>
      </div>
    </div>
  </Tab>
</Tabs>

## Supported payment methods

Cashfree Subscriptions supports the following payment methods for recurring payments:

* **Bank account (e-Mandate)**: Net banking, debit card, or Aadhaar-based authorisation with up to ₹1,00,00,000 mandate amount
* **Bank account (Physical mandate)**: Signature-based NACH mandate for accounts without digital access
* **UPI Autopay**: Recurring payments via UPI applications with ₹15,000-₹1,00,000 limits based on authentication
* **Standing Instructions (SI) on cards**: Credit or debit cards (Indian and International) with flexible amount limits

For detailed payment method information, refer to the [Supported Payment Methods](/payments/subscription/payment-modes) guide.

## Getting started

Complete the following steps to set up subscriptions using Cashfree APIs:

1. **Create a Plan** (optional): Define your subscription terms including billing frequency and amount
2. **Create a Subscription**: Set up a mandate with customer details and payment method
3. **Customer Authorisation**: Customer authorises the recurring payment through their chosen method
4. **Raise Payments**: Initiate recurring charges as per the subscription schedule
5. **Manage Subscriptions**: Update subscription status, handle payment retries, and process refunds

For a comprehensive integration guide, visit the [Subscription Introduction](/payments/subscription/introduction) page.

<div class="hidden" data-table-of-contents="bottom">
  <p class="mt-4 font-medium flex items-center gap-2 related-docs-heading">
    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="w-4 h-4">
      <path d="M3 4h7a2 2 0 0 1 2 2v13a2 2 0 0 0-2-2H3z" />

      <path d="M21 4h-7a2 2 0 0 0-2 2v13a2 2 0 0 1 2-2h7z" />
    </svg>

    <span>Related topics</span>
  </p>

  <ul>
    <li><a href="/docs/payments/subscription/introduction">Subscription Introduction</a></li>
    <li><a href="/docs/payments/subscription/payment-modes">Supported Payment Methods</a></li>
    <li><a href="/docs/payments/subscription/create">Create Subscription Guide</a></li>
    <li><a href="/docs/payments/subscription/faq">Subscription FAQs</a></li>
  </ul>
</div>
