Skip to main content

Como usar

Adicione o header X-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.
A maioria dos cenários controla o webhook assíncrono: a resposta HTTP é 201 Created com status: PENDING, e o resultado final chega no webhook. As exceções são timeout e service_unavailable, que falham na resposta HTTP síncrona.

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

Retornam 201 PENDING de forma síncrona; o estado final chega via webhook em segundos.
Os eventos *.returned são entregues no webhook do tipo refund_in/refund_out (ou all), não no cash_in/cash_out. Para testar os cenários returned e bad_clabe, registre também esses webhooks — veja tipos de webhook.

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ário success em um cash-out — o webhook cash_out recebe:

Exemplo: webhook de rejeição

Cenário insufficient_funds — o webhook cash_out recebe:
Em 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-Scenario funciona exclusivamente em contas sandbox.
  • Contas de produção que enviem o header recebem:

Boas práticas

  1. Teste todos os cenários antes de ir ao ar — implemente o tratamento dos quatro status (LIQUIDATED, PENDING, REJECTED, RETURNED).
  2. Roteie pelo campo event*.settled, *.rejected e *.returned exigem ações diferentes no seu sistema.
  3. Teste com delay — use pending_long para verificar que seu sistema lida bem com liquidação lenta.
  4. Idempotência — deduplique pelo header x-event-id; o mesmo evento pode ser reentregue.