List orders
Lists your orders, oldest first unless you send desc=true. There is no way to create an order directly: the API makes one when a payment on a cart or an invoice succeeds or is authorized.
The list is cursor-based: use after_item and before_item (or the next_page_url and previous_page_url in the response). It is ordered by the date named in date_type (date_created by default; date_modified and date_completed also work). sort_by is ignored.
Needs a secret or trusted token. Limited tokens get 403; a customer reads their own orders with GET /customers/{customer_id}/orders.
AuthorizationBearer <token>A secret, trusted or limited token. See Authentication.
payment_status?stringOnly orders with this payment status.
"pending""completed""cancelled""refunded"fulfilled?booleanOnly fulfilled (true) or not fulfilled (false) orders.
q?stringSearch. Matches the exact order id or customer email, or part of the customer's name or company name.
date_start?stringOnly items on or after this date. Send ISO 8601 (2026-11-01T00:00:00Z or 2026-11-01T00:00:00-05:00) or a shorthand: 2026 means the start of 2026, 2026-11 the start of November, 2026-11-01 the start of that day. A date with no offset is read in timezone, or in the account's time zone when you send none. It must not be after date_end (400).
date_end?stringOnly items on or before this date. Same formats as date_start, but a shorthand means the end of the period: 2026-11 is the last instant of November, 2026-11-30 the last instant of that day. A date with no offset is read in timezone, or in the account's time zone when you send none.
date_type?stringWhich date date_start and date_end filter on. The default is date_created. Each list names the values it supports. A value that is not one of the values below is a 400.
"date_created""date_created""date_modified""date_current_period_start""date_current_period_end""date_due""date_completed""date_ended"timezone?stringAn IANA time zone name, such as America/New_York or UTC. It sets how date_start and date_end are read and the time zone of every date in the response. The default is the account's time zone (Settings, Technical), or UTC when it has none. A name that is not known is a 400.
after_item?stringFor cursor-based lists, return the items after the item with this id. Use next_page_after_item (or follow next_page_url) from the page you have. You cannot send it together with before_item (400). An id that does not exist is a 404.
before_item?stringFor cursor-based lists, return the items before the item with this id. Use previous_page_before_item (or follow previous_page_url) from the page you have. You cannot send it together with after_item (400). An id that does not exist is a 404.
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 <= 100100desc?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.
falseexpand?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.
falseA cursor-based page of orders.
application/json- response
A page of a cursor-based list. There is no total. Move between pages with after_item and before_item, or follow next_page_url and previous_page_url, which keep your other query parameters.
next_page_url*|The URL of the next page, or null on the last page.
urinext_page_after_item*|The id to send as after_item for 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_before_item*|The id to send as before_item for the previous page, or null on the first page.
current_page_url?stringThe URL of this page. Only present when the request sent after_item or before_item; the first page has no current_page_url.
uridata*array<>The orders on this page.
curl -X GET 'https://api.comecero.com/api/v1/orders'{ "next_page_url": "https://api.comecero.com/api/v1/orders?after_item=7393-GMRFY-954&payment_status=completed", "next_page_after_item": "7393-GMRFY-954", "previous_page_url": null, "previous_page_before_item": null, "current_page_url": "https://api.comecero.com/api/v1/orders?payment_status=completed", "data": [ { "object": "order", "url": "https://api.comecero.com/api/v1/orders/7393-GMRFY-954", "order_id": "7393-GMRFY-954", "date_created": "2026-11-02T16:46:16Z", "date_modified": "2026-11-02T16:46:38Z", "test": true, "account_id": "AB1234", "payment_status": "completed", "fulfilled": true, "currency": "USD", "subtotal": 49.95, "subtotal_original": 49.95, "shipping": 0, "shipping_original": 0, "discount": 0, "item_discounts": 0, "total_discounts": 0, "total_discounts_percent": 0, "tax": 0, "tax_original": 0, "total": 49.95, "total_original": 49.95, "tax_inclusive": false, "discount_on_gross": false, "settlement_currency": "USD", "settlement_subtotal": 49.95, "settlement_subtotal_original": 49.95, "settlement_shipping": 0, "settlement_shipping_original": 0, "settlement_discount": 0, "settlement_item_discounts": 0, "settlement_total_discounts": 0, "settlement_tax": 0, "settlement_tax_original": 0, "settlement_total": 49.95, "settlement_total_original": 49.95, "customer_ip_address": "203.0.113.24", "customer_ip_country": "US", "referrer": null, "affiliate_id": null, "promotion_code": null, "items_count": 1, "items_quantity": 1, "items": [ { "object": "order_item", "url": "https://api.comecero.com/api/v1/orders/7393-GMRFY-954/items/1", "item_id": "1", "date_created": "2026-11-02T16:46:16Z", "date_modified": "2026-11-02T16:46:16Z", "product_id": "pdf-pro.test", "order_id": "7393-GMRFY-954", "name": "PDF Viewer Pro", "type": "digital", "quantity": 1, "currency": "USD", "price": 49.95, "price_original": 49.95, "subtotal": 49.95, "subtotal_original": 49.95, "discount": 0, "discount_percent": 0, "tax": 0, "tax_original": 0, "total": 49.95, "total_original": 49.95, "tax_rate": 0, "fulfilled": true, "product": "https://api.comecero.com/api/v1/products/pdf-pro.test", "subscription": null, "subscription_terms": null, "shipments": "https://api.comecero.com/api/v1/orders/7393-GMRFY-954/items/1/shipments", "license": null, "download": "https://api.comecero.com/api/v1/downloads/0093717990011DlR4kQp2a", "meta": null } ], "shipping_item": null, "customer": "https://api.comecero.com/api/v1/customers/0093717976099CuAiEBXu4", "cart": "https://api.comecero.com/api/v1/carts/0093717976083CaO5bXdLA", "payments": "https://api.comecero.com/api/v1/orders/7393-GMRFY-954/payments", "payment": "https://api.comecero.com/api/v1/orders/7393-GMRFY-954/payments", "subscription": null, "refunds": "https://api.comecero.com/api/v1/orders/7393-GMRFY-954/refunds", "fee_summary": "https://api.comecero.com/api/v1/orders/7393-GMRFY-954/fee_summary", "invoice": null, "promotions": "https://api.comecero.com/api/v1/orders/7393-GMRFY-954/promotions", "shipments": "https://api.comecero.com/api/v1/orders/7393-GMRFY-954/shipments", "meta": null } ]}Overview
Previous Page
Get an order GET
Returns one order with its items. **PDF:** send `Accept: application/pdf` to get the order as a PDF receipt instead of JSON. The PDF uses your account's order template in the customer's language and comes back as a file named `<order_id>.pdf`. Secret and trusted tokens can read any order on the account. A limited token can read an order only when it belongs to the token's customer, and the settlement amounts and some item fields are left out for it.