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/token

Enviando 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

CampoTipoObrigatórioDescrição
client_idstringSimIdentificador público da credencial.
client_secretstringSimSegredo da credencial. Nunca exponha no front-end ou em apps móveis.
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 um 401 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_token com a mensagem “Credencial revogada”) e novos tokens não podem ser gerados (401 invalid_client).
  • Conta bloqueada — retorna 403 account_blocked tanto na emissão quanto no uso do token.
  • Verificação (KYC) não aprovada — retorna 403 kyc_required na 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).
StatusCódigoQuando ocorre
400invalid_requestclient_id ou client_secret ausentes.
401invalid_clientCredenciais incorretas ou revogadas.
401unauthorizedHeader Authorization ausente ou fora do formato Bearer.
401invalid_tokenToken inválido, expirado ou de credencial revogada.
403ip_not_allowedIP de origem fora da allowlist da credencial.
403account_blockedConta bloqueada.
403kyc_requiredA verificação de identidade (KYC) da conta não está aprovada.
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
}