Skip to content

Create a subscription

Request

Creates a new subscription.

Security
bearerAuth
Query
fields[]Array of strings

Allows you to specify which fields are returned in the response.

Accepted values `custom_fields`, `created_by_id`, `updated_by_id`, `created_time`, `id`, `updated_time`, `subscription_number`, `state`, `account_id`, `invoice_owner_account_id`, `auto_renew`, `version`, `initial_term`, `current_term`, `renewal_term`, `start_date`, `end_date`, `description`, `contract_effective`, `service_activation`, `customer_acceptance`, `invoice_separately`, `latest_version`, `payment_terms`, `billing_document_settings`, `bill_to_id`, `sold_to_id`, `contracted_mrr`, `currency`, `cancel_reason`, `last_booking_date`, `order_number`
Example:fields[]=id,created_time
subscription.fields[]Array of stringsdeprecated

Allows you to specify which fields are returned in the response.

Accepted values `custom_fields`, `created_by_id`, `updated_by_id`, `created_time`, `id`, `updated_time`, `subscription_number`, `state`, `account_id`, `invoice_owner_account_id`, `auto_renew`, `version`, `initial_term`, `current_term`, `renewal_term`, `start_date`, `end_date`, `description`, `contract_effective`, `service_activation`, `customer_acceptance`, `invoice_separately`, `latest_version`, `payment_terms`, `billing_document_settings`, `bill_to_id`, `sold_to_id`, `contracted_mrr`, `currency`, `cancel_reason`, `last_booking_date`, `order_number`
Example:subscription.fields[]=id,created_time
subscription_plans.fields[]Array of strings

Allows you to specify which fields are returned in the response.

Accepted values `custom_fields`, `created_by_id`, `updated_by_id`, `created_time`, `id`, `updated_time`, `name`, `plan_id`, `subscription_id`, `product_id`, `subscription_plan_number`
Example:subscription_plans.fields[]=id,created_time
subscription_items.fields[]Array of strings

Allows you to specify which fields are returned in the response.

Accepted values `custom_fields`, `created_by_id`, `updated_by_id`, `created_time`, `id`, `updated_time`, `start_date`, `end_date`, `charge_model`, `charge_type`, `tiers`, `subscription_item_number`, `name`, `description`, `charged_through_date`, `recurring`, `price_id`, `start_event`, `tax_code`, `tax_inclusive`, `unit_of_measure`, `quantity`, `price_base_interval`, `overage`, `subscription_plan_id`, `tiers_mode`, `processed_through_date`, `active`, `state`, `unit_amount`, `amount`, `discount_amount`, `discount_percent`, `price_change_percentage`, `price_change_option`
Example:subscription_items.fields[]=id,created_time
account.fields[]Array of strings

Allows you to specify which fields are returned in the response.

Accepted values `custom_fields`, `created_by_id`, `updated_by_id`, `created_time`, `id`, `updated_time`, `auto_pay`, `account_number`, `bill_to_id`, `sold_to_id`, `billing_document_settings`, `communication_profile_id`, `crm_id`, `sales_rep`, `parent_account_id`, `payment_gateway`, `payment_terms`, `remaining_credit_memo_balance`, `remaining_debit_memo_balance`, `remaining_invoice_balance`, `remaining_payment_balance`, `sequence_set_id`, `tax_certificate`, `batch`, `tax_identifier`, `bill_cycle_day`, `description`, `name`, `currency`, `default_payment_method_id`, `enabled`
Example:account.fields[]=id,created_time
invoice_owner_account.fields[]Array of strings

Allows you to specify which fields are returned in the response.

Accepted values `custom_fields`, `created_by_id`, `updated_by_id`, `created_time`, `id`, `updated_time`, `auto_pay`, `account_number`, `bill_to_id`, `sold_to_id`, `billing_document_settings`, `communication_profile_id`, `crm_id`, `sales_rep`, `parent_account_id`, `payment_gateway`, `payment_terms`, `remaining_credit_memo_balance`, `remaining_debit_memo_balance`, `remaining_invoice_balance`, `remaining_payment_balance`, `sequence_set_id`, `tax_certificate`, `batch`, `tax_identifier`, `bill_cycle_day`, `description`, `name`, `currency`, `default_payment_method_id`, `enabled`
Example:invoice_owner_account.fields[]=id,created_time
plan.fields[]Array of strings

