Update plan pricing

Update pricing for the subscription plan

DocsCurrentLast updated: February 13th 2024, @ 1:02:18 pm


You can modify subscription pricing for all subscribers at once by changing the pricing at the plan level, without needing to migrate subscriptions individually.

For example, if you provide a video streaming service and offer a subscription plan at $5 per month, you can update the price for future cycles to $7 for all existing subscribers.

How it works

When you update the plan price:

  • New subscribers see the new price.
  • Existing subscribers are notified by email about the price change, and given 10 days to modify their subscription.
  • If the next billing cycle is within 10 days of the price change, subscribers are not changed the new price until the next billing cycle.

For example, you update the plan price from $20 to $25 on the 10th of the month. An existing subscriber is enrolled on this plan with the next billing cycle starting on the 15th of the month. This subscriber pays $20 for their subscription on the 15th of the month, and on the following month pays $25.

Update pricing

API endpoint used: Update pricing schemes endpoint

Sample request

1curl -v -X POST https://api-m.sandbox.paypal.com/v1/billing/plans/P-7GL4271244454362WXNWU5NQ/update-pricing-schemes
2-H "PayPal-Auth-Assertion: AUTH-ASSERTION"
3-H "Content-Type: application/json"
4-H "Authorization: Bearer ACCESS-TOKEN"
5-d '{
6"pricing_schemes": [{
7 "billing_cycle_sequence": 1,
8 "pricing_scheme": {
9 "fixed_price": {
10 "value": "50",
11 "currency_code": "USD"
12 }
13 }
14}, {
15 "billing_cycle_sequence": 2,
16 "pricing_scheme": {
17 "fixed_price": {
18 "value": "100",
19 "currency_code": "USD"
20 },
21 "pricing_model": "VOLUME",
22 "tiers": [{
23 "starting_quantity": "1",
24 "ending_quantity": "1000",
25 "amount": {
26 "value": "150",
27 "currency_code": "USD"
28 }
29 }, {
30 "starting_quantity": "1001",
31 "amount": {
32 "value": "250",
33 "currency_code": "USD"
34 }
35 }]
36 }
37}]
38}'

Modify the code

  • Change the AUTH-ASSERTION header to your JSON Web Token (JWT) assertion that identifies your seller. For more information on how to create a JWT, see PayPal-Auth-Assertion.

  • Replace ACCESS-TOKEN with your access token.
  • In the URI for the API call, replace the sample subscription ID with the ID for the subscription you want to update. In this example, the subscription ID is P-7GL4271244454362WXNWU5NQ.