Em sandbox entra a marca de teste no nome:
withdrawal.test.requested,
withdrawal.test.completed, e assim por diante.
Pagar um código copia e cola chega nas
mesmas URLs, mas com nome próprio:
pix_payment.completed e pix_payment.failed. Esses
dois trazem paymentId no lugar de withdrawalId, e o method é pix_payment. O resto
dos campos é igual ao desta página. Pagamento que você faz não é saque, e misturar os
dois na mesma família quebraria a sua conciliação de saques.Campos
string
required
O evento da tabela acima, ou
pix_payment.completed / pix_payment.failed quando é
pagamento de código.string
required
Identificador do saque. Em
pix_payment.* o campo se chama paymentId, e é o mesmo
payment.id que o pagamento devolveu.string
required
Código legível da operação:
SAQ-A1B2C3 no saque comum, TURBO-... no PIX enviado na
hora e PAY-... no pagamento de código. É por ele que o suporte localiza a operação.number
required
Valor em reais, decimal.
string
required
pix, pix_turbo, ltc, usd ou pix_payment (pagamento de código copia e cola).string
required
Destino. Chave PIX, endereço LTC ou endereço USDT, conforme o método. No pagamento de
código, a chave que o código apontava.
string
required
pendente, concluido, negado ou falhou.string
Só quando não deu certo: o motivo, em texto pronto pra mostrar. Não vem em
concluido.string
O E2E do PIX, o mesmo número que aparece no extrato de quem recebeu. É o que resolve
contestação com o outro banco. Ausente quando ainda não veio ou quando o método não é
PIX.
string
Nome de quem recebeu, como o banco confirmou.
string
CPF ou CNPJ de quem recebeu, inteiro, pra você amarrar o saque a um cadastro seu.
Nome sozinho não fecha conciliação, porque nome se repete. Pode vir mascarado quando é
assim que a informação chega. É dado pessoal de terceiro: receba em HTTPS e guarde só o
que precisar.
string
URL do comprovante desenhado, em imagem, o mesmo papel que o painel mostra. Serve pra
repassar ao seu cliente ou anexar num chamado: dá pra embutir direto num
<img>. É
imutável, então pode cachear. O campo some quando não foi possível gerar, então trate a
ausência como normal.string
Presente em
withdrawal.requested.string
Presente nos eventos de desfecho.
Repare que o
status aqui vem em português (pendente, concluido, negado), enquanto
as cobranças usam inglês (pending, paid). São domínios diferentes da API e cada um
manteve o vocabulário da sua área.Um uso que compensa
Saque que não sai devolve o valor pro saldo, mas ninguém fica olhando o painel esperando isso. Um alerta emwithdrawal.denied e withdrawal.failed costuma ser a diferença entre
resolver no mesmo dia e descobrir na semana seguinte:
X-Webhook-Signature,
idempotência em X-Webhook-Id e reentrega com backoff.
