Começando
Autenticação
A API usa o fluxo OAuth2
client_credentials. Troque seu client_id e client_secret por um access token de curta duração e envie-o no header Authorization de todas as outras chamadas.POST
/api/v1/auth/tokenEnviando as credenciais
As credenciais podem ser enviadas de duas formas (escolha uma):
- JSON no corpo —
{ "client_id": "...", "client_secret": "..." }. - HTTP Basic — header
Authorization: Basic base64(client_id:client_secret). Quando o header Basic está presente, o corpo é ignorado.
Parâmetros do corpo
Basic Auth
curl -X POST "https://reloadbank.app/api/v1/auth/token" \
-u "$CLIENT_ID:$CLIENT_SECRET"Usando o access token
O token retornado é válido por 3600 segundos (1 hora), informado em expires_in. Envie-o como Bearer token:
Authorization: Bearer <access_token>Boa prática
Armazene o token em cache e renove-o alguns minutos antes de expirar (ou ao receber um401 invalid_token). Não gere um token novo a cada requisição.Restrições de segurança
- Lista de IPs permitidos — cada credencial pode ter uma allowlist de IPs (configurada no dashboard). Requisições de outros IPs retornam
403 ip_not_allowed. Lista vazia = qualquer IP. - Credenciais revogadas — ao revogar uma credencial, os tokens já emitidos com ela deixam de funcionar imediatamente (
401 invalid_tokencom a mensagem “Credencial revogada”) e novos tokens não podem ser gerados (401 invalid_client). - Conta bloqueada — retorna
403 account_blockedtanto na emissão quanto no uso do token. - Verificação (KYC) não aprovada — retorna
403 kyc_requiredna emissão e no uso do token. Se a verificação deixar de estar aprovada, os tokens já emitidos param de funcionar na hora. - Força bruta — a emissão de tokens é limitada a 30 tentativas por minuto por IP (
429 rate_limited).
Requisição
curl -X POST "https://reloadbank.app/api/v1/auth/token" \
-H "Content-Type: application/json" \
-d '{
"client_id": "SEU_CLIENT_ID",
"client_secret": "SEU_CLIENT_SECRET"
}'Resposta
{
"access_token": "eyJhbGciOiJIUzI1NiJ9.eyJjaWQiOiJjbTJyN3EwMDAwMWxrMDgiLCJzdWIiOiJjbTJyNnowMDAwMCIsImF1ZCI6InJlbG9hZGJhbms6YXBpIn0.Qm8xZ2V4YW1wbGVfc2lnbmF0dXJl",
"token_type": "Bearer",
"expires_in": 3600
}