Billing Plan

June 5, 2026 ยท View on GitHub

The plan details.

Structure

BillingPlan

Fields

NameTypeTagsDescriptionGetterSetter
IdStringOptional, Read-onlyThe unique PayPal-generated ID for the plan.

Constraints: Minimum Length: 26, Maximum Length: 26, Pattern: ^P-[A-Z0-9]*$
String getId()setId(String id)
ProductIdStringOptionalThe ID for the product.

Constraints: Minimum Length: 22, Maximum Length: 22, Pattern: ^PROD-[A-Z0-9]*$
String getProductId()setProductId(String productId)
NameStringOptionalThe plan name.

Constraints: Minimum Length: 1, Maximum Length: 127, Pattern: ^.*$
String getName()setName(String name)
StatusSubscriptionPlanStatusOptionalThe plan status.

Constraints: Minimum Length: 1, Maximum Length: 24, Pattern: ^[A-Z_]+$
SubscriptionPlanStatus getStatus()setStatus(SubscriptionPlanStatus status)
DescriptionStringOptionalThe detailed description of the plan.

Constraints: Minimum Length: 1, Maximum Length: 127, Pattern: ^.*$
String getDescription()setDescription(String description)
BillingCyclesList<SubscriptionBillingCycle>OptionalAn array of billing cycles for trial billing and regular billing. A plan can have at most two trial cycles and only one regular cycle.

Constraints: Minimum Items: 1, Maximum Items: 12
List getBillingCycles()setBillingCycles(List billingCycles)
PaymentPreferencesPaymentPreferencesOptionalThe payment preferences for a subscription.PaymentPreferences getPaymentPreferences()setPaymentPreferences(PaymentPreferences paymentPreferences)
MerchantPreferencesMerchantPreferencesOptionalThe merchant preferences for a subscription.MerchantPreferences getMerchantPreferences()setMerchantPreferences(MerchantPreferences merchantPreferences)
TaxesTaxesOptionalThe tax details.Taxes getTaxes()setTaxes(Taxes taxes)
QuantitySupportedBooleanOptionalIndicates whether you can subscribe to this plan by providing a quantity for the goods or service.

Default: false
Boolean getQuantitySupported()setQuantitySupported(Boolean quantitySupported)
CreateTimeStringOptionalThe date and time, in Internet date and time format. Seconds are required while fractional seconds are optional. Note: The regular expression provides guidance but does not reject all invalid dates.

Constraints: Minimum Length: 20, Maximum Length: 64, Pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$
String getCreateTime()setCreateTime(String createTime)
UpdateTimeStringOptionalThe date and time, in Internet date and time format. Seconds are required while fractional seconds are optional. Note: The regular expression provides guidance but does not reject all invalid dates.

Constraints: Minimum Length: 20, Maximum Length: 64, Pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$
String getUpdateTime()setUpdateTime(String updateTime)
LinksList<LinkDescription>Optional, Read-onlyAn array of request-related HATEOAS links.

Constraints: Minimum Items: 1, Maximum Items: 10
List getLinks()setLinks(List links)

Example (as JSON)

{
  "quantity_supported": false,
  "id": "id0",
  "product_id": "product_id4",
  "name": "name0",
  "status": "CREATED",
  "description": "description0"
}