kroz docs

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.


Relacionado