# Create fulfillments Creates multiple fulfillments. Endpoint: POST /fulfillments/bulk_create Version: 2025-11-12 Security: bearerAuth ## Query parameters: - `fields[]` (array) 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, state, description, quantity, order_line_item_id, fulfillment_number, revenue, fulfillment_date, tracking_number, carrier, fulfillment_system, location, external_id, type, target_date Example: ["id,created_time"] - `fulfillment_item.fields[]` (array) 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, fulfillment_id, description, fulfillment_item_number Example: ["id,created_time"] - `credit_memo_item.fields[]` (array) 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, applied_to_item_id, price_id, discount_item, deferred_revenue_account, description, credit_memo_id, sku, name, purchase_order_number, quantity, recognized_revenue_account, remaining_balance, revenue_recognition_rule_name, service_end, service_start, accounts_receivable_account, on_account_account, subscription_id, subscription_item_id, tax, tax_code, tax_inclusive, unit_amount, unit_of_measure, subtotal, invoice_item_id, document_item_date Example: ["id,created_time"] - `invoice_item.fields[]` (array) 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: ["id,created_time"] - `expand[]` (array) 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) 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) 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. - `fulfillment.fields[]` (array) 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, state, description, quantity, order_line_item_id, fulfillment_number, revenue, fulfillment_date, tracking_number, carrier, fulfillment_system, location, external_id, type, target_date Example: ["id,created_time"] ## 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) 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 fields (application/json): - `data` (array) - `data.order_line_item_id` (string, required) The unique identifier of the associated order line item. - `data.carrier` (string) The name of the shipping carrier for this fulfillment. - `data.custom_fields` (object) Set of user-defined fields associated with this object. Useful for storing additional information about the object in a structured format. - `data.description` (string) An arbitrary string attached to the object. Often useful for displaying to users. - `data.revenue` (object) Accounting configuration if you have Zuora Revenue enabled. - `data.revenue.exclude_item_billing_from_revenue_accounting` (boolean) If set to true, any associated billing document items are excluded from the revenue accounting. - `data.revenue.exclude_item_booking_from_revenue_accounting` (boolean) If set to true, any associated subscription items are excluded from the revenue accounting. - `data.external_id` (string) An external identifier for the fulfillment - `data.fulfillment_date` (string, required) The date of the fulfillment. Example: "2022-01-01" - `data.location` (string) The fulfillment location of the fulfillment. - `data.fulfillment_system` (string) The fulfillment system for the fulfillment. - `data.type` (string) The type of fulfillment. Enum: "delivery", "return" - `data.quantity` (number, required) The number of units of this item. - `data.state` (string) The status of the invoice. Enum: "accepted", "booked", "sent_to_billing", "complete", "canceled" - `data.tracking_number` (string) The tracking number of the fulfillment. - `data.items` (array) Information of all fulfillment items. - `data.items.fulfillment_item_number` (string) Human-readable identifier for the object. It can be user-supplied. - `processing_options` (object) - `processing_options.document_date` (string) Date on which the billing document is created or paid. - `processing_options.target_date` (string) The target date for the order to be picked up by bill run for billing. ## Response 201 fields (application/json): - `data` (array) - `data.id` (string) Unique identifier for the object. - `data.updated_by_id` (string) Unique identifier of the Zuora user who last updated the object - `data.updated_time` (string) The date and time when the object was last updated in ISO 8601 UTC format. - `data.created_by_id` (string) Unique identifier of the Zuora user who created the object - `data.created_time` (string) The date and time when the object was created in ISO 8601 UTC format. - `data.custom_fields` (object) Set of user-defined fields associated with this object. Useful for storing additional information about the object in a structured format. - `data.custom_objects` (object) The custom objects associated with a Zuora standard object. - `data.order_line_item_id` (string) The unique identifier of the associated order line item. - `data.fulfillment_number` (string) Human-readable identifier for the object. It can be user-supplied. - `data.fulfillment_date` (string) The date of the fulfillment. Example: "2023-01-01" - `data.type` (string) The type of fulfillment. Enum: "delivery", "return" - `data.quantity` (number) The number of units of this item. - `data.state` (string) The status of the invoice. Enum: "accepted", "booked", "sent_to_billing", "complete", "canceled" - `data.target_date` (string) All order line items associated with this fulfillment that were unbilled on or before this date are included in future bill runs. Example: "2022-01-01" - `data.description` (string) An arbitrary string attached to the object. Often useful for displaying to users. - `data.tracking_number` (string) The tracking number of the fulfillment. - `data.carrier` (string) The name of the shipping carrier for this fulfillment. - `data.fulfillment_system` (string) The fulfillment system for the fulfillment. - `data.external_id` (string) An external identifier for the fulfillment. - `data.revenue` (object) Accounting configuration if you have Zuora Revenue enabled. - `data.revenue.exclude_item_billing_from_revenue_accounting` (boolean) If set to true, any associated billing document items are excluded from the revenue accounting. - `data.revenue.exclude_item_booking_from_revenue_accounting` (boolean) If set to true, any associated subscription items are excluded from the revenue accounting. - `data.location` (string) The fulfillment location of the fulfillment. - `amount_paid` (number) The total amount collected by this request. - `payment_number` (string) Human-readable identifier of the payment associated with this fulfillment. - `credit_memo_numbers` (array) Human-readable identifiers of any credit memos associated with this request. - `invoice_numbers` (array) Human-readable identifiers of any invoices associated with this request. ## Response 400 fields (application/json): - `type` (string) - `errors` (array) - `errors.code` (string) - `errors.parameter` (string) - `errors.message` (string) - `retryable` (boolean) ## Response 401 fields (application/json): - `type` (string) - `errors` (array) - `errors.code` (string) - `errors.parameter` (string) - `errors.message` (string) - `retryable` (boolean) ## Response 404 fields (application/json): - `type` (string) - `errors` (array) - `errors.code` (string) - `errors.parameter` (string) - `errors.message` (string) - `retryable` (boolean) ## Response 405 fields (application/json): - `type` (string) - `errors` (array) - `errors.code` (string) - `errors.parameter` (string) - `errors.message` (string) - `retryable` (boolean) ## Response 429 fields (application/json): - `type` (string) - `errors` (array) - `errors.code` (string) - `errors.parameter` (string) - `errors.message` (string) - `retryable` (boolean) ## Response 500 fields (application/json): - `type` (string) - `errors` (array) - `errors.code` (string) - `errors.parameter` (string) - `errors.message` (string) - `retryable` (boolean) ## Response 502 fields (application/json): - `type` (string) - `errors` (array) - `errors.code` (string) - `errors.parameter` (string) - `errors.message` (string) - `retryable` (boolean) ## Response 503 fields (application/json): - `type` (string) - `errors` (array) - `errors.code` (string) - `errors.parameter` (string) - `errors.message` (string) - `retryable` (boolean) ## Response 504 fields (application/json): - `type` (string) - `errors` (array) - `errors.code` (string) - `errors.parameter` (string) - `errors.message` (string) - `retryable` (boolean)