Toda chamada leva uma chave de API no header Authorization: Bearer <chave> (ou X-API-Key). A URL base é https://api.uneway.pro/api/v1.
Chaves
uw_test_...: sandbox. Só enxerga e cria pagamentos de teste.uw_live_...: produção. Liberada com a conta aprovada e o e-mail confirmado.
Crie quantas chaves precisar (até 20 ativas) em Desenvolvedores → Chaves de API, uma por integração. Cada chave tem nome, ambiente, escopos e validade opcional. A chave completa só aparece na criação; guardamos apenas o hash SHA-256 e os últimos 4 caracteres.
Escopos
Uma chave sem escopos escolhidos tem acesso completo. Com escopos, cada rota exige o seu; sem ele a resposta é 403 insufficient_scope com details.required_scope.
| Escopo | Permite |
|---|---|
payments:read | Consultar e listar pagamentos |
payments:write | Criar pagamentos (e simular no sandbox) |
refunds:write | Estornar pagamentos |
balance:read | Consultar saldo |
withdrawals:read | Consultar repasses (saques) |
products:read | Consultar e listar produtos |
products:write | Criar, editar e arquivar produtos |
coupons:read | Consultar e listar cupons |
coupons:write | Criar, editar e arquivar cupons |
subscriptions:read | Consultar planos e assinaturas (com cobranças) |
subscriptions:write | Criar e cancelar assinaturas |
Rotação e revogação
Rotacionar cria uma chave igual (nome, ambiente, escopos) e encerra a anterior na hora ou após uma carência de 1, 24 ou 72 horas, para trocar a chave no servidor sem derrubar a integração. Revogar encerra a chave imediatamente. Chave revogada responde 401 api_key_revoked; expirada, 401 api_key_expired.
Boas práticas
- Nunca use a chave no navegador ou em apps móveis: chame a API do seu servidor.
- Guarde a chave em variável de ambiente ou cofre de segredos.
- Acompanhe cada chamada em Desenvolvedores → Logs de API.
GET /developer/me
Chave em uso
Devolve a conta, o ambiente (livemode) e os escopos da chave enviada. Use para testar a autenticação.
curl -X GET https://api.uneway.pro/api/v1/developer/me \ -H "Authorization: Bearer uw_test_SUA_CHAVE"
Resposta (exemplo)
{
"success": true,
"data": {
"object": "api_key",
"id": 7,
"name": "Loja virtual",
"masked_key": "uw_test_••••••••a1B2",
"expires_at": null,
"client_id": 42,
"account_name": "Minha Loja",
"livemode": false,
"scopes": [
"payments:read",
"payments:write"
],
"rate_limit_per_minute": 120
}
}