Assign a subscription
POST /v1/subscriptions assigns a plan to a customer and returns the new
subscription, whose id is the stable id you
keep for every later call.
Code
Code
Request fields
| Field | Required | Effect |
|---|---|---|
customerId | yes | The customer to assign the plan to (UUID). |
planId | yes | The plan to assign (UUID). |
startDate | yes | When the subscription begins (ISO 8601). A future date creates it scheduled. |
endDate | no | A fixed end date; the subscription expires then. |
billingCycleAnchor | no | The date the billing cycle aligns to. Defaults to startDate. |
prorationBehavior | no | How the partial period from startDate to the anchor is handled. Default none — see Proration. |
trialDays | no | Trial length (0–365). The subscription is trial until it elapses. |
billingDirection | no | advance (charge at the start of the period) or arrears (at the end). Default advance. See Billing & cadence. |
productOverrides | no | Per-product overrides against the plan template ([{ priceId, quantity }]). On a usage-metered price, discardPreAssignmentUsage: true keeps usage events dated before the assignment off this subscription's invoices; use it with a backdated startDate whose window already holds recorded usage. Other subscriptions on the same meter still bill those events. On a non-metered price the flag returns SUBSCRIPTION_DISCARD_USAGE_REQUIRES_USAGE_PRICE. |
automaticBilling | no | Whether to auto-charge the subscription's card each cycle. Takes effect only once a card is attached; cards are attached by the buyer (see below), never on this call. |
customerDepartmentId / departmentContactOverrideId | no | Route invoice delivery to a customer department / contact. |
joinBillingGroupId | no | Create the subscription straight onto this billing group of the same customer. See below. |
formBillingGroupWithSubscriptionId | no | Create the subscription and form a new billing group with this existing subscription of the same customer as the lead. See below. |
What you can't set over the API
currency— a subscription's currency is contractual, resolved from the customer and plan; there is no currency field on assign. Multi-currency is not selectable at assign time.- Send-offset / prebill days — the lead time for issuing an invoice before the period is operator-configured, not a public field.
- A card / payment method — a subscription's card is attached by the buyer
with their consent, through a card-save link or portal checkout; it is never
set on this call. A subscription is created without a card and bills by
invoice until the buyer attaches one.
paymentMethodIdis deprecated and non-functional — any value sent is rejected.
Onto a billing group
Two optional fields place the new subscription on a billing group in the same call. Send at most one of them.
joinBillingGroupIdadds it to an existing group of the same customer. The group's billing date replacesbillingCycleAnchor;startDateandprorationBehaviorstill decide how the period up to that date is handled.formBillingGroupWithSubscriptionIdforms a new group with the named existing subscription as the lead. The lead's next billing date replacesbillingCycleAnchor, and the lead's terms are written onto the new subscription.
The assignment and the placement commit together: a refused placement creates
no subscription, and the response's billingGroupId already names the group. A
dissolved group answers 400 SUBSCRIPTION_BILLING_GROUP_NOT_JOINABLE. A group
whose billing date moved while the request ran answers
409 SUBSCRIPTION_BILLING_GROUP_GRID_MOVED_DURING_ASSIGN, and nothing was
created; retry the request.
What the first invoice does
The first charge depends on three inputs:
- Trial — with
trialDays, no charge is taken until the trial ends; the subscription sits intrialuntil then. - Billing direction —
advancecharges at the start of the first period;arrearscharges at the end. - Proration — when
startDatedoesn't equal thebillingCycleAnchor, the partial first period is handled perprorationBehavior. The defaultnonegifts it; the other modes charge it (immediately or on the next invoice). See Proration for the worked examples.
A card pay-first subscription (its first charge taken on a card up front)
sits in awaiting_payment and grants no access until that charge clears;
subscriptions billed by other means activate directly. See
Lifecycle & statuses.