# Consultar fluxo de caixa realizado

Fonte: https://docs.ruralzap.com.br/referencia/reports-cashflow

GET /api/v1/integration/reports/cashflow





<!-- Gerado por scripts/generate.mjs. Não editar. -->

Requer reports:read e CASHFLOW_REPORT. Período máximo 366 dias. Mesmo cálculo do relatório do produto, com valores decimais exatos. groupBy: day, week ou month. Não inclui projeções de pendentes.

## Autenticação [#autenticação]

Authorization: Bearer. A chave determina o Space. Confira [permissões](/guias/autenticacao).

## Parâmetros [#parâmetros]

| Nome           | Obrigatório | Tipo   | Detalhes                                                                                                                                      |
| -------------- | ----------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `startDate`    | Sim         | string | Data financeira inicial inclusiva. Período máximo: 366 dias. date                                                                             |
| `endDate`      | Sim         | string | Data financeira final inclusiva. date                                                                                                         |
| `walletId`     | Não         | string | Carteira do Space. Inclui transferências de entrada e saída dessa carteira. uuid                                                              |
| `categoryId`   | Não         | string | Categoria do Space ou categoria compartilhada do seu reseller. uuid                                                                           |
| `costCenterId` | Não         | string | Centro(s) de custo por UUID separado por vírgula ou UNCLASSIFIED. Em composições, deve corresponder à mesma parte da categoria e equipamento. |
| `assetId`      | Não         | string | Equipamento do Space atribuído à mesma parte da categoria e centro. uuid                                                                      |
| `groupBy`      | Não         | string | day, week, month Padrão: month                                                                                                                |

## cURL [#curl]

```bash
curl --fail-with-body "$RURALZAP_BASE_URL/api/v1/integration/reports/cashflow?startDate=2026-01-01&endDate=2026-01-31" \
  -H "Authorization: Bearer $RURALZAP_API_KEY"
```

## TypeScript [#typescript]

```typescript
// Execute no servidor com Node.js 22+ e tsx. Não registre o payload financeiro.
const base = process.env.RURALZAP_BASE_URL;
const key = process.env.RURALZAP_API_KEY;
if (!base || !key) throw new Error('Configure RURALZAP_BASE_URL e RURALZAP_API_KEY.');
const origin = new URL(base);
if (origin.protocol !== 'https:' || origin.username || origin.password || origin.pathname !== '/' || origin.search || origin.hash) throw new Error('Informe uma origem HTTPS sem caminho ou credenciais.');
const response = await fetch(new URL('/api/v1/integration/reports/cashflow?startDate=2026-01-01&endDate=2026-01-31', origin), {
  headers: { Authorization: `Bearer ${key}` },
  signal: AbortSignal.timeout(30000),
  redirect: 'error',
});
if (!response.ok) throw new Error(`HTTP ${response.status}; consulte /guias/erros.`);
const data: unknown = await response.json();
// Valide data com /openapi.json antes de persistir. Preserve decimais como strings.
export { data };
```

## Python [#python]

```python
"""Chamada única, Python 3, servidor. Não registra respostas financeiras."""
import json
import os
import urllib.request
from urllib.parse import urlsplit

base = os.environ['RURALZAP_BASE_URL']
key = os.environ['RURALZAP_API_KEY']
origin = urlsplit(base)
if origin.scheme != 'https' or not origin.netloc or origin.username or origin.password or origin.path not in ('', '/') or origin.query or origin.fragment:
    raise ValueError('Informe uma origem HTTPS sem caminho ou credenciais.')

class NoRedirect(urllib.request.HTTPRedirectHandler):
    def redirect_request(self, req, fp, code, msg, headers, newurl):
        return None

request = urllib.request.Request(base.rstrip('/') + '/api/v1/integration/reports/cashflow?startDate=2026-01-01&endDate=2026-01-31', headers={'Authorization': 'Bearer ' + key})
with urllib.request.build_opener(NoRedirect).open(request, timeout=30) as response:
    data = json.load(response)
# Valide data com /openapi.json. Preserve dinheiro como string ou Decimal.
```

## Resposta 200 [#resposta-200]

