API
List orders
List the orders of the account and vendor bound to your API key, with pagination, filters and field projection.
GET
Returns all orders of the account + vendor bound to your API key. Supports pagination, a rich set of
filters, and field projection (choose which fields each order returns). To list the orders of a
single store, use List store orders.
Payment progress:
When an order is charged after it opens,
The pieces of the collection, oldest first. Declined tenders are included:
An order that never went through Confirm payment — a pre-paid
one, for example — returns The
When an order has a fiscal document, the
The
The
Statuses:
Authentication
string
required
Your Fire API key with the
orders:read scope. The key must be vendor-scoped (account +
vendor binding) — keys without a vendorId are rejected with 403.Query parameters
The account and vendor are derived from your API key (vendor-scoped) — you do not send them as query params.
string
Comma-separated list of fields to return (projection). See Field projection.
Omit to return every field. An unknown field yields
400.string
OPEN, COMPLETED, FORCE_CLOSED, CANCELLED.string
PENDING, SUCCEEDED, FAILED.string
Exact business day,
YYYY-MM-DD.string
Range start,
YYYY-MM-DD.string
Range end,
YYYY-MM-DD.string
default:"business_day"
business_day or created_at.string
default:"+00:00"
Timezone offset (
+HH:MM) used with dateFilterMode=created_at.string
Channel code (
APP, KIOSK, …).string
Fulfillment service code.
string
Payment method code (e.g.
CASH).string
Partial match on order code.
string
Exact UUID, or partial match on external order id / order code.
integer
default:"1"
Page number (1-based).
integer
default:"20"
Page size (1–100).
Request
Field projection
The consumer decides which fields each order returns, similar to MongoDB projection or the Elasticsearch_source parameter.
- No
fields→ every field is returned. fields=id,orderCode,totals→ only those fields.- A field outside the catalog →
400with the list of allowed fields.
id, orderCode, orderExternal, accountId, vendorId, storeId,
stationId, anonymousCustomerId, customerId, billingId, status, paymentStatus, channel,
businessDayDate, createdAt, updatedAt, completedAt, deletedAt, store, customer,
billing, fulfillment, orderLines, totals, paymentMethods, settlement, payments,
metadata, kitchen, aggregator, fiscal.
channel is the order’s catalog id (orders.catalog_id), exposed under the channel name.The JSONB snapshots (
totals, orderLines, paymentMethods, store, customer, fulfillment,
metadata, fiscal) are returned in Fire’s internal persistence format (for example, totals
amounts are scaled ×10000).Payment progress: settlement and payments
When an order is charged after it opens, status and paymentStatus only tell you whether it
was charged. They say OPEN and PENDING both for an order nobody has tried to charge and for one
whose card was declined twice — and those are very different situations for whoever is watching.
Read
settlement to know whether and how it was charged, and payments to know with what.
The charge is all or nothing (see Confirm payment), so
paidSoFar is either 0 or the full total — never something in between.
order.settlement (shape)
status is one of pending, declined, settled. paidSoFar and total use the same ×10000
scale as totals — above, 35.90 collected in two tenders, after one earlier decline. tenderCount
counts approved tenders only; declined ones are in declinedCount.
amountMismatch is always false: a charge that does not add up to the total is rejected outright,
so a settled order always matches. The field is kept for compatibility.
origin tells you where paidSoFar comes from, and the two are not equally backed: ledger means
the tenders were counted one by one as they arrived; intake means the order was created already
declaring itself paid and Fire took its word. settlement is null on orders created before this
field existed.
declaredMethods is what the order said it would be paid with, when it was created. Compare it
with paymentMethods to see whether the customer paid with what they announced: an order created as
IFOOD and charged with CREDIT shows declaredMethods: ["IFOOD"] and paymentMethods with
CREDIT. It is the only place the declared method survives, because settling overwrites
paymentMethods with the real tenders. Only the codes travel — the declared amounts come from the
POS in units ("35.9") while paidSoFar is ×10000, and mixing both scales in one object invites
mistakes.
payments — the tenders one by one
The pieces of the collection, oldest first. Declined tenders are included: settlement.declinedCount
says how many there were, payments says which ones and why.
payments: [], never null.
completedAt is the moment the collection closed the order, and is null while it stays open.
The fiscal block by country
When an order has a fiscal document, the fiscal field carries its current state. Its metadata
sub-object holds the common fields plus only the identifiers for fiscal.countryCode — the other
countries’ identifiers are not included. Read fiscal.countryCode to know which identifiers to expect.
order.fiscal (shape)
status tells you where the order stands fiscally. Group it by what you can do about it:
awaiting_payment and not_issued describe the order’s fiscal state, not a document’s — there is no document in either case. They exist because processing used to mean two incompatible things: “an issuance is in flight” and “this order has not reached invoicing yet”. They appear on orders that are open and unpaid, so they are most common alongside deferred payment. They are not sent in order events; there lastKnown.fiscal reports null.metadata common fields (all countries): docType, docSubtype, providerDocId,
pdfUrl, xmlUrl, emittedAt, cancelledAt, totalAmount, taxAmount, currencyCode. On top of
those, metadata carries only the identifiers of the document’s own country — the other
countries’ identifiers are not included.
- Colombia (CO)
- Ecuador (EC)
- Chile (CL)
- Argentina (AR)
- Venezuela (VE)
- Brazil (BR)
metadata — CO (DIAN)
The fiscal block carries the document’s full journey
fiscal mirrors the pattern of kitchen: the top level is the current state, and
fiscal.history[] lists every stop the fiscal document made, in chronological order.
pending, processing, contingency, fiscal_graphic, error, authorized,
rejected, denied, cancelling, cancelled. See
Fiscal callback for what each one means.
Reading the top level keeps working exactly as before — history is additive. Use it when you need
the authorization data of a document that was later cancelled: it lives in the authorized entry.
Response
object[]
Array of orders, each projected according to
fields.object
Related
List store orders
Same listing, scoped to a single store.
Get order
Read a single order by id.

