4. Fluxo Password

O método torna possível autenticar suas solicitações para a Web API da Dotz assumindo os dados de um usuário. Este fluxo é descrito na RFC-6749.

🚧

Possibilidade de Uso

Esse fluxo somente é possível ser utilizado por aplicações aprovadas com essa permissão, que não é habilitada por padrão.

1. Sua aplicação requisita a Autorização

A requisição é enviada para /connect/token do serviço de Accounts:

curl -X POST https://accounts.dotzlabs.com/accounts/v1/connect/token -H "authorization: Basic NlhM...RA==" -d "grant_type=password&username=00000000000&password=ABCDEFD"

Essa requisição deve incluir os parâmetros no corpo da requisição:

Parâmetro do corpo da requisiçãoValor
grant_typeRequerido. Definir como 'password'.
usernameIdentificador do usuário na plataforma. Pode ser CPF, CNPJ ou e-mail.
passwordSenha do usuário na plataforma. Deve ser codificado em Base64.

O header da requisição POST deve conter os seguintes parâmetros:

Parâmetro do HeaderValor
AuthorizationRequerido. Seqüência codificada em Base 64 que contém o client id e client secret da aplicação cliente. O campo deve ter o formato: Authorization: Basic

Exemplo de requisição com resposta:

curl -X POST https://accounts.dotzlabs.com/accounts/v1/connect/token -H "authorization: Basic Nlh...RUA==" -d "grant_type=password&username=00000000000&password=ABCDEFG"
{
  "access_token": "eyJhb...J1K_w",
  "expires_in": 3600,
  "token_type": "Bearer",
  "refresh_token": "717c4...683"
}

2. Use o access token para acessar a Web API da Dotz

Com access token obtido no passo anterior, é possível realizar chamadas para as Web APIs que precisam dos dados do usuário, como por exemplo, a operação Obter Saldo, por exemplo:

curl -X GET --header "Authorization: Bearer eyJ...Nhhw" "https://api.dotzlabs.com/wallet/v1/balance"
{
  "available": 2350,
  "pending": 1000,
  "expiring": 350,
  "nextExpirationDate": "2017-06-13T17:45:29.352Z"
}

3. Atualizando o Access Token

Para atualizar o access token, uma requisição é enviada para https://accounts.dotzlabs.com/accounts/v1/connect/token do serviço de Accounts:

curl -X POST https://accounts.dotzlabs.com/accounts/v1/connect/token -H 'authorization: Basic NlhM...RUA==' -d 'grant_type=refresh_token&refresh_token=a97b29...0c48'

Essa requisição deve incluir os parâmetros no corpo da requisição:

Parâmetro do corpo da requisiçãoValor
grant_typeRequerido. Definir como 'refresh_token'.
refresh_tokenRequerido. Refresh token recebido na resposta do passo 2.

O header da requisição POST deve conter os seguintes parâmetros:

Parâmetro do HeaderValor
AuthorizationRequerido. Seqüência codificada em Base 64 que contém o client id e a client secret da aplicação cliente. O campo deve ter o formato: Authorization: Basic

Por exemplo:

curl -X POST http://uat-accounts.dotzlabs.com/connect/token -H 'authorization: Basic NlhM...RUA==' -d 'grant_type=refresh_token&refresh_token=a97b29...0c48'