Buscar en la documentación
ctrl+4K
Módulos
Authentication
Merchant
Catalog
Order
Events
Logistics
Shipping
Review
Financial
Soluciones

Cómo funciona

Entienda las etapas, flujo de operaciones y puntos críticos de la API Picking.
La separación de un pedido pasa por diferentes etapas, desde la confirmación hasta la entrega:
  1. Pedido confirmado (CONFIRMED)
    • El cliente finalizó la compra
    • Recibe el pedido y puede comenzar la preparación
    • Próxima acción: Iniciar la separación
  2. Separación iniciada (SEPARATION_STARTED)
    • Notificó a iFood que comenzó a recopilar los artículos
    • Es en este momento que puede editar artículos (agregar, remover, modificar, sustituir)
    • Las ediciones se registran pero aún no se aplican
  3. Separación finalizada (SEPARATION_ENDED)
    • Completó la recopilación de todos los artículos
    • En este momento, todas las ediciones se validan y aplican al pedido
    • Se realizan cálculos de precios y ajustes
  4. Pedido despachado (DISPATCHED)
    • El pedido ha sido liberado para entrega
    • No se permiten ediciones a partir de este punto
  5. Cancelado (CANCELLED)
    • El pedido fue cancelado en cualquier momento
La integración debe seguir esta secuencia obligatoria:
  1. Iniciar separación (POST /startSeparation)
    Pedido cambia de CONFIRMED → SEPARATION_STARTED
  2. Editar ítems (Adicionar, Modificar, Remover, Sustituir)
    Solo durante SEPARATION_STARTED
    Las ediciones se registran pero NO se aplican aún
  3. Finalizar separación (POST /endSeparation)
    Pedido cambia de SEPARATION_STARTED → SEPARATION_ENDED
    TODAS las ediciones se validan y aplican
  4. Consultar pedido actualizado (GET order details)
    Obtenga la versión final del pedido con todos los cambios
El orden es críticoCualquier desviación de esta secuencia resultará en errores 409 Conflict. No está permitido:
  • Editar ítems antes de iniciar la separación
  • Finalizar la separación sin haberla iniciado
  • Editar ítems después de finalizar la separación
1. Solicitud recibida → Validación básica
   ¿Pedido existe?
   ¿Separación fue iniciada?
   ¿Producto existe (para add/replace)?

2. Validación aplicada → Estado pendiente
   Ítem agregado a lista de ediciones
   NO afecta el precio aún

3. Finalización de separación → Validaciones finales
   Reglas de método de pago
   Permiso para cobros adicionales
   Cálculo de ajustes de precio

4. Aplicación → Pedido actualizado
   Ediciones confirmadas
   Precios ajustados
   Inventario reflejado
Los cambios de precio solo se calculan al finalizar la separación, no durante las ediciones.
OperaciónEfecto en la finalización
Adicionar ítemCobro adicional (precio del producto)
Remover ítemReembolso (precio original)
Aumentar cantidadCobro adicional
Disminuir cantidadReembolso
Sustituir por ítem más caroCobro adicional
Sustituir por ítem más baratoReembolso
Iniciar separación dos veces:
1er intento: 204 No Content
2do intento: 409 Conflict (Separation already started)
La operación no es idempotente. La segunda llamada fallará.Solución: Siempre verifique el estado actual del pedido antes de llamar a startSeparation.Si no recibe respuesta:
  1. Espere unos segundos
  2. Haga un GET en el pedido para verificar el estado actual
  3. Si SEPARATION_STARTED: Continúe editando (no repita startSeparation)
  4. Si CONFIRMED: Intente iniciar nuevamente
Antes de iniciar la separación, el cliente puede editar el pedido (cancelar ítems, agregar más).Cuando esto sucede, recibe el evento ORDER_PATCHED.Qué hacer:
  1. ¿Recibió ORDER_PATCHED? Haga un nuevo GET en el pedido
  2. Actualice su vista local de los ítems
  3. Proceda normalmente con startSeparation
# Ejemplo: Antes de iniciar, siempre consulte el pedido
GET /orders/{id}
# Confirme los ítems actuales antes de llamar a startSeparation
Algunos métodos de pago tienen reglas especiales para ediciones:
MétodoAdicionar ítemsRemover ítemsModificar cantidad
Crédito
DébitoLimitado
PixRestringido
EfectivoRestringido
Consulte la documentación de métodos de pago para reglas específicas antes de editar ítems.
Un combo es un agrupamiento de ítems vendidos juntos.
  • No puede modificar ítems individuales de un combo
  • Remover un ítem de un combo remueve el combo completo
  • Adicionar ítems no afecta combos existentes
# Ejemplo: Combo con bebida + sándwich
# Si remueve la bebida:
DELETE /orders/{id}/items/{drink_id}
# Resultado: El combo completo se remueve
# (el sándwich también se remueve)
Todos los endpoints del módulo Picking tienen un límite de 1000 solicitudes por segundo (req/s).Si recibe un error 429 (Too Many Requests):
  • Espere algunos segundos antes de intentar nuevamente
  • Implemente backoff exponencial
  • Revise el comportamiento de su aplicación para identificar loops innecesarios
  • Considere almacenar respuestas en caché cuando sea apropiado
Para más detalles sobre límites de tasa, consulte la documentación completa.

PartnerPicking APIiFoodGET /orders/{id}Pedido CONFIRMEDPOST /startSeparationNotifica: separación iniciada204 No ContentPOST /items (adicionar ítem)204 No ContentPATCH /items/{id} (modificar cantidad)204 No ContentDELETE /items/{id} (remover ítem)204 No ContentPOST /endSeparationValida & aplica cambios204 No ContentGET /orders/{id}Pedido SEPARATION_ENDED + ítems actualizadosPartnerPicking APIiFood

¿Esta página fue útil?
Evalúa tu experiencia en el nuevo portal de desarrolladores: