Devoluções, estornos e disputas¶
Para: Fin · Dev — Conferido em 2026-10-18.
Esta página separa o que existe de verdade em produção do que só existe no sandbox: devolução de depósito, devolução de saque pelo banco, estorno, chargeback e disputa. Cada caso tem um efeito diferente no caixa da operação e no seu livro. Construa o seu conector para todos eles, mas não espere os eventos de estorno e chargeback em produção.
O que é¶
| Caso | Estado | Produção | Sandbox |
|---|---|---|---|
| Depósito devolvido pelo revisor | deposit em returned |
Existe | Existe |
| Saque devolvido pelo banco depois de pago | withdrawal em returned |
O mecanismo existe. O guia não afirma quais PSPs informam devolução hoje | Existe, por ação de sandbox |
| Estorno de depósito pago | deposit em refunded |
Sem gatilho | Existe |
| Chargeback ou MED de depósito pago | deposit em chargeback |
Sem gatilho | Existe |
| Disputa de cartão | Nenhum | Não disponível | Não disponível |
| Recall de saque | recalled |
Não ocorre em PIX | Não ocorre em PIX |
"Sem gatilho" quer dizer: o estado e o tratamento no caixa existem no Dracma, mas nenhum PSP nem rotina da produção leva um depósito até lá hoje. Teste o seu tratamento no sandbox.
Quando usar¶
Leia esta página ao:
- escrever o tratamento de
refunded,chargebackereturnedno seu conector; - explicar ao financeiro por que o caixa mudou depois de um depósito que já estava
paid; - decidir a política de débito do jogador (veja Política de exceções de dinheiro).
Como funciona¶
Efeito de cada caso¶
| Caso | Caixa da operação (available) |
Item no relatório diário | O que fazer no seu livro |
|---|---|---|---|
Depósito returned |
Não muda (nunca foi creditado) | return, pelo valor pago |
Nada |
Saque returned |
Sobe o valor devolvido (pode ser parcial) | return, pelo valor devolvido |
Política sua; recomendação: abrir caso, não recreditar sozinho |
Depósito refunded |
Cai o valor do depósito | refund |
Débito conforme a sua política; recomendação: abrir caso |
Depósito chargeback |
Cai o valor do depósito | chargeback |
Idem |
Pontos que costumam surpreender:
- Estorno e chargeback debitam o caixa pelo valor cheio. Não há tarifa no movimento (veja Tarifas).
- O caixa livre pode ficar negativo. Se o jogador já sacou e há outros saques reservados, o débito do estorno ou do chargeback pode deixar o caixa livre abaixo de zero. Enquanto isso durar, novos saques recebem
422 insufficient_operation_balance(veja Saldos e caixa livre). - Depósito
returnednão debita. Ele nunca passou porpaid, então o relatório mostra só o itemreturne nenhum itemdepositpara ele. - Saque devolvido continua com o item
withdrawaldo dia do pagamento. O itemreturnaparece no dia da devolução; não há compensação automática dentro do totalwithdrawals_paid(veja Reconciliar com o seu livro).
Por que não mover dinheiro sozinho¶
Um débito automático num jogador que já sacou deixa saldo negativo. Um recrédito automático de um saque devolvido pode pagar duas vezes se o banco reenviar. Esses casos são raros e caros: a recomendação é abrir um caso com alerta e deixar uma pessoa decidir. O modelo está em Política de exceções de dinheiro.
Disputas de cartão¶
Não disponível
O Dracma não oferece fluxo de disputa para o operador. Não há API, painel ou evento para abrir, acompanhar ou contestar uma disputa, e não há tratamento de chargeback de cartão: o único meio de pagamento é o PIX. Chargeback e MED de depósito não são avisados por evento em produção. Se o seu banco ou o PSP comunicarem uma disputa, trate-a fora da API e informe o suporte.
Recall¶
POST /v1/withdrawals/{id}/recall só vale para saques por transferência bancária, que o Dracma não oferece. Num saque PIX a rota responde 409 invalid_state_transition sem mudar nada. Os estados recall_requested e recalled e o item recall do relatório são reservados.
Exemplos¶
No sandbox, o estorno e o chargeback saem de um depósito paid:
POST /v1/sandbox/deposits/{id}/refund -> 200, deposit.refunded
POST /v1/sandbox/deposits/{id}/chargeback -> 200, deposit.chargeback
Cada ação exige Idempotency-Key e só vale a partir de paid; em qualquer outro estado a resposta é 409. As rotas existem apenas em operação Teste. Use-as para provar que o seu conector não credita nem debita sozinho ao ver refunded e chargeback (receita no Sandbox: receitas).
Para o saque, a ação return de sandbox leva um saque paid a returned, com o objeto return preenchido (veja Ciclo do saque).
Erros e casos de borda¶
- Estado desconhecido. Trate como não terminal. Não mova dinheiro.
- Chargeback depois de saque. O jogador já sacou: o caixa pode ficar negativo e o saldo do jogador no seu livro, também. Registre o caso e decida com uma pessoa.
- Devolução duplicada. Um segundo
withdrawal.returnedpara o mesmo saque não credita o caixa de novo. O seu conector também deve ser idempotente peloexternal_id. - Devolução inválida. Valor zero, maior que o pago ou em outra moeda é recusado pelo Dracma e gera alerta; o saque não muda.