Exemplo sintético, sem dados de clientes.

```json
{
  "meta": {
    "generatedAt": "2026-10-03T12:00:00.000Z",
    "startDate": "2026-01-01",
    "endDate": "2026-01-31",
    "timezone": "America/Sao_Paulo",
    "walletId": null,
    "categoryId": null,
    "costCenterId": null,
    "assetId": null,
    "mode": "cash",
    "groupBy": "month"
  },
  "currency": "BRL",
  "summary": {
    "openingBalance": "1000.0000",
    "totalInflows": "600.0000",
    "totalOutflows": "400.0000",
    "netCashflow": "200.0000",
    "totalAdjustments": "0.0000",
    "closingBalance": "1200.0000"
  },
  "data": [
    {
      "period": "2026-01",
      "inflows": "600.0000",
      "outflows": "400.0000",
      "netFlow": "200.0000",
      "adjustments": "0.0000",
      "runningBalance": "1200.0000"
    }
  ]
}
```

### Campos [#campos]

| Campo                   | Tipo           | Obrigatório | Significado                                                                                                                      |
| ----------------------- | -------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `meta`                  | object         | Sim         |                                                                                                                                  |
| `meta.generatedAt`      | string         | Sim         | date-time                                                                                                                        |
| `meta.startDate`        | string         | Sim         | date                                                                                                                             |
| `meta.endDate`          | string         | Sim         | date                                                                                                                             |
| `meta.timezone`         | string         | Sim         | Referência de negócio. Datas financeiras são date-only e não sofrem conversão de fuso.                                           |
| `meta.walletId`         | string ou null | Sim         | uuid Aceita null.                                                                                                                |
| `meta.categoryId`       | string ou null | Sim         | uuid Aceita null.                                                                                                                |
| `meta.costCenterId`     | string ou null | Sim         | Aceita null.                                                                                                                     |
| `meta.assetId`          | string ou null | Sim         | uuid Aceita null.                                                                                                                |
| `meta.mode`             | string         | Sim         | cash é a visão completa das carteiras; slice é recorte gerencial e não equivale ao saldo bancário integral. Valores: cash, slice |
| `meta.groupBy`          | string         | Sim         | Valores: day, week, month                                                                                                        |
| `currency`              | string         | Sim         | Relatórios suportam BRL; uma combinação de moedas não é convertida nem somada.                                                   |
| `summary`               | string         | Sim         | Resumo do fluxo de caixa realizado. Requer o recurso CASHFLOW_REPORT.                                                            |
| `data`                  | array          | Sim         |                                                                                                                                  |
| `data[].period`         | string         | Sim         | Chave canônica do período; períodos sem movimentos podem estar ausentes.                                                         |
| `data[].inflows`        | string         | Sim         | Valor decimal exato com quatro casas; não converter para float.                                                                  |
| `data[].outflows`       | string         | Sim         | Valor decimal exato com quatro casas; não converter para float.                                                                  |
| `data[].netFlow`        | string         | Sim         | Valor decimal exato com quatro casas; não converter para float.                                                                  |
| `data[].adjustments`    | string         | Sim         | Valor decimal exato com quatro casas; não converter para float.                                                                  |
| `data[].runningBalance` | string         | Sim         | Valor decimal exato com quatro casas; não converter para float.                                                                  |

## Erros [#erros]

| HTTP | Descrição                                                    |
| ---- | ------------------------------------------------------------ |
| 400  | Parâmetros inválidos ou moeda não suportada                  |
| 401  | Credencial inválida, expirada, revogada ou de outro ambiente |
| 403  | Permissão ou acesso ao recurso indisponível                  |
| 404  | Filtro ou recurso fora do Space                              |
| 429  | Limite excedido; respeite Retry-After                        |
| 503  | Indisponibilidade temporária                                 |

Consulte [causas e soluções](/guias/erros). Erros públicos usam error.code, error.message e error.requestId. Em 429, aguarde Retry-After.

## Downloads [#downloads]

[cURL](/examples/reports-cashflow.sh) · [TypeScript](/examples/reports-cashflow.ts) · [Python](/examples/reports-cashflow.py) · [OpenAPI](/openapi.json)
