# Percorra lançamentos por período

Fonte: https://docs.ruralzap.com.br/receitas/lancamentos

Alimente seu sistema com páginas de lançamentos e IDs estáveis.





## Objetivo e pré-requisitos [#objetivo-e-pré-requisitos]

Ler lançamentos de um intervalo com `transactions:read`. Configure chave e origem no servidor. Use um período inclusivo de até 366 dias.

## 1. Execute o exemplo completo [#1-execute-o-exemplo-completo]

Baixe [TypeScript](/examples/read-transactions.ts) ou [Python](/examples/read-transactions.py). Os arquivos exibidos em [Exemplos](/exemplos) são os mesmos disponíveis para download.

```bash
npx tsx read-transactions.ts 2026-01-01 2026-01-31
# Ou, com Python 3:
python read-transactions.py 2026-01-01 2026-01-31
```

## 2. Percorra mantendo o contexto [#2-percorra-mantendo-o-contexto]

O exemplo faz a requisição inicial, valida a resposta, trata tentativas e acompanha `meta.nextCursor`. Adapte o ponto de processamento dos itens para seu destino, usando `id` como identificador estável.

## 3. Valide o resultado [#3-valide-o-resultado]

Verifique término por `hasMore: false`, ausência de cursor repetido e manutenção de filtros. Preserve valores como strings. Não registre payloads financeiros para depurar.

## Compras compostas [#compras-compostas]

Para consultar um equipamento, acrescente `assetId` com seu UUID. Categoria e centro podem ser combinados na mesma consulta. Mantenha todos os filtros também nas páginas seguintes; a composição não multiplica a compra na paginação.

Use `reportAmount` para apresentar o principal selecionado e mantenha `amount` como original auditável. Não some `compositionLines` novamente sobre `reportAmount`: a composição completa já explica o lançamento. Para caixa efetivamente pago, consulte os relatórios com os mesmos filtros.

## Erros comuns e limites [#erros-comuns-e-limites]

Cursor expirado exige reiniciar a consulta. Se o processo parar, evite duplicatas por ID ao repetir. A API exclui apagados e não garante snapshot ou feed incremental: [entenda as limitações](/guias/paginacao).

## Próximos passos [#próximos-passos]

Para indicadores, utilize a [receita de relatórios](/receitas/relatorios); não some indiscriminadamente os lançamentos retornados.
