Create an order

You can use this operation to create subscriptions and make changes to existing subscriptions. You can also use this operation to create order line items.

Note that the following limitations apply to this operation:

  • Up to 50 subscriptions are allowed in a single call.
  • Up to 100 order line items are allowed in an order.
  • Up to 1000 orders are allowed on a subscription.

SecuritybearerAuth
Request
query Parameters
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, order_number, order_date, state, category, description, scheduled_date, scheduled_date_policy, line_items, subscriptions

Example: fields[]=id,created_time
order.fields[]
Array of strings
Deprecated

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, order_number, order_date, state, category, description, scheduled_date, scheduled_date_policy, line_items, subscriptions

Example: order.fields[]=id,created_time
order_actions.fields[]
Array of strings

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

Accepted values type, action_id, sequence, start_on, subscription_plans, renew, terms, cancel, pause, resume, order

Example: order_actions.fields[]=id,created_time
subscriptions.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, actions

Example: subscriptions.fields[]=id,created_time
line_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, total, subtotal, quantity_fulfilled, quantity_pending_fulfillment, unit_of_measure, accounting_code, adjustment_liability_account, unit_amount, target_date, billing_rule, contract_asset_account, contract_liability_account, description, discount_total, revenue, discount_unit_amount, discount_percent, category, name, item_number, type, list_price, list_unit_price, original_order_date, original_order_id, original_order_line_item_id, original_order_line_item_number, original_order_number, product_code, price_id, purchase_order_number, quantity, quantity_available_for_return, related_subscription_number, requires_fulfillment, sold_to_id, original_sold_to_id, tax_code, tax_inclusive, end_date, start_date, unbilled_receivables_account, state, order_id

Example: line_items.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, subscription_items

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
invoice_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, amount, booking_reference, applied_to_item_id, price_id, discount_item, deferred_revenue_account, description, invoice_id, sku, name, purchase_order_number, quantity, recognized_revenue_account, remaining_balance, revenue_recognition_rule_name, accounting_code, service_end, service_start, accounts_receivable_account, subscription_id, subscription_item_id, tax, tax_code, tax_inclusive, unit_amount, unit_of_measure, document_item_date

Example: invoice_items.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_size
integer [ 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.

header Parameters
zuora-track-id
string

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 (').

async
boolean
Default: false

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.

zuora-entity-ids
string

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-key
string

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-encoding
string

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-encoding
string

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.

Request Body schema: application/json
required
category
string

Category of the order to indicate a product sale or return. Default value is sale.

Enum: "sale" "return"
object (CustomFields)

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

description
string

An arbitrary string attached to the object. Often useful for displaying to users.

account_number
string

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

account_id
string

Identifier of the account.

object (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.

order_date
string <date>

The date when the order is signed. All the order actions under this order will use this order date as the contract effective date if the contract effective date field is skipped or its value is left as null.

order_number
string

The order number of the new order. If not provided, system will auto-generate a number for this order. Note: Ensure that the order number does not contain a slash.

Array of objects (LineItemCreateRequest)

Order line items are non-subscription-based items created by an order, representing transactional charges such as one-time fees, physical goods, or professional service charges that are not sold as subscription services. By specifying this field, you can launch non-subscription and unified monetization business models in Zuora, in addition to subscription business models.

object (OrdersProcessingOption)

Processing options for the invoice or payment.

Array of objects (PostSubscriptionOrderRequest)

Based on the intended order action, each item should include specific fields. For example, to create a new subscription for a new account, you must specify the account_data and subscription_plans fields at a minimum.

object (OrdersSchedulingOptions)
state
string

The status of the order.

Enum: "pending" "complete" "draft" "canceled" "scheduled" "executing" "failed"
Responses
200

Default Response

400

Bad Request

401

Unauthorized

404

Not Found

405

Method Not Allowed

429

Too Many Requests

500

Internal Server Error

502

Bad Gateway

503

Service Unavailable

504

Gateway Timeout

post/orders
Request samples
application/json
{
  • "description": "Create an new order with a new account",
  • "account_data": {
    },
  • "order_date": "2023-01-01",
  • "subscriptions": [
    ]
}
Response samples
application/json
{
  • "id": "8ad0934e861a27bd018624b93d2f11d9",
  • "order_number": "O-00021762",
  • "order_date": "2023-01-01",
  • "state": "pending",
  • "created_time": "2023-02-05T19:16:04-08:00",
  • "created_by_id": "8ad09bce80507dab0180688bdabc20cb",
  • "updated_time": "2023-02-05T19:16:05-08:00",
  • "updated_by_id": "8ad09bce80507dab0180688bdabc20cb",
  • "description": "Create a new subscription with a new account",
  • "account_id": "8ad0934e861a27bd018624b93ca211cb",
  • "line_items": [ ],
  • "subscriptions": [
    ]
}