Allows you to specify which fields are returned in the response.

Accepted values `custom_fields`, `created_by_id`, `updated_by_id`, `created_time`, `id`, `updated_time`, `start_date`, `end_date`, `name`, `active`, `description`, `plan_number`, `product_id`, `active_currencies`
Example:plan.fields[]=id,created_time
product.fields[]Array of strings

Allows you to specify which fields are returned in the response.

Accepted values `custom_fields`, `created_by_id`, `updated_by_id`, `created_time`, `id`, `updated_time`, `start_date`, `end_date`, `active`, `name`, `type`, `sku`, `description`
Example:product.fields[]=id,created_time
price.fields[]Array of strings

Allows you to specify which fields are returned in the response.

Accepted values `custom_fields`, `created_by_id`, `updated_by_id`, `created_time`, `id`, `updated_time`, `tiers`, `charge_model`, `charge_type`, `name`, `description`, `revenue_recognition_rule`, `stacked_discount`, `recognized_revenue_accounting_code`, `deferred_revenue_accounting_code`, `accounting_code`, `recurring`, `start_event`, `tax_code`, `tax_inclusive`, `taxable`, `unit_of_measure`, `quantity`, `min_quantity`, `max_quantity`, `price_base_interval`, `discount_level`, `overage`, `plan_id`, `tiers_mode`, `apply_discount_to`, `prepayment`, `drawdown`, `discount_amounts`, `unit_amounts`, `discount_percent`, `amounts`, `price_change_percentage`, `price_change_option`, `price_increase_option`
Example:price.fields[]=id,created_time
bill_to.fields[]Array of strings

Allows you to specify which fields are returned in the response.

Accepted values `custom_fields`, `created_by_id`, `updated_by_id`, `created_time`, `id`, `updated_time`, `account_id`, `address`, `home_phone`, `first_name`, `last_name`, `email`, `work_email`, `nickname`, `other_phone`, `work_phone`, `mobile_phone`, `tax_region`, `other_phone_type`, `fax`
Example:bill_to.fields[]=id,created_time
prepaid_balance.fields[]Array of strings

Allows you to specify which fields are returned in the response.

Accepted values `prepaid_UOM`, `start_date`, `end_date`, `total_balance`, `remaining_balance`
Example:prepaid_balance.fields[]=id,created_time
prepaid_balances.fields[]Array of strings

Allows you to specify which fields are returned in the response.

Accepted values `validity_periods`
Example:prepaid_balances.fields[]=id,created_time
validity_period.fields[]Array of strings

Allows you to specify which fields are returned in the response.

Accepted values `prepaid_UOM`, `start_date`, `end_date`, `total_balance`, `remaining_balance`, `overage_rated_amount`, `overage_rated_quantity`
Example:validity_period.fields[]=id,created_time
transactions.fields[]Array of strings

Allows you to specify which fields are returned in the response.

Accepted values `transaction_date`, `type`, `quantity`
Example:transactions.fields[]=id,created_time
expand[]Array of strings

Allows you to expand responses by including related object information in a single call. See the Expand responses section of the Quickstart API Tutorials for detailed instructions.

filter[]Array of strings

A case-sensitive filter on the list. See the Filter lists section of the Quickstart API Tutorial for detailed instructions.
Note that the filters on this operation are only applicable to the related objects. For example, when you are calling the "Retrieve a billing document" operation, you can use the filter[] parameter on the related objects such as filter[]=items[account_id].EQ:8ad09e208858b5cf0188595208151c63

page_sizeinteger, [ 1 .. 99 ]

The maximum number of results to return in a single page. If the specified page_size is less than 1 or greater than 99, Zuora will return a 400 error.

