Ir para o conteúdo
Docs

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 listaJSON200 OK
{
  "object": "list",
  "data": [ { "id": "6f0c1a52-…", "object": "charge" } ],
  "hasMore": true,
  "nextCursor": "eyJjIjoiMjAyNi0xMS0wMlQxODoxMjowMC4wMDBaIiwiaSI6IjZmMGMxYTUyIn0"
}

Filtros

RotaFiltros
GET /v1/chargesstatus, externalId, createdFrom, createdTo
GET /v1/payoutsstatus, externalId, createdFrom, createdTo
GET /v1/eventstype, 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);
}
esc