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étodo | Rota | Scope | Uso |
|---|---|---|---|
| GET | /v1/integrations/context | — | Descobrir destinos e permissões |
| GET | /v1/financial-records | financial:read | Listar movimentações |
| POST | /v1/financial-records | financial:write | Criar movimentação |
| PUT | /v1/financial-records/:id | financial:write | Editar movimentação e vínculos |
| GET | /v1/financial-records/summary | financial:read | Resumo do período |
| GET | /v1/financial-records/export/csv | financial:read | Exportar CSV |
| GET | /v1/categories/user/active | categories:read | Categorias ativas |
| GET | /v1/wallets | wallets:read | Listar carteiras |
| GET | /v1/wallets/archived | wallets:read | Carteiras arquivadas |
| GET | /v1/wallets/summary | wallets:read | Resumo das carteiras |
| GET | /v1/wallets/daily-balances | wallets:read | Saldos diários |
| GET | /v1/wallets/:id | wallets:read | Consultar carteira |
| GET | /v1/analytics/dashboard | analytics:read | Visão geral |
| GET | /v1/analytics/by-category | analytics:read | Análise por categoria |
| GET | /v1/analytics/top-expenses | analytics:read | Maiores despesas |
| GET | /v1/analytics/monthly-summary | analytics:read | Resumo mensal |
| GET | /v1/goals | financial:read | Listar metas |
| GET | /v1/goals/:id | financial:read | Consultar meta |
| GET | /v1/goals/:id/deposits | financial:read | Depósitos da meta |
| GET | /v1/alerts | financial:read | Listar alertas |
| GET | /v1/alerts/triggered | financial:read | Alertas disparados |
Empresa
Disponíveis somente para workspaces empresariais elegíveis. O scope efetivo varia entre consulta e alteração.
| Recurso | Base das rotas | Scopes |
|---|---|---|
| Obrigações financeiras | /v1/financial-obligations | financial:read, financial:write, payables:pay ou payables:reverse |
| Empresa | /v1/workspaces/current e /logo | workspace:read ou workspace:update |
| Dimensões | /v1/workspaces/current/{departments,cost-centers,tags} | workspace:read ou dimensions:manage |
| Projetos | /v1/workspaces/current/projects | workspace:read ou dimensions:manage |
| Orçamentos | /v1/workspaces/current/budgets | reports: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-events | audit:read |
| Relatórios programados | /v1/workspaces/current/scheduled-reports | reports: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étodo | Rota | Uso |
|---|---|---|
| POST | /projects | Projeto com initialBudget opcional; criação atômica |
| PATCH / DELETE | /projects/:id | Editar ou arquivar projeto com expectedVersion |
| GET / POST | /budgets | Consultar limites ou criar orçamento |
| GET / PATCH | /budgets/:id | Consultar resumo ou revisar configuração |
| GET | /budgets/:id/revisions | Histórico de revisões e motivos |
| POST | /budgets/:id/close | Encerrar com data de corte inclusiva |
| DELETE | /budgets/:id | Arquivar sem apagar histórico |
periodType: one_timeaceitaperiodEnd: 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 exigereasone não zera o consumo. Edições exigemexpectedVersion; campos omitidos são preservados.- Criações e encerramento/arquivamento usam
operationIdUUID. Preserve o identificador em retries da mesma operação. Encerrar e arquivar também exigemexpectedVersioneconfirmed: true. Em conflito, consulte novamente antes de agir. GET /budgets?status=allinclui encerrados e arquivados; o padrão exibe não arquivados. O resumo informaconsumedCents,remainingCents,percentageeasOfDate.
{
"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 /summaryeGET /v1/recurring-expenses/projection?months=12: consulta comfinancial:read. A lista aceita direction (income/expense), status, from, until, overdue, page e limit (máximo 100).POST /ePATCH /:id: cadastro, edição e reagendamento, comfinancial:write.DELETE /:id: exclusão lógica e auditável, comfinancial:delete.POST /:id/submit-approval: solicita aprovação comapprovals:submit. A decisão continua no endpoint de etapas, comapprovals:decide.POST /:id/payments: confirmação explícita, compayables: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 exigempayables:reverse.POST /:id/attachments: comprovante privado multipart, campo file, PDF/JPEG/PNG válido até 10 MB.GET /:id/attachments/:attachmentId: download autorizado; acrescente/contentpara resposta JSON com contentBase64./v1/recurring-expenses/:id/activate,/pause,/resumee/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.