Headers
zuora-track-idstring

A custom identifier for tracking API requests. If you set a value for this header, Zuora returns the same value in the response header. This header enables you to track your API calls to assist with troubleshooting in the event of an issue. The value of this field must use the US-ASCII character set and must not include any of the following characters: colon (:), semicolon (;), double quote ("), or quote (').

asyncboolean

Making asynchronous requests allows you to scale your applications more efficiently by leveraging Zuora's infrastructure to enqueue and execute requests for you without blocking. These requests also use built-in retry semantics, which makes them much less likely to fail for non-deterministic reasons, even in extreme high-throughput scenarios. Meanwhile, when you send a request to one of these endpoints, you can expect to receive a response in less than 150 milliseconds and these calls are unlikely to trigger rate limit errors. If set to true, Zuora returns a 202 Accepted response, and the response body contains only a request ID.

Default:false
zuora-entity-idsstring

An entity ID. If you have Multi-entity enabled and the authorization token is valid for more than one entity, you must use this header to specify which entity to perform the operation on. If the authorization token is only valid for a single entity or you do not have Multi-entity enabled, you do not need to set this header.

idempotency-keystring

Specify a unique idempotency key if you want to perform an idempotent POST or PATCH request. Do not use this header in other request types. This idempotency key should be a unique value, and the Zuora server identifies subsequent retries of the same request using this value. For more information, see Idempotent Requests.

accept-encodingstring

Include a accept-encoding: gzip header to compress responses, which can reduce the bandwidth required for a response. If specified, Zuora automatically compresses responses that contain over 1000 bytes. For more information about this header, see Request and Response Compression.

content-encodingstring

Include a content-encoding: gzip header to compress a request. Upload a gzipped file for the payload if you specify this header. For more information, see Request and Response Compression.

Bodyapplication/jsonrequired
invoice_owner_account_idstring

Identifier of the account that owns the invoice associated with this subscription. If you specify this field, do not specify invoice_owner_account_data.

invoice_owner_account_numberstring

Identifier of the account that owns the invoice associated with this subscription. If you specify this field, do not specify invoice_owner_account_data.

invoice_owner_account_dataobject(AccountCreateRequest)

The information of the new account that owns the invoice associated with this subscription. If you specify this field, do not specify invoice_owner_account_id.

account_idstring

Identifier of the account that owns the subscription. Subscription owner account can be different from the invoice owner account. If you specify this field, do not specify account_data.

account_numberstring

Identifier of the account that owns the subscription. Subscription owner account can be different from the invoice owner account. If you specify this field, do not specify account_data.

account_dataobject(AccountCreateRequest)

The information of the new account that owns the subscription. The subscription owner account can be different from the invoice owner account. If you specify this field, do not specify account_id.

auto_renewboolean

If true, the subscription automatically renews at the end of the current term.

subscription_numberstring

Human-readable identifier of the subscription; maybe user-supplied.

initial_termobject(Term)

Initial term information for the subscription.

renewal_termobject(Term)

Renewal term information for the subscription

start_onobject(StartOn)

Container for the contract effective, service activation, and customer acceptance dates of the order action or subscription.

  • If Zuora is configured to require service activation and the service_activation field is not set for a subscription_plans order action or the "Create a subscription" operation, a pending order and/or a pending_activation subscription are created.
  • If Zuora is configured to require customer acceptance and the customer_acceptance field is not set for a subscription_plans order action or the "Create a subscription" operation, a pending order and/or a pending_acceptance subscription are created. At the same time, if the service activation date field is also required and not set, a pending order and/or a pending_activation subscription are created instead.
  • If Zuora is configured to require service activation and the service_activation field is not set for any of the following order actions or the "Update a subscription" operation, a pending order is created. The subscription status is not impacted. Note: This feature is in Limited Availability. If you want to have access to the feature, submit a request at Zuora Global Support.
    • add_subscription_plans
    • update_subscription_plans
    • remove_subscription_plans
    • renew
    • terms
  • If Zuora is configured to require customer acceptance and the customer_acceptance field is not set for any of the following order actions or the "Update a subscription" operation, a pending order is created. The subscription status is not impacted. Note: This feature is in Limited Availability. If you want to have access to the feature, submit a request at Zuora Global Support.
    • add_subscription_plans
    • update_subscription_plans
    • remove_subscription_plans
    • renew
    • terms
  • descriptionstring

    Description of the subscription. Often useful for displaying to users.

    invoice_separatelyboolean

    Separates a single subscription from other subscriptions and creates an invoice for this subscription. If the value is true, the subscription is billed separately from other subscriptions. If the value is false, the subscription is included with other subscriptions in the account invoice.

    processing_optionsobject(ProcessingOptions)

    Processing options for the invoice or payment.

    custom_fieldsobject(CustomFields)

    Set of user-defined fields associated with this object. Useful for storing additional information about the object in a structured format.

    subscription_plansArray of objects(SubscriptionPlanCreateRequest)

    The plans associated with the new subscription.

    bill_to_idstring or null

    ID of the bill-to contact.

    Example:"2c92c0f86a8dd422016a9e7a70116b0d"
    payment_termsstring or null

    The name of payment term associated with the invoice.

    billing_document_settingsobject(FlexibleBillingDocumentSettings)

    The billing document settings for the customer.

    sold_to_idstring or null

    ID of the sold-to contact.

    Example:"2c92c0f86a8dd422016a9e7a70116b0d"
    currencystring

    3-letter ISO 4217 currency code. This field is available only if you have the Multiple Currencies feature enabled.

    change_reasonstring

    A brief description of the reason for this change.

    { "account_id": "RC-00000011", "auto_renew": true, "initial_term": { "interval_count": 1, "interval": "month", "start_date": "2022-07-01", "type": "termed" }, "start_on": { "contract_effective": "2022-07-01", "service_activation": "2022-07-01", "customer_acceptance": "2022-07-01" }, "description": "Create Subscription", "invoice_separately": false, "custom_fields": { "field__c": "custom field value" }, "subscription_plans": [ { … } ] }

    Responses

    Default Response

    Headers
    ratelimit-limitstring

    The request limit quota for the time window closest to exhaustion. See rate limits for more information.

    ratelimit-remainingnumber

    The number of requests remaining in the time window closest to quota exhaustion. See rate limits for more information.

    ratelimit-resetnumber

    The number of seconds until the quota resets for the time window closest to quota exhaustion. See rate limits for more information.

    zuora-request-idstring

    Zuora’s internal identifier for this request.

    zuora-track-idstring

    A user-supplied identifier for this request. If you supply a zuora-track-id as a request header, Zuora returns the zuora-track-id as a response header.

    Bodyapplication/json
    idstringread-only

    Unique identifier for the object.

    updated_by_idstringread-only

    Unique identifier of the Zuora user who last updated the object

    updated_timestring, (date-time)read-only

    The date and time when the object was last updated in ISO 8601 UTC format.

    created_by_idstringread-only

    Unique identifier of the Zuora user who created the object

    created_timestring, (date-time)read-only

    The date and time when the object was created in ISO 8601 UTC format.

    custom_fieldsobject(CustomFields)

    Set of user-defined fields associated with this object. Useful for storing additional information about the object in a structured format.

    custom_objectsobjectread-only

    The custom objects associated with a Zuora standard object.

    subscription_numberstring

    Human-readable identifier of the subscription. It can be user-supplied.

    statestring

    Status of the subscription.

    Enum:"draft""pending_activation""pending_acceptance""active""expired""canceled""paused"
    versioninteger

    The version of the subscription. This version can be used in the filter[] query parameter to filter subscriptions.

    account_idstring

    Identifier of the account associated with this subscription.

    accountobject(Account)

    Information of the new account associated with the subscription.

    invoice_owner_account_idstring

    Identifier of the account that owns the invoice associated with this subscription.

    invoice_owner_accountobject(Account)

    Identifier of the account that owns the subscription.

    auto_renewboolean

    If this field is set to true, the subscription automatically renews at the end of the current term.

    latest_versionboolean

    If true, this is the latest version of the subscription

    initial_termobject(Term)

    Initial term information for the subscription.

    current_termobject(Term)

    Current term information for the subscription

    renewal_termobject(Term)

    Renewal term information for the subscription.

    start_datestring, (date)

    Date when the subscription starts.

    Example:"2020-01-01"
    end_datestring, (date)

    Date when the subscription ends.

    Example:"2023-01-01"
    descriptionstring

    Description of the subscription. Often useful for displaying to users.

    contract_effectivestring, (date)

    Date when the subscriber contract is effective.

    Example:"2023-01-01"
    service_activationstring, (date)

    Date when the subscribed-to service is activated.

    Example:"2023-01-01"
    customer_acceptancestring, (date)

    Date when all the services or products in the subscription are accepted by the subscriber.

    Example:"2023-01-01"
    invoice_separatelyboolean

    If true, the subscription is billed separately from other subscriptions. If false, the subscription is included with other subscriptions in the account invoice. The default is false.

    order_numberstring

    The order number of the order created by Zuora.

    subscription_plansobject(SubscriptionPlanListResponse)read-only

    List of subscription plans.

    invoice_itemsobject(InvoiceItemListResponse)read-only

    List of invoice items.

    prepaid_balancesArray of objects(PrepaidBalances)read-only

    Total prepaid units available during a subscription. It is an aggregate of all funds under a subscription.

    contracted_mrrstring

    Monthly recurring revenue of the subscription.

    currencystring

    3-letter ISO 4217 currency code. This field is available only if you have the Multiple Currencies feature enabled.

    cancel_reasonstring

    The reason for cancelling the subscription.

    last_booking_datestring, (date)

    The last booking date of the subscription object. You can override the date value when creating a subscription through the "Subscribe and Amend" API. The default value today is set per the user's timezone. The value of this field is as follows:

    • For a new subscription created by the Subscribe and Amend APIs, this field has the value of the subscription creation date.
    • For a subscription changed by an amendment, this field has the value of the amendment booking date.
    • For a subscription created or changed by an order, this field has the value of the order date.

    Example:"2023-01-01"
    bill_to_idstring or null

    ID of the bill-to contact.

    Example:"2c92c0f86a8dd422016a9e7a70116b0d"
    payment_termsstring or null

    The name of payment term associated with the invoice.

    bill_toobject(Contact)read-only

    The billing address for the customer.

    billing_document_settingsobject(FlexibleBillingDocumentSettings)

    The billing document settings for the customer.

    sold_to_idstring or null

    ID of the sold-to contact.

    Example:"2c92c0f86a8dd422016a9e7a70116b0d"
    sold_toobject(Contact)read-only

    The selling address for the customer.

    prepaid_balanceArray of objects(PrepaidBalance)read-onlydeprecated

    Total prepaid units available during a subscription. It is an aggregate of all funds under a subscription. Deprecated, please use prepaid_balances instead.

    Response
    { "id": "8ad08ccf8437067601843a7af4e64rq3", "custom_fields": { "field__c": "custom field value" }, "subscription_number": "A-S0001332401234", "state": "active", "account_id": "2c92c0f86a8dd422016a9e7a70116b0d", "invoice_owner_account_id": "2c92c0f86a8dd422016a9e7a70116b0d", "auto_renew": true, "latest_version": true, "initial_term": { "interval_count": 1, "interval": "month", "type": "termed" }, "current_term": { "interval_count": 1, "interval": "month", "start_date": "2022-07-01", "type": "termed", "end_date": "2022-08-01" }, "start_date": "2022-07-01", "end_date": "2022-08-01", "description": "Create Subscription", "contract_effective": "2022-07-01", "service_activation": "2022-07-01", "customer_acceptance": "2022-07-01", "invoice_separately": false, "order_number": "O-00020812" }