A Plan is a blueprint for taking multiple payments over time. It can include any number of fixed point-in-time payments on specific dates, as well as a continuing schedule of recurring payments.

If you need more than one recurring payment schedule, you can create multiple plans and subscribe a payer to both/all of them.

Plans can use both fixed dollar amounts or percentages of a total amount. You can even do both! For example, I can have a $50/month plan with an upfront $100 payment; or I can do 25% upfront with 10% per month thereafter; or even $2000 after 7 days, with 25% a quarter until complete.

When dealing with amount limits, the plan will never exceed the limit. Payments are reduced to fit the totals. The current minimum payment is $5, so if a plan would leave less than that as the final payment, it is tacked onto the second last payment instead.

AttributeChild AttributeDescription
id
string
The Plan ID. Plans are prefixed with "pln_"
name
string
A label for the plan
fixedPayments
array of fixedPayment
Schedule any number of fixed point-in-time payments
amountInCents
integer
The amount to charge in cents
amountPercentage
decimal
Alternatively, a percentage of the full subscription amount to charge. (0.0 to 1.0)
description
string
A description of the payment
cancelPlanOnFailure
boolean
If true, the subscription will cancel and remove all future payments when this payment fails. If false, the subscription will remain active, and it's up to you to recharge the failed amount.
scheduledDateInterval
string
Can be "days", "months", or "years"
scheduledDateOffset
integer
Schedule the payment after this many intervals. eg. 0 days is immediately, 7 days is next week, 1 month is next month, etc...
recurringPayment
recurringPayment
Only one recurring payment can be created. Create multiple plans if you need more than one.
amountInCents
integer
The amount to charge in cents
amountPercentage
decimal
Alternatively, a percentage of the full subscription amount to charge. (0.0 to 1.0)
description
string
A description of the payment
cancelPlanOnFailure
boolean
If true, the subscription will cancel and remove all future payments when this payment fails. If false, the subscription will remain active, and it's up to you to recharge the failed amount.
startDateInterval
string
Can be "days", "months", or "years"
startDateOffset
integer
The first payment will be scheduled after this many intervals
endDateInterval
string
Can be "days", "months", or "years"
endDateOffset
integer
The subscription will complete after this many intervals
frequencyInterval
string
Can be "days", "months", or "years"
frequencyOffset
integer
Every new payment is scheduled this many intervals from the previous one. eg. 7 days is every week on the same day. 1 month is every month on the same day. Uses sensible movement for dates that don't exist, eg Feb 30.
endAfterNumberOfPayments
integer
Will complete the subscription after generating this many payments
endAfterTotalAmount
integer
Completes the subscription after this amount in cents has been taken on a recurring basis. Does not include any fixed payments. It will reduce the final payment if this limit is exceeded.
endType
string
Select the end condition for the subscription. Can be "never", "end-date", "total-amount", "number-of-payments", "subscription-fully-paid". Subscription Fully Paid uses this full subscription amount to end the subscription, calculated on both fixed and recurring payments.
metadata
string
A free field (JSON preferred) that will be added to each payment that is generated from this plan.
Language
Authorization
OAuth2
Authenticate
Click Try It! to start a request and see the response here!