Subscriptions

Provision subscription

Creates a new subscription for an existing customer. When payment is required and no payment method exists, returns a checkout URL.

post/api/v1/subscriptions

Headers

X-ACCOUNT-IDstring

Account ID — optional when authenticating with a user JWT (Bearer token); falls back to the user's first membership. Ignored for API-key auth.

X-ENVIRONMENT-IDstring

Environment ID — required when authenticating with a user JWT (Bearer token) on environment-scoped endpoints. Ignored for API-key auth (env is intrinsic to the key).

Request body

idstring

Unique identifier for the subscription

customerIdstring required

Customer ID to provision the subscription for

planIdstring required

Plan ID to provision

payingCustomerIdstring nullable

Optional paying customer ID for split billing scenarios

resourceIdstring nullable

Optional resource ID for multi-instance subscriptions

billingPeriod'MONTHLY' | 'ANNUALLY'

Billing period (MONTHLY or ANNUALLY)

startDatestring date-time

Subscription start date

cancellationDatestring date-time

Subscription cancellation date

billingIdstring nullable

External billing system identifier

billingCountryCodestring nullable

The ISO 3166-1 alpha-2 country code for billing

scheduleStrategy'END_OF_BILLING_PERIOD' | 'END_OF_BILLING_MONTH' | 'IMMEDIATE'

Strategy for scheduling subscription changes

metadataobject

Additional metadata for the subscription

salesforceIdstring nullable

Salesforce ID

paymentCollectionMethod'CHARGE' | 'INVOICE' | 'NONE'

How payments should be collected for this subscription

awaitPaymentConfirmationboolean

Whether to wait for payment confirmation before returning the subscription

unitQuantityinteger

Unit quantity for per-unit pricing. Minimum is 0 (zero is allowed).

billingCycleAnchor'UNCHANGED' | 'NOW'

Billing cycle anchor behavior for the subscription

Response

The newly created subscription object.

Changes

Changed in 10 of the 115 revisions of this API.106

    • added the optional property data/subscription/contractId to the response with the 201 status

      response-optional-property-added

  • b876edd1a4fc51See the full diff
    • added the new CreditOveragePriceCurrencyNotFound enum value to the code response property for the response status 400

      response-property-enum-value-added

    • added the new InvalidCreditOverageBillingModel enum value to the code response property for the response status 400

      response-property-enum-value-added

    • added the new InvoicePreviewNotAvailableForDraftContract enum value to the code response property for the response status 400

      response-property-enum-value-added

    • added the new OveragePriceNotSupportedOnAddon enum value to the code response property for the response status 400

      response-property-enum-value-added

    • added the new OveragePriceRequiresUsageLimit enum value to the code response property for the response status 400

      response-property-enum-value-added

    • removed the InvoicePreviewNotAvailableForDraftContract enum value from the code response property for the response status 409

      response-property-enum-value-removed

    • added the new GovernanceNotEnabled enum value to the code response property for the response status 403

      response-property-enum-value-added

    • added the new InvoicePreviewNotAvailableForDraftContract enum value to the code response property for the response status 409

      response-property-enum-value-added

    • added the new optional header request parameter X-ACCOUNT-ID

      new-optional-request-parameter

    • added the new optional header request parameter X-ENVIRONMENT-ID

      new-optional-request-parameter

    • added the new optional request property cancellationDate

      new-optional-request-property

    • added the new PricingModelNotSupportedByBillingIntegration enum value to the code response property for the response status 400

      response-property-enum-value-added

    • added the new DataExportIntegrationError enum value to the code response property for the response status 400

      response-property-enum-value-added

    • added the new InvalidReceivedSignatureError enum value to the code response property for the response status 400

      response-property-enum-value-added

    • the unitQuantity request property's min was decreased from 1.00 to 0.00

      request-property-min-decreased