Visão geral

Emite um access_token de curta duração para usar nas demais rotas v2.

Requisição

URL: POST https://seu-dominio.com/v2/oauth/token

Opção A — HTTP Basic

Codifique em Base64 o par public_id:secret (mesmos valores da chave de API):
Authorization: Basic {base64(public_id:secret)}
Accept: application/json
No cliente HTTP, “usuário” = public_id, “senha” = secret.

Opção B — JSON (recomendado NavePay)

{
  "grant_type": "client_credentials",
  "public_id": "SEU_PUBLIC_ID",
  "secret": "SEU_SECRET"
}

Opção C — alias OAuth2 no corpo (client_id / client_secret)

{
  "grant_type": "client_credentials",
  "client_id": "SEU_PUBLIC_ID",
  "client_secret": "SEU_SECRET"
}
(client_id / client_secret são os mesmos valores que public_id / secret.)

Resposta 200

{
  "access_token": "string-opaca",
  "token_type": "Bearer",
  "expires_in": 3600
}
O TTL padrão é configurável no backend (veja .env.example).

Erros

HTTPCorpo (exemplo)
401{ "statusCode": 401, "message": "Unauthorized" }
403{ "statusCode": 403, "message": "..." } (KYC, ban, etc.)

Exemplo cURL

curl -s -X POST "https://seu-dominio.com/v2/oauth/token" \
  -u "SEU_PUBLIC_ID:SEU_SECRET" \
  -H "Accept: application/json"