logo
logo
As APIs do iFood utilizam autenticação OAuth 2.0 com tokens Bearer. Para acessar os recursos da API:
  1. Obtenha um token de acesso para seu aplicativo
  2. Inclua o token no cabeçalho de Authorization de cada requisição
  3. Use o formato: Authorization: Bearer YOUR_ACCESS_TOKEN
curl --location 'https://merchant-api.ifood.com.br/authentication/v1.0/oauth/token' \
--header 'accept: application/json' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grantType=client_credentials, authorization_code, OR refresh_token' \
--data-urlencode 'clientId=YOUR_CLIENT_ID' \
--data-urlencode 'clientSecret=YOUR_CLIENT_SECRET' \
--data-urlencode 'authorizationCode=It is only required when using the authorization code flow' \
--data-urlencode 'authorizationCodeVerifier=It is only required when using the authorization code flow' \
--data-urlencode 'refreshToken=It is only required when using the refresh_token grantType'
  • Use apenas HTTPS com TLS 1.2 ou superior
  • Requisições HTTP serão rejeitadas
  • Requisições sem autenticação serão rejeitadas

Obter token de acesso

O processo para obter um token de acesso varia dependendo do tipo do seu aplicativo (centralizado ou distribuído). Siga nossos guias passo a passo para implementar o fluxo mais adequado para sua aplicação:
Para mais informações sobre aplicativos centralizados ou distribuídos consulte aqui nossa documentação.

Atualização de tokens após novas permissões

Solicite um novo access_token quando seu aplicativo rececer uma nova permissão de algum merchant. Este token incluíra as permissões para todos os merchants autorizados.
Para ter certeza que as permissões de acesso ao novo merchant estão validas, siga os seguintes passos:
  1. Certifique-se que seu aplicativo tenha permissão no módulo merchant
  2. Consulte o endpoint de listagem de merchants
  3. Verifique se o novo merchant aparece na lista retornada
Essa verificação confirma que seu access_token tem as permissões corretas para o merchant recém adicionado. Sempre que o seu aplicativo recebe uma nova permissão de algum merchant, é necessário solicitar um novo token para que o seu novo access_token tenha permissão nesse merchant recém adicionado.
Quando uma nova permissão é autorizada/revogada, pode demorar até 10 minutos para que esse dado seja propagado para toda a plataforma. Caso o novo merchant ainda não seja retornado na listagem de merchants sugerida acima, aguarde 10 minutos e gere um novo access_token. Estamos trabalhando para reduzir esse tempo e em breve disponibilizaremos essa melhoria.

Gerenciamento de códigos e tokens

Implemente a renovação de tokens baseada no valor expiresIn recebido na resposta da API. Nunca dependa de tempos fixos, pois podemos alterar os períodos de expiração a qualquer momento.A tabela abaixo apresenta os tempos de expiração padrões de cada token e código:
Código/TokenExpiração
Token de acesso3 horas
Refresh token168 horas
Código de vínculo10 minutos
Código de autorização5 minutos
Boas práticas
  • Agende renovações automáticas baseadas no expiresIn recebido com o accessTOken
  • Prepare sue aplicativo para solicitar um novo token quando receber status 401
Os tokens e códigos funcionam apenas durante seu período de validade. Em casos de:
  • Códigos expirados: Solicite novos códigos
  • Token de acesso expirados: Use o refresh token para obter um novo token de acesso
  • Refresh tokens expirados: Solicite um novo token completo via API de Autenticação.
Evite excesso de solicitações. Não gere um novo token antes da expiração do atual. Solicitações excessivas podem resultar em bloqueio do seu aplicativo.
Quando um token de acesso expira, as APIs retornam status 401. Este código indica que você deve renovar o token antes de continuar.