Sandbox
Antes de publicar, teste a integração no sandbox. Ele responde com os mesmos caminhos, formatos e mensagens da produção; os Pix, os saldos e os e-mails são fictícios.
https://sandbox.sancopay.com/api/v1Como ele se comporta
- Credenciais
- Gere o
client_ide oclient_secretdo sandbox em Credenciais → Sandbox. A primeira credencial já cria a conta de testes com saldo fictício. - Cobranças
- Nascem
pendingcom um copia e cola fictício e só mudam quando você simula o pagamento. O webhookcharge.*sai como em produção. - Saques
- Saem da carteira fictícia, ficam
processinge viramcompletedsozinhos em poucos segundos, com o webhookpayout.completed. - Recorrência
- A
pay_urlabre uma página com o botão “Simular pagamento”. Os e-mails não são enviados, mas ficam registrados ememails[]. - Webhooks
- Cadastre uma URL pública. As entregas são assinadas com
X-Webhook-Signaturee o histórico fica emGET /sandbox/webhook-deliveries.
Rotas exclusivas do sandbox
Ficam sob a mesma base do sandbox (https://sandbox.sancopay.com/api/v1/sandbox/…) e usam o mesmo Authorization: Bearer <TOKEN>. Estas rotas não existem em produção.
- POST
/sandbox/transactions/{id}/simulateMuda a cobrança.status:paid(credita o valor menos a taxa e envia o webhookcharge.paid),failed,expiredourefunded. Se for o Pix de uma cobrança recorrente, envia também orecurring_charge.paid. - POST
/sandbox/cashouts/{id}/simulateMuda o saque.status:completed,failedourefunded. Falha e estorno devolvem o valor e a taxa. - POST
/sandbox/wallet/top-upCredita saldo fictício (amount, até R$ 10.000 por chamada). - POST
/sandbox/recurring/subscriptions/{id}/issue-nextEmite agora o próximo ciclo da assinatura. - POST
/sandbox/recurring/charges/{id}/overdueFaz a cobrança vencer na hora e envia orecurring_charge.overdue. - GET
/sandbox/webhook-deliveriesÚltimas entregas de webhook, com payload, status HTTP e erro.
Simular o pagamento de uma cobrança
curl -X POST "https://sandbox.sancopay.com/api/v1/sandbox/transactions/4821/simulate" \ -H "Authorization: Bearer <TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "status": "paid" }'A resposta traz a cobrança atualizada e, em webhooks, o desfecho de cada entrega disparada.
Recarregar o saldo fictício
curl -X POST "https://sandbox.sancopay.com/api/v1/sandbox/wallet/top-up" \ -H "Authorization: Bearer <TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "amount": 1000 }'Valores para testar erros
- Saque ou pré-aprovação de R$ 13,13
- Recusa na hora:
422 processor_rejected, sem débito. - Chave Pix terminada em 0000
- Com a validação de chave ativa:
422 key_not_found(recebedor não encontrado).
Saldo insuficiente, idempotência e validações respondem como em produção, sem valor especial.
Antes de ir para produção
- Troque a base URL pela de produção.
- Gere as credenciais de produção em Credenciais (as do sandbox não funcionam em produção, e vice-versa).
- Cadastre o webhook de produção e guarde o novo signing_secret.
- Remova do código as chamadas às rotas /v1/sandbox/*: elas não existem em produção.