---
title: "Renovar token — BeeFood API"
description: "POST /v1/oauth/token com grantType refresh_token: renovação do par de tokens sem usar o clientSecret."
url: "https://developer.beefood.com.br/docs/oauth/renovar-tokens"
group: "OAuth"
lang: "pt"
---
# Renovar token

`POST /v1/oauth/token`

- Produção: `https://api.beefood.app/v1/oauth/token`
- Sandbox: `https://api-sandbox.beefood.app/v1/oauth/token`

Renova o par de tokens da credencial.

## Body

| Campo | Tipo | Obrigatório | Descrição |
| --- | --- | --- | --- |
| grantType | string | sim | Define o contrato do body. Valor: `"refresh_token"`. |
| clientId | uuid | sim | Identificador público da credencial. |
| refreshToken | string (jwt) | sim | Refresh token atual da integração. |

## Resposta de sucesso

```json
{
  "accessToken": "<jwt>",
  "refreshToken": "<jwt>",
  "expiresAt": "2026-08-18T16:00:00.000Z"
}
```

## Comportamento

A cada renovação a API gera um novo par accessToken + refreshToken. O refreshToken anterior deixa de valer imediatamente.

## Erros

| Status | Mensagem |
| --- | --- |
| 400 | refreshToken is required |
| 400 | grantType must be client_credentials or refresh_token |
| 400 | clientId is required |
| 401 | Invalid client credentials |

