POST /oauth/token
Troque as 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 gestor de conta DokStamp.
Pedido
POST /oauth/token
Content-Type: application/x-www-form-urlencoded
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|
grant_type | string | Sim | Deve ser client_credentials |
client_id | string | Sim | ID de cliente da sua integração |
client_secret | string | Sim | Segredo 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..."
}
| Campo | Tipo | Descrição |
|---|
access_token | string | Bearer token — inclua no header Authorization de todos os pedidos à API |
expires_in | integer | Validade em segundos (43200 = 12 horas) |
token_type | string | Sempre "Bearer" |
Erro 401
{
"error": "invalid_client",
"error_description": "Client authentication failed",
"message": "Client authentication failed"
}
Utilizar o token
Adicione o token a cada pedido 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 existe refresh token — solicite um novo token quando o atual expirar. Padrão recomendado: guarde 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, contacte o seu gestor de conta DokStamp para proceder à rotação das credenciais. Será emitido um novo par client_id / client_secret e todos os tokens existentes para as credenciais antigas serão imediatamente revogados.