Pular para o conteúdo principal

Bancarização de crédito

Bancarização é o fluxo em que a conta autenticada origina uma operação de crédito (CCB) para um devedor pessoa física. Nesta jornada a própria conta é o cessionário: ela recebe a cessão da operação, sem escolher outro fundo ou cessionário no pedido.

Use esta documentação se você integra com credencial de conta da API de Contas. Credencial BaaS não opera esta jornada.

O que a API cobre:

  1. Consultar os produtos de crédito publicados para a conta
  2. Criar a solicitação com os dados do devedor e da operação
  3. Acompanhar o status até a contratação
  4. Reenviar o convite de cadastro, se o devedor ainda não tiver conta
  5. Cancelar a solicitação antes da criação do empréstimo (Loan)

O que não entra nesta API: approve, reject e PIN. Se a conta exigir assinatura conjunta, a criação deixa a solicitação em WAITING_JOINT_APPROVAL para o Finance.

Referência OpenAPI: API de Contas — Bancarização.

Pré-requisitos

  • Certificado mTLS da credencial de conta. Veja Configurando certificado mTLS.
  • Token OAuth da credencial de conta (não use credencial BaaS para esta jornada).
  • IP da origem na allow-list da credencial.
ScopeUso
credit.products.readListar e consultar produtos
credit.bankarization.applications.readListar e consultar solicitações da conta
credit.bankarization.applications.writeCriar, cancelar e reenviar convite

A conta autenticada é o cessionário. Enviar assignment resulta em 400. Credencial institucional sem accountId recebe 403. Os paths não usam o prefixo /api/v2.

Endpoints

MétodoPathScope
GET/credit/bankarization/productscredit.products.read
GET/credit/bankarization/products/{productId}credit.products.read
POST/credit/bankarization/applicationscredit.bankarization.applications.write
GET/credit/bankarization/applicationscredit.bankarization.applications.read
GET/credit/bankarization/applications/{requestId}credit.bankarization.applications.read
POST/credit/bankarization/applications/{requestId}/cancelcredit.bankarization.applications.write
POST/credit/bankarization/applications/{requestId}/notifications/resendcredit.bankarization.applications.write

Idempotency-Key é obrigatório na criação e no reenvio (até 160 caracteres). Replay com o mesmo payload devolve a solicitação original; não estende a expiração.

A listagem devolve só solicitações criadas por esta API. Pedidos criados no Finance não aparecem aqui.

Fluxo

1. Listar produtos publicados para a conta
2. Consultar parâmetros e faixas de taxa
3. POST /applications com devedor PF + operação (sem assignment)
4. Acompanhar GET /applications/{requestId}
5. Se nextAction=CUSTOMER_REGISTRATION, reenviar convite quando necessário
6. Cancelar antes do Loan, se preciso

Catálogo da conta:

  • publicações INSTITUTIONAL se a conta não tem tenant BaaS
  • publicações BAAS se a conta pertence a um parceiro

Criar solicitação

curl -X POST "https://secureapi.onz.finance/credit/bankarization/applications" \
--cert client.pem --key client.key \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: account-ccb-2026-08-20-001" \
-d '{
"creditProductId": 42,
"debtor": {
"personType": "NATURAL_PERSON",
"document": "52998224725",
"name": "Maria Silva",
"email": "[email protected]",
"phone": "11999999999"
},
"operation": {
"amount": "10000.00",
"term": 12,
"period": "MONTHLY",
"firstDueDate": "2026-09-10"
}
}'

Resposta 202 Accepted:

{
"requestId": "c55fa769-6364-4e1c-968b-d4880aa9a952",
"externalRequestId": null,
"status": "READY",
"nextAction": "INTERNAL_CREDIT_FLOW",
"expiresAt": "2026-08-27T12:00:00.000Z",
"pricing": {
"bankarizationFeeRate": "2.00",
"bankarizationFeeBase": "LOAN_PRINCIPAL",
"bankarizationFeeAmount": "200.00"
},
"links": {
"self": "/public/gw_banking/v1/credit/bankarization/applications/c55fa769-6364-4e1c-968b-d4880aa9a952"
}
}

