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).
Following are the fields eligible for patch.
Attribute or objectOperations
billinginfo.outstandingbalancereplace
customidadd,replace
plan.billingcycles[@sequencen].
pricingscheme.fixedprice
add,replace
plan.billing_cycles[@sequencen].
pricingscheme.tiers
replace
plan.billingcycles[@sequence==n].
totalcycles
replace
plan.paymentpreferences.
autobilloutstanding
replace
plan.paymentpreferences.
payment
failurethreshold
replace
plan.taxes.inclusiveadd,replace
plan.taxes.percentageadd,replace
shippingamountadd,replace
starttimereplace
subscriber.shippingaddressadd,replace
subscriber.payment_source (for subscriptions funded
by card payments)
replace

Request Body

[{"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"}}}, {"op"=>"replace", "path"=>"/billing_info/outstanding_balance", "value"=>{"currency_code"=>"USD", "value"=>"50.00"}}, {"op"=>"replace", "path"=>"/start_time", "value"=>"2018-11-01T00:00:00Z"}, {"op"=>"replace", "path"=>"/plan/payment_preferences/auto_bill_outstanding", "value"=>true}, {"op"=>"replace", "path"=>"/plan/payment_preferences/payment_failure_threshold", "value"=>1}, {"op"=>"replace", "path"=>"/plan/billing_cycles/@sequence==1/total_cycles", "value"=>2}, {"op"=>"replace", "path"=>"/plan/billing_cycles/@sequence==1/pricing_scheme/fixed_price", "value"=>{"currency_code"=>"USD", "value"=>"50.00"}}, {"op"=>"replace", "path"=>"/plan/billing_cycles/@sequence==1/taxes/amount", "value"=>{"currency_code"=>"USD", "value"=>"10.00"}}, {"op"=>"replace", "path"=>"/plan/billing_cycles/@sequence==1/shipping_amount", "value"=>{"currency_code"=>"USD", "value"=>"20.00"}}]

HEADERS

KeyDatatypeRequiredDescription
Content-TypestringThe 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-IdstringThe server stores keys for 72 hours.
PayPal-Client-Metadata-IdstringOptional. 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-IdstringOptional. 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-AssertionstringAn 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.
PreferstringThe 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>
PreferstringThe 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>