GET /invoices
List invoices, optionally filtered by owner or by deposit address.
Request
GET /invoices?owner=0xMerchant…
| Query | Required | Notes |
|---|---|---|
owner | when no address set | Returns invoices created by this owner. Soft-auth/strict-auth deployments require the session signature to match. |
address | when no owner set | Payer-side lookup: "which invoices pay to this on-chain address?". Always unauthenticated. Requires chainId. |
chainId | with address | Disambiguates cross-chain reuse of the same address bytes. |
offset | optional | Page cursor (zero-based). Setting either pagination param switches the response shape. |
limit | optional | Page size. Clamped to 50. |
For owner-scoped reads the signed payload is the full request URI (path + query) — see Authentication.
Response
When neither offset nor limit is set, the body is a plain array
(oldest-first):
[ { "guid": "…", "status": "init", … }, … ]
When either pagination param is set, the body switches to an envelope (newest-first):
{
"items": [ { "guid": "…", "status": "paid", … } ],
"total": 142,
"offset": 0,
"limit": 50
}
total is the unfiltered match count for the query — pair it with limit
to render Page X of Y.
Examples
# Owner-scoped, paginated, newest-first.
curl 'https://api.feemaker.io/invoices?owner=0xMerchant…&offset=0&limit=20' \
-H "x-session-nonce: $NONCE" \
-H "x-session-signature: $SIG"
# Payer-side: which invoices does this deposit address belong to?
curl 'https://api.feemaker.io/invoices?address=0xDeposit…&chainId=1'