Update an order line item

Note: The Order Line Items feature is now generally available to all Zuora customers. You need to enable the Orders feature to access the Order Line Items feature. As of Zuora Billing Release 313 (November 2021), new customers who onboard on Orders will have the Order Line Items feature enabled by default. If you are a new customer who onboard on Orders Harmonization and want to enable the Order Line Items feature, submit a request at Zuora Global Support. If you are an existing Orders or Orders Harmonization customer and want to enable the Order Line Items feature, submit a request at Zuora Global Support.

Updates a specified order line item. The following tutorials demonstrate how to use this operation:

Request
path Parameters
itemId
required
string <UUID>

The id of the Order Line Item to update.

header Parameters
Accept-Encoding
string

Include the Accept-Encoding: gzip header to compress responses as a gzipped file. It can significantly reduce the bandwidth required for a response.

If specified, Zuora automatically compresses responses that contain over 1000 bytes of data, and the response contains a Content-Encoding header with the compression algorithm so that your client can decompress it.

Content-Encoding
string

Include the Content-Encoding: gzip header to compress a request. With this header specified, you should upload a gzipped file for the request payload instead of sending the JSON payload.

Authorization
string

The value is in the Bearer {token} format where {token} is a valid OAuth token generated by calling Create an OAuth token.

Zuora-Track-Id
string <= 64 characters

