Desenvolvedores

Integre em uma tarde

API REST com JSON, chaves de teste e produção, idempotência e webhooks assinados.

1. Autenticação

Gere as chaves no painel em Desenvolvedores → Chaves de API. Chaves de teste começam com uw_test_ e de produção com uw_live_. Envie no header Authorization: Bearer <chave> (ou X-API-Key).

2. URL base

https://api.uneway.pro/api/v1. Use o header Idempotency-Key nas criações: repetir a mesma chave devolve o mesmo resultado, sem cobrar duas vezes.

Criar uma cobrança

Um endpoint por método: /payments/europix (Pix), /payments/mbway e /payments/multibanco.

curl -X POST https://api.uneway.pro/api/v1/payments/europix \
  -H "Authorization: Bearer uw_test_..." \
  -H "Idempotency-Key: pedido-2001" \
  -H "Content-Type: application/json" \
  -d '{"order_id":"pedido-2001","amount":49.90,
       "customer_email":"cliente@exemplo.com"}'

Os campos aceitos por método (telefone no MB WAY, dados do pagador no Pix etc.) estão na documentação da API.

3. Webhooks

Cadastre a URL no painel. Enviamos eventos de pagamento, estorno, disputa e saque com os headers X-Uneway-Event, X-Uneway-Delivery-Id e X-Uneway-Signature. Falhas são reenviadas com espera crescente (até 6 tentativas) e o histórico fica no painel.

// Node.js: confira a assinatura
// X-Uneway-Signature: t=<unix>,v1=<hex>
const [t, v1] = header.split(',').map(p => p.split('=')[1]);
const expected = crypto
  .createHmac('sha256', WEBHOOK_SECRET)
  .update(`${t}.${rawBody}`)
  .digest('hex');
const ok = v1?.length === expected.length
  && Math.abs(Date.now() / 1000 - Number(t)) < 300
  && crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(v1));

Sandbox

Simule pagamento aprovado, falho ou expirado em cobranças de teste, sem dinheiro real.

Logs de API

Veja cada requisição feita com as suas chaves, com status e tempo de resposta, no painel.

Sem código

Prefere não integrar agora? Use links de pagamento e o checkout hospedado com a sua marca.