Nas chamadas use os paths simplificados (/credit/bankarization/...). O campo links.self (e o header Location) devolve o path canônico do gateway.

Regras do body:

  • sem assignment
  • somente devedor NATURAL_PERSON (CPF)
  • valores monetários e taxas como string decimal (ex.: "10000.00")
  • telefone brasileiro aceita E.164 +55 e formatos nacionais; a API normaliza para DDD + número (10–11 dígitos)

Se a conta exigir quorum de assinatura, status vem WAITING_JOINT_APPROVAL e nextAction vem JOINT_APPROVAL. A aprovação continua no Finance.

Consultar, cancelar e reenviar

curl -X GET "https://secureapi.onz.finance/credit/bankarization/applications?page=1&limit=25" \
--cert client.pem --key client.key \
-H "Authorization: Bearer <access_token>"

curl -X GET "https://secureapi.onz.finance/credit/bankarization/applications/c55fa769-6364-4e1c-968b-d4880aa9a952" \
--cert client.pem --key client.key \
-H "Authorization: Bearer <access_token>"

curl -X POST "https://secureapi.onz.finance/credit/bankarization/applications/c55fa769-6364-4e1c-968b-d4880aa9a952/cancel" \
--cert client.pem --key client.key \
-H "Authorization: Bearer <access_token>"

curl -X POST "https://secureapi.onz.finance/credit/bankarization/applications/c55fa769-6364-4e1c-968b-d4880aa9a952/notifications/resend" \
--cert client.pem --key client.key \
-H "Authorization: Bearer <access_token>" \
-H "Idempotency-Key: resend-2026-08-20-001"

A conta A não lê nem cancela solicitação da conta B. Cancelamento é idempotente e só é aceito antes da criação do Loan. O reenvio não devolve links, tokens nem códigos de convite e não estende a expiração.

Status e nextAction

Cancelamento só é aceito antes da criação do Loan. Estados terminais não exigem nova ação do integrador.

statusSignificado
RECEIVEDSolicitação recebida; processamento inicial
WAITING_JOINT_APPROVALAguarda aprovação conjunta no Finance
WAITING_ACCOUNT_APPROVALCadastro do devedor em análise
WAITING_ACCOUNT_REGULARIZATIONConta do devedor precisa regularização
REQUIRES_ACCOUNT_SELECTIONHá mais de uma conta elegível (não selecionada nesta API)
READYPronta para o fluxo interno de crédito
PROCESSINGEm processamento
RETRY_PENDINGAguardando nova tentativa; pode incluir Retry-After
LOAN_CREATEDLoan criado; cancelamento não é mais aceito
AWAITING_SIGNATURESAguardando assinaturas do contrato
AWAITING_LOAN_APPROVALAguardando aprovação do Loan
ASSIGNMENT_PENDINGCessão em andamento
COMPLETEDConcluída (terminal)
REJECTEDRejeitada (terminal)
EXPIREDExpirada (terminal)
FAILEDFalhou (terminal)
CANCELEDCancelada (terminal)
nextActionSignificado
INTERNAL_CREDIT_FLOWSolicitação segue o fluxo interno de crédito
CUSTOMER_REGISTRATIONConvite de cadastro PF ativo
WAIT_ACCOUNT_APPROVALCadastro em análise, sem convite ativo
WAIT_ACCOUNT_REGULARIZATIONConta do devedor precisa regularização
ACCOUNT_SELECTION_REQUIREDHá mais de uma conta elegível (não selecionada nesta API)
JOINT_APPROVALConta em assinatura conjunta; approve/PIN no Finance
NONEEstado terminal ou sem ação do integrador

Erros

Respostas de erro usam RFC 7807 (application/problem+json).

HTTPQuando
400Body inválido ou assignment enviado
401Token ausente ou inválido
403Credencial sem accountId, scope ou mTLS/IP ausente
404Solicitação de outra conta
409Conflito de estado (ex.: já existe Loan)
422Produto/política/saldo não permitem a operação
502Falha de gateway
503Serviço temporariamente indisponível; pode incluir Retry-After