Pagination and Sorting
/Partners/{id}/payments
, /Merchants/{id}/payments
, and /Terminals/{id}/payments
all use the same paging, sorting, and filtering contract.
Every call is a GET request with parameters supplied in the query-string; no request body is required.
Query parameters
page
integer
0
Zero-based index of the page to return.
pageSize
integer
50
Number of records per page (max = 100*).
sortBy
string
created
Field to sort on (created
, updated
, etc.).
sortDirection
string
desc
asc
or desc
.
fromDate
ISO-8601
—
Inclusive start timestamp.
toDate
ISO-8601
—
Inclusive end timestamp.
status
string
—
Filter by payment status (completed
, underpaid
, overpaid
, refunded
, …).
*Adjust the maximum if your implementation differs.
Request example
GET /Terminals/abc123/payments
?page=0&pageSize=50
&sortBy=created&sortDirection=desc
&fromDate=2025-04-01T00:00:00Z
&toDate=2025-04-24T23:59:59Z
cURL
curl "https://api.test.devs.beadpay.io/Terminals/abc123/payments?page=0&pageSize=50&sortBy=created&sortDirection=desc&fromDate=2025-04-01T00:00:00Z&toDate=2025-04-24T23:59:59Z"
(No -X
flag—curl
defaults to GET.)
Response example (trimmed)
{
"data": [
{
"id": "pay_5d3a9e",
"created": "2025-04-18T14:22:31Z",
"updated": "2025-04-18T14:22:31Z",
"terminalId": "abc123",
"statusCode": "completed",
"amounts": { ... }
}
],
"total": 27,
"page": 0
}
pageSize
is supplied in the query but is not echoed in the response; your client should track the value it requested.
Best practices
Always include
page
andpageSize
to keep response times predictable.For infinite scroll, advance the
fromDate
window once you reach the last page instead of incrementingpage
indefinitely.Cache the
total
sparingly—refresh only when you need an updated count.
Last updated