Autenticação¶
A API usa token JWT no cabeçalho Authorization. Todo endpoint exige token, com uma única exceção: o próprio POST /v2/token.
Obtendo o token¶
curl -X POST 'https://api-integration.checkmob.com/v2/token' \
-H 'Content-Type: application/json' \
-d '{
"login": "seu_usuario",
"senha": "sua_senha"
}'
{
"token_acesso": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"tipo_token": "Bearer",
"expira_em": "2026-08-18T22:20:06Z"
}
| Campo | O que é |
|---|---|
token_acesso |
O JWT que vai no cabeçalho de todas as outras chamadas |
tipo_token |
Sempre Bearer |
expira_em |
Instante de expiração, em UTC |
Usando o token¶
curl -X POST 'https://api-integration.checkmob.com/v2/clientes/list' \
-H 'Authorization: Bearer SEU_TOKEN' \
-H 'Content-Type: application/json' \
-d '{}'
Boas práticas¶
Não peça um token por requisição
Guarde o token e reaproveite até perto de expira_em. Pedir token a cada chamada desperdiça o seu limite de requisições e é o erro mais comum em integrações novas.
Renove com antecedência. Renovar quando faltarem alguns minutos para expira_em evita a corrida entre "token ainda válido" e "token expirado no meio da chamada".
Trate o 401 como sinal de renovação. Se uma chamada voltar 401 NAO_AUTENTICADO, peça um token novo e repita a requisição uma vez. Se voltar 401 de novo, aí sim é problema de credencial.
Nunca versione a senha no código. Use variável de ambiente ou cofre de segredos.
Credencial inválida¶
Login ou senha errados devolvem sempre a mesma resposta, sem dizer qual dos dois falhou:
{
"tipo": "https://docs.checkmob.com/erros/nao-autenticado",
"titulo": "Não autenticado",
"status": 401,
"codigo": "NAO_AUTENTICADO",
"detalhe": "Login ou senha inválidos.",
"instancia": "/v2/token"
}
Proteção contra tentativas repetidas¶
Sequências de tentativas malsucedidas para o mesmo login são bloqueadas temporariamente:
{
"titulo": "Limite de requisições excedido",
"status": 429,
"codigo": "LIMITE_EXCEDIDO",
"detalhe": "Muitas tentativas de autenticação. Tente novamente em 47 segundos."
}
A resposta traz o cabeçalho Retry-After com os segundos a esperar. Autenticação bem-sucedida zera a contagem — uma integração que guarda o token corretamente nunca esbarra nisso.
Idioma das mensagens¶
O campo codigo nunca muda de idioma — é ele que o seu código deve usar. Já titulo e detalhe respeitam o cabeçalho Accept-Language:
curl -X POST 'https://api-integration.checkmob.com/v2/clientes/list' \
-H 'Authorization: Bearer SEU_TOKEN' \
-H 'Accept-Language: en-US' \
-H 'Content-Type: application/json' \
-d '{}'
Idiomas: pt-BR (padrão) e en-US.