curl "https://api.liddie.io/api/v1/payments?status=WAITING&limit=50" \
-H "Authorization: Bearer lid_live_..."
const res = await fetch('https://api.liddie.io/api/v1/payments?status=WAITING&limit=50', {
headers: { 'Authorization': 'Bearer lid_live_...' }
});
const { items, total } = await res.json();
{
"items": [ { "...payment fields...": "see Get a payment", "fiatCurrency": "USD", "grossFiat": 100.0, "feeFiat": 1.0, "netFiat": 99.0 } ],
"total": 1234
}
Payments
List payments
List your Liddie payments, newest first, with status, currency, and creation-date filters. Returns an items and total envelope for pagination.
GET
/
api
/
v1
/
payments
curl "https://api.liddie.io/api/v1/payments?status=WAITING&limit=50" \
-H "Authorization: Bearer lid_live_..."
const res = await fetch('https://api.liddie.io/api/v1/payments?status=WAITING&limit=50', {
headers: { 'Authorization': 'Bearer lid_live_...' }
});
const { items, total } = await res.json();
{
"items": [ { "...payment fields...": "see Get a payment", "fiatCurrency": "USD", "grossFiat": 100.0, "feeFiat": 1.0, "netFiat": 99.0 } ],
"total": 1234
}
Fetch your payments, newest first, with optional filters for status, currency, and creation date.
curl "https://api.liddie.io/api/v1/payments?status=WAITING&limit=50" \
-H "Authorization: Bearer lid_live_..."
const res = await fetch('https://api.liddie.io/api/v1/payments?status=WAITING&limit=50', {
headers: { 'Authorization': 'Bearer lid_live_...' }
});
const { items, total } = await res.json();
{
"items": [ { "...payment fields...": "see Get a payment", "fiatCurrency": "USD", "grossFiat": 100.0, "feeFiat": 1.0, "netFiat": 99.0 } ],
"total": 1234
}
Authorization
- API-key scope:
payments:read· JWT team permission:payments:view
Query parameters
string
One lifecycle status, e.g.
WAITING. See the Payments overview for all statuses.string
Ticker filter.
string (ISO date)
Start of the creation-date window.
string (ISO date)
End of the creation-date window.
integer
Default 1.
integer
Default 50, max 100 — higher values are clamped.
string
Gotcha: this matches
metadata.custom.orderId, not the top-level merchantOrderId field — a payment created with merchantOrderId is not found by this filter. To correlate orders reliably, put your order id in metadata, or filter client-side.boolean
Opt-in. Widget checkout flows mint an “abandoned” payment row per checkout open (grouped under
failed). Pass excludeAbandoned=1 to drop those rows. Get status counts accepts the same flag — pass the same value to both when cross-referencing tiles against list rows, or the tile counts and the rows will disagree.Response fields
The envelope is
{items, total} — page and limit are not echoed back. Track your own cursor: keep requesting page + 1 until you have fetched total rows.array
Payment rows — the same fields as Get a payment, plus the fiat summary columns (
grossFiat, feeFiat, netFiat, invoicedFiat/receivedFiat, and basis). feeFiat on list rows is the total fee (commission + network provision) — the same meaning it has on the detail endpoint, webhook and IPN. The commission/network split (commissionFiat/networkFeeFiat) lives only on the detail, and only while it sums to its own total. Sensitive fields (keys, derivation data) are never present.integer
Total matching payments across all pages.
See also
- Get a payment: the full field-by-field detail behind each row.
- Get status counts: account-wide counts per tile group with the same filters.
- Create a payment: where these rows come from — and where to put your order id so filters find it.