A custom identifier for tracing the API call. If you set a value for this header, Zuora returns the same value in the response headers. This header enables you to associate your system process identifiers with Zuora 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 ("), and quote (').

Zuora-Entity-Ids
string

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

Zuora-Org-Ids
string

Comma separated IDs. If you have Zuora Multi-Org enabled, you can use this header to specify which orgs to perform the operation in. If you do not have Zuora Multi-Org enabled, you should not set this header.

The IDs must be a sub-set of the user's accessible orgs. If you specify an org that the user does not have access to, the operation fails.

If the header is not set, the operation is performed in scope of the user's accessible orgs.

Request Body schema: application/json
required
UOM
string

Specifies the units to measure usage.

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

accountingCode
string

The accountingCode for the Order Line Item (OLI).

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

adjustmentLiabilityAccountingCode
string

The accounting code on the Order Line Item object for customers using Zuora Billing - Revenue Integration.

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

adjustmentRevenueAccountingCode
string

The accounting code on the Order Line Item object for customers using Zuora Billing - Revenue Integration.

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

amountPerUnit
number

The actual charged amount per unit for the Order Line Item (OLI).

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

billTargetDate
string <date>

The target date for the Order Line Item (OLI) to be picked up by bill run for generating billing documents.

To generate billing documents for an OLI, you must set this field and set the itemState field to SentToBilling.

You can update this field for a sales or return OLI only when the OLI is in the Executing state (when the itemState field is set as Executing).

billTo
string

The ID of a contact that belongs to the billing account of the order line item. Use this field to assign an existing account as the bill-to contact of an order line item.

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

billingRule
string
Default: "TriggerWithoutFulfillment"

The rule for billing of the Order Line Item (OLI).

You can update this field for a sales or return OLI only when it is in the Executing state (when the itemState field is set as Executing).

Enum: "TriggerWithoutFulfillment" "TriggerAsFulfillmentOccurs"
contractAssetAccountingCode
string

The accounting code on the Order Line Item object for customers using Zuora Billing - Revenue Integration.

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

contractLiabilityAccountingCode
string

The accounting code on the Order Line Item object for customers using Zuora Billing - Revenue Integration.

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

contractRecognizedRevenueAccountingCode
string

The accounting code on the Order Line Item object for customers using Zuora Billing - Revenue Integration.

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

object (OrderLineItemCustomFields)

Container for custom fields of an Order Line Item object.

deferredRevenueAccountingCode
string

The deferred revenue accounting code for the Order Line Item (OLI).

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

description
string

The description of the Order Line Item (OLI).

You can update this field for a sales or return OLI only when the OLI is in the Executing state (when the itemState field is set as Executing).

excludeItemBillingFromRevenueAccounting
boolean

Indicates whether to exclude the related invoice items, invoice item adjustments, credit memo items, and debit memo items from revenue accounting.

Note: This field is only available if you have the Order to Revenue or Billing - Revenue Integration feature enabled.

excludeItemBookingFromRevenueAccounting
boolean

Indicates whether to exclude the related rate plan charges and order line items from revenue accounting.

Note: This field is only available if you have the Order to Revenue or Billing - Revenue Integration feature enabled.

invoiceGroupNumber
string or null <= 255 characters

The number of the invoice group associated with the order line item.

After enabling the Invoice Grouping feature, you can specify invoice group numbers to bill subscriptions and order line items based on specific criteria. For the same account, Zuora generates separate invoices for subscriptions and order line items, each identified by unique invoice group numbers. For more information, see Invoice Grouping.

Note:

  • If you have the Flexible Billing Attributes feature disabled, this field is unavailable in the request body and the value of this field is null in the response body.
  • If you have the Flexible Billing Attributes feature enabled, and you do not specify this field in the request during subscription creation, the value of this field is automatically set to null in the response body.
inlineDiscountPerUnit
number

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

Use this field in accordance with the inlineDiscountType field, in the following manner:

  • If the inlineDiscountType field is set as Percentage, this field specifies the discount percentage for each unit of the order line item. For exmaple, if you specify 5 in this field, the discount percentage is 5%.
  • If the inlineDiscountType field is set as FixedAmount, this field specifies the discount amount on each unit of the order line item. For exmaple, if you specify 10 in this field, the discount amount on each unit of the order line item is 10.

Once you set the inlineDiscountType, inlineDiscountPerUnit, and listPricePerUnit fields, the system will automatically generate the amountPerUnit field. You shall not set the amountPerUnit field by yourself.

inlineDiscountType
string

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

Use this field to specify the inline discount type, which can be Percentage, FixedAmount, or None. The default value is Percentage.

Use this field together with the inlineDiscountPerUnit field to specify inline discounts for order line items. The inline discount is applied to the list price of an order line item.

Once you set the inlineDiscountType, inlineDiscountPerUnit, and listPricePerUnit fields, the system will automatically generate the amountPerUnit field. You shall not set the amountPerUnit field by yourself.

Enum: "Percentage" "FixedAmount" "None"
isAllocationEligible
boolean

This field is used to identify if the charge segment is allocation eligible in revenue recognition.

Note: This feature is in the Early Adopter phase. If you want to use the feature, submit a request at Zuora Global Support, and we will evaluate whether the feature is suitable for your use cases.

isUnbilled
boolean

This field is used to dictate how to perform the accounting during revenue recognition.

Note: This feature is in the Early Adopter phase. If you want to use the feature, submit a request at Zuora Global Support, and we will evaluate whether the feature is suitable for your use cases.

itemName
string

The name of the Order Line Item (OLI).

You can update this field for a sales or return OLI only when the OLI is in the Executing state (when the itemState field is set as Executing).

itemNumber
string

The number for the Order Line Item (OLI).

You can update this field for a sales or return OLI only when the OLI is in the Executing state (when the itemState field is set as Executing).

itemState
string

The state of the Order Line Item (OLI). See State transitions for an order, order line item, and fulfillment for more information.

To generate invoice for an OLI, you must set this field to SentToBilling and set the billTargetDate field .

You can update this field for a sales or return OLI only when the OLI is in the Executing or 'Booked' or SentToBillingstate (when the itemState field is set as Executing or SentToBilling).

Enum: "Executing" "Booked" "SentToBilling" "Complete" "Cancelled"
itemType
string

The type of the Order Line Item (OLI).

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

Enum: "Product" "Fee" "Services"
listPricePerUnit
number

The list price per unit for the Order Line Item (OLI).

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

ownerAccountNumber
string

Use this field to assign an existing account as the owner of an order line item.

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

productCode
string

The product code for the Order Line Item (OLI).

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

purchaseOrderNumber
string

Used by customers to specify the Purchase Order Number provided by the buyer.

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

quantity
number

The quantity of units, such as the number of authors in a hosted wiki service.

You can update this field for a sales or return OLI only when the OLI in the Executing state (when the itemState field is set as Executing).

recognizedRevenueAccountingCode
string

The recognized revenue accounting code for the Order Line Item (OLI).

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

relatedSubscriptionNumber
string

Use this field to relate an order line item to an subscription. Specify this field to the subscription number of the subscription to relate.

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

revenueRecognitionRule
string

The Revenue Recognition rule for the Order Line Item (OLI).

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

revenueRecognitionTiming
string <= 200 characters

Specifies the type of revenue recognition timing.

Predefined options are listed as enum values in this API Reference. Other options might also be avaliable depending on the revenue recognition policy configuration in the Zuora Billing UI.

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

Note: This field is only available if you have the Order to Revenue feature enabled.

Enum: "Upon Billing Document Posting Date" "Upon Order Activation Date"
revenueAmortizationMethod
string <= 200 characters

Specifies the type of revenue amortization method.

Predefined options are listed as enum values in this API Reference. Other options might also be avaliable depending on the revenue recognition policy configuration in the Zuora Billing UI.

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

Note: This field is only available if you have the Order to Revenue feature enabled.

Enum: "Immediate" "Ratable Using Start And End Dates"
sequenceSetId
string

The ID or number of the sequence set associated with the orderLineItem.

soldTo
string

Use this field to assign an existing account as the sold-to contact of an order line item, by the following rules:

  • If the ownerAccountNumber field is set, then this field must be the ID of a contact that belongs to the owner account of the order line item.
  • If the ownerAccountNumber field is not set, then this field must be the ID of a contact that belongs to the billing account of the order line item.

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

taxCode
string

The tax code for the Order Line Item (OLI).

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

taxMode
string

The tax mode for the Order Line Item (OLI).

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

Enum: "TaxInclusive" "TaxExclusive"
transactionEndDate
string <date>

The date a transaction is completed. The default value of this field is the transaction start date. Also, the value of this field should always equal or be later than the value of the transactionStartDate field.

You can update this field for a sales or return OLI only when the OLI is in the Executing state (when the itemState field is set as Executing).

transactionStartDate
string <date>

The date a transaction starts. The default value of this field is the order date.

You can update this field for a sales or return OLI only when the OLI is in the Executing state (when the itemState field is set as Executing).

unbilledReceivablesAccountingCode
string

The accounting code on the Order Line Item object for customers using Zuora Billing - Revenue Integration.

You can update this field only for a sales OLI and only when the sales OLI is in the Executing state (when the itemState field is set as Executing).

Responses
200
500

Internal Server Error

4XX

Request Errors

put/v1/order-line-items/{itemId}
Request samples
application/json
{
  • "UOM": "string",
  • "accountingCode": "string",
  • "adjustmentLiabilityAccountingCode": "string",
  • "adjustmentRevenueAccountingCode": "string",
  • "amountPerUnit": 0,
  • "billTargetDate": "2019-08-24",
  • "billTo": "string",
  • "billingRule": "TriggerWithoutFulfillment",
  • "contractAssetAccountingCode": "string",
  • "contractLiabilityAccountingCode": "string",
  • "contractRecognizedRevenueAccountingCode": "string",
  • "customFields": {
    },
  • "deferredRevenueAccountingCode": "string",
  • "description": "string",
  • "excludeItemBillingFromRevenueAccounting": true,
  • "excludeItemBookingFromRevenueAccounting": true,
  • "invoiceGroupNumber": "string",
  • "inlineDiscountPerUnit": 0,
  • "inlineDiscountType": "Percentage",
  • "isAllocationEligible": true,
  • "isUnbilled": true,
  • "itemName": "string",
  • "itemNumber": "string",
  • "itemState": "Executing",
  • "itemType": "Product",
  • "listPricePerUnit": 0,
  • "ownerAccountNumber": "string",
  • "productCode": "string",
  • "purchaseOrderNumber": "string",
  • "quantity": 0,
  • "recognizedRevenueAccountingCode": "string",
  • "relatedSubscriptionNumber": "string",
  • "revenueRecognitionRule": "string",
  • "revenueRecognitionTiming": "Upon Billing Document Posting Date",
  • "revenueAmortizationMethod": "Immediate",
  • "sequenceSetId": "string",
  • "soldTo": "string",
  • "taxCode": "string",
  • "taxMode": "TaxInclusive",
  • "transactionEndDate": "2019-08-24",
  • "transactionStartDate": "2019-08-24",
  • "unbilledReceivablesAccountingCode": "string"
}
Response samples
application/json
{
  • "success": true
}