Para realizar solicitações à API de conciliação, é obrigatório gerar um token de acesso que deve ser enviado no header Authorization de cada requisição.
Como obter o token de acesso
Após receber as credenciais via webhook (consentimento do lojista), siga os passos abaixo:
- Decripte a senha recebida no webhook utilizando o algoritmo AES CBC PKCS7.
- Realize uma requisição POST ao endpoint de autenticação, conforme exemplo:
curl --location 'https://payments.stone.com.br/auth/realms/payments/oauth/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'host: payments.stone.com.br' \
--data-urlencode 'username={given_username}' \
--data-urlencode 'password={given_password}' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'client_id={given_client_id}' \
--data-urlencode 'client_secret={given_client_secret}'- username: Usuário recebido no webhook.
- password: Senha decriptada do payload do webhook.
- client_id e client_secret: Credenciais do parceiro (conciliadora).
Resposta
O endpoint retorna um JWT (Json Web Token) em casos de sucesso no payload de resposta seguindo contrato:
{
"id_token": "<token>",
"expires_in": 86400,
"token_type": "Bearer"
}Em casos de erro na solicitação, a resposta seguirá padrão:
{
"message": "<message>",
"errors": [
{
"field": "<username>",
"reason": "<reason>"
}
]
}OBS: o campo errors é opcional.
O token deverá ser incluído nas próximas requisições via header conforme:
Authorization: Bearer <token>
Atenção: O token é válido por tempo limitado (24 horas). Sempre utilize um token válido para realizar as consultas na API. Recomenda-se realizar o cache baseado no tempo de expiração.

