As APIs do iFood utilizam autenticação OAuth 2.0 com tokens Bearer. Para acessar os recursos da API:- Obtenha um token de acesso para seu aplicativo
- Inclua o token no cabeçalho de Authorization de cada requisição
- 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'
Requisitos de segurança
- 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.Verifique as permissões (opcional)
Para ter certeza que as permissões de acesso ao novo merchant estão validas, siga os seguintes passos: - Certifique-se que seu aplicativo tenha permissão no módulo
merchant
- Consulte o endpoint de listagem de merchants
- 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.Tempo de propagação de novas permissões
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
Tempos de expiração podem mudar
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/Token | Expiração |
---|
Token de acesso | 3 horas |
Refresh token | 168 horas |
Código de vínculo | 10 minutos |
Código de autorização | 5 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
Validade e renovação
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.
Rate Limit
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.Identifique tokens expirados
Quando um token de acesso expira, as APIs retornam status 401
. Este código indica que você deve renovar o token antes de continuar.