API Test Keys
Cancel an Update
POST
/v1/subscriptions/:id/cancel_scheduled_changes
Click to copy
Use this endpoint to cancel a pending update. This happens when a Subscription is updated using the end of cycle
option for the schedule_change_at
parameter.
Example
A Subscription is to be charged on the 1st of every month. It was charged on January 01, 2021. On January 15, 2021, it was updated using the end of cycle
option for the schedule_change_at
parameter. In this case, the update goes live after the Subscription is charged on February 01, 2021. Such updates are said to be scheduled updates and can be cancelled using this API.
Handy Tips
You can only cancel a pending update for a subscription. You cannot cancel an update once it is live.
Is this page helpful?
1curl -u <YOUR_KEY>:<YOUR_SECRET> \2-X POST https://api.razorpay.com/v1/subscriptions/sub_00000000000001/cancel_scheduled_changes \
Success
Failure
1{2"id": "sub_00000000000001",3"entity": "subscription",4"plan_id": "plan_00000000000003",5"customer_id": "cust_00000000000001",6"status": "active",7"current_start": 1580284732,8"current_end": 1580841000,9"ended_at": null,10"quantity": 1,11"notes": {12"notes_key_1": "Tea, Earl Grey, Hot",13"notes_key_2": "Tea, Earl Grey… decaf."14},15"charge_at": 1580841000,16"start_at": 1580284732,17"end_at": 1611081000,18"auth_attempts": 0,19"total_count": 6,20"paid_count": 1,21"customer_notify": true,22"created_at": 1580284702,23"expire_by": 1580626111,24"short_url": "https://rzp.io/i/fFWTkbf",25"has_scheduled_changes": false,26"change_scheduled_at": 1527858600,27"source": "api",28"offer_id":"offer_JHD834hjbxzhd38d",29"remaining_count": 5,30}
Path Parameters
id
*
string
The unique identifier linked to a Subscription. For example, sub_00000000000001
.
Response Parameters
id
string
The unique identifier of the subscription created. For example, sub_00000000000001
.
entity
string
The entity being created. Here, it will be subscription
.
plan_id
string
The unique identifier for a plan that is linked to the created subscription. For example, plan_00000000000001
.
customer_id
string
The unique identifier of the customer linked to the subscription. This is populated automatically once the customer completes the authorization transaction. For example, cust_00000000000001
.
status
string
Status of the subscription. Refer to the
for more details. Possible values:created
authenticated
active
pending
halted
cancelled
completed
expired
current_start
integer
Unix timestamp. The start time of the current billing cycle of the subscription. For example, 1581013800
.
current_end
integer
Unix timestamp. The end time of the current billing cycle of the subscription. For example, 1581013800
.
ended_at
integer
The timestamp, in Unix format, when the subscription was completed or was cancelled. For example, 1581013800
.
quantity
integer
The number of times the plan should be linked to the subscription. For example, if the plan is ₹100.00/user/month and the customer has 5 users, you should pass 5 as the quantity to have the customer charged ₹500.00 (5 x ₹100.00) monthly. By default, this value is set to 1.
notes
object
Notes you can enter for the contact for future reference. This is a key-value pair. You can enter a maximum of 15 key-value pairs. For example, "note_key": "Beam me up Scotty”
.
charge_at
integer
Unix timestamp. This indicates when the next charge on the subscription should be made. For example, 1581013800
.
offer_id
string
The unique identifier of the offer that should be linked to the subscription. For example, offer_JHD834hjbxzhd38d
.
start_at
integer
The timestamp, in Unix format, when the subscription should start. If not passed, the subscription starts immediately after the authorization payment. For example, 1581013800
.
end_at
integer
The timestamp, in Unix format, when the subscription should end. For example, 1581013800
.
auth_attempts
integer
The number of times that the charge for the current billing cycle has been attempted on the card. For example, 2
.
total_count
integer
The number of billing cycles for which the customer should be charged. For example, 2
. We support subscriptions for a maximum duration of 100 years. The number of billing cycles depends if the subscription is daily, weekly, monthly or yearly.
paid_count
integer
This indicates the number of billing cycles for which the customer has already been charged. For example, 2
.
customer_notify
boolean
Indicates whether the communication to the customer would be handled by businesses or Razorpay.
false
: communication handled by businesses.true
: communication handled by Razorpay. Defaults totrue
.
created_at
integer
The timestamp, in Unix format, when the subscription was created. For example, 1581013800
.
expire_by
integer
The timestamp, in Unix format, till when the customer can make the authorization payment. For example, 1581013800
.
short_url
string
URL that can be used to make the authorization payment. For example, https://rzp.io/i/PWtAiEo
.
has_scheduled_changes
boolean
Indicates if the subscription has any scheduled changes. Possible values:
true
false
schedule_change_at
string
Represents when the subscription should be updated. Possible values:
now
(default value): Updates the subscription immediately.cycle_end
: Updates the subscription at the end of the current billing cycle.
remaining_count
integer
This indicates the number of billing cycles remaining on the subscription. For example, 2
.
Errors
The API key/secret provided is invalid.
Error Status: 4xx
This error occurs due to a mismatch between the API credentials passed in the API call and those generated on the dashboard.
Solution
Cancel an Update
POST
/v1/subscriptions/:id/cancel_scheduled_changes
Click to copy
Use this endpoint to cancel a pending update. This happens when a Subscription is updated using the end of cycle
option for the schedule_change_at
parameter.
Example
A Subscription is to be charged on the 1st of every month. It was charged on January 01, 2021. On January 15, 2021, it was updated using the end of cycle
option for the schedule_change_at
parameter. In this case, the update goes live after the Subscription is charged on February 01, 2021. Such updates are said to be scheduled updates and can be cancelled using this API.
Handy Tips
You can only cancel a pending update for a subscription. You cannot cancel an update once it is live.
Is this page helpful?
Path Parameters
id
*
string
The unique identifier linked to a Subscription. For example, sub_00000000000001
.
Response Parameters
id
string
The unique identifier of the subscription created. For example, sub_00000000000001
.
entity
string
The entity being created. Here, it will be subscription
.
plan_id
string
The unique identifier for a plan that is linked to the created subscription. For example, plan_00000000000001
.
customer_id
string
The unique identifier of the customer linked to the subscription. This is populated automatically once the customer completes the authorization transaction. For example, cust_00000000000001
.
status
string
Status of the subscription. Refer to the
for more details. Possible values:created
authenticated
active
pending
halted
cancelled
completed
expired
current_start
integer
Unix timestamp. The start time of the current billing cycle of the subscription. For example, 1581013800
.
current_end
integer
Unix timestamp. The end time of the current billing cycle of the subscription. For example, 1581013800
.
ended_at
integer
The timestamp, in Unix format, when the subscription was completed or was cancelled. For example, 1581013800
.
quantity
integer
The number of times the plan should be linked to the subscription. For example, if the plan is ₹100.00/user/month and the customer has 5 users, you should pass 5 as the quantity to have the customer charged ₹500.00 (5 x ₹100.00) monthly. By default, this value is set to 1.
notes
object
Notes you can enter for the contact for future reference. This is a key-value pair. You can enter a maximum of 15 key-value pairs. For example, "note_key": "Beam me up Scotty”
.
charge_at
integer
Unix timestamp. This indicates when the next charge on the subscription should be made. For example, 1581013800
.
offer_id
string
The unique identifier of the offer that should be linked to the subscription. For example, offer_JHD834hjbxzhd38d
.
start_at
integer
The timestamp, in Unix format, when the subscription should start. If not passed, the subscription starts immediately after the authorization payment. For example, 1581013800
.
end_at
integer
The timestamp, in Unix format, when the subscription should end. For example, 1581013800
.
auth_attempts
integer
The number of times that the charge for the current billing cycle has been attempted on the card. For example, 2
.
total_count
integer
The number of billing cycles for which the customer should be charged. For example, 2
. We support subscriptions for a maximum duration of 100 years. The number of billing cycles depends if the subscription is daily, weekly, monthly or yearly.
paid_count
integer
This indicates the number of billing cycles for which the customer has already been charged. For example, 2
.
customer_notify
boolean
Indicates whether the communication to the customer would be handled by businesses or Razorpay.
false
: communication handled by businesses.true
: communication handled by Razorpay. Defaults totrue
.
created_at
integer
The timestamp, in Unix format, when the subscription was created. For example, 1581013800
.
expire_by
integer
The timestamp, in Unix format, till when the customer can make the authorization payment. For example, 1581013800
.
short_url
string
URL that can be used to make the authorization payment. For example, https://rzp.io/i/PWtAiEo
.
has_scheduled_changes
boolean
Indicates if the subscription has any scheduled changes. Possible values:
true
false
schedule_change_at
string
Represents when the subscription should be updated. Possible values:
now
(default value): Updates the subscription immediately.cycle_end
: Updates the subscription at the end of the current billing cycle.
remaining_count
integer
This indicates the number of billing cycles remaining on the subscription. For example, 2
.
Errors
The API key/secret provided is invalid.
Error Status: 4xx
This error occurs due to a mismatch between the API credentials passed in the API call and those generated on the dashboard.
Solution
1curl -u <YOUR_KEY>:<YOUR_SECRET> \2-X POST https://api.razorpay.com/v1/subscriptions/sub_00000000000001/cancel_scheduled_changes \
Success
Failure
1{2"id": "sub_00000000000001",3"entity": "subscription",4"plan_id": "plan_00000000000003",5"customer_id": "cust_00000000000001",6"status": "active",7"current_start": 1580284732,8"current_end": 1580841000,9"ended_at": null,10"quantity": 1,11"notes": {12"notes_key_1": "Tea, Earl Grey, Hot",13"notes_key_2": "Tea, Earl Grey… decaf."14},15"charge_at": 1580841000,16"start_at": 1580284732,17"end_at": 1611081000,18"auth_attempts": 0,19"total_count": 6,20"paid_count": 1,21"customer_notify": true,22"created_at": 1580284702,23"expire_by": 1580626111,24"short_url": "https://rzp.io/i/fFWTkbf",25"has_scheduled_changes": false,26"change_scheduled_at": 1527858600,27"source": "api",28"offer_id":"offer_JHD834hjbxzhd38d",29"remaining_count": 5,30}