Update an invoice item
Changes one item on an open, unpaid invoice. You can change quantity, reference_price, reference_currency and meta on any item, and also name, type, tax_code and subscription_plan_id on a custom item. Items that are part of a bundle cannot be changed: delete the bundle and add it again. Shipping and promotions are worked out again. Takes a secret or trusted token. Limited tokens may not change items (403).
AuthorizationBearer <token>A secret, trusted or limited token. See Authentication.
invoice_id*stringThe invoice id.
item_id*stringThe item id. For a product it is the product_id.
expand?stringComma-separated child objects to return in full instead of as a URL, for example customer,payments. Use dot notation for nested objects (items.product), up to four levels deep. A single object takes up to 12 paths; a list takes up to 2, applied to every item. Extra paths are dropped without an error. See Expanding objects.
show?stringComma-separated fields to return; all others are left out. Use dot notation for child fields (customer.email). You cannot send show and hide together (400). See Customizing output.
hide?stringComma-separated fields to leave out of the response. Use dot notation for child fields (customer.email). You cannot send show and hide together (400). See Customizing output.
formatted?booleanWhen true, the object also has a formatted child with amounts and dates as display text in the shopper's language and currency (for example $19.99 or November 7, 2026). The default is false. See Localized formatting.
falseapplication/json- body
An item to add to an invoice, or the fields to change on one. Send a product_id to bill a product from your catalog. Leave it out to add a custom item, which then needs name, type and reference_price. Custom items are not allowed on accounts where Comecero is the seller (reseller model). Limited tokens may not add or change items.
product_id?stringThe product to bill. The product must be active. The item takes its name, type, tax code and subscription plan from the product, and its item_id is the product_id. A bundle product adds one item for the bundle and one zero-priced item per product in it.
item_id?stringFor a custom item, your own id. Letters, numbers, underscores, dashes and periods only. If you leave it out, Comecero assigns the next number. On update it must match the item_id in the URL.
name?stringThe item name. Required for a custom item. Ignored for a product.
length <= 75type?stringThe item type. Required for a custom item. Physical items need a shipping address and may add shipping. Ignored for a product.
"digital""physical""service"quantity?numberThe quantity. Defaults to 1. Decimals are allowed, up to 8 decimal places.
0 <= valuereference_price?numberThe unit price. Required for a custom item (0 is allowed). For a product, it replaces the product's price. Comecero converts it from reference_currency to the invoice currency.
0 <= valuereference_currency?stringThe currency of reference_price, a three-letter ISO 4217 code. Defaults to the invoice currency.
tax_code?stringThe tax code to work out tax with. Custom items only.
subscription_plan_id?stringMakes a custom item a subscription. Paying the invoice starts the subscription on this plan.
meta?Your own data for this item, up to 2,048 characters as JSON.
The updated item.
application/json- response
A line on an invoice. It is either a product from your catalog (it has a product_id) or a custom item you describe on the invoice itself (no product_id). Money fields are in the invoice currency unless the field name starts with settlement_.
object?"invoice_item"The object type. Always invoice_item.
"invoice_item"url?stringThe full URL of this item.
uriitem_id?stringThe item id. For a product it is the product_id. For a custom item it is the id you supplied, or a number Comecero assigns (1, 2 and so on).
invoice_id?stringThe invoice this item belongs to.
cross_sell_id?|The cross-sell promotion that added this item, if any.
up_sell_id?|The up-sell promotion that added this item, if any.
bundle_id?|When this item comes from a bundle product, the bundle's product_id.
bundle_group_id?|Shared by the bundle's own item and every item it expands into. Items in a bundle group cannot be changed one at a time: delete any one of them to remove the whole group, then add the bundle again.
date_created?stringWhen the item was added.
date-timedate_modified?stringWhen the item was last changed.
date-timeproduct_id?|The product this item is for, or null for a custom item.
name?stringThe item name. For a product it is the product name.
type?stringThe item type. shipping only on the shipping line (Get the invoice shipping item).
"digital""physical""service""bundle""shipping"quantity?numberThe quantity. Invoices allow decimal quantities with up to 8 decimal places.
currency?stringThe invoice currency, a three-letter ISO 4217 code.
price?numberThe unit price after discounts, in the invoice currency.
price_original?numberThe unit price before discounts, in the invoice currency.
reference_price?|The price you set for this item, in reference_currency. Comecero converts it to the invoice currency to get price. Null when the product's own price is used. Not returned to limited tokens.
reference_currency?|The currency of reference_price. Not returned to limited tokens.
subtotal?numberprice times quantity, in the invoice currency.
subtotal_original?numberprice_original times quantity, in the invoice currency.
discount?numberThe discount on one unit, in the invoice currency.
discount_percent?numberThe unit discount as a fraction of price_original, for example 0.1 for 10%.
tax?numberThe tax on this line after discounts, in the invoice currency.
tax_original?numberThe tax on this line before discounts, in the invoice currency.
total?numbersubtotal plus tax, in the invoice currency.
total_original?numbersubtotal_original plus tax_original, in the invoice currency.
tax_rate?numberThe tax rate applied, as a fraction, for example 0.2 for 20%.
tax_code?|The tax code used to work out tax. Not returned to limited tokens.
settlement_currency?stringThe currency you are paid out in. This and the other settlement_ fields are not returned to limited tokens.
settlement_price?numberprice in the settlement currency.
settlement_price_original?numberprice_original in the settlement currency.
settlement_subtotal?numbersubtotal in the settlement currency.
settlement_subtotal_original?numbersubtotal_original in the settlement currency.
settlement_discount?numberdiscount in the settlement currency.
settlement_tax?numbertax in the settlement currency.
settlement_tax_original?numbertax_original in the settlement currency.
settlement_total?numbertotal in the settlement currency.
settlement_total_original?numbertotal_original in the settlement currency.
product?||A link to the product, or the product itself when you expand product. Null for a custom item. Left out when the token may not read products.
subscription_plan?||A link to the subscription plan, or the plan itself when you expand subscription_plan. Null when the item is not a subscription. Paying the invoice starts the subscription.
subscription_terms?||For a subscription item, a link to its terms (price, billing interval, trial), or the terms themselves when you expand subscription_terms. Null otherwise.
meta?|Your own data for this item, up to 2,048 characters as JSON.
formatted?Only when you send formatted=true. The money, percent and date fields above as display text.
curl -X POST 'https://api.comecero.com/api/v1/invoices/string/items/string' \ -H 'Content-Type: application/json' \ -d '{ "quantity": 12}'{ "object": "invoice_item", "url": "https://api.comecero.com/api/v1/invoices/4827-KTPMW-639/items/1", "item_id": "1", "invoice_id": "4827-KTPMW-639", "cross_sell_id": null, "up_sell_id": null, "bundle_id": null, "bundle_group_id": null, "date_created": "2026-11-02T15:04:11Z", "date_modified": "2026-11-02T15:04:11Z", "product_id": null, "name": "Website setup, 10 hours", "type": "service", "quantity": 10, "currency": "USD", "price": 95, "price_original": 95, "reference_price": 95, "reference_currency": "USD", "subtotal": 950, "subtotal_original": 950, "discount": 0, "discount_percent": 0, "tax": 0, "tax_original": 0, "total": 950, "total_original": 950, "tax_rate": 0, "tax_code": null, "settlement_currency": "USD", "settlement_price": 95, "settlement_price_original": 95, "settlement_subtotal": 950, "settlement_subtotal_original": 950, "settlement_discount": 0, "settlement_tax": 0, "settlement_tax_original": 0, "settlement_total": 950, "settlement_total_original": 950, "product": null, "subscription_plan": null, "subscription_terms": null, "meta": null}Get an invoice item GET
Returns one item on an invoice. Takes a secret, trusted or limited token. A limited token must be bound to the invoice and cannot see a draft.
Delete an invoice item DELETE
Removes one item from an open, unpaid invoice. If the item is part of a bundle, the whole bundle is removed. Shipping and promotions are worked out again. Takes a secret or trusted token.