Buscar en la documentación
ctrl+4K
Módulos
Authentication
Merchant
Catalog
Order
Events
Logistics
Shipping
Review
Financial
Soluciones
Use este flujo cuando la aplicación:
  • Es pública y accesible por internet
  • Necesita autorización explícita del propietario de la tienda
Los tokens no pueden exceder 8.000 caracteres. Garantiza que tu integración proporcione almacenamiento adecuado para estos tokens.
  1. El propietario de la tienda se autentica en el Portal del Socio
  2. El propietario autoriza tu aplicación a acceder a recursos específicos de la tienda
  3. Tu aplicación recibe el permiso para interactuar con los datos de la tienda autorizada
Este método garantiza que solo aplicaciones aprobadas por el propietario accedan a los recursos de la tienda.
Consulta el paso a paso de todo el proceso de código de autorización y token de acceso:
  1. Obtén un código de vínculoHaz una petición a la API de Autenticación. Este código funciona como identificador temporal de la aplicación.
  2. Almacena el código verificadorLa API retorna un código verificador junto con el código de vínculo. Almacena este código con seguridad — lo necesitarás para obtener el token de acceso.
  3. Comparte el código con el usuario Muestra el código de vínculo y la URL del Portal del Socio al usuario. El propietario de la tienda debe insertar este código en el Portal del Socio para autorizar la aplicación.
  4. Recolecta el código de autorización Después de la autorización en el Portal, el propietario recibe un código de autorización que debe proporcionar a tu aplicación.
  5. Solicita el token de acceso Envía el código de autorización (proporcionado por el usuario) y el código verificador (obtenido en el paso 2) a la API de Autenticación.
  6. Almacena los tokens recibidos La API proporciona un token de acceso y un refresh token. Almacénalos con seguridad.
  7. Usa el token en las peticiones Incluye el token de acceso en las peticiones a las APIs de iFood usando autenticación HTTP del tipo Bearer.
  8. Renueva el token antes de la expiraciónActualiza el token llamando la API de token con:
  • grantType: refresh_token
  • Credenciales: clientId y clientSecret
  • El refresh token obtenido en el paso 6
Revocación de acceso: Solo el usuario que autorizó la aplicación puede revocar el acceso.

POST /oauth/userCode

Descripción Solicita un código de usuario para vincular aplicaciones en el Portal del Socio y otorgar permisos para acceder a recursos del comerciante. Este código es esencial para iniciar el flujo OAuth de autorización.cURL de ejemplo
curl -X POST "https://merchant-api.ifood.com.br/authentication/v1.0/oauth/userCode" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "clientId=YOUR_CLIENT_ID"
Campos retornados — Éxito (200)
CampoDescripciónEjemplo
userCodeCódigo de usuario que vincula la aplicación al Portal del Socio. Muestra al usuario para que lo inserte en el Portal del Socio.HJLX-LPSQ
authorizationCodeVerifierCódigo de verificación adicional a usar al solicitar el token de acceso. Mantén este código hasta que se emita el token de acceso.test123
verificationUrlURL del Portal del Socio que permite a los usuarios insertar el código de usuario y otorgar acceso a la aplicación. Muestra al usuario.https://portal.ifood.com.br/apps/code
verificationUrlCompleteURL de verificación completa con el código de usuario como parámetro de consulta. Útil para entornos que permiten hacer clic y abrir un navegador.https://portal.ifood.com.br/apps/code?c=HJLX-LPSQ
expiresInExpiración del código de usuario en segundos. El código es válido por 10 minutos.600

POST /oauth/token

Descripción Solicita un nuevo token de acceso para acceder a recursos de la API. Por defecto, el token expira en 6 horas. Para aplicaciones distribuidas, admite dos tipos de grant: authorization_code y refresh_token.cURL de ejemplo — Authorization Code
curl -X POST "https://merchant-api.ifood.com.br/authentication/v1.0/oauth/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grantType=authorization_code&clientId=YOUR_CLIENT_ID&clientSecret=YOUR_CLIENT_SECRET&authorizationCode=AUTH_CODE&authorizationCodeVerifier=CODE_VERIFIER"
cURL de ejemplo — Refresh Token
curl -X POST "https://merchant-api.ifood.com.br/authentication/v1.0/oauth/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grantType=refresh_token&clientId=YOUR_CLIENT_ID&clientSecret=YOUR_CLIENT_SECRET&refreshToken=REFRESH_TOKEN"
Parámetros de solicitud
ParámetroRequeridoDescripción
grantTypeTipo de grant OAuth. Para aplicaciones distribuidas: authorization_code, refresh_token
clientIdIdentificador del cliente
clientSecretSecreto del cliente
authorizationCodeSolo para authorization_codeCódigo de autorización retornado después de la autorización de la aplicación
authorizationCodeVerifierSolo para authorization_codeCódigo verificador retornado en la solicitud de código de usuario. La solicitud fallará si este código no está presente o no coincide con el retornado.
refreshTokenSolo para refresh_tokenToken de refresh retornado después de solicitar un token de acceso. Disponible solo en aplicaciones distribuidas.
Campos retornados — Éxito (200)
CampoDescripciónEjemplo
accessTokenJWT que representa el token de accesoeyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJzdWIiOiJlNjkwYjczZC01OTI4LTRkMTctODE2ZC01Y2Y5YjgyZTJhOWUiLCJhdWQiOiJvcmRlciIsInVzZXJfbmFtZSI6ImU2OTBiNzNkLTU5MjgtNGQxNy04MTZkLTVjZjliODJlMmE5ZSIsInNjb3BlIjpbIm9yZGVyIl0sInRlbmFudElkIjoiNmFjNjkxZDEtMjZjNi00ZmVkLWJmN2ItOTEwMzJkNTM4NWZkIiwiaXNzIjoiaUZvb2QiLCJtZXJjaGFudF9zY29wZSI6WyI2YjQ4N2EyNy1jNGZjLTRmMjYtYjA1ZS0zOTY3YzIzMzE4ODI6b3JkZXIiXSwiZXhwIjoxNjEyMjMwNDU5LCJpYXQiOjE2MTIyMDg4NTksIm1lcmNoYW50X3Njb3BlZCI6dHJ1ZSwiY2xpZW50X2lkIjoiZTY5MGI3M2QtNTkyOC00ZDE3LTgxNmQtNWNmOWI4MmUyYTllIiwiYXV0aG9yaXRpZXMiOlsiUk9MRV9DTElFTlQiXX0.lYqdxjHoOksq8COqJ-VZxzd524MhVzH7hkMfp5zGTpqzp26z5XJwOPHAy7L6oyagUgRfxntKeu0Up_JHgJ-Vr0h5Y9wY4XHcK1yxpFXFB5f5ilGDB0hVN3UGa4GBqeVpCbAPQUl4VhbF2byeL9PuO4TfTZmoWyuec9-xEH_nbHg
typeTipo del token. Actualmente, el único tipo soportado es bearerbearer
expiresInTiempo de expiración del token en segundos21600
Campos retornados — Error Unauthorized (401)
CampoDescripciónEjemplo
error.codeCódigo de error para solicitudes no autorizadasUnauthorized
error.messageDescripción de error legibleBad credentials
Campos retornados — Error Internal Server (500)
CampoDescripciónEjemplo
error.codeCódigo de error para errores internosInternalServerError
error.messageDescripción de error legibleUnexpected error
El video abajo demuestra la implementación del flujo de credencial de aplicación para aplicaciones distribuidas:
¿Esta página fue útil?
Evalúa tu experiencia en el nuevo portal de desarrolladores: