Update subscription
PATCH {{base_url}}/v1/billing/subscriptions/:subscription_id
Updates a subscription which could be in ACTIVE or SUSPENDED status. You can override plan level default attributes by providing customised values for plan path in the patch request.
 
- You cannot update attributes that have already completed (Example - trial cycles canβt be updated if completed).
- Once overridden, changes to plan resource will not impact subscription.
- Any price update will not impact billing cycles within next 10 days (Applicable only for subscriptions funded by PayPal account).
| Attribute or object | Operations | 
|---|---|
| billinginfo.outstandingbalance | replace | 
| customid | add,replace | 
| plan.billingcycles[@sequencen]. | add,replace | 
| plan.billing_cycles[@sequencen]. | replace | 
| plan.billingcycles[@sequence==n]. | replace | 
| plan.paymentpreferences. | replace | 
| plan.paymentpreferences. | replace | 
| plan.taxes.inclusive | add,replace | 
| plan.taxes.percentage | add,replace | 
| shippingamount | add,replace | 
| starttime | replace | 
| subscriber.shippingaddress | add,replace | 
| subscriber.payment_source (for subscriptions funded | replace | 
Request Body
{"0"=>{"op"=>"replace", "path"=>"/subscriber/shipping_address", "value"=>{"name"=>{"full_name"=>"John Doe"}, "address"=>{"address_line_1"=>"2211 N First Street", "address_line_2"=>"Building 17", "admin_area_2"=>"San Jose", "admin_area_1"=>"CA", "postal_code"=>"95131", "country_code"=>"US"}}}, "1"=>{"op"=>"replace", "path"=>"/plan/payment_preferences/auto_bill_outstanding", "value"=>true}, "2"=>{"op"=>"replace", "path"=>"/plan/payment_preferences/payment_failure_threshold", "value"=>1}, "3"=>{"op"=>"replace", "path"=>"/plan/billing_cycles/@sequence==1/total_cycles", "value"=>2}, "4"=>{"op"=>"replace", "path"=>"/plan/billing_cycles/@sequence==1/pricing_scheme/fixed_price", "value"=>{"currency_code"=>"USD", "value"=>"50.00"}}}
HEADERS
| Key | Datatype | Required | Description | 
|---|---|---|---|
| Content-Type | string | The Content-Type header field is used to specify the nature of the data in the body of an entity. PayPal REST APIs support application/json. | |
| PayPal-Request-Id | string | The server stores keys for 72 hours. | |
| PayPal-Client-Metadata-Id | string | Optional. Verifies that the payment originates from a valid, user-consented device and application. Reduces fraud and decreases declines. Transactions that do not include a client metadata ID are not eligible for PayPal Seller Protection. | |
| PayPal-Partner-Attribution-Id | string | Optional. Identifies the caller as a PayPal partner. To receive revenue attribution, specify a unique build notation (BN) code. BN codes provide tracking on all transactions that originate or are associated with a particular partner. To find your BN code, see Code and Credential Reference. | |
| PayPal-Auth-Assertion | string | An API client-provided JSON Web Token (JWT) assertion that identifies the merchant. To use this header, you must get consent to act on behalf of a merchant. | |
| Prefer | string | The preferred server response upon successful completion of the request. Value is:<ul><li><code>return=minimal</code>. The server returns a minimal response to optimize communication between the API caller and the server. A minimal response includes the <code>id</code>, <code>status</code> and HATEOAS links.</li><li><code>return=representation</code>. The server returns a complete resource representation, including the current state of the resource.</li></ul> | |
| Prefer | string | The preferred server response upon successful completion of the request. Value is:<ul><li><code>return=minimal</code>. The server returns a minimal response to optimize communication between the API caller and the server. A minimal response includes the <code>id</code>, <code>status</code> and HATEOAS links.</li><li><code>return=representation</code>. The server returns a complete resource representation, including the current state of the resource.</li></ul> |