# CRUD: Create an invoice item adjustment

Endpoint: POST /v1/object/invoice-item-adjustment
Version: 2026-09-11

## Header parameters:

  - `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. 

With this header specified, the Zuora server can identify subsequent retries of the same request using this value, which prevents the same operation from being performed multiple times by accident.

  - `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](https://developer.zuora.com/api-references/api/operation/createToken).

  - `Zuora-Entity-Ids` (string)
    An entity ID. If you have [Zuora Multi-entity](https://docs.zuora.com?resourceId=platform-multi-entity-overview) 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 do not need to set this header.

  - `Zuora-Track-Id` (string)
    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 (`'`).

## Request fields (application/json):

  - `AccountingCode` (string)
    The accounting code for the invoice item. Accounting codes group transactions that contain similar accounting attributes.
**Character limit**: 100 **Values**: inherited from `InvoiceItem.AccountingCode`

  - `AdjustmentDate` (string, required)
    The date when the invoice item adjustment is applied, in `yyyy-mm-dd` format. This date must be the same as the invoice's date or later.
**Character limit**: 29

  - `AdjustmentNumber` (string)
    A unique string to identify an individual invoice item adjustment.
**Character limit**: 255 **Values**: automatically generated

  - `Amount` (number, required)
    The amount of the invoice item adjustment. The value of Amount must be positive. Use the required parameter Type to either credit or charge (debit) this amount on the invoice. **Character limit**: 16 **Values**: a valid currency amount

  - `Comment` (string)
    Use this field to record comments about the invoice item adjustment.
**Character limit**: 255 **Values**: a string of 255 characters or fewer

  - `CreatedById` (string)
    The user ID of the person who created the invoice item.
**Character limit**: 32 **Values**: automatically generated

  - `DeferredRevenueAccount` (string)
    Records the deferred accounting code in the finance system. This field is in Limited Availability. If you want to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/). **Character limit**: 100
**Version notes**: WSDL 63.0+
**Values**: If this field is not passed in, a value from InvoiceItem will be used.

  - `ExcludeItemBillingFromRevenueAccounting` (boolean)
    The flag to exclude Order Line Item related invoice items, invoice item adjustments, credit memo items, and debit memo items that are generate for the rate plan charge from revenue accounting. Set this field to `true` to exclude the billing item from the revenue accounting.
**Character limit**: 100
**Version notes**: WSDL 117.0+
**Values**: a boolean value
**Note**: This field is only available if you have the Billing - Revenue Integration feature enabled.

  - `InvoiceId` (string, required)
    The ID of the invoice associated with the adjustment. The adjustment invoice item is in this invoice. This field is optional if you specify a value for the `InvoiceNumber` field.
**Character limit**: 3 **Values**: a valid invoice ID

  - `InvoiceNumber` (string, required)
    The unique identification number for the invoice that contains the invoice item. This field is optional if you specify a value for the `InvoiceId` field.
**Character limit**: 32 **Values**: a valid invoice number

  - `ReasonCode` (string)
    A code identifying the reason for the transaction. Must be an existing reason code or empty. If you do not specify a value, Zuora uses the default reason code.
**Character limit**: 32 **Values**: a valid reason code

  - `RecognizedRevenueAccount` (string)
    Records the recognized accounting code in the finance system. This field is in Limited Availability. If you want to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/). **Character limit**: 100
**Version notes**: WSDL 63.0+
**Values**: If this field is not passed in, a value from InvoiceItem will be used.

  - `ReferenceId` (string)
    A code to reference an object external to Zuora. For example, you can use this field to reference a case number in an external system.
**Character limit**: 60 **Values**: a string of 60 characters or fewer

  - `SourceId` (string, required)
    The ID of the item specified in the SourceType field.
**Character limit**: 32 **Values**: a valid invoice item ID or taxation item ID

  - `SourceType` (string, required)
    The type of adjustment.
