# Solicitar um token de acesso

Os tokens de acesso são usados na autenticação baseada em token para conceder a aplicativos acesso a APIs em nome de um usuário. Depois que um usuário faz login e autoriza o acesso, o aplicativo recebe um token de acesso. Esse token funciona como uma credencial que o aplicativo usa para se identificar e identificar o usuário autorizado ao chamar a API de destino.

Você precisa incluir um token de acesso válido no cabeçalho da requisição ao enviar requisições para endpoints de API protegidos.

Para obter um token de acesso, você precisa do seu client ID e client secret. Saiba como gerar um client ID e um client secret na [referência da API do Payments Direct](/pt-br/products/payments-direct-2/api-docs/payments-direct-api/payments-direct-2-api).

### Formato da requisição

Para obter um token de autenticação para o ambiente **UAT**, envie uma requisição `POST` para a seguinte URL:

```plaintext
https://api.test.ripple.com/v2/oauth/token
```

## Requisição de autenticação

Para obter um token de acesso, use a operação authenticate na [referência da API do Payments Direct](/pt-br/products/payments-direct-2/api-docs/payments-direct-api/payments-direct-2-api).

Inclua `audience` e `grant_type` conforme o exemplo abaixo.

O valor do campo `audience` é baseado na sintaxe [URN](https://en.wikipedia.org/wiki/Uniform_Resource_Name).

**Formato**: `urn:ripplexcurrent-ENVIRONMENT_STRING:YOUR_TENANT_ID`

**Exemplo**: `urn:ripplexcurrent-uat:YOUR_TENANT_ID`

```bash
curl -X POST 'https://api.test.ripple.com/v2/oauth/token' \
  --header 'Content-Type: application/json' \
  --data '{
    "client_id": "{YOUR_CLIENT_ID}",
    "client_secret": "{YOUR_CLIENT_SECRET}",
    "audience": "urn:ripplexcurrent-uat:{YOUR_TENANT_ID}",
    "grant_type": "client_credentials"
  }'
```

## Resposta de autenticação

Armazene o `access_token` para usar em todas as demais operações da API.

```json
{
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJ",
  "scope": "identities:create identities:read identities:write quote_collections:write payments:accept payments:read",
  "expires_in": 3600,
  "token_type": "Bearer"
}
```

## Erros

Se uma requisição de token for rejeitada, o corpo da resposta contém um `error` e um `error_description`. Um `403` com `error: unauthorized_client` significa que o cliente não está autorizado a solicitar um token; um `403` com `error: access_denied` significa que o serviço não está habilitado para o domínio solicitado. Trate esses casos pelo código de status HTTP, e não pela string `error`, e não repita uma requisição `403` idêntica. Para ver a lista completa de respostas de autenticação, consulte a [referência da API do Payments Direct](/pt-br/products/payments-direct-2/api-docs/payments-direct-api/payments-direct-2-api).