Operações pós-cessão
POST /loan/repurchase · PATCH /loan/renegotiate
1. Quando usar este fluxo
Use os endpoints pós-cessão sempre que uma operação ativa no fundo precisar sair da carteira antes de ser liquidada normalmente. As razões são variadas — inadimplência prolongada, cancelamento da venda, refinanciamento, fraude, erro operacional — e cada uma tem regras próprias sobre quem ressarce o fundo e qual o instrumento jurídico aplicado.
PrincípioA API expõe dois endpoints que cobrem todas as categorias via parametrização.
POST /loan/repurchaserecebe um camporeasonque diferencia recompra, reversão e resolução.PATCH /loan/renegotiatetrata refinanciamentos.
2. Categorias suportadas
| Categoria | Quando usar | Quem paga o fundo | Endpoint |
|---|---|---|---|
| Recompra | Originador recompra o ativo por inadimplência, violação de elegibilidade, fraude ou solicitação | Originador, na curva | POST /loan/repurchase com reason=repurchase |
| Recompra integrada | Cancelamento da venda subjacente, com débito no próximo repasse ao lojista | Originador, via débito automático | POST /loan/repurchase com reason=integrated_repurchase |
| Reversão de cessão | Operação cancelada antes do desembolso ao tomador — não chegou a "rodar" | Bancarizador, direto | POST /loan/repurchase com reason=cession_reversal |
| Resolução | Cancelamento com repasse já efetivado — originador devolve o desembolso menos a parcela paga | Originador, na curva | POST /loan/repurchase com reason=resolution |
| Renegociação | Refinanciamento — contrato atual é baixado e um novo contrato é cedido | Originador (recompra) + nova cessão | PATCH /loan/renegotiate |
3. Atores envolvidos
| Ator | Papel no fluxo |
|---|---|
| Integrador | Detecta o gatilho da operação pós-cessão e chama o endpoint correspondente |
| IORQ (gestora) | Valida a solicitação, registra a saída do ativo, sinaliza ADM, emite webhooks |
| Administradora | Gera termo correspondente à categoria, coleta assinaturas, processa o evento financeiro |
| Bancarizador (quando aplicável) | Em reversões de cessão, devolve o valor diretamente ao fundo |
4. Fluxo end-to-end
sequenceDiagram
participant INT as Integrador
participant IORQ as IORQ
participant ADM as Administradora
INT->>IORQ: POST /loan/repurchase (reason)
IORQ-->>INT: 200 OK
IORQ->>IORQ: Valida operação + calcula valor
IORQ->>INT: Webhook repurchase_received
IORQ->>ADM: Sinaliza saída do ativo (com motivo)
ADM->>ADM: Gera termo correspondente
ADM->>IORQ: Confirma processamento
IORQ->>INT: Webhook repurchase_completed
5. Passo a passo
5.1 Recompra, reversão e resolução
Todas as categorias de saída do ativo exceto renegociação usam o mesmo endpoint, diferenciadas pelo campo reason.
POST /loan/repurchase · application/json
Campos do payload
| Campo | Tipo | Descrição |
|---|---|---|
originator_proposal_code | string | Identificador da operação |
reason | enum | repurchase, integrated_repurchase, cession_reversal, resolution |
reason_detail | string | Texto livre opcional explicando o motivo (auditoria) |
effective_date | date | Data efetiva da operação |
repurchase_value | decimal | Valor da recompra. Quando omitido, a IORQ calcula automaticamente conforme a regra do reason |
idempotency_key | string | Chave única — recomendado: {originator_proposal_code}-{reason} |
Exemplo — recompra padrão:
curl -X POST 'https://hs-api.iorq.com.br/loan/repurchase' \
-H 'Authorization: Bearer eyJhbGciOi...' \
-H 'Content-Type: application/json' \
-d '{
"originator_proposal_code": "OP-001",
"reason": "repurchase",
"reason_detail": "Inadimplência > 90 dias",
"effective_date": "2026-08-15",
"idempotency_key": "OP-001-repurchase"
}'Resposta:
{
"originator_proposal_code": "OP-001",
"status": "repurchase_pending",
"reason": "repurchase",
"repurchase_value": 2540.00,
"calculated_at": "2026-08-15T09:30:00Z"
}
Cálculo do valor porreasonA IORQ aplica a regra padrão da categoria quando
repurchase_valueé omitido. As regras refletem o estado da operação no momento da solicitação (parcelas pagas, juros corridos, etc.).
repurchase→ valor presente da curva remanescenteintegrated_repurchase→ idem, debitado no próximo repassecession_reversal→ valor desembolsado original (operação não rodou)resolution→ valor desembolsado menos parcelas já pagas
5.2 Renegociação
Em uma renegociação, a operação atual é recomprada pelo originador na curva e uma nova operação é cedida no lugar com novos termos. A API trata isso como uma única transação atômica.
PATCH /loan/renegotiate · application/json
Exemplo:
curl -X PATCH 'https://hs-api.iorq.com.br/loan/renegotiate' \
-H 'Authorization: Bearer eyJhbGciOi...' \
-H 'Content-Type: application/json' \
-d '{
"original_proposal_code": "OP-001",
"new_proposal": {
"originator_proposal_code": "OP-001-R1",
"number_of_installments": 18,
"acquisition_value": 2200.00,
"installments": [ ]
},
"effective_date": "2026-09-01"
}'Após a renegociação, a operação original sai da carteira (mesmo efeito de repurchase) e a nova operação entra no fluxo normal de cessão — passa por elegibilidade, gera termo e desembolso.
5.3 Webhooks de confirmação
| Evento | Quando dispara |
|---|---|
repurchase_received | IORQ aceitou a solicitação e calculou o valor |
repurchase_completed | Administradora processou — operação fora da carteira |
renegotiation_completed | Operação original baixada + nova operação na carteira |
6. Estados terminais pós-cessão
stateDiagram-v2
active --> repurchased: POST /loan/repurchase
active --> reversed: reason=cession_reversal
active --> resolved: reason=resolution
active --> renegotiated: PATCH /loan/renegotiate
active --> settled: Liquidação normal (ver Liquidação)
repurchased --> [*]
reversed --> [*]
resolved --> [*]
renegotiated --> [*]
settled --> [*]
Todos os estados pós-cessão são terminais. Uma operação que sai por qualquer um deles não volta para active. No caso de renegociação, a operação original termina e uma nova operação (com novo originator_proposal_code) é criada.
7. Próximos fluxos
Updated about 6 hours ago