# Paginação de lançamentos

Fonte: https://docs.ruralzap.com.br/guias/paginacao

Percorra páginas mantendo os filtros e tratando os limites do contrato.





## Uma consulta, várias páginas [#uma-consulta-várias-páginas]

Informe `startDate` e `endDate`. O limite padrão é 50 e o máximo é 100. Os resultados vêm em ordem crescente de `createdAt,id`.

1. Faça a primeira chamada sem cursor.
2. Processe `data`, usando `id` como chave no sistema de destino.
3. Enquanto `meta.hasMore` for verdadeiro, envie `meta.nextCursor` no parâmetro `cursor`.
4. Mantenha período, filtros e limite idênticos, incluindo `categoryId`, `costCenterId` e `assetId` quando informados.
5. Encerre quando `hasMore` for falso.

O cursor vale por 24 horas. Não decodifique nem construa seu próprio cursor. Se expirar, reinicie a consulta e trate duplicatas por ID no destino.

## Limites importantes [#limites-importantes]

Paginação não representa snapshot. Mudanças e exclusões durante a travessia podem alterar os resultados. Itens apagados são excluídos da listagem; a API não entrega tombstones nem um feed incremental.

Para atualizar um sistema externo, planeje releituras periódicas e reconciliação do intervalo necessário. Não prometa sincronização completa de exclusões usando apenas `updatedAt`.

Use os [exemplos completos em TypeScript e Python](/exemplos), que limitam tentativas, detectam cursor repetido e preservam filtros.
