Fluxo de Estorno
Use o Fluxo de Cancelamento para cancelar uma solicitação de empréstimo antes que ela tenha sido cobrada e desembolsada. ### Quando Usar | Condição | Pode Cancelar? | | ------------------------------------------------- | --------------------------------- | | Solicitação criada mas não SUBMITED_TO_FI | ✅ Sim | | Solicitação já desembolsada ou | ❌ Não (use o Fluxo de Reembolso) | ### Cancelar uma Solicitação bash POST /application/{applicationId}/cancel json { "personId": "ff0024e6-d11e-4700-b7f3-b3d201624e62", "reason": "Customer requested cancellation" } Resposta: json { "applicationId": "6ffd813a-1e88-4a4a-a892-758ca310e607", "status": "CANCELLED", "cancelledAt": "2026-01-21T10:30:00Z" } > ⚠️ Importante > > Uma vez que a solicitação é desembolsada, ela não pode ser cancelada. Você deve usar o Fluxo de Reembolso.
Visão Geral da Política de Devolução
| Regra | Descrição |
|---|---|
| Prazo de Devolução | 20 dias a partir do recebimento do produto |
| Direito de Arrependimento (7 dias) | Reversão total incluindo estorno do IOF |
| Liquidação | Parceiro transfere o valor da mercadoria de volta para o fundo |
Cenários de Estorno
| Cenário | Ação do Cliente | Resultado Financeiro |
|---|---|---|
| Devolução Total (sem pagamentos) | Devolve o pedido inteiro, sem parcelas pagas | Empréstimo cancelado. Parceiro devolve valor da mercadoria. Fundo absorve IOF e juros. |
| Devolução Total (com pagamentos) | Devolve o pedido inteiro após pagar parcelas | Empréstimo cancelado. Cliente recebe estorno de todos os pagamentos via PIX. |
| Devolução Parcial (sem pagamentos) | Devolve alguns itens, sem parcelas pagas | Empréstimo permanece ativo. Valor da devolução aplicado como entrada. Parcelas recalculadas. |
| Devolução Parcial (saldo > devolução) | Devolve itens com valor menor que o saldo devedor | Valor da devolução aplicado como entrada. Parcelas restantes recalculadas. |
| Devolução Parcial (saldo < devolução) | Devolve itens com valor maior que o saldo devedor | Empréstimo liquidado. Valor excedente estornado ao cliente via PIX. |
| Devolução após 20 dias | Tenta devolver fora do prazo da política | Devolução negada. Empréstimo inalterado. |
| Itens não retornáveis | Tenta devolver itens restritos | Devolução negada. Empréstimo inalterado. |
| Arrependimento (7 dias) | Devolução total em até 7 dias do recebimento | Reversão total. Cliente não paga nada. |
Ciclo de Vida do Status do Estorno
POST /application/{id}/refund
│
▼
┌───────────────┐
│ PENDING │◄──────────────────────────┐
│ │ │
│ Estorno │ Parceiro reenvia
│ sendo │ dados corrigidos
│ processado │ │
└──┬─────┬────┬──┘ │
│ │ │ │
│ │ └──────────────┐ │
│ │ │ │
▼ ▼ ▼ │
┌──────────┐ ┌──────────┐ ┌───────────────────┐ │
│COMPLETED │ │ FAILED │ │ ACTION_REQUIRED │ │
│ │ │ │ │ │ │
│ Estorno │ │ Estorno │ │ Problema │ │
│ aplicado │ │ não pôde │ │ detectado. │ │
│ ao │ │ ser │ │ Parceiro chama │ │
│ emprésti-│ │ proces- │ │ PUT /refund/{id} ├───┘
│ mo │ │ sado │ │ com nova pix_key │
└──────────┘ └──────────┘ │ (veja reason) │
└───────────────────┘
O que acontece quando um estorno é COMPLETED?
O resultado financeiro depende de o cliente já ter pago parcelas:
| Situação | O que acontece |
|---|---|
| Nenhum pagamento realizado | O valor da devolução é aplicado como entrada. As parcelas restantes são recalculadas com um valor menor. Nenhuma transferência PIX ocorre. |
| Pagamentos realizados, valor da devolução ≤ saldo restante | O valor da devolução compensa o saldo devedor. As parcelas são recalculadas. Nenhuma transferência PIX ocorre. |
| Pagamentos realizados, valor da devolução > saldo restante | O empréstimo é liquidado. O valor excedente (overflow) é estornado ao cliente via PIX. Este é o único cenário que exige uma pix_key válida. |
| Devolução total, com pagamentos realizados | O empréstimo é cancelado. O cliente recebe o estorno de todos os pagamentos via PIX. |
Nota: O campo
pix_keyé sempre obrigatório na requisição, mas uma transferência PIX ao cliente só ocorre quando há valor excedente (valor da devolução ultrapassa o saldo restante) ou quando o cliente já realizou pagamentos que precisam ser devolvidos.
Quando o ACTION_REQUIRED acontece?
Quando o estorno requer uma transferência PIX ao cliente, mas a chave PIX fornecida é inválida, o status muda para ACTION_REQUIRED. O parceiro deve coletar uma chave PIX corrigida com o cliente e reenviar.
Possíveis valores de reason:
| Reason | Descrição |
|---|---|
INVALID_PIX_KEY | A chave PIX fornecida é inválida ou está mal formatada |
PIX_KEY_NOT_FOUND | A chave PIX não existe no registro do Banco Central |
PIX_KEY_TYPE_MISMATCH | O tipo da chave PIX não corresponde ao titular da conta |
ACCOUNT_CLOSED | A conta de destino associada à chave PIX está encerrada |
Solicitar um Estorno
POST /application/{application_id}/refund{
"amount": 1000,
"reason": "Customer returned all products",
"refund_type": "FULL",
"reason_code": "PRODUCT_RETURN",
"pix_key": "111.111.111-11",
"pix_key_type": "CPF"
}Resposta:
{
"refund_id": "6ffd813a-1e88-4a4a-a892-758ca310e607",
"status": "PROCESSING",
"refunded_at": "2026-01-21T14:00:00Z"
}Exemplo de Estorno Parcial
POST /application/{application_id}/refund{
"amount": 400,
"reason": "Customer returned 1 of 3 items",
"refund_type": "PARTIAL",
"reason_code": "PRODUCT_RETURN",
"pix_key": "[email protected]",
"pix_key_type": "EMAIL"
}Resposta:
{
"refund_id": "6ffd813a-1e88-4a4a-a892-758ca310e607",
"status": "PROCESSING",
"refunded_at": "2026-01-21T14:00:00Z"
}Consultar Status do Estorno
GET /application/{application_id}/refund/{refund_id}Estorno concluído:
{
"application_id": "7ffd813a-1e88-4a4a-a892-758ca310e607",
"person_id": "8ffd813a-1e88-4a4a-a892-758ca310e607",
"refund_id": "6ffd813a-1e88-4a4a-a892-758ca310e607",
"status": "COMPLETED",
"reason": null,
"refund_type": "FULL",
"offset_amount": 1000.00,
"refund_amount": 220.00,
"refunded_at": "2026-01-21T14:00:00Z",
"completed_at": "2026-01-22T10:00:00Z"
}Ação necessária (chave PIX inválida):
{
"application_id": "7ffd813a-1e88-4a4a-a892-758ca310e607",
"person_id": "8ffd813a-1e88-4a4a-a892-758ca310e607",
"refund_id": "6ffd813a-1e88-4a4a-a892-758ca310e607",
"status": "ACTION_REQUIRED",
"reason": "INVALID_PIX_KEY",
"refund_type": "FULL",
"offset_amount": 1000.00,
"refund_amount": 0,
"refunded_at": "2026-01-21T14:00:00Z",
"completed_at": null
}Atualizar Estorno
Quando um estorno está com status ACTION_REQUIRED, use este endpoint para fornecer dados corrigidos. O estorno será automaticamente movido de volta para PENDING e será reprocessado.
PUT /application/{application_id}/refund/{refund_id}{
"pix_key": "222.222.222-22",
"pix_key_type": "CPF"
}Resposta:
{
"application_id": "7ffd813a-1e88-4a4a-a892-758ca310e607",
"person_id": "8ffd813a-1e88-4a4a-a892-758ca310e607",
"refund_id": "6ffd813a-1e88-4a4a-a892-758ca310e607",
"status": "PENDING",
"reason": null,
"refund_type": "FULL",
"offset_amount": 500,
"refund_amount": 0,
"refunded_at": "2026-01-22T09:00:00Z",
"completed_at": null
}Nota: Este endpoint aceita apenas estornos com status
ACTION_REQUIRED. Chamá-lo em um estorno com qualquer outro status retornará um erro409 Conflict.
Webhook de Status do Estorno
O sistema envia uma notificação via webhook (POST /webhooks/refund-status) sempre que um estorno muda de estado. Isso é especialmente útil quando a solicitação original de estorno expirou ou retornou um erro.
{
"person_id": "8ffd813a-1e88-4a4a-a892-758ca310e607",
"webhook_type": "refund.status_change",
"application_id": "7ffd813a-1e88-4a4a-a892-758ca310e607",
"refund_id": "6ffd813a-1e88-4a4a-a892-758ca310e607",
"previous_status": "PENDING",
"new_status": "ACTION_REQUIRED",
"event_datetime": "2026-01-22T11:00:00Z",
"data": {
"refund_amount": 0,
"refund_type": "FULL",
"offset_amount": 1000,
"reason": "INVALID_PIX_KEY"
}
}Ao receber ACTION_REQUIRED, colete uma nova chave PIX com o cliente e atualize o estorno usando PUT /application/{application_id}/refund/{refund_id}.
Lógica de Cálculo do Estorno
Para devoluções parciais, o valor da devolução é aplicado como entrada:
Novo Saldo Devedor = Saldo Atual - Valor da Devolução
Nova Parcela = Novo Saldo Devedor / Parcelas Restantes
Exemplo:
- Empréstimo original: R$1.100 (10 parcelas de R$110)
- Pagamentos realizados: 3 parcelas (R$330)
- Saldo devedor: R$770
- Item devolvido: R$300
Resultado:
- Novo saldo: R$770 - R$300 = R$470
- Parcelas restantes: 7
- Nova parcela: R$470 / 7 = R$67,14
Nota
Para devoluções dentro de 7 dias do recebimento, o IOF também é estornado pela QiTech, resultando em uma reversão completa da transação.
Updated 3 months ago
