Skip to main content
POST
Create a subscription

Request Body

Example Request

Response

Activation issues the subscription’s first invoice. Collect it on the hosted checkout page — https://api.recurso.dev/checkout/{invoice_id} (gateway chosen from the invoice currency) — or automatically via a saved mandate. Find the invoice with GET /v1/invoices?subscription_id=....

Errors

See Errors for the error envelope and the full code taxonomy.

Authorizations

Authorization
string
header
required

Tenant API key obtained from POST /auth/register or POST /v1/developer/keys.

Body

application/json
customer_id
string<uuid>
required
plan_id
string<uuid>
required
entity_id
string<uuid>

Multi-Entity Books: the issuing legal entity. Omit for the tenant's primary entity.

coupon_code
string
start_date
string<date-time>
billing_anchor_type
enum<string>
Available options:
acquisition,
first_of_month
payment_terms
enum<string>
Available options:
net0,
net15,
net30,
net60
trial_days
integer

When greater than zero, the subscription starts in trialing and converts to active (generating its first invoice) when the trial ends.

Required range: x >= 0

Response

Subscription created.

id
string<uuid>
tenant_id
string<uuid>
customer_id
string<uuid>
plan_id
string<uuid>
status
enum<string>
Available options:
trialing,
active,
past_due,
paused,
canceled,
unpaid
current_period_start
string<date-time>
current_period_end
string<date-time>
cancel_at_period_end
boolean
canceled_at
string<date-time>
cancellation_reason
string
cancellation_feedback
string
billing_anchor
string<date-time>
billing_anchor_type
string
billing_anchor_day
integer
payment_terms
string
coupon_id
string<uuid>
reference_id
string
mandate_id
string<uuid>
razorpay_subscription_id
string
stripe_subscription_id
string
created_at
string<date-time>
updated_at
string<date-time>