# Update an invoice item

Updates an invoice item.

Endpoint: PUT /invoices/{id}/items/{itemId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters:

  - `id` (string, required)
    ID of the resource.

  - `itemId` (string, required)
    ID of the invoice item.

## Request fields (application/json):

  - `type` (string, required)
    Type of invoice item.
    Enum: "debit", "credit"

  - `description` (string)
    Description of the invoice item.

  - `unitPrice` (number, required)
    Unit price of the invoice item.

  - `quantity` (integer)
    Quantity of the invoice item.

  - `productId` (string | null)
    ID of the product.
    Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ

  - `periodStartTime` (string | null)
    Date and time when the billing period starts.

  - `periodEndTime` (string | null)
    Date and time when the billing period ends.

  - `periodNumber` (integer | null)
    Billing period number that is associated with the invoice item.
For example, an invoice item for a service is included in billing period number 3.
The invoice item is only applied to billing period number 3.

## Response 200 fields (application/json):

  - `id` (string)
    ID of the invoice item.
    Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV

  - `type` (string, required)
    Type of invoice item.
    Enum: "debit", "credit"

  - `description` (string)
    Description of the invoice item.

  - `unitPrice` (number, required)
    Unit price of the invoice item.

  - `quantity` (integer)
    Quantity of the invoice item.

  - `price` (number)
    Total price of the invoice item.

  - `productId` (string | null)
    ID of the product.
    Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ

  - `planId` (string | null)
    ID of the plan.
    Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X

  - `subscriptionId` (string | null)
    ID of the order.
    Example: sub_01HRF27SATGE4Z6PBJE6PD8328

  - `periodStartTime` (string | null)
    Date and time when the billing period starts.

  - `periodEndTime` (string | null)
    Date and time when the billing period ends.

  - `periodNumber` (integer | null)
    Billing period number that is associated with the invoice item.
For example, an invoice item for a service is included in billing period number 3.
The invoice item is only applied to billing period number 3.

  - `createdTime` (string)
    Date and time when the resource is created.
This value is set automatically when the resource is created.

  - `updatedTime` (string)
    Date and time when the resource is updated.
This value is set automatically when the resource is updated.

  - `tax` (any)
    Invoice item tax.

  - `tax.amount` (number, required)
    Amount of the tax.

  - `tax.description` (string, required)
    Description of the tax.

  - `tax.rate` (number | null)
    Overall sales tax rate which includes state, county, city and district tax.

  - `tax.stateAmount` (number | null)
    Amount of sales tax to collect for the state.
    Example: 0.94

  - `tax.countyAmount` (number | null)
    Amount of sales tax to collect for the county.
    Example: 0.04

  - `tax.cityAmount` (number | null)
    Amount of sales tax to collect for the city.
    Example: 0

  - `tax.specialDistrictAmount` (number | null)
    Amount of sales tax to collect for the special district.
    Example: 0.38

  - `tax.stateRate` (number | null)
    State sales tax rate for given location.

  - `tax.countyRate` (number | null)
    County sales tax rate for given location.

  - `tax.cityRate` (number | null)
    City sales tax rate for given location.

  - `tax.specialDistrictRate` (number | null)
    Special district sales tax rate for given location.

  - `tax.jurisdictions` (object | null)
    Jurisdiction names for the invoice.

  - `tax.jurisdictions.country` (string | null)
    Two-letter ISO country code for the provided location.
    Example: US

  - `tax.jurisdictions.state` (string | null)
    Postal abbreviated state name for the provided location.
    Example: CA

  - `tax.jurisdictions.county` (string | null)
    County name for the provided location.
    Example: LOS ANGELES

  - `tax.jurisdictions.city` (string | null)
    City name for the provided location.
    Example: LOS ANGELES

  - `_links` (array)
    Related links.

  - `_links.href` (string)
    Link URL.

  - `_links.rel` (string)
    Type of link.
    Enum: "self", "product", "subscription", "plan"

  - `_embedded` (object)
    Embedded objects that are requested by the `expand` query parameter.

  - `_embedded.product` (object)

  - `_embedded.plan` (object)

## Response 401 fields (application/json):

  - `status` (integer)
    HTTP status code.

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.

## Response 422 fields (application/json):

  - `status` (integer)
    HTTP status code.

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.

  - `invalidFields` (array)
    Invalid field details.
    Example: [{"field":"field1","message":"field1 is invalid"},{"field":"subObject.field2","message":"field2 is invalid"},{"field":"subObject.field2","message":"another error in the field2"}]

  - `invalidFields.field` (string)
    Name of the field.
Dot notation is used for nested object field names.

  - `invalidFields.message` (string)
    Message field.

## Response 429 fields (application/json):

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".
    Example: about:blank

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.
    Example: Rate Limit Exceeded

  - `status` (integer)
    HTTP status code.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.
    Example: A request cannot be executed because the user has sent too many requests within a certain period of time

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.

