# invoiceitem

From **Stripe API**.

Sometimes you want to add a charge or credit to a customer, but actually
charge or credit the customer's card only at the end of a regular billing
cycle. This is useful for combining several charges (to minimize
per-transaction fees), or for having Stripe tabulate your usage-based billing
totals.

Related guide: [Subscription Invoices](https://stripe.com/docs/billing/invoices/subscription#adding-upcoming-invoice-items).

- Type: `object`

## Properties

### `amount`

- Required: true
- Type: `integer`

Amount (in the `currency` specified) of the invoice item. This should always be equal to `unit_amount * quantity`.

### `currency`

- Required: true
- Type: `string`

Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).

### `customer`

- Required: true
The ID of the customer who will be billed when this invoice item is billed.

### `date`

- Required: true
- Type: `integer`
- Format: `unix-time`

Time at which the object was created. Measured in seconds since the Unix epoch.

### `description`

- Required: false
- Type: `string`
- Nullable: true
- maxLength: `5000`

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

### `discountable`

- Required: true
- Type: `boolean`

If true, discounts will apply to this invoice item. Always false for prorations.

### `discounts`

- Required: false
- Type: `array`
- Nullable: true

The discounts which apply to the invoice item. Item discounts are applied before invoice discounts. Use `expand[]=discounts` to expand each discount.

### `id`

- Required: true
- Type: `string`
- maxLength: `5000`

Unique identifier for the object.

### `invoice`

- Required: false
- Nullable: true

The ID of the invoice this invoice item belongs to.

### `livemode`

- Required: true
- Type: `boolean`

Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.

### `metadata`

- Required: false
- Type: `object`
- Nullable: true

Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

### `object`

- Required: true
- Type: `string`
- Allowed values: `"invoiceitem"`

String representing the object's type. Objects of the same type share the same value.

### `period`

- Required: true
- Type: `object`

### `price`

- Required: false
- Nullable: true

The price of the invoice item.

### `proration`

- Required: true
- Type: `boolean`

Whether the invoice item was created automatically as a proration adjustment when the customer switched plans.

### `quantity`

- Required: true
- Type: `integer`

Quantity of units for the invoice item. If the invoice item is a proration, the quantity of the subscription that the proration was computed for.

### `subscription`

- Required: false
- Nullable: true

The subscription that this invoice item has been created for, if any.

### `subscription_item`

- Required: false
- Type: `string`
- maxLength: `5000`

The subscription item that this invoice item has been created for, if any.

### `tax_rates`

- Required: false
- Type: `array`
- Nullable: true

The tax rates which apply to the invoice item. When set, the `default_tax_rates` on the invoice do not apply to this invoice item.

### `unit_amount`

- Required: false
- Type: `integer`
- Nullable: true

Unit amount (in the `currency` specified) of the invoice item.

### `unit_amount_decimal`

- Required: false
- Type: `string`
- Format: `decimal`
- Nullable: true

Same as `unit_amount`, but contains a decimal value with at most 12 decimal places.

## JSON Schema

```json
{"description":"Sometimes you want to add a charge or credit to a customer, but actually\ncharge or credit the customer's card only at the end of a regular billing\ncycle. This is useful for combining several charges (to minimize\nper-transaction fees), or for having Stripe tabulate your usage-based billing\ntotals.\n\nRelated guide: [Subscription Invoices](https://stripe.com/docs/billing/invoices/subscription#adding-upcoming-invoice-items).","properties":{"amount":{"description":"Amount (in the `currency` specified) of the invoice item. This should always be equal to `unit_amount * quantity`.","type":"integer"},"currency":{"description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).","type":"string"},"customer":{"anyOf":[{"maxLength":5000,"type":"string"},{"$ref":"#/components/schemas/customer"},{"$ref":"#/components/schemas/deleted_customer"}],"description":"The ID of the customer who will be billed when this invoice item is billed.","x-expansionResources":{"oneOf":[{"$ref":"#/components/schemas/customer"},{"$ref":"#/components/schemas/deleted_customer"}]}},"date":{"description":"Time at which the object was created. Measured in seconds since the Unix epoch.","format":"unix-time","type":"integer"},"description":{"description":"An arbitrary string attached to the object. Often useful for displaying to users.","maxLength":5000,"nullable":true,"type":"string"},"discountable":{"description":"If true, discounts will apply to this invoice item. Always false for prorations.","type":"boolean"},"discounts":{"description":"The discounts which apply to the invoice item. Item discounts are applied before invoice discounts. Use `expand[]=discounts` to expand each discount.","items":{"anyOf":[{"maxLength":5000,"type":"string"},{"$ref":"#/components/schemas/discount"}],"x-expansionResources":{"oneOf":[{"$ref":"#/components/schemas/discount"}]}},"nullable":true,"type":"array"},"id":{"description":"Unique identifier for the object.","maxLength":5000,"type":"string"},"invoice":{"anyOf":[{"maxLength":5000,"type":"string"},{"$ref":"#/components/schemas/invoice"}],"description":"The ID of the invoice this invoice item belongs to.","nullable":true,"x-expansionResources":{"oneOf":[{"$ref":"#/components/schemas/invoice"}]}},"livemode":{"description":"Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.","type":"boolean"},"metadata":{"additionalProperties":{"maxLength":500,"type":"string"},"description":"Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.","nullable":true,"type":"object"},"object":{"description":"String representing the object's type. Objects of the same type share the same value.","enum":["invoiceitem"],"type":"string"},"period":{"$ref":"#/components/schemas/invoice_line_item_period"},"price":{"anyOf":[{"$ref":"#/components/schemas/price"}],"description":"The price of the invoice item.","nullable":true},"proration":{"description":"Whether the invoice item was created automatically as a proration adjustment when the customer switched plans.","type":"boolean"},"quantity":{"description":"Quantity of units for the invoice item. If the invoice item is a proration, the quantity of the subscription that the proration was computed for.","type":"integer"},"subscription":{"anyOf":[{"maxLength":5000,"type":"string"},{"$ref":"#/components/schemas/subscription"}],"description":"The subscription that this invoice item has been created for, if any.","nullable":true,"x-expansionResources":{"oneOf":[{"$ref":"#/components/schemas/subscription"}]}},"subscription_item":{"description":"The subscription item that this invoice item has been created for, if any.","maxLength":5000,"type":"string"},"tax_rates":{"description":"The tax rates which apply to the invoice item. When set, the `default_tax_rates` on the invoice do not apply to this invoice item.","items":{"$ref":"#/components/schemas/tax_rate"},"nullable":true,"type":"array"},"unit_amount":{"description":"Unit amount (in the `currency` specified) of the invoice item.","nullable":true,"type":"integer"},"unit_amount_decimal":{"description":"Same as `unit_amount`, but contains a decimal value with at most 12 decimal places.","format":"decimal","nullable":true,"type":"string"}},"required":["amount","currency","customer","date","discountable","id","livemode","object","period","proration","quantity"],"title":"InvoiceItem","type":"object","x-expandableFields":["customer","discounts","invoice","period","price","subscription","tax_rates"],"x-resourceId":"invoiceitem"}
```
