Docs

Consultar lançamentos por período

GET /api/v1/integration/transactions

Ver Markdown

Requer transactions:read. Ordem createdAt,id crescente. Até 100 itens; período obrigatório de até 366 dias. Inclui pendentes/cancelados, ajustes, transferências e pagamentos de fatura, com flags explícitas; exclui apagados. Não somar todos os lançamentos como receita/despesa: use os relatórios. Paginação não é snapshot; alterações/exclusões durante a travessia podem modificar resultados.

Autenticação

Authorization: Bearer. A chave determina o Space. Confira permissões.

Parâmetros

NomeObrigatórioTipoDetalhes
startDateSimstringData financeira inicial inclusiva. Período máximo: 366 dias. date
endDateSimstringData financeira final inclusiva. date
walletIdNãostringCarteira do Space. Inclui transferências de entrada e saída dessa carteira. uuid
categoryIdNãostringCategoria do Space ou categoria compartilhada do seu reseller. uuid
costCenterIdNãostringCentro(s) de custo por UUID separado por vírgula ou UNCLASSIFIED. Em composições, deve corresponder à mesma parte da categoria e equipamento.
assetIdNãostringEquipamento do Space atribuído à mesma parte da categoria e centro. uuid
typeNãostringINCOME, EXPENSE, TRANSFER
statusNãostringPENDING, COMPLETED, CANCELLED
limitNãonumberMínimo: 1 Máximo: 100 Padrão: 50
cursorNãostringnextCursor da página anterior, mantendo todos os filtros e limite. Validade: 24 horas. Não representa snapshot nem sincronização incremental.

cURL

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

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/transactions?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

