Create an invoice item v1

POST /v1/invoiceitems

Creates an item to be added to a draft invoice (up to 250 items per invoice). If no invoice is specified, the item will be on the next invoice created for the customer specified.

Parameters

  • amountinteger

    The integer amount in the smallest currency unit of the charge to be applied to the upcoming invoice. Passing in a negative amount will reduce the amount_due on the invoice.

  • currencyenum

    Three-letter ISO currency code, in lowercase. Must be a supported currency.

  • customerstring

    The ID of the customer to bill for this invoice item.

  • customer_accountstring

    The ID of the account representing the customer to bill for this invoice item.

  • descriptionstring

    An arbitrary string which you can attach to the invoice item. The description is displayed in the invoice for easy tracking.

  • metadatamap

    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.

  • periodobject

    The period associated with this invoice item. When set to different values, the period will be rendered on the invoice. If you have Stripe Revenue Recognition enabled, the period will be used to recognize and defer revenue. See the Revenue Recognition documentation for details.

  • pricingobject

    The pricing information for the invoice item.

More parameters

  • discountableboolean

  • discountsarray of objects

  • invoicestring

  • price_dataobject

  • quantityintegerDeprecated

  • quantity_decimaldecimal string

  • subscriptionstring

  • tax_behaviorenumRecommended if calculating taxes

  • tax_codestringRecommended if calculating taxes

  • tax_ratesarray of strings

  • unit_amount_decimaldecimal string

Returns

The created invoice item object is returned if successful. Otherwise, this call raises an error.

curl https://api.stripe.com/v1/invoiceitems \
-u "sk_test_...sk_test_...:" \
-H "Stripe-Version: 2026-10-28.endive" \
-d customer= \
-d "pricing[price]="
Response
{
"object": "invoiceitem",
"amount": 1099,
"currency": "usd",
"customer": "",
"date": 1680640231,
"description": "T-shirt",
"discountable": true,
"discounts": [],
"invoice": null,
"livemode": false,
"metadata": {},
"parent": null,
"period": {
"end": 1680640231,
"start": 1680640231
},
"pricing": {
"price_details": {
"product": ""
},
"type": "price_details",
"unit_amount_decimal": "1099"
},
"proration": false,
"quantity": 1,
"quantity_decimal": "1",
"tax_rates": [],
"test_clock": null
}

Update an invoice item v1

POST /v1/invoiceitems/:id

Updates the amount or description of an invoice item on an upcoming invoice. Updating an invoice item is only possible before the invoice it’s attached to is closed.

Parameters

  • amountinteger

    The integer amount in the smallest currency unit of the charge to be applied to the upcoming invoice. If you want to apply a credit to the customer’s account, pass a negative amount.

  • descriptionstring

    An arbitrary string which you can attach to the invoice item. The description is displayed in the invoice for easy tracking.

  • metadatamap

    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.

  • periodobject

    The period associated with this invoice item. When set to different values, the period will be rendered on the invoice. If you have Stripe Revenue Recognition enabled, the period will be used to recognize and defer revenue. See the Revenue Recognition documentation for details.

  • pricingobject

    The pricing information for the invoice item.

More parameters

  • idstringRequired

  • discountableboolean

  • discountsarray of objects

  • invoicing_rulesenumPreview feature

  • price_dataobject

  • quantityintegerDeprecated

  • quantity_decimaldecimal string

  • tax_behaviorenumRecommended if calculating taxes

  • tax_codestringRecommended if calculating taxes

  • tax_ratesarray of strings

  • unit_amount_decimaldecimal string

Returns

The updated invoice item object is returned upon success. Otherwise, this call raises an error.

curl https://api.stripe.com/v1/invoiceitems/ \
-u "sk_test_...sk_test_...:" \
-H "Stripe-Version: 2026-10-28.endive" \
-d "metadata[order_id]=6735"
Response
{
"object": "invoiceitem",
"amount": 1099,
"currency": "usd",
"customer": "",
"date": 1680640231,
"description": "T-shirt",
"discountable": true,
"discounts": [],
"invoice": null,
"livemode": false,
"metadata": {
"order_id": "6735"
},
"parent": null,
"period": {
"end": 1680640231,
"start": 1680640231
},
"pricing": {
"price_details": {
"product": ""
},
"type": "price_details",
"unit_amount_decimal": "1099"
},
"proration": false,
"quantity": 1,
"quantity_decimal": "1",
"tax_rates": [],
"test_clock": null
}

Retrieve an invoice item v1

GET /v1/invoiceitems/:id

Retrieves the invoice item with the given ID.

Parameters

  • idstringRequired

    Unique identifier for the object.

Returns

Returns an invoice item if a valid invoice item ID was provided. Raises an error otherwise.

curl https://api.stripe.com/v1/invoiceitems/ \
-u "sk_test_...sk_test_...:" \
-H "Stripe-Version: 2026-10-28.endive"
Response
{
"object": "invoiceitem",
"amount": 1099,
"currency": "usd",
"customer": "",
"date": 1680640231,
"description": "T-shirt",
"discountable": true,
"discounts": [],
"invoice": null,
"livemode": false,
"metadata": {},
"parent": null,
"period": {
"end": 1680640231,
"start": 1680640231
},
"pricing": {
"price_details": {
"product": ""
},
"type": "price_details",
"unit_amount_decimal": "1099"
},
"proration": false,
"quantity": 1,
"quantity_decimal": "1",
"tax_rates": [],
"test_clock": null
}