Ciclo do saque¶
Para: Dev · Fin — Conferido em 2026-10-18.
Um saque é um pedido de pagamento PIX ao jogador. O Dracma decide se ele sai no automático ou vai para revisão, reserva o caixa no envio e só confirma paid quando o PIX é liquidado. Esta página mostra os estados, o que pode demorar, o que pode ficar parado e o que o seu livro deve fazer em cada caso.
O que é¶
- O saque nasce já decidido (
approvedouunder_review) ou emrequested, quando a consulta da chave PIX ainda está pendente. A criação responde sempre201e não espera o PSP. versionsobe a cada transição. Ignore estado comversionmenor ou igual ao já aplicado.rejected,failed,cancelledereturnedsão terminais;paidsó pode ir areturned.- Os estados
pending_compliance,sent,in_transit,recall_requestederecalledfazem parte do contrato, mas não ocorrem em PIX hoje. Se aparecerem, mantenha a reserva e confira de novo.
Quando usar¶
Consulte esta página para:
- definir o prazo de suporte de um saque em
processing; - explicar ao financeiro por que um saque
approvednão saiu; - decidir o que fazer com a reserva do jogador em cada estado.
A regra de ouro está na Referência: saques: reserve o valor no seu livro antes de pedir o saque e só devolva a reserva com resposta conclusiva (4xx síncrono, ou estado rejected, failed ou cancelled lido pela API). Timeout, erro de rede, 5xx e 429 não são respostas conclusivas.
Como funciona¶
Efeito no seu livro¶
| Estado lido pela API | Reserva no seu livro | Observação |
|---|---|---|
requested |
Mantém | A consulta da chave PIX pode levar até cerca de 5 minutos. |
under_review |
Mantém | Um revisor decide; os motivos estão em decision.reasons. |
approved |
Mantém | Aprovado, mas ainda não enviado. Veja "approved parado". |
processing |
Mantém | O pedido foi enviado ao PSP. Veja "processing pode durar". |
paid |
Finaliza: vira saída definitiva | psp_reference traz o identificador ponta a ponta do PIX. |
rejected |
Devolve ao jogador | Motivo em decision.reasons. |
failed |
Devolve ao jogador | O dinheiro não saiu. Motivo em failure_code. |
cancelled |
Devolve ao jogador | Cancelado por você, pelo painel ou por lista de bloqueio no envio. |
returned (depois de paid) |
Política sua | Veja "Banco devolveu o PIX". |
| Estado desconhecido | Mantém | Não terminal; confira depois. |
Devolver e finalizar são idempotentes pelo external_id: dois eventos do mesmo desfecho movem o dinheiro uma vez.
processing pode durar¶
processing significa que o Dracma enviou o pedido ao PSP e espera o desfecho. Dentro dele cabem situações diferentes: o PSP aceitou e ainda não liquidou, o PSP não respondeu de forma conclusiva, ou o caso passou para tratamento manual do Dracma.
Quando o PSP não dá resposta conclusiva, o Dracma consulta o PSP repetidas vezes, em intervalos crescentes, por até cerca de 1 h 30. Se mesmo assim não houver resposta, o caso passa para tratamento manual pelo time do Dracma, que também é avisado por alerta. Nessa hora o saque continua processing.
Regras que valem sempre:
- Nunca há reenvio. O Dracma não manda o mesmo pedido de novo ao PSP, para não pagar duas vezes.
- Nunca há failover de PSP. Se o PSP de saque não responde, o Dracma não tenta outro.
failedsó sai com resposta definitiva do PSP de que o dinheiro não saiu. Se você virfailed, a reserva pode voltar ao jogador.- Enquanto estiver
processing, mantenha a reserva. Não devolva, não reenvie e não crie outro saque.
Defina um prazo de suporte pelo seu lado. Como o Dracma consulta o PSP por até cerca de 1 h 30 antes de passar o caso para tratamento manual, um saque em processing por mais de 2 horas merece um chamado com o id do saque e o trace_id (veja Suporte).
approved parado¶
approved não quer dizer "saiu". O saque pode ficar aprovado e parado por quatro motivos:
| Causa | O que acontece | O que fazer |
|---|---|---|
| Fora do horário do automático | O Dracma reconfere periodicamente e envia quando o horário abre. Veja Dia, fuso e horários. | Nada. |
| Caixa livre menor que o valor | O Dracma reconfere periodicamente e alerta. O saque sai quando houver caixa. Veja Saldos e caixa livre. | Aumentar o caixa por depósitos ou cancelar o saque. |
| Saques em verificação na operação | O painel mostra a faixa neutra "Saques em verificação". Novos saques esperam em approved e saem quando a verificação termina. Os depósitos seguem normalmente. |
Aguardar. Em dúvida, chame o suporte. |
| Envio recusado antes de sair | A reserva de caixa foi recusada na hora do envio, ou o ambiente não permite o envio. Nada foi enviado ao PSP. O saque fica approved e o Dracma alerta. |
Veja "Reserva recusada no envio". |
Dois detalhes a mais:
- Um saque sem
player.ipnunca é enviado. O PSP de saque exige o IP do titular; sem o IP o saque nasce emunder_reviewcomOWNERSHIP_UNVERIFIED, e, se um revisor o aprovar, ele ficaapprovedsem sair. - Uma lista de bloqueio atualizada antes do envio leva o saque a
cancelledcomBLOCKLIST_HIT_AT_DISPATCH.
Saques em verificação
A faixa "Saques em verificação" é intencionalmente neutra: ela não mostra motivo, conta ou prazo. O efeito é só o descrito acima. O Dracma não publica prazo para o fim da verificação. Peça informação pelo canal de suporte combinado no onboarding.
Reserva recusada no envio¶
Se o Dracma não consegue reservar o caixa na hora do envio (por exemplo, o caixa livre baixou depois da aprovação), a tentativa termina sem enviar nada e o saque fica approved com alerta interno. Esse caso não é reenviado sozinho.
Você tem dois caminhos:
- Cancelar o saque com
POST /v1/withdrawals/{id}/cancel. Como o envio não saiu, a resposta é200comstatus: "cancelled". Devolva a reserva do jogador ao lercancelled. - Abrir um chamado com o
iddo saque para o Dracma investigar e orientar (veja Suporte).
Monitore o caixa livre (veja Saldos e caixa livre) e alerte antes de ele acabar. Assim este caso quase não acontece.
Cancelamento¶
POST /v1/withdrawals/{id}/cancel é permitido em requested, under_review e approved, enquanto o comando de envio ao PSP não saiu. A resposta é 200 com o objeto em cancelled (ou o mesmo 200 se já estava cancelado). Depois que o envio saiu, ou em processing e depois, a resposta é 409 invalid_state_transition: o dinheiro pode estar saindo. Espere o desfecho (paid ou failed). Um saque que espera a verificação da operação já teve o envio pedido e também responde 409.
Consulta da chave PIX¶
Quando a consulta da titularidade da chave PIX está indisponível, o saque é criado em requested. O Dracma reconsulta com intervalos crescentes por até cerca de 5 minutos e então decide: approved, rejected se o titular diverge, ou under_review com DICT_UNAVAILABLE.
failure_code¶
failure_code é uma lista aberta; o status é que manda. Os valores que o Dracma produz:
failure_code |
Significado |
|---|---|
psp_failed |
O PSP recusou o pagamento (valor padrão quando o PSP não informou motivo). |
psp_<motivo> |
O PSP informou o motivo em código curto, por exemplo psp_rejected. |
psp_not_found |
O PSP respondeu de forma definitiva que não conhece o pedido. |
psp_unsupported |
O PSP da conexão escolhida não faz saque. Falha antes de qualquer envio. |
Em todos os casos o dinheiro não saiu. Os códigos environment_guard e reservation_refused não geram failed: o saque fica approved (veja acima).
Banco devolveu o PIX¶
O Dracma sabe tratar a devolução de um PIX de saque já pago. O mecanismo:
- O PSP avisa que o banco devolveu o PIX.
- O aviso só dispara a conferência: o Dracma consulta o PSP e só age se a consulta confirmar a devolução.
- O saque vai de
paidparareturnede saiwithdrawal.returned. - O objeto
returnpassa a vir preenchido. A devolução pode ser parcial: o saque continuareturned, e o caixa recebe só o valor devolvido. - O caixa da operação sobe o valor devolvido (
available), e o relatório diário ganha um itemreturnno dia da devolução.
Campos de return:
| Campo | Conteúdo |
|---|---|
reason_code |
Código curto do PSP, ou unspecified se o PSP não informou. |
returned_amount |
Money com o valor devolvido. Nunca maior que o valor pago. |
returned_at |
Instante da devolução, em UTC. |
O Dracma é idempotente nesse ponto: uma segunda devolução do mesmo saque não credita o caixa de novo. Devolução com valor zero, maior que o pago ou em outra moeda é rejeitada e gera alerta, sem lançar nada.
Quais PSPs informam devolução
O mecanismo e o objeto return estão prontos. O guia não afirma quais PSPs informam devoluções hoje. Planeje o seu conector para tratar returned e confirme o comportamento da sua operação no onboarding.
{
"id": "wdr_0192a3b40c6d7e8f9a0b1c2d3e4f5a6c",
"external_id": "wdr_0192a3b4-5c6d-7e8f-9a0b-1c2d3e4f5a6c",
"status": "returned",
"version": 6,
"amount": { "amount": "5000", "currency": "BRL" },
"fee": null,
"method": "pix",
"player_ref": "0192a3b4-0000-7000-8000-000000000001",
"decision": {
"mode": "automatic",
"reasons": [],
"ruleset_version": 7,
"decided_by": [],
"decided_at": "2026-10-18T15:00:01Z"
},
"psp_reference": "E00000000202610181500AbCdEfGhIjKl",
"failure_code": null,
"created_at": "2026-10-18T15:00:00Z",
"updated_at": "2026-10-19T10:00:00Z",
"paid_at": "2026-10-18T15:00:09Z",
"return": {
"reason_code": "unspecified",
"returned_amount": { "amount": "5000", "currency": "BRL" },
"returned_at": "2026-10-19T10:00:00Z"
}
}
Exemplos¶
Linha do tempo de um saque automático pago:
| Instante (UTC) | Evento | status |
Caixa da operação |
|---|---|---|---|
| 15:00:00 | POST /v1/withdrawals |
approved (resposta 201) |
Sem mudança |
| 15:00:02 | Envio ao PSP | approved |
pending_out sobe o valor |
| 15:00:03 | Primeiro retorno do PSP | processing |
Sem mudança |
| 15:00:09 | PIX liquidado | paid |
available e pending_out caem o valor |
Erros e casos de borda¶
- Operação Real sem PSP de saque. O Mercado Pago só faz depósito. Se a operação Real não tiver um PSP de saque configurado, o Dracma não encontra por onde pagar: o envio é recusado antes de sair, o saque fica
approvede o Dracma alerta. Confirme no onboarding que a sua operação tem PSP de saque (veja PSPs). - Sem failover. Uma operação tem um PSP de saque por vez. Se ele ficar indisponível, os saques esperam; o Dracma não troca de PSP no meio do caminho.
returnede o seu livro. Veja Política de exceções de dinheiro: a recomendação é abrir um caso, não recreditar sozinho.