Ciclo de vida do direito creditório

1. Diagrama de estados completo

stateDiagram-v2
    [*] --> received: POST /loan
    received --> rejected: Falha de elegibilidade
    received --> approved: Passa nos critérios
    approved --> term_signing: ADM sinalizada
    term_signing --> term_signed: Partes assinam
    term_signed --> active: Desembolso confirmado
    active --> settled: Liquidação total
    active --> repurchased: POST /loan/repurchase
    active --> renegotiated: PATCH /loan/renegotiate
    rejected --> [*]
    settled --> [*]
    repurchased --> [*]
    renegotiated --> [*]

2. Estados em detalhe

EstadoSignificadoPróximos válidosWebhook
receivedOperação aceita pela API, em fila de validaçãoapproved, rejectedloan_received
rejectedRejeitada por elegibilidade. Terminalloan_rejected
approvedPassou nos critérios. ADM será sinalizada no próximo cicloterm_signingloan_approved
term_signingADM sinalizada, termo gerado, aguardando assinaturasterm_signed
term_signedTermo assinado por todas as partesactiveloan_term_signed
activeOperação no estoque do fundo, gerando recebíveissettled, repurchased, renegotiateddisbursement_completed
settledTodas as parcelas liquidadas. Terminalloan_fully_settled
repurchasedRecomprada pelo originador. Terminalrepurchase_completed
renegotiatedSubstituída por nova operação. Terminalrenegotiation_completed

3. Estados de parcela (sub-ciclo)

Cada parcela de uma operação active tem seu próprio ciclo:

stateDiagram-v2
    [*] --> pending: Operação ativa
    pending --> settled: POST /installment/settle
    pending --> prepaid: POST /installment/prepayment
    pending --> overdue: Vencida sem pagamento
    overdue --> settled: Pagamento com atraso
    settled --> [*]
    prepaid --> [*]

Quando todas as parcelas atingem estado terminal, a operação migra de active para settled.

4. Consultar o estado atual

A qualquer momento, você pode consultar o estado de uma operação via GET /loan/{originator_proposal_code}:

curl 'https://hs-api.iorq.com.br/loan/OP-001' \
  -H 'Authorization: Bearer YOUR_TOKEN'
{
  "originator_proposal_code": "OP-001",
  "fund_id": "...",
  "status": "active",
  "state_history": [
    {"state": "received",     "at": "2026-05-13T11:00:00Z"},
    {"state": "approved",     "at": "2026-05-13T11:02:34Z"},
    {"state": "term_signing", "at": "2026-05-13T11:05:00Z"},
    {"state": "term_signed",  "at": "2026-05-13T15:30:00Z"},
    {"state": "active",       "at": "2026-05-14T09:00:00Z"}
  ],
  "installments_summary": {
    "total": 12,
    "pending": 10,
    "settled": 2,
    "overdue": 0
  }
}

5. Garantias de transição

  • Estados terminais não voltam. Uma operação repurchased não pode ser reativada — para reincorporá-la ao fundo, faça uma nova cessão.
  • Transições inválidas retornam 422. Tentar liquidar uma parcela de operação já recomprada resulta em erro com mensagem explicativa.
  • Idempotência é preservada. Reenviar uma ação em estado terminal não causa efeito — retorna o estado atual.
  • Ordem de webhooks é monotônica por originator_proposal_code. Você não recebe loan_approved antes de loan_received.

6. Próximos passos