Billing Plans
Billing Plans define the pricing, billing cycles, and payment terms that subscribers are enrolled into. A plan belongs to a Product and is the template from which Subscriptions are created.
Plans can be activated or deactivated to control availability without deletion.
How It Works
Create a product
A billing plan must be associated with a product. See Products for how to create one.
Create subscriptions
With an active plan, call POST /subscriptions to enrol subscribers. See Subscriptions.
List Billing Plans
Returns a paginated list of billing plans. Filter by product ID or specific plan IDs.
PayPal Payment Provider Contract UUID
Filters the response by a Product ID.
Filters the response by list of plan IDs.
The number of items to return in the response.
A non-zero integer which is the start index of the entire list of items to return in the response.
Indicates whether to show the total count in the response.
Successful
The total number of items.
The total number of pages.
Bad Request
Unauthorized
Forbidden
Not Found
Internal Server Error
GET /oidc/paypal-ecom/billingPlans?paymentProviderContract=text HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"plans": [
{
"id": "text",
"name": "text",
"billingCycles": [
{
"pricingScheme": {
"version": 1,
"fixedPrice": {
"currencyCode": "EUR",
"value": 100
},
"pricingModel": "VOLUME",
"tiers": [
{
"startingQuantity": "text",
"endingQuantity": "text",
"amount": {
"currencyCode": "EUR",
"value": 100
}
}
]
},
"frequency": {
"intervalUnit": "DAY",
"intervalCount": 1
},
"tenureType": "REGULAR",
"sequence": 1,
"totalCycles": 1
}
],
"paymentPreferences": {
"autoBillOutstanding": true,
"setupFee": {
"currencyCode": "EUR",
"value": 100
},
"setupFeeFailureAction": "CONTINUE",
"paymentFailureThreshold": 1
},
"status": "ACTIVE",
"description": "text",
"taxes": {
"percentage": "text",
"inclusive": true
},
"quantitySupported": true,
"createTime": "2026-01-01",
"updateTime": "2026-01-01"
}
],
"totalItems": 1,
"totalPages": 1
}Create Billing Plan
Creates a new billing plan under an existing product. Specify billing cycles, pricing scheme (fixed price or tiered), and payment preferences.
Use x-vfi-api-idempotencyKey to prevent duplicate plan creation on retries.
A value you specify that uniquely identifies the transaction. If you're unsure whether a particular transaction succeeded, you can reattempt it with the same idempotency key without worrying about duplicating the transaction.
PayPal Payment Provider Contract UUID
PayPal catalog product id
The plan name
The initial state of the plan
The detailed description of the plan.
Indicates whether you can subscribe to this plan by providing a quantity for the goods or service.
Created
The unique PayPal-generated ID for the plan.
PayPal catalog product id
The plan name
The initial state of the plan
The detailed description of the plan.
Indicates whether you can subscribe to this plan by providing a quantity for the goods or service.
The date and time when the billing plan was created.
The date and time when the billing plan was updated.
Bad Request
Unauthorized
Forbidden
Not Found
Internal Server Error
POST /oidc/paypal-ecom/billingPlans/create HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 670
{
"paymentProviderContract": "text",
"productId": "text",
"name": "text",
"status": "ACTIVE",
"description": "text",
"billingCycles": [
{
"pricingScheme": {
"version": 1,
"fixedPrice": {
"currencyCode": "EUR",
"value": 100
},
"pricingModel": "VOLUME",
"tiers": [
{
"startingQuantity": "text",
"endingQuantity": "text",
"amount": {
"currencyCode": "EUR",
"value": 100
}
}
]
},
"frequency": {
"intervalUnit": "DAY",
"intervalCount": 1
},
"tenureType": "REGULAR",
"sequence": 1,
"totalCycles": 1
}
],
"paymentPreferences": {
"autoBillOutstanding": true,
"setupFee": {
"currencyCode": "EUR",
"value": 100
},
"setupFeeFailureAction": "CONTINUE",
"paymentFailureThreshold": 1
},
"taxes": {
"percentage": "text",
"inclusive": true
},
"quantitySupported": true
}{
"id": "text",
"productId": "text",
"name": "text",
"status": "ACTIVE",
"description": "text",
"billingCycles": [
{
"pricingScheme": {
"version": 1,
"fixedPrice": {
"currencyCode": "EUR",
"value": 100
},
"pricingModel": "VOLUME",
"tiers": [
{
"startingQuantity": "text",
"endingQuantity": "text",
"amount": {
"currencyCode": "EUR",
"value": 100
}
}
]
},
"frequency": {
"intervalUnit": "DAY",
"intervalCount": 1
},
"tenureType": "REGULAR",
"sequence": 1,
"totalCycles": 1
}
],
"paymentPreferences": {
"autoBillOutstanding": true,
"setupFee": {
"currencyCode": "EUR",
"value": 100
},
"setupFeeFailureAction": "CONTINUE",
"paymentFailureThreshold": 1
},
"taxes": {
"percentage": "text",
"inclusive": true
},
"quantitySupported": true,
"createTime": "2026-01-01",
"updateTime": "2026-01-01"
}Get Billing Plan
Retrieves the full details of a billing plan by its ID.
PayPal billing plan Id
PayPal Payment Provider Contract UUID
Successful
Filters the response by a Product ID.
PayPal catalog product id
The plan name
The initial state of the plan
The detailed description of the plan.
Indicates whether you can subscribe to this plan by providing a quantity for the goods or service.
The date and time when the billing plan was created.
The date and time when the billing plan was updated.
Bad Request
Unauthorized
Forbidden
Not Found
Internal Server Error
GET /oidc/paypal-ecom/billingPlans/{planId}?paymentProviderContract=text HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "text",
"productId": "text",
"name": "text",
"billingCycles": [
{
"pricingScheme": {
"version": 1,
"fixedPrice": {
"currencyCode": "EUR",
"value": 100
},
"pricingModel": "VOLUME",
"tiers": [
{
"startingQuantity": "text",
"endingQuantity": "text",
"amount": {
"currencyCode": "EUR",
"value": 100
}
}
]
},
"frequency": {
"intervalUnit": "DAY",
"intervalCount": 1
},
"tenureType": "REGULAR",
"sequence": 1,
"totalCycles": 1
}
],
"paymentPreferences": {
"autoBillOutstanding": true,
"setupFee": {
"currencyCode": "EUR",
"value": 100
},
"setupFeeFailureAction": "CONTINUE",
"paymentFailureThreshold": 1
},
"status": "ACTIVE",
"description": "text",
"taxes": {
"percentage": "text",
"inclusive": true
},
"quantitySupported": true,
"createTime": "2026-01-01",
"updateTime": "2026-01-01"
}Update Billing Plan
Updates fields on an existing billing plan, including pricing scheme, billing cycles, taxes, and payment preferences. Returns 204 No Content on success.
PayPal billing plan Id
PayPal Payment Provider Contract UUID
The detailed description of the plan.
No Content
Bad Request
Unauthorized
Forbidden
Not Found
Internal Server Error
PUT /oidc/paypal-ecom/billingPlans/{planId} HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 244
{
"paymentProviderContract": "text",
"description": "text",
"paymentPreferences": {
"autoBillOutstanding": true,
"setupFee": {
"currencyCode": "EUR",
"value": 100
},
"setupFeeFailureAction": "CONTINUE",
"paymentFailureThreshold": 1
},
"taxes": {
"percentage": "text"
}
}No content
Activate Billing Plan
Activates a billing plan, making it available for new subscriptions.
PayPal billing plan Id
PayPal Payment Provider Contract UUID
No Content
Bad Request
Unauthorized
Forbidden
Not Found
Internal Server Error
PUT /oidc/paypal-ecom/billingPlans/{planId}/activate HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 34
{
"paymentProviderContract": "text"
}No content
Deactivate Billing Plan
Deactivates a billing plan. Deactivated plans cannot be used for new subscriptions, but existing active subscriptions are not affected.
PayPal billing plan Id
PayPal Payment Provider Contract UUID
No Content
Bad Request
Unauthorized
Forbidden
Not Found
Internal Server Error
PUT /oidc/paypal-ecom/billingPlans/{planId}/deactivate HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 34
{
"paymentProviderContract": "text"
}No content
Last updated
Was this helpful?