**Character limit**: 13 **Values**: InvoiceDetail, Tax

  - `Type` (string, required)
    Indicates whether the adjustment credits or debits the invoice item amount.
    Enum: "Credit", "Charge"

  - `InvoiceItemAdjustment.IntegrationId__NS` (string)
    ID of the corresponding object in NetSuite. Only available if you have installed the [Zuora Connector for NetSuite](https://www.zuora.com/connect/app/?appId=265).

  - `InvoiceItemAdjustment.IntegrationStatus__NS` (string)
    Status of the invoice item adjustment's synchronization with NetSuite. Only available if you have installed the [Zuora Connector for NetSuite](https://www.zuora.com/connect/app/?appId=265).

  - `InvoiceItemAdjustment.SyncDate__NS` (string)
    Date when the invoice item adjustment was synchronized with NetSuite. Only available if you have installed the [Zuora Connector for NetSuite](https://www.zuora.com/connect/app/?appId=265).

## Response 200 fields (application/json):

  - `Id` (string)

  - `Success` (boolean)

## Response 200 headers (application/json):

  - `Content-Encoding` (string)
    This header is returned if you specify the `Accept-Encoding: gzip` request header and the response contains over 1000 bytes of data.

Note that only the following MIME types support gzipped responses:
  - `application/json`
  - `application/xml`
  - `text/html`
  - `text/csv`
  - `text/plain`

  - `RateLimit-Limit` (string)
    The request limit quota for the time window closest to exhaustion. See [rate limits](https://developer.zuora.com/docs/guides/rate-limits/) for more information.

  - `RateLimit-Remaining` (number)
    The number of requests remaining in the time window closest to quota exhaustion. See [rate limits](https://developer.zuora.com/docs/guides/rate-limits/) for more information.

  - `RateLimit-Reset` (number)
    The number of seconds until the quota resets for the time window closest to quota exhaustion. See [rate limits](https://developer.zuora.com/docs/guides/rate-limits/) for more information.

  - `Zuora-Request-Id` (string)
    The Zuora internal identifier of the API call. You cannot control the value of this header.

  - `Zuora-Track-Id` (string)
    A custom identifier for tracing the API call. If you specified a tracing identifier in the request headers, Zuora returns the same tracing identifier. Otherwise, Zuora does not set this header.

## Response 400 fields (application/json):

  - `Errors` (array)

  - `Errors.Code` (string)

  - `Errors.Message` (string)

  - `Success` (boolean)

## Response 400 headers (application/json):

  - `Content-Encoding` (string)
    This header is returned if you specify the `Accept-Encoding: gzip` request header and the response contains over 1000 bytes of data.

Note that only the following MIME types support gzipped responses:
  - `application/json`
  - `application/xml`
  - `text/html`
  - `text/csv`
  - `text/plain`

  - `RateLimit-Limit` (string)
    The request limit quota for the time window closest to exhaustion. See [rate limits](https://developer.zuora.com/docs/guides/rate-limits/) for more information.

  - `RateLimit-Remaining` (number)
    The number of requests remaining in the time window closest to quota exhaustion. See [rate limits](https://developer.zuora.com/docs/guides/rate-limits/) for more information.

  - `RateLimit-Reset` (number)
    The number of seconds until the quota resets for the time window closest to quota exhaustion. See [rate limits](https://developer.zuora.com/docs/guides/rate-limits/) for more information.

  - `Zuora-Request-Id` (string)
    The Zuora internal identifier of the API call. You cannot control the value of this header.

  - `Zuora-Track-Id` (string)
    A custom identifier for tracing the API call. If you specified a tracing identifier in the request headers, Zuora returns the same tracing identifier. Otherwise, Zuora does not set this header.

## Response 401 fields (application/json):

  - `message` (string)
    Error message.
If the error message is "Authentication error", ensure that the `Authorization` request header contains valid authentication credentials, then retry the request. See [Authentication](https://developer.zuora.com/rest-api/general-concepts/authentication/) for more information.
If the error message is "Failed to get user info", retry the request.

## Response 401 headers (application/json):

  - `Content-Encoding` (string)
    This header is returned if you specify the `Accept-Encoding: gzip` request header and the response contains over 1000 bytes of data.

Note that only the following MIME types support gzipped responses:
  - `application/json`
  - `application/xml`
  - `text/html`
  - `text/csv`
  - `text/plain`

  - `RateLimit-Limit` (string)
    The request limit quota for the time window closest to exhaustion. See [rate limits](https://developer.zuora.com/docs/guides/rate-limits/) for more information.

  - `RateLimit-Remaining` (number)
    The number of requests remaining in the time window closest to quota exhaustion. See [rate limits](https://developer.zuora.com/docs/guides/rate-limits/) for more information.

  - `RateLimit-Reset` (number)
    The number of seconds until the quota resets for the time window closest to quota exhaustion. See [rate limits](https://developer.zuora.com/docs/guides/rate-limits/) for more information.

  - `Zuora-Request-Id` (string)
    The Zuora internal identifier of the API call. You cannot control the value of this header.

  - `Zuora-Track-Id` (string)
    A custom identifier for tracing the API call. If you specified a tracing identifier in the request headers, Zuora returns the same tracing identifier. Otherwise, Zuora does not set this header.

  - `WWW-Authenticate` (string)
    The value of this header is:

```
Basic realm=Zuora API, ZSession realm=Zuora API, Bearer realm=Zuora API
```
    Enum: "Basic realm=Zuora API, ZSession realm=Zuora API, Bearer realm=Zuora API"

## Response 200 examples:

  - `response` (unknown)

## Response 400 examples:

  - `response` (unknown)

## Response 401 examples:

  - `response` (unknown)

