Endpoints

Rotas liberadas para credenciais de API. Todas as operações de negócio exigem X-Workspace-Id e o scope indicado.

Pessoal e financeiro

MétodoRotaScopeUso
GET/v1/integrations/context—Descobrir destinos e permissões
GET/v1/financial-recordsfinancial:readListar movimentações
POST/v1/financial-recordsfinancial:writeCriar movimentação
PUT/v1/financial-records/:idfinancial:writeEditar movimentação e vínculos
GET/v1/financial-records/summaryfinancial:readResumo do período
GET/v1/financial-records/export/csvfinancial:readExportar CSV
GET/v1/categories/user/activecategories:readCategorias ativas
GET/v1/walletswallets:readListar carteiras
GET/v1/wallets/archivedwallets:readCarteiras arquivadas
GET/v1/wallets/summarywallets:readResumo das carteiras
GET/v1/wallets/daily-balanceswallets:readSaldos diários
GET/v1/wallets/:idwallets:readConsultar carteira
GET/v1/analytics/dashboardanalytics:readVisão geral
GET/v1/analytics/by-categoryanalytics:readAnálise por categoria
GET/v1/analytics/top-expensesanalytics:readMaiores despesas
GET/v1/analytics/monthly-summaryanalytics:readResumo mensal
GET/v1/goalsfinancial:readListar metas
GET/v1/goals/:idfinancial:readConsultar meta
GET/v1/goals/:id/depositsfinancial:readDepósitos da meta
GET/v1/alertsfinancial:readListar alertas
GET/v1/alerts/triggeredfinancial:readAlertas disparados

Empresa

Disponíveis somente para workspaces empresariais elegíveis. O scope efetivo varia entre consulta e alteração.

RecursoBase das rotasScopes
Obrigações financeiras/v1/financial-obligationsfinancial:read, financial:write, payables:pay ou payables:reverse
Empresa/v1/workspaces/current e /logoworkspace:read ou workspace:update
Dimensões/v1/workspaces/current/{departments,cost-centers,tags}workspace:read ou dimensions:manage
Projetos/v1/workspaces/current/projectsworkspace:read ou dimensions:manage
Orçamentos/v1/workspaces/current/budgetsreports:read ou dimensions:manage
Aprovações/v1/workspaces/current/{approval-policies,approval-requests}workspace:read, dimensions:manage, approvals:submit ou approvals:decide
Auditoria/v1/workspaces/current/audit-eventsaudit:read
Relatórios programados/v1/workspaces/current/scheduled-reportsreports:read ou reports:export

Planejamento: projetos e orçamentos

Projeto identifica uma iniciativa; orçamento define um teto de gastos. Um projeto pode ter vários orçamentos, e um orçamento pode controlar uma categoria ou centro de custo sem projeto. Rotas abaixo usam a base /v1/workspaces/current.

MétodoRotaUso
POST/projectsProjeto com initialBudget opcional; criação atômica
PATCH / DELETE/projects/:idEditar ou arquivar projeto com expectedVersion
GET / POST/budgetsConsultar limites ou criar orçamento
GET / PATCH/budgets/:idConsultar resumo ou revisar configuração
GET/budgets/:id/revisionsHistórico de revisões e motivos
POST/budgets/:id/closeEncerrar com data de corte inclusiva
DELETE/budgets/:idArquivar sem apagar histórico
  • periodType: one_time aceita periodEnd: null. Mensal e anual exigem término e não renovam automaticamente. Datas são civis: início incluso e fim exclusivo; o dia atual usa o fuso da empresa.
  • amountCents é o teto total em centavos. Alterá-lo exige reason e não zera o consumo. Edições exigem expectedVersion; campos omitidos são preservados.
  • Criações e encerramento/arquivamento usam operationId UUID. Preserve o identificador em retries da mesma operação. Encerrar e arquivar também exigem expectedVersion e confirmed: true. Em conflito, consulte novamente antes de agir.
  • GET /budgets?status=all inclui encerrados e arquivados; o padrão exibe não arquivados. O resumo informa consumedCents, remainingCents, percentage e asOfDate.
Orçamento único sem data finaljson
{
  "operationId": "550e8400-e29b-41d4-a716-446655440000",
  "name": "Implantação da oficina",
  "scopeType": "workspace",
  "periodType": "one_time",
  "periodStart": "2026-07-30",
  "periodEnd": null,
  "amountCents": 10000000,
  "alertThresholds": [80, 100]
}

Consumido considera despesas líquidas de estornos reconhecidos, na mesma moeda, empresa, escopo e período, até a data de referência. Não inclui lançamentos futuros, transferências, aportes ou pagamento duplicado de fatura. Não representa dinheiro reservado nem contratos ainda não lançados. Orçamentos sobrepostos não devem ter seus consumos somados.

Encerrar usa closedOn, interrompe alertas e impede edição; correções históricas recalculam o total, preservando consumedAtCloseCents. Arquivar apenas oculta da visão padrão. Editar projeto exige expectedVersion; concluir ou arquivar também exige operationId. DELETE requer confirmed: true. A conclusão só encerra seus orçamentos se closeBudgets: true for explicitamente informado com closedOn e operationId.

Use initialBudget no POST de projetos com os campos de orçamento acima, sem operationId, scopeType ou IDs dimensionais internos. O backend vincula o orçamento ao projeto criado. Para vincular lançamentos existentes, edite a transação sem recriá-la; departmentId, costCenterId e projectIdtambém são filtros de listagem, e null remove um vínculo na edição.

