O sandbox usa a mesma URL e as mesmas rotas da produção. O que muda é a chave: com uw_test_ as cobranças são de teste, não chamam o provedor de pagamento e nunca movimentam saldo.
- Criar: as rotas
POST /payments/{metodo}devolvem uma cobrança de teste pendente. - Simular:
POST /developer/payments/{ref}/simulatemuda parapaid,failed,expiredoucancellede dispara os webhooks com"livemode": false. - Saldo:
GET /developer/balancedevolve zeros no sandbox. - Estornos pela API só existem em produção (
422 sandbox_refund_unsupported). - A conta precisa estar aprovada também para o sandbox.
- Webhooks de sandbox vão para a URL de sandbox cadastrada (ou para a de produção, se não houver).
POST /developer/payments/{ref}/simulate
Simular status (sandbox)
Muda um pagamento de teste pendente para paid, failed, expired ou cancelled e dispara os webhooks correspondentes. Só funciona com chave uw_test_.
| Parâmetro | Onde | Tipo | Descrição |
|---|---|---|---|
ref obrigatório | caminho | string | id, order_id ou pt_... |
| Campo | Tipo | Descrição |
|---|---|---|
status obrigatório | string | paid, failed, expired ou cancelled. |
curl -X POST https://api.uneway.pro/api/v1/developer/payments/pedido-2001/simulate \
-H "Authorization: Bearer uw_test_SUA_CHAVE" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"status": "paid"}'Resposta (exemplo)
{
"success": true,
"data": {
"object": "payment",
"id": 1842,
"order_id": "pedido-2001",
"status": "paid",
"method": "europix",
"amount": "49.90",
"fee_amount": "1.50",
"net_amount": "48.40",
"currency": "EUR",
"description": "Pedido 2001",
"customer": {
"name": "Ana Souza",
"email": "ana@exemplo.com"
},
"refunded": false,
"refund_amount": null,
"paid_at": "2026-10-02T14:03:11+00:00",
"expired_at": null,
"refunded_at": null,
"created_at": "2026-10-02T14:01:52+00:00",
"metadata": {},
"livemode": false,
"public_token": "pt_8bZ2mQ..."
}
}Erros específicos: live_simulation_forbidden, invalid_status, payment_not_found