Gerando seu token de acesso

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:

  1. Decripte a senha recebida no webhook utilizando o algoritmo AES CBC PKCS7.
  2. 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.