Paginação
Listas paginadas por cursor com limit, nextCursor e hasMore.
Paginação por cursor
As rotas de listagem devolvem um envelope com data, hasMore e nextCursor, do item mais recente para o mais antigo. Use limit de 1 a 100; o padrão é 20.
Para a próxima página, envie o nextCursor recebido em cursor, com os mesmos filtros. O cursor é opaco: não monte nem altere. Itens criados enquanto você percorre a lista não duplicam nem pulam resultados.
Envelope da listaJSON
{
"object": "list",
"data": [ { "id": "6f0c1a52-…", "object": "charge" } ],
"hasMore": true,
"nextCursor": "eyJjIjoiMjAyNi0xMS0wMlQxODoxMjowMC4wMDBaIiwiaSI6IjZmMGMxYTUyIn0"
}Filtros
| Rota | Filtros |
|---|---|
GET /v1/charges | status, externalId, createdFrom, createdTo |
GET /v1/payouts | status, externalId, createdFrom, createdTo |
GET /v1/events | type, deliveryStatus |
createdFrom inclui o instante informado e createdTo não inclui. Os dois aceitam ISO 8601 com fuso, como 2026-11-01T00:00:00-03:00.
Percorrer todas as páginas
Repita a chamada enquanto hasMore for verdadeiro. Para sincronizar com frequência, prefira os webhooks e use a listagem para conciliação.
Percorrer todas as páginas
async function* allPaidCharges() {
let cursor = null;
do {
const params = new URLSearchParams({ status: "paid", limit: "100" });
if (cursor) params.set("cursor", cursor);
const response = await fetch(`https://api.maxxipay.com/v1/charges?${params}`, {
headers: { Authorization: `Bearer ${process.env.MAXXIPAY_API_KEY}` },
});
const page = await response.json();
yield* page.data;
cursor = page.hasMore ? page.nextCursor : null;
} while (cursor);
}