Referência de API
Endpoints internos de app.kroz.co: autenticação, pagamentos, conciliação e auditoria.
Base URL: https://app.kroz.co
Versionamento: v0 (piloto interno): sem prefix /v1 ainda
Formato: JSON (Content-Type: application/json)
Autenticação
Todas as rotas abaixo exigem sessão, exceto /api/auth e /api/baas-webhook.
| Método | Header |
|---|---|
| Browser | Cookie kroz_internal_session |
| Programático | Authorization: Bearer <token> |
Ver Autenticação.
Envelope de erro padrão
{
"ok": false,
"error": "VALIDATION_ERROR",
"message": "Descrição legível",
"details": { }
}
| Status | Quando |
|---|---|
| 400 | Validação |
| 401 | Sessão inválida |
| 403 | Freio operacional / origin |
| 404 | Recurso não encontrado |
| 409 | Conflito (idempotency, já processado) |
| 429 | Rate limit login |
| 502 | BaaS indisponível |
| 503 | Config ausente |
| 504 | Timeout BaaS |
Índice de endpoints (18 rotas)
| Método | Path | Auth | Descrição |
|---|---|---|---|
| GET/POST | /api/auth |
Público | Login, sessão, logout |
| POST | /api/baas-webhook |
Token BaaS | Webhook inbound |
| GET | /api/audit-events |
Sessão | Listar auditoria |
| POST | /api/audit-event |
Sessão + Origin | Gravar evento |
| GET | /api/captabilidade-report |
Sessão | Export TPV/comercial |
| GET | /api/cnpj-lookup |
Sessão | Consulta CNPJ |
| GET | /api/config-health |
Sessão | Health env/config |
| POST | /api/customers/create |
Sessão + Origin | Cliente pagador |
| POST | /api/receivers/create-subaccount |
Sessão + Origin | Subconta recebedor |
| POST | /api/payments/create-with-split |
Sessão + Origin | Cobrança com split |
| POST | /api/transfers/create |
Sessão + Origin | Transferência PIX |
| GET | /api/payments/get |
Sessão | Consultar pagamento |
| POST | /api/pagadoria-payment |
Sessão + Origin | Pagadoria UI |
| GET | /api/payment-operations |
Sessão | Listar operações |
| GET | /api/platform-contracts |
Sessão | Contrato + matriz |
| GET | /api/reconciliation-suggestions |
Sessão | Fila conciliação |
| POST | /api/reconciliation-approve |
Sessão + Origin | Aprovar/rejeitar DF |
| POST | /api/rules-dry-run |
Sessão + Origin | Preview Rule Engine |
Auth
GET /api/auth
Verifica sessão. Ver Autenticação.
POST /api/auth
Login. Body: { "code": "...", "redirect": "/rateio" }
Contratos e plataforma
GET /api/platform-contracts
Query:
| Param | Obrigatório | Descrição |
|---|---|---|
tenantSlug ou tenant |
✅* | Slug do tenant |
reference |
Filtrar contrato |
* Relaxado com KROZ_DEMO_MODE=true
Com reference: 200:
{
"ok": true,
"tenant": { "slug": "incorp-piloto", "fiscal_regime": "CPC_47_POC" },
"contract": { "reference": "PS-0421", "metadata": { "unidade": "1804" } },
"matrix": {
"version": 1,
"spe_percent": 72,
"landbank_percent": 18,
"sales_percent": 10,
"receivers": [ "..." ]
},
"spe": { "legal_name": "Incorp SPE Jardim Oeste" }
}
404: Contrato não encontrado.
Usado por Pagadoria → Carregar matriz.
Pagamentos
POST /api/pagadoria-payment
Ver Adaptadores BaaS: Pagadoria.
POST /api/payments/create-with-split
Ver Adaptadores BaaS: Split payment.
GET /api/payment-operations
Query: limit, tenantId, status, contractId
200:
{
"ok": true,
"dryRun": false,
"count": 5,
"operations": [ "..." ]
}
Sem Supabase: { "ok": true, "dryRun": true, "operations": [], "message": "Supabase não configurado." }
GET /api/payments/get?id=pay_...
Proxy read-only para consulta no BaaS.
Recebedores e clientes
POST /api/receivers/create-subaccount
Ver Adaptadores BaaS: Subcontas.
POST /api/customers/create
Cria pagador. Real: confirmation: "CRIAR CLIENTE".
GET /api/cnpj-lookup?cnpj=00000000000000
200: dados BrasilAPI (name, companyType, taxProfile)
400: Informe um CNPJ com 14 dígitos.
404: CNPJ não encontrado na base consultada.
Usado pela Oficina de Recebedores → Consultar.
Conciliação
GET /api/reconciliation-suggestions
Query:
| Param | Valores |
|---|---|
status |
pendente_aprovacao, aprovada, rejeitada, expirada |
limit |
1–200 |
operationId |
UUID |
200:
{
"ok": true,
"count": 2,
"suggestions": [
{
"id": "uuid",
"status": "pendente_aprovacao",
"agentOutput": { "confidence": "alta", "justificativa": "..." },
"financialResult": { "..." }
}
]
}
Wallet IDs mascarados na response.
POST /api/reconciliation-approve
curl -s -X POST https://app.kroz.co/api/reconciliation-approve \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-H "Origin: https://app.kroz.co" \
-H "X-Idempotency-Key: conc-$(uuidgen)" \
-d '{
"suggestionId": "uuid",
"decision": "aprovar",
"approvedBy": "diretor@incorp.com.br",
"notes": "Multa conforme contrato"
}'
| Campo | Obrigatório |
|---|---|
suggestionId |
✅ |
decision |
✅ aprovar ou rejeitar |
approvedBy |
✅ se aprovar |
notes |
200 aprovar:
{
"ok": true,
"decision": "aprovar",
"paymentStatus": "recebido",
"message": "Sugestão aprovada atomicamente. Split pode ser aplicado manualmente no BaaS conforme splitSugerido."
}
409: Sugestão já processada com status '...'.
Não chama o BaaS automaticamente: execução manual pós-aprovação. Ver Conciliação.
Rule Engine
POST /api/rules-dry-run
Ver Rule Engine.
Auditoria
GET /api/audit-events
Query: limit, source, action, status
200: { "ok": true, "events": [ ... ] }
POST /api/audit-event
Body (mínimo):
{
"action": "click_export",
"source": "ui",
"status": "received",
"reference": "PS-0421",
"amount": 50000,
"metadata": { }
}
400: Campo obrigatorio: action.
Relatórios
GET /api/captabilidade-report
Query: format=json|csv, tenantId, limit (default 200)
JSON 200: summary.tvp, summary.adimplenciaPercent, operations[]
CSV: Content-Type: text/csv → kroz-captabilidade.csv
Usado por Pagadoria → Exportar captabilidade CSV.
Health
GET /api/config-health
200:
{
"ok": true,
"status": "ok",
"checks": [ "..." ],
"missingRequired": [],
"warnings": [],
"environment": "production",
"demoMode": false,
"platform": { "configured": true }
}
Status: ok | attention | missing_required
Webhooks (inbound)
POST /api/baas-webhook
Ver Webhooks.
SDK interno (browser)
assets/js/platform-api.js:
KrozPlatform.getAuthToken()
KrozPlatform.getContract(reference, tenant)
KrozPlatform.createPagadoriaPayment(body, idempotencyKey)
KrozPlatform.listPaymentOperations(params)
KrozPlatform.listReconciliationSuggestions(params)
KrozPlatform.approveReconciliationSuggestion(body, idempotencyKey)
KrozPlatform.getCaptabilidadeReport(format)
Confirmações para execução real
| Endpoint | confirmation |
Env |
|---|---|---|
| split-payment, pagadoria | "CRIAR COBRANCA" |
BAAS_ALLOW_PAYMENT_CREATION |
| subaccount | "CRIAR SUBCONTA" |
BAAS_ALLOW_SUBACCOUNT_CREATION |
| customer | "CRIAR CLIENTE" |
BAAS_ALLOW_CUSTOMER_CREATION |
| transfer | "CRIAR TRANSFERENCIA" |
BAAS_ALLOW_TRANSFER_CREATION |
Todas as escritas reais exigem X-Idempotency-Key.
OpenAPI
A especificação OpenAPI completa está disponível para parceiros integrados sob demanda. Entre em contato em contato@kroz.co para acesso ao schema e ambiente de sandbox.