"""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/transactions?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

Exemplo sintético, sem dados de clientes.

{
  "data": [
    {
      "id": "019a1000-0000-7000-8000-000000000001",
      "reference": "#105",
      "type": "INCOME",
      "status": "COMPLETED",
      "amount": "100.0000",
      "reportAmount": "1234.5678",
      "compositionVersion": 0,
      "compositionLines": [],
      "currency": "BRL",
      "description": "Venda sintética de grãos",
      "date": "2026-01-15",
      "competenceDate": null,
      "walletId": null,
      "categoryId": null,
      "categoryName": null,
      "cardId": null,
      "transferSourceWalletId": null,
      "transferDestinationWalletId": null,
      "isAdjustment": false,
      "isInvoicePayment": false,
      "ignored": false,
      "settlementManaged": false,
      "settledPrincipal": "100.0000",
      "settledCashAmount": "100.0000",
      "remainingAmount": "0.0000",
      "settlementStatus": "PAID",
      "createdAt": "2026-10-03T12:00:00.000Z",
      "updatedAt": "2026-10-03T12:00:00.000Z"
    },
    {
      "id": "019a1000-0000-7000-8000-000000000002",
      "reference": "#105",
      "type": "EXPENSE",
      "status": "COMPLETED",
      "amount": "200.0000",
      "reportAmount": "1234.5678",
      "compositionVersion": 0,
      "compositionLines": [],
      "currency": "BRL",
      "description": "Compra sintética de insumos",
      "date": "2026-01-15",
      "competenceDate": null,
      "walletId": null,
      "categoryId": null,
      "categoryName": null,
      "cardId": null,
      "transferSourceWalletId": null,
      "transferDestinationWalletId": null,
      "isAdjustment": false,
      "isInvoicePayment": false,
      "ignored": false,
      "settlementManaged": false,
      "settledPrincipal": "200.0000",
      "settledCashAmount": "200.0000",
      "remainingAmount": "0.0000",
      "settlementStatus": "PAID",
      "createdAt": "2026-10-03T12:00:00.000Z",
      "updatedAt": "2026-10-03T12:00:00.000Z"
    },
    {
      "id": "019a1000-0000-7000-8000-000000000003",
      "reference": "#105",
      "type": "INCOME",
      "status": "COMPLETED",
      "amount": "300.0000",
      "reportAmount": "1234.5678",
      "compositionVersion": 0,
      "compositionLines": [],
      "currency": "BRL",
      "description": "Serviço sintético",
      "date": "2026-01-15",
      "competenceDate": null,
      "walletId": null,
      "categoryId": null,
      "categoryName": null,
      "cardId": null,
      "transferSourceWalletId": null,
      "transferDestinationWalletId": null,
      "isAdjustment": false,
      "isInvoicePayment": false,
      "ignored": false,
      "settlementManaged": false,
      "settledPrincipal": "300.0000",
      "settledCashAmount": "300.0000",
      "remainingAmount": "0.0000",
      "settlementStatus": "PAID",
      "createdAt": "2026-10-03T12:00:00.000Z",
      "updatedAt": "2026-10-03T12:00:00.000Z"
    }
  ],
  "meta": {
    "hasMore": false,
    "nextCursor": null
  }
}

Campos

CampoTipoObrigatórioSignificado
dataarraySim
data[].idstringSimuuid
data[].referencestring ou nullSimReferência humana; use id como identificador estável. Aceita null.
data[].typestringSimValores: INCOME, EXPENSE, TRANSFER
data[].statusstringSimValores: PENDING, COMPLETED, CANCELLED
data[].amountstringSimPrincipal original integral do lançamento, preservado mesmo em recortes analíticos.
data[].reportAmountstringSimPrincipal considerado pelas partes que atendem simultaneamente aos filtros. Não representa caixa pago.
data[].compositionVersionnumberSimZero identifica classificação legada; versão positiva usa exclusivamente compositionLines.
data[].compositionLinesarraySimComposição completa do lançamento para auditoria; não somente as partes filtradas.
data[].compositionLines[].idstringSimuuid
data[].compositionLines[].positionnumberSim
data[].compositionLines[].amountstringSimValor exato da parte no principal contratado.
data[].compositionLines[].categoryIdstring ou nullSimuuid Aceita null.
data[].compositionLines[].categoryNamestring ou nullSimAceita null.
data[].compositionLines[].costCenterIdstring ou nullSimuuid Aceita null.
data[].compositionLines[].costCenterNamestring ou nullSimAceita null.
data[].compositionLines[].equipmentStatestringSimValores: NONE, PENDING, LINKED
data[].compositionLines[].assetIdstring ou nullSimuuid Aceita null.
data[].compositionLines[].assetCodestring ou nullSimAceita null.
data[].compositionLines[].assetNamestring ou nullSimAceita null.
data[].currencystringSim
data[].descriptionstring ou nullSimAceita null.
data[].datestringSimdate
data[].competenceDatestring ou nullSimdate Aceita null.
data[].walletIdstring ou nullSimuuid Aceita null.
data[].categoryIdstring ou nullSimuuid Aceita null.
data[].categoryNamestring ou nullSimAceita null.
data[].cardIdstring ou nullSimuuid Aceita null.
data[].transferSourceWalletIdstring ou nullSimuuid Aceita null.
data[].transferDestinationWalletIdstring ou nullSimuuid Aceita null.
data[].isAdjustmentbooleanSim
data[].isInvoicePaymentbooleanSim
data[].ignoredbooleanSimLançamento desconsiderado dos indicadores, ainda visível e podendo afetar saldo.
data[].settlementManagedbooleanSimIndica liquidações parciais geridas pelo domínio.
data[].settledPrincipalstringSimValor decimal exato com quatro casas; não converter para float.
data[].settledCashAmountstringSimValor decimal exato com quatro casas; não converter para float.
data[].remainingAmountstringSimValor decimal exato com quatro casas; não converter para float.
data[].settlementStatusstringSimValores: PAID, PARTIAL, UNPAID
data[].createdAtstringSimdate-time
data[].updatedAtstringSimAtualização técnica; não equivale a feed de mudanças. date-time
metaobjectSim
meta.nextCursorstring ou nullSimAceita null.
meta.hasMorebooleanSim

Erros

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

Consulte causas e soluções. Erros públicos usam error.code, error.message e error.requestId. Em 429, aguarde Retry-After.

Downloads

cURL · TypeScript · Python · OpenAPI

Nesta página