SubscriptionCreateRequest
Request body for creating a new subscription.
Currency Validation:
currencyis required at the subscription level- When using
price_data: currency inside price_data must match the subscription currency
- Type: string
currency min length:3max length:3requiredThree-letter ISO currency code. Required at subscription level.
- Type: string
customer requiredID of the customer to subscribe.
- Type: array 1…20
items requiredSubscription items. All recurring items must share the same billing interval. Items without
recurringare one-time charges captured at creation and excluded from all future billing cycles.Subscription item referencing an existing price from your product catalog.
Currency Handling:
currencyis optional at item level- Falls back to the subscription-level
currencyif not provided - At least one of item.currency or subscription.currency must be set
- Type: string
price requiredPrice ID from your product catalog (ULID format).
- Type: object · RecurringConfig
recurring requiredRecurring billing configuration.
- Type: string
currency min length:3max length:3Three-letter ISO currency code (e.g.
usd). Optional — falls back to subscription.currency if not provided. - Type: integer
quantity min:1Quantity of the subscription item.
- Type: number | null
unit _amount min:0Unit amount override in cents. Falls back to the catalog price if omitted.
- Type: string | nullFormat: date-time
billing _cycle _anchor Defines the billing cycle anchor date (ISO 8601). Mutually exclusive with
billing_cycle_anchor_config. - Type: object | null · BillingCycleAnchorConfig
billing _cycle _anchor _config Advanced billing cycle configuration. Allows precise control over when billing cycles occur. All fields are optional integers with specific ranges.
- Type: integer
day _of _month min:1max:31requiredDay of month for billing (1–31).
- Type: integer | null
hour min:0max:23Hour of day for billing in UTC (0–23).
- Type: integer | null
minute min:0max:59Minute of hour for billing (0–59).
- Type: integer | null
month min:1max:12Month of year for billing (1–12).
- Type: integer | null
second min:0max:59Second of minute for billing (0–59).
- Type: string | nullFormat: date-time
cancel _at Schedule cancellation for a specific date (ISO 8601). Cannot be used with
cancel_at_period_end=true. - Type: boolean
cancel _at _period _end If
true, cancel at the end of the current billing period instead of immediately. - Type: stringenum
collection _method How to collect payment from the customer:
charge_automatically— charge the default payment method automatically (default)send_invoice— (coming soon) send an invoice and require manual payment
valuescharge _automatically send _invoice
- Type: integer
days _until _due min:1Number of days until the invoice is due. Required when
collection_method=send_invoice. - Type: string
default _payment _method ID of the payment method to use for this subscription.
- Type: boolean
livemode Whether this subscription is in live mode or test mode.
- Type: object
metadata Set of key-value pairs for storing additional information about the subscription.
- Type: anything
property Name
- Type: string
on _behalf _of Account ID for connected account scenarios.
- Type: string | nullFormat: date-time
trial _end End date of the trial period (ISO 8601 datetime). Mutually exclusive with
trial_period_days; provide exactly one. - Type: integer
trial _period _days min:1max:730Number of days for the trial period. Convenience alternative to
trial_end— resolved totrial_end = now + trial_period_daysat creation time. Mutually exclusive withtrial_end. - Type: object · TrialSettings
trial _settings Controls what happens when a trial period ends.
- Type: object
end _behavior Behavior when the trial ends.

