Como usar
Adicione o headerX-Sandbox-Scenario: <cenário> a qualquer chamada de cash-in ou cash-out. Sem o header, o sandbox usa o cenário success por padrão.
Cenários disponíveis
Os valores canônicos de cenário são:success, pending_long, rejected, returned, insufficient_funds, bad_clabe, timeout, service_unavailable.
Cenários de resultado assíncrono
Retornam201 PENDING de forma síncrona; o estado final chega via webhook em segundos.
Cenários de erro síncrono
Falham na própria resposta HTTP — nenhum webhook é enviado.Restrições de cash-in:
insufficient_funds e bad_clabe não se aplicam a cash-in (não há saldo a debitar, e a CLABE de depósito é gerada pelo sistema). Enviar qualquer um deles em um cash-in retorna 400 com código SCENARIO_NOT_APPLICABLE.Exemplo: webhook de sucesso
Cenáriosuccess em um cash-out — o webhook cash_out recebe:
Exemplo: webhook de rejeição
Cenárioinsufficient_funds — o webhook cash_out recebe:
status: REJECTED, os campos de comprovante (reference, voucher) vêm null — a rede SPEI nunca confirmou a transação. O formato completo do payload está em Visão Geral de Webhooks.
Restrições
- O header
X-Sandbox-Scenariofunciona exclusivamente em contas sandbox. - Contas de produção que enviem o header recebem:
Boas práticas
- Teste todos os cenários antes de ir ao ar — implemente o tratamento dos quatro status (
LIQUIDATED,PENDING,REJECTED,RETURNED). - Roteie pelo campo
event—*.settled,*.rejectede*.returnedexigem ações diferentes no seu sistema. - Teste com delay — use
pending_longpara verificar que seu sistema lida bem com liquidação lenta. - Idempotência — deduplique pelo header
x-event-id; o mesmo evento pode ser reentregue.