Pular para o conteúdo principal

POST /oauth/token

Troque suas credenciais de integração (client_id + client_secret) por um Bearer token de curta duração. Este é o método de autenticação recomendado para todas as integrações programáticas.
Este endpoint não requer autenticação prévia. As credenciais são provisionadas pelo seu gerente de conta DokStamp.

Requisição

POST /oauth/token
Content-Type: application/x-www-form-urlencoded
ParâmetroTipoObrigatórioDescrição
grant_typestringSimDeve ser client_credentials
client_idstringSimID de cliente da sua integração
client_secretstringSimSegredo de cliente da sua integração
curl -X POST https://api.dokstamp.com/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"

Resposta 200

{
  "token_type": "Bearer",
  "expires_in": 43200,
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..."
}
CampoTipoDescrição
access_tokenstringBearer token — inclua no header Authorization de todas as requisições à API
expires_inintegerValidade em segundos (43200 = 12 horas)
token_typestringSempre "Bearer"

Erro 401

{
  "error": "invalid_client",
  "error_description": "Client authentication failed",
  "message": "Client authentication failed"
}

Usando o token

Adicione o token a cada requisição subsequente:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...
Accept: application/json
X-Tenant: your-tenant-identifier

Expiração e renovação do token

Os tokens de serviço expiram após 12 horas. Não há refresh token — solicite um novo token quando o atual expirar. Padrão recomendado: armazene o token em cache e renove-o proativamente ~60 segundos antes da expiração.
let token = null;
let expiresAt = null;

async function getToken() {
  if (token && Date.now() < expiresAt - 60_000) return token;

  const res = await fetch('https://api.dokstamp.com/oauth/token', {
    method: 'POST',
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    body: new URLSearchParams({
      grant_type: 'client_credentials',
      client_id: process.env.DOKSTAMP_CLIENT_ID,
      client_secret: process.env.DOKSTAMP_CLIENT_SECRET,
    }),
  });

  const data = await res.json();
  token = data.access_token;
  expiresAt = Date.now() + data.expires_in * 1000;
  return token;
}

Rotação de credenciais

Se um client_secret for comprometido, entre em contato com seu gerente de conta DokStamp para rotacionar as credenciais. Um novo par client_id / client_secret será emitido e todos os tokens existentes para as credenciais antigas serão imediatamente revogados.