Skip to main content
POST
/
subscriptions
/
{subscription_id}
/
manage
Manage Subscription
curl --request POST \
  --url https://sandbox.cashfree.com/pg/subscriptions/{subscription_id}/manage \
  --header 'Content-Type: application/json' \
  --header 'x-api-version: <x-api-version>' \
  --header 'x-client-id: <api-key>' \
  --header 'x-client-secret: <api-key>' \
  --data '
{
  "subscription_id": "Demo_Subscription",
  "action": "CHANGE_PLAN",
  "action_details": {
    "plan_id": "new-plan-1"
  }
}
'
{
  "authorisation_details": {
    "authorization_amount": 1,
    "authorization_amount_refund": false,
    "authorization_reference": "",
    "authorization_time": "2025-06-01T23:47:52+05:30",
    "authorization_status": "INITIALIZED",
    "payment_id": "97877",
    "payment_group": "enach",
    "payment_method": {
      "enach": {
        "channel": "link",
        "auth_mode": "NetBanking",
        "account_type": "SAVINGS",
        "account_number": "123456789012",
        "account_ifsc": "SBIN0000123",
        "account_holder_name": "John Doe",
        "account_bank_code": "SBIN"
      }
    }
  },
  "cf_subscription_id": "4",
  "customer_details": {
    "customer_name": "John Doe",
    "customer_email": "[email protected]",
    "customer_phone": "9900755700",
    "customer_bank_account_holder_name": "",
    "customer_bank_account_number": "",
    "customer_bank_ifsc": "",
    "customer_bank_code": "",
    "customer_bank_account_type": ""
  },
  "next_schedule_date": null,
  "plan_details": {
    "plan_id": "od-20k-plan",
    "plan_name": "On demand plan for 20000 max amount",
    "plan_type": "ON_DEMAND",
    "plan_max_cycles": 0,
    "plan_recurring_amount": 0,
    "plan_max_amount": 20000,
    "plan_interval_type": "",
    "plan_intervals": 0,
    "plan_currency": "INR",
    "plan_note": "",
    "plan_status": ""
  },
  "subscription_expiry_time": "2100-01-01T05:29:59+05:30",
  "subscription_first_charge_time": "",
  "subscription_id": "SUB0028",
  "subscription_meta": {
    "return_url": ""
  },
  "subscription_note": "",
  "subscription_session_id": "subs_token_tc9JCN4MzUIJ",
  "subscription_payment_splits": null,
  "subscription_status": "INITIALIZED",
  "subscription_tags": null
}
  • Customers won’t be notified about plan changes. The charge amount can’t exceed the maximum amount defined in the original plan.
  • The CHANGE_PLAN and PAUSE actions aren’t supported for On-Demand Subscriptions.

Authorizations

x-client-id
string
header
required

Client app ID. You can find your app id in the Merchant Dashboard.

x-client-secret
string
header
required

Client secret key. You can find your secret key in the Merchant Dashboard.

Headers

x-api-version
string
default:2025-01-01
required

API version to be used. Format is in YYYY-MM-DD. API version to be used

x-request-id
string

Request ID for the API call. Can be used to resolve tech issues. Communicate this in your tech related queries to Cashfree.

x-idempotency-key
string<UUID>

An idempotency key is a unique identifier you include with your API call. If the request fails or times out, you can safely retry it using the same key to avoid duplicate actions.

Path Parameters

subscription_id
string
required

Provide the SubscriptionId using which the subscription was created.

Body

application/json

Request body to manage a subscription.

Request body to manage a subscription.

subscription_id
string
required

The unique ID which was used to create subscription.

action
string
required

Action to be performed on the subscription. Possible values - CANCEL, PAUSE, ACTIVATE, CHANGE_PLAN.

action_details
object

Details of the action to be performed.

Response

Success response for managing a subscription.

authorisation_details
AuthorizationDetails · object

Details of the authorization done for the subscription. Returned in Get subscription and payments.

Example:
{
"authorization_amount": 1,
"authorization_amount_refund": false,
"authorization_reference": "",
"authorization_time": "2025-06-01T23:47:52+05:30",
"authorization_status": "INITIALIZED",
"payment_id": "97877",
"payment_group": "upi",
"payment_method": {
"upi": {
"channel": "collect",
"upi_id": "test@upi",
"upi_instrument": "upiInstrument",
"upi_instrument_number": "1234567890",
"upi_payer_account_number": "039861903074",
"upi_payer_ifsc": "SBIN0001234"
}
}
}
cf_subscription_id
string

Cashfree subscription reference number

customer_details
CustomerDetails · object

Subscription customer details.

Example:
{
"customer_name": "Test Cust",
"customer_email": "[email protected]",
"customer_phone": "9900755700",
"customer_bank_account_holder_name": "",
"customer_bank_account_number": "",
"customer_bank_ifsc": "",
"customer_bank_code": "",
"customer_bank_account_type": ""
}
plan_details
PlanEntity · object
Example:
{
"plan_currency": "INR",
"plan_id": "144436-03471-JD_TEST",
"plan_interval_type": "WEEK",
"plan_intervals": 1,
"plan_max_amount": 1,
"plan_max_cycles": 4,
"plan_name": "abscede",
"plan_note": "lsdkdn",
"plan_recurring_amount": 1,
"plan_status": "ACTIVE",
"plan_type": "PERIODIC"
}
subscription_expiry_time
string<ISO8601>

Time at which the subscription will expire. We store timestamps in IST.

Example:

"2025-06-01T10:20:12+05:30"

subscription_first_charge_time
string<ISO8601>

Time at which the first charge will be made for the subscription. Applicable only for PERIODIC plans. Cashfree stores timestamps in IST.

Example:

"2025-06-01T10:20:12+05:30"

subscription_id
string

A unique ID passed by merchant for identifying the subscription.

subscription_meta
object

Subscription metadata.

subscription_note
string

Note for the subscription.

subscription_session_id
string

Subscription Session Id.

subscription_payment_splits
SubscriptionPaymentSplitItem · object[]

Payment splits for the subscription.

subscription_status
string

Status of the subscription. For more details, see Subscription Lifecycle.

subscription_tags
object

Tags for the subscription.

next_schedule_date
string<ISO8601>

The date on which the next payment is scheduled to be processed. Cashfree stores timestamps in IST. For ON_DEMAND plans this will be null .

Example:

"2025-06-01T10:20:12+05:30"