---
title: "Autorizar conexão — BeeFood API"
description: "GET https://beefood.app/oauth/authorize: autorização do lojista via Authorization Code com PKCE."
url: "https://developer.beefood.com.br/docs/oauth/autorizar-conexao"
group: "OAuth"
lang: "pt"
---
# Autorizar conexão

`GET https://beefood.app/oauth/authorize`

Sandbox: https://api-sandbox.beefood.app/oauth/authorize

Solicita a autorização da conta principal do restaurante para a integradora.

Cadastre o aplicativo e redirect URIs HTTPS com a BeeFood. Monte uma URL nova no servidor a cada clique. redirect_uri deve corresponder exatamente ao cadastrado (inclusive barra final e query string).

| Query | Required | Description |
| --- | --- | --- |
| response_type | yes | code |
| client_id | yes | BeeFood-provided integrator identifier |
| redirect_uri | yes | Exactly registered HTTPS callback |
| code_challenge | yes | BASE64URL(SHA256(code_verifier)) |
| code_challenge_method | yes | S256 |
| state | recommended | Fresh random value, verify on callback |

```text
https://beefood.app/oauth/authorize?response_type=code&client_id=Repediu&redirect_uri=https%3A%2F%2Fapp.integradora.com%2Fbeefood%2Fcallback&code_challenge=YZepGGrPF9LWl8rmMFjUP67rBrik9zXyJtrM_mxZ99c&code_challenge_method=S256&state=8f26c4a1d9e34b60a27f15e8c90d6b43
```

O lojista escolhe os escopos no consentimento, não na URL. Apenas a conta principal pode autorizar. Se client_id ou redirect_uri for inválido, a BeeFood mostra erro sem redirecionar.

O lojista entra com o login do beefood.app (conta principal do restaurante). Se já estiver logado, vai direto para a tela de consentimento.

> Recomendado: não fixe o endereço da tela no código. Leia authorization_endpoint em GET https://api.beefood.app/.well-known/oauth-authorization-server (sandbox: https://api-sandbox.beefood.app/.well-known/oauth-authorization-server). Assim sua integração acompanha mudanças futuras sem ajuste.

## Callback

```text
https://app.integradora.com/beefood/callback?code=bf_ac_4af8c92e1b6742d7a0539ec8640f2b1d&state=8f26c4a1d9e34b60a27f15e8c90d6b43&iss=https%3A%2F%2Fapi.beefood.app
```

```text
https://app.integradora.com/beefood/callback?error=access_denied&error_description=The%20user%20denied%20the%20request&state=8f26c4a1d9e34b60a27f15e8c90d6b43
```

Confira state com a sessão antes da troca. O code vale 10 minutos e só pode ser usado uma vez.

O iss do callback continua sendo o da API (https://api.beefood.app), não o do beefood.app.

