List invoice promotions
Returns the promotions applied to an invoice: its coupon, and any cross-sell or up-sell offers its items came from. The list is offset-based. Takes a secret, trusted or limited token. A limited token must be bound to the invoice and cannot see a draft.
AuthorizationBearer <token>A secret, trusted or limited token. See Authentication.
invoice_id*stringThe invoice id.
limit?integerHow many items to return on one page, from 1 to 100. The default is 100. A value outside 1 to 100, or one that is not a whole number, is a 400.
1 <= value <= 100100offset?integerFor offset-based lists, how many items to skip before the page starts. Use next_page_offset or previous_page_offset from the page you have. A value that is not a whole number is a 400.
0 <= value0desc?booleanSort in descending order (newest, largest or last first) when true. The default is false. A value other than true or false is a 400.
falsesort_by?stringThe field to sort by. Defaults to date_created.
"date_created""date_modified""promotion_id""name"active?booleantrue for active promotions only, false for inactive ones only.
q?stringSearch text. Matches the promotion id exactly or part of the name.
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.
falseAn offset-based list of promotions.
application/json- response
An offset-based list of the promotions applied to an invoice.
total_items?integerThe number of items in the whole list.
total_pages?integerThe number of pages.
current_page?integerThe page number of this page, starting at 1.
next_page_url?|The URL of the next page, or null on the last page.
urinext_page_offset?|The offset of the next page, or null on the last page.
previous_page_url?|The URL of the previous page, or null on the first page.
uriprevious_page_offset?|The offset of the previous page, or null on the first page.
current_page_url?stringThe URL of this page.
uridata?array<>The items on this page.
curl -X GET 'https://api.comecero.com/api/v1/invoices/string/promotions'{ "total_items": 1, "total_pages": 1, "current_page": 1, "next_page_url": null, "next_page_offset": null, "previous_page_url": null, "previous_page_offset": null, "current_page_url": "https://api.comecero.com/api/v1/invoices/4827-KTPMW-639/promotions?offset=0&limit=10", "data": [ { "object": "promotion", "url": "https://api.comecero.com/api/v1/promotions/0070576784690PtKDqfI", "promotion_id": "0070576784690PtKDqfI", "name": "Ten percent off", "test": true, "account_id": "AB1234", "date_created": "2026-11-02T20:13:16Z", "date_modified": "2026-11-02T20:13:16Z", "type": "coupon", "active": true, "apply_to_recurring": false, "apply_to_recurring_count": null, "use_count": 4, "expires": "2026-12-31T23:59:59Z", "comments": null, "config": { "type": "order", "code": "SAVE10", "generator_prefix": null, "generator_secret_key": null, "discount_percent": 0.1, "discount_amount": null, "product_ids": null, "exclude_product_ids": false, "max_uses_per_customer": 1, "max_uses_global": null } } ]}Pay an invoice POST
Charges a payment against a published, open invoice. Send a `payment_method` (or a saved `payment_method_id`). Do not send `currency`: it comes from the invoice. Leave out `total` to pay what is left. Send a smaller `total` to pay part of it; the total of all payments cannot pass the invoice total. Money moves. When the invoice is paid in full it closes, becomes an order with the same id, and `invoice:paid` fires. `invoice:payment_completed` fires, with `order:payment_completed`, when the completed payments cover the total and none is `pending`. Some payment methods (such as PayPal) return a payment that waits for the customer to approve it. Takes a secret, trusted or limited token. A limited token must be bound to the invoice, and a limited test token needs a user who may make test transactions.
List invoice refunds GET
Returns the refunds and chargebacks of the payments made against an invoice. The list is offset-based. Takes a secret, trusted or limited token. A limited token must be bound to the invoice and cannot see a draft.