Para conferir exatamente o consumo, use GET /financial-records?budgetId=UUID sem filtros adicionais. Essa consulta aplica escopo, moeda, período e redutores do orçamento e exige financial:read e reports:read no mesmo workspace. Filtros adicionais restringem os resultados. Resumos de consumo, inclusive nas respostas de criação e edição, só são retornados com reports:read.

Obrigações financeiras compartilhadas

A criação avulsa é exclusiva do workspace empresarial. No pessoal, as ocorrências nascem das regras de recorrência; listagem, confirmação de valor e liquidação continuam no mesmo contrato. Regras de valor fixo lançam automaticamente no vencimento e geram o registro em Transações. Estimativas exigem confirmação explícita do valor real; a liquidação comum confirma e registra o pagamento na mesma operação. Nenhuma dessas operações executa Pix ou transferência bancária.

A base é /v1/financial-obligations. Envie o destino explícito em X-Workspace-Id. Valores deste contrato usam centavos inteiros de BRL; datas civis usam AAAA-MM-DD no fuso da empresa.

  • GET /, GET /:id, GET /summary e GET /v1/recurring-expenses/projection?months=12: consulta com financial:read. A lista aceita direction (income/expense), status, from, until, overdue, page e limit (máximo 100).
  • POST / e PATCH /:id: cadastro, edição e reagendamento, com financial:write. DELETE /:id: exclusão lógica e auditável, com financial:delete.
  • POST /:id/submit-approval: solicita aprovação com approvals:submit. A decisão continua no endpoint de etapas, com approvals:decide.
  • POST /:id/payments: confirmação explícita, com payables:pay. POST /:id/settlements/:settlementId/reverse: estorno auditável de uma liquidação. Para remover apenas associação de transação existente, use POST /:id/settlements/:settlementId/unlink. Ambas exigem payables:reverse.
  • POST /:id/attachments: comprovante privado multipart, campo file, PDF/JPEG/PNG válido até 10 MB. GET /:id/attachments/:attachmentId: download autorizado; acrescente /content para resposta JSON com contentBase64.
  • /v1/recurring-expenses/:id/activate, /pause, /resume e /end: ações POST sobre regras compartilhadas, com expectedVersion. Cadastro e listagem usam /v1/recurring-expenses.

Para regras antigas, activate recebe from (hoje ou uma data futura) e historicalDates opcionais. Para uma regra ativa, POST /v1/recurring-expenses/:id/historical-occurrences recebe historicalDates: de 1 a 120 datas anteriores a hoje, selecionadas explicitamente. Datas incompatíveis com a frequência ou com lançamento financeiro existente impedem a operação inteira. Repetir a seleção não duplica as contas.

No cadastro, descrição, valor, vencimento e chave são obrigatórios. Beneficiário, categoria, departamento, centro de custo, projeto, responsável e carteira sugerida são opcionais. Juros/multa usam chargesCents, descontos usam discountCents e exigem adjustmentReason. O total é amountCents + chargesCents − discountCents e deve permanecer positivo. A carteira efetiva é obrigatória apenas no pagamento. A regra recorrente mantém o contrato amount em reais, além de frequência, início, término opcional, isFixed e idempotencyKey.

{
  "description": "Manutenção",
  "amountCents": 20000,
  "dueDate": "2026-09-25",
  "idempotencyKey": "manutencao-setembro-2026"
}

Para confirmar, informe expectedVersion, idempotencyKey, amountCents, paymentDate e walletId. Se a obrigação ainda está estimada, envie também confirmedAmountCents para confirmar o valor real desta ocorrência na mesma transação; valor igual à previsão também precisa dessa confirmação explícita. Uma chave repetida com os mesmos dados retorna o resultado anterior; dados diferentes geram conflito. Não crie outra transação financeira para o mesmo pagamento. O vínculo opcional existingFinancialRecordId associa um lançamento conferido sem novo débito.

Estados da obrigação: open, partial, paid e cancelled. settledCents informa o liquidado e remainingCents o restante. Aprovação é independente. Uma conta open com vencimento anterior a hoje está vencida; rejeição e falta de pagamento não a cancelam. estimated exige confirmação explícita do valor real desta ocorrência, inclusive quando igual à previsão. Edição usa expectedVersion; scope=following altera as próximas abertas, preservando exceções. Mudanças financeiras reavaliam a aprovação.

O total aberto inclui obrigações cadastradas e exclui quitadas, canceladas e previsões virtuais. Vencidas, restante do mês e próximo mês são recortes e não devem ser somados ao total. Pago no mês usa a data efetiva. A projeção identifica actual, obligation e forecast, com horizonte de 1 a 24 meses. Valores estimados e competências passadas são informados separadamente.

Exemplo: em setembro, R$ 300 vencidos e R$ 200 a vencer, mais R$ 100 recorrentes de outubro, representam R$ 600 abertos. R$ 100 já pagos em setembro não entram nesse total. Pagar os R$ 300 em outubro remove a obrigação do aberto e registra o realizado em outubro, uma única vez.

Permissões de pagamento são novas e não são adicionadas automaticamente às credenciais existentes. A aprovação final agora apenas autoriza a obrigação. Valor fixo lança em Transações no vencimento; estimativa e aprovação pendente exigem confirmação. Pagamentos parciais são suportados até o saldo restante. Cartão pessoal ou empresarial registra a ocorrência na fatura sem débito de carteira; o pagamento da fatura permanece separado. Reembolso, contribuição de sócio e devolução de principal não se confundem com lucro.