Pricing plans
Last updated: Aug 15th, 7:24am
When you set up your subscription plan, you can choose from four different pricing models:
- Fixed
- Quantity, also known as user or seat-based
- Volume-based
- Tiered-based
Fixed-pricing plan
A fixed-pricing plan is a frequency-based subscription plan that charges customers a fixed amount at a fixed frequency.
Sample use cases:
- Video or music streaming services that charge a monthly or yearly fee.
- Gym or club membership.
- Box subscriptions, such as grooming, clothing, beauty, and food.
Examples
- Plan 1: $5 per month for a music streaming service
- Plan 2: $100 per year for a gym membership
Sample request
The following sample request shows how to create a fixed pricing plan. Use this sample to adjust your code when you create a plan.
API endpoint used: Create plan
1curl -v –X POST https://api-m.sandbox.paypal.com/v1/billing/plans \2 -H "PayPal-Auth-Assertion: AUTH-ASSERTION" \3 -H "Accept: application/json" \4 -H "Authorization: Bearer ACCESS-TOKEN" \5 -H "Content-Type: application/json" \6 -H "PayPal-Request-Id: PLAN-18062020-001" \7 -d '{8 "name": "Premium Music Plus",9 "description": "A premium plan with music download feature",10 "product_id": "PROD-5RN21878H3527870P",11 "billing_cycles": [{12 "frequency": {13 "interval_unit": "MONTH",14 "interval_count": 115 },16 "tenure_type": "REGULAR",17 "sequence": 1,18 "total_cycles": 0,19 "pricing_scheme": {20 "fixed_price": {21 "value": "5",22 "currency_code": "USD"23 }24 }25 }],26 "payment_preferences": {27 "auto_bill_outstanding": true,28 "payment_failure_threshold": 129 }30 }'
Quantity-based plan
A quantity-based pricing plan charges subscribers by the quantity of goods or services to which they subscribed.
Sample use cases:
- Service company offers remote tech support to small companies.
- A software company charges for the number of software licenses.
- Pet store offers a dog food subscription that charges customers based on the number of bags.
Examples
- Plan 1: $5 per software license per month
- Plan 2: $9 per dog food bag per week
During subscription creation, the subscriber chooses a quantity. That quantity determines the amount charged every regular billing cycle.
- Subscription 1:
- A subscriber signs up for a plan of $5 per software license per month
- A subscriber requests 10 licenses when they sign up
- The net subscription price is 10 x 5 = $50 per month
- Subscription 2:
- A subscriber signs up for a plan of $9 per food bag per week
- A subscriber requests 5 food bags when they sign up
- The net subscription price is 9 x 5 = $45 per week
Sample request
The following sample request shows how to create a quantity-based pricing plan. Use this sample to adjust your code when you create a plan.
In this sample, the quantity_supported
parameter indicates that this plan is a quantity-based plan.
API endpoint used: Create plan
1curl -v –X POST https://api-m.sandbox.paypal.com/v1/billing/plans \2 -H "PayPal-Auth-Assertion: AUTH-ASSERTION" \3 -H "Accept: application/json" \4 -H "Authorization: Bearer ACCESS-TOKEN" \5 -H "Content-Type: application/json" \6 -H "PayPal-Request-Id: PLAN-18062020-001" \7 -d '{8 "name": "Classic treat",9 "description": "500gm dog food per bag",10 "product_id": "PROD-6DN21878H3529990P",11 "billing_cycles": [{12 "frequency": {13 "interval_unit": "WEEK",14 "interval_count": 115 },16 "tenure_type": "REGULAR",17 "sequence": 1,18 "total_cycles": 0,19 "pricing_scheme": {20 "fixed_price": {21 "value": "9",22 "currency_code": "USD"23 }24 }25 }],26 "quantity_supported": true,27 "payment_preferences": {28 "auto_bill_outstanding": true,29 "payment_failure_threshold": 130 }31 }'
Volume-based plan
A volume-based pricing model defines the subscription's price based on the price per unit of the number of product units within a specified range.
Sample use cases:
- Bulk SMS, email, and voice services
- Bulk SAAS based platform charges for a given number of product licenses
- Cloud based service platform charges for data storage based on volume
Examples
Plan 1
A merchant offers a volume-based monthly plan that provides software licenses to businesses using these defined fees:
Number of software licenses | Price per license (per month) |
---|---|
1-5 | $15 |
6-10 | $14 |
11-15 | $13 |
16-20 | $12 |
21 and beyond | $11 |
During subscription creation, the subscriber chooses a quantity. That quantity determines the amount charged every regular billing cycle.
-
Subscription 1
- A subscriber signs up for plan 1
- A subscriber requests 14 licenses when they sign up. The price is calculated based on 3rd tier (11-15)
- The net subscription price is 14 x 13 = $182 per month
-
Subscription 2
- A subscriber signs up for plan 1
- A subscriber requests 25 licenses when they sign up. The price is calculated based on 5th tier (21 and beyond)
- The net subscription price is 25 x 11 = $275 per month
Plan 2
A merchant offers a volume-based monthly plan that provides tech support and assistance to relevant businesses with the using these defined fees:
Number of technicians (Tech Support) | Price per technician (per month) |
---|---|
1-10 | $30 |
11-20 | $29 |
21-30 | $28 |
31 and beyond | $27.5 |
-
Subscription 1
- A subscriber signs up for plan 2
- A subscriber requests 8 licenses when they sign up. The price is calculated based on 1st tier (1-10)
- The net subscription price is 8 x 30 = $240 per month
-
Subscription 2
- A subscriber signs up for plan 2
- A subscriber requests 25 licenses when they sign up. The price will be calculated based on 3rd tier (21-30)
- The net subscription price is 25 x 28 = $700 per month
Sample request
The following sample request shows how to create a volume-based pricing plan. Use this sample to adjust your code when you create a plan.
In this sample, the pricing_model
and quantity_supported
parameters indicate that this plan is a volume-based plan.
API endpoint used: Create plan
1curl -v –X POST https://api-m.sandbox.paypal.com/v1/billing/plans \2 -H "PayPal-Auth-Assertion: AUTH-ASSERTION" \3 -H "Accept: application/json" \4 -H "Authorization: Bearer ACCESS-TOKEN" \5 -H "Content-Type: application/json" \6 -H "PayPal-Request-Id: PLAN-18062020-001" \7 -d '{8 "name": "Standard Plan",9 "description": "Volume based Software Licenses",10 "product_id": "PROD-6DN21878H3529990P",11 "billing_cycles": [{12 "frequency": {13 "interval_unit": "MONTH",14 "interval_count": 115 },16 "tenure_type": "REGULAR",17 "sequence": 1,18 "total_cycles": 0,19 "pricing_scheme": {20 "pricing_model": "VOLUME",21 "tiers": [22 {23 "starting_quantity": "1",24 "ending_quantity": "5",25 "amount": {26 "value": "15",27 "currency_code": "USD"28 }29 },30 {31 "starting_quantity": "6",32 "ending_quantity": "10",33 "amount": {34 "value": "14",35 "currency_code": "USD"36 }37 },38 {39 "starting_quantity": "11",40 "ending_quantity": "15",41 "amount": {42 "value": "13",43 "currency_code": "USD"44 }45 },46 {47 "starting_quantity": "16",48 "ending_quantity": "20",49 "amount": {50 "value": "12",51 "currency_code": "USD"52 }53 },54 {55 "starting_quantity": "21",56 "amount": {57 "value": "11",58 "currency_code": "USD"59 }60 }61 ]62 }63 }],64 "quantity_supported": true,65 "payment_preferences": {66 "auto_bill_outstanding": true,67 "payment_failure_threshold": 168 }69 }'
Tiered-based plan
A tier-based pricing model defines the subscription's price and any price changes based on the quantity of product units within a tier.
Sample use cases:
- Bulk SMS, email, and voice services
- SAAS charges for a given number of product licenses priced differently across tiers
- Cloud based service platform changes for data storage priced differently across tiers
Examples
Plan 1
A merchant offers a tiered-based monthly plan that provides software licenses to businesses using these defined fees:
Number of software licenses | Price per license (per month) |
---|---|
1-5 | $15 |
6-10 | $14 |
11-15 | $13 |
16-20 | $12 |
21 and beyond | $11 |
During subscription creation, the subscriber chooses a quantity. That quantity determines the amount charged every regular billing cycle.
-
Subscription 1
- A subscriber signs up for plan 1
- A subscriber requests 14 licenses when they sign up
- The net subscription price is 5 x 15 + 5 x 14 + 4 x 13 = $197 per month
-
Subscription 2
- A subscriber signs up for Plan 1
- A subscriber requests 25 licenses when they sign up
- The net subscription price is 5 x 15 + 5 x 14 + 5 x 13 + 5 x 12 + 5 x 11 = $325 per month
Plan 2
A merchant offers a tiered-based monthly plan that provides tech support and assistance to relevant businesses with the following fee schedule:
Number of technicians (Tech Support) | Price per technician (per month) |
---|---|
1-10 | $30 |
11-20 | $29 |
21-30 | $28 |
31 and beyond | $27.5 |
During subscription creation, the subscriber chooses a quantity. That quantity determines the amount charged every regular billing cycle.
-
Subscription 1
- A subscriber signs up for Plan 2
- A subscriber requests 14 licenses when they sign up
- The net subscription price is 10 x 30 + 4 x 29 = $416 per month
-
Subscription 2
- A subscriber signs up for Plan 2
- A subscriber requests 25 licenses when they sign up
- The net subscription price is 10 x 30 + 10 x 29 + 5 x 28 = $730 per month
Sample request
The following sample request shows how to create a tiered-based pricing plan. Use this sample to adjust your code when you create a plan.
In this sample, the pricing_model
and quantity_supported
parameters indicate that this plan is a tiered-based plan.
API endpoint used: Create plan
1curl -v –X POST https://api-m.sandbox.paypal.com/v1/billing/plans \2 -H "PayPal-Auth-Assertion: AUTH-ASSERTION" \3 -H "Accept: application/json" \4 -H "Authorization: Bearer ACCESS-TOKEN" \5 -H "Content-Type: application/json" \6 -H "PayPal-Request-Id: PLAN-18062020-001" \7 -d '{8 "name": "Platinum Plan",9 "description": "Tiered based pricing for technical support",10 "product_id": "PROD-6DN21878H3529990P",11 "billing_cycles": [{12 "frequency": {13 "interval_unit": "MONTH",14 "interval_count": 115 },16 "tenure_type": "REGULAR",17 "sequence": 1,18 "total_cycles": 0,19 "pricing_scheme": {20 "pricing_model": "TIERED",21 "tiers": [22 {23 "starting_quantity": "1",24 "ending_quantity": "10",25 "amount": {26 "value": "30",27 "currency_code": "USD"28 }29 },30 {31 "starting_quantity": 11",32 "ending_quantity": "20",33 "amount": {34 "value": "29",35 "currency_code": "USD"36 }37 },38 {39 "starting_quantity": "21",40 "ending_quantity": "30",41 "amount": {42 "value": "28",43 "currency_code": "USD"44 }45 },46 {47 "starting_quantity": "31",48 "amount": {49 "value": "27.5",50 "currency_code": "USD"51 }52 }53 ]54 }55 }],56 "quantity_supported": true,57 "payment_preferences": {58 "auto_bill_outstanding": true,59 "payment_failure_threshold": 160 }61 }'6263## See also6465* Use the [Plans resource group](/docs/api/subscriptions/v1/#plans) of the Subscriptions REST API to manage plans, including: updating pricing, updating the plan, and deactivating the plan.666768export const _frontmatter = {"title":"Pricing plans","contentType":"Docs","keywords":"subscriptions, pricing plans","productStatus":"Current","apiVersion":"v1","date":"2022-04-06T23:06:12.000Z"}