Plans
Plans are subscription templates that define pricing, billing frequency, and included products. They are created and managed through the merchant dashboard.
This API provides read-only access — you can list and retrieve plans, but not create or modify them.
Plan Structure
A plan includes:
- Recurring amount — charged each billing cycle
- One-time amount — setup fee charged on first cycle only
- Billing cycle — frequency and anchor day configuration
- Products — items included in the subscription
- Pricing tiers — detailed fee breakdown
GET
/plans List all plans
Returns a paginated list of subscription plans. Plans are created through the merchant dashboard; this API provides read-only access.
Query parameters
NameTypeDescription
limit
integerNumber of items to return per page.
Default:
10starting_after
stringCursor for forward pagination. Returns items created after this ID.
e.g.
"550e8400-e29b-41d4-a716-446655440000"ending_before
stringCursor for backward pagination. Returns items created before this ID.
e.g.
"550e8400-e29b-41d4-a716-446655440001"search
stringSearch by plan name, code, or description.
e.g.
"premium"active
booleanFilter by active status.
e.g.
truesort
stringSort field: `created_at`, `updated_at`, `name`, `amount`.
e.g.
"created_at[desc]"Header parameters
NameTypeDescription
EPD-Version
stringAPI version override (format `YYYY-MM-DD`). If omitted, your account's pinned version or the latest version is used.
e.g.
"2026-02-11"Responses
200 A list of plans.
FieldTypeDescription
data
array[Plan]url
anye.g.
"/v1/plans" 401 Unauthorized — Authentication failed.
FieldTypeDescription
errorrequired
objecttyperequired
enumThe type of error.
invalid_request_errorauthentication_errorauthorization_errorrate_limit_erroridempotency_errorprocessing_errorwebhook_errorcoderequired
stringA short string identifying the specific error.
e.g.
"validation_error"messagerequired
stringA human-readable message providing details about the error.
e.g.
"Request validation failed"paramnullable
stringThe parameter that caused the error, if applicable.
e.g.
"email"request_id
stringUnique request identifier for debugging.
e.g.
"req_a1b2c3d4e5f67890abcdef0123456789"field_errors
array[object]Detailed field-level errors for validation failures.
GET
/plans/{id} Retrieve a plan
Path parameters
NameTypeDescription
idrequired
stringPlan ID (UUID).
e.g.
"6ba7b814-9dad-11d1-80b4-00c04fd430c8"Header parameters
NameTypeDescription
EPD-Version
stringAPI version override (format `YYYY-MM-DD`). If omitted, your account's pinned version or the latest version is used.
e.g.
"2026-02-11"Responses
200 The plan.
FieldTypeDescription
idrequired
stringe.g.
"6ba7b814-9dad-11d1-80b4-00c04fd430c8"namerequired
stringe.g.
"Premium Monthly"plan_coderequired
stringe.g.
"premium-monthly"descriptionnullable
stringe.g.
"Premium subscription with all features"amountrequired
integerRecurring amount in cents.
e.g.
2999one_time_amount
integerOne-time setup fee in cents.
e.g.
999currencyrequired
stringe.g.
"usd"billing_cyclerequired
BillingCyclebilling_cyclesrequired
integerTotal billing cycles. `0` means unlimited.
e.g.
0products
array[object]pricing_tiers
array[object]activerequired
booleane.g.
truecreated_atrequired
string (date-time)e.g.
"2024-01-15T10:30:00.000Z"updated_atrequired
string (date-time)e.g.
"2024-01-15T10:30:00.000Z" 404 Not Found — The requested resource doesn't exist.
FieldTypeDescription
errorrequired
objecttyperequired
enumThe type of error.
invalid_request_errorauthentication_errorauthorization_errorrate_limit_erroridempotency_errorprocessing_errorwebhook_errorcoderequired
stringA short string identifying the specific error.
e.g.
"validation_error"messagerequired
stringA human-readable message providing details about the error.
e.g.
"Request validation failed"paramnullable
stringThe parameter that caused the error, if applicable.
e.g.
"email"request_id
stringUnique request identifier for debugging.
e.g.
"req_a1b2c3d4e5f67890abcdef0123456789"field_errors
array[object]Detailed field-level errors for validation failures.