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

Endpoints

Referencia técnica de todos los endpoints de la API de Merchant.
https://merchant-api.ifood.com.br/merchant/v1.0
Todas las solicitudes deben incluir el encabezado de autenticación:
Authorization: Bearer YOUR_TOKEN
`GET /merchants`
Retorna todas las tiendas vinculadas a tu token.Query parameters:
  • page — Page number (starts at 1)
  • size — Items per page (default: 100)
Response 200:
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "Pizzaria Central",
    "corporateName": "Pizzaria Central LTDA"
  }
]
Error codes:
  • Unauthorized — Invalid or expired token
  • InternalServerError — Failed to retrieve stores

`GET /merchants/{merchantId}`
Retorna información completa sobre una tienda específica.Path parameters:
  • merchantId — Store ID
Response 200:
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "Pizzaria Central",
  "corporateName": "Pizzaria Central LTDA",
  "description": "Especializada en pizza napolitana",
  "averageTicket": 85.50,
  "exclusive": false,
  "type": "RESTAURANT",
  "status": "AVAILABLE",
  "createdAt": "2024-01-15T10:30:00",
  "address": {
    "street": "Rua das Flores",
    "number": "123",
    "city": "São Paulo",
    "state": "SP",
    "postalCode": "01310-100",
    "country": "BR",
    "district": "Centro",
    "latitude": -23.5505,
    "longitude": -46.6333
  },
  "operations": [
    {
      "name": "DELIVERY",
      "salesChannels": [
        {
          "name": "MARKETPLACE",
          "enabled": true
        }
      ]
    }
  ]
}
Error codes:
  • Unauthorized — Invalid token
  • Forbidden — No permission to access store
  • InternalServerError — Failed to retrieve details

`GET /merchants/{merchantId}/status`
Retorna el estado operacional de una tienda.Path parameters:
  • merchantId — Store ID
Response 200:
[
  {
    "operation": "DELIVERY",
    "salesChannel": "MARKETPLACE",
    "available": true,
    "state": "OK",
    "validations": [
      {
        "id": "val-001",
        "code": "is-connected",
        "state": "OK",
        "message": {
          "title": "Conectado",
          "subtitle": "La tienda está respondiendo",
          "description": "Polling recibido en los últimos 30 segundos"
        }
      }
    ],
    "message": {
      "title": "Tienda En Línea",
      "subtitle": "Lista para recibir pedidos",
      "description": "Todas las validaciones pasaron exitosamente"
    }
  }
]
Error codes:
  • BadRequest — Invalid parameters
  • Unauthorized — Invalid token
  • Forbidden — No permission
  • InternalServerError — Failed to retrieve status

`GET /merchants/{merchantId}/status/{operation}`
Retorna el estado de una operación específica.Path parameters:
  • merchantId — Store ID
  • operation — Operation name (DELIVERY, TAKEOUT, INDOOR)

`GET /merchants/{merchantId}/interruptions`
Retorna todas las pausas activas y futuras.Path parameters:
  • merchantId — Store ID
Response 200:
[
  {
    "id": "interrupt-001",
    "description": "Mantenimiento del equipo",
    "start": "2025-02-05T14:00:00Z",
    "end": "2025-02-05T15:30:00Z"
  }
]

`POST /merchants/{merchantId}/interruptions`
Crea una pausa en la recepción de pedidos.Path parameters:
  • merchantId — Store ID
Request body:
{
  "description": "Mantenimiento del equipo",
  "start": "2025-02-05T14:00:00Z",
  "end": "2025-02-05T15:30:00Z"
}
Required fields:
  • description — Pause reason (max 255 chars)
  • start — Pause start (ISO 8601)
  • end — Pause end (ISO 8601)
Response 201:
{
  "id": "interrupt-001",
  "description": "Mantenimiento del equipo",
  "start": "2025-02-05T14:00:00Z",
  "end": "2025-02-05T15:30:00Z"
}
Validations:
  • start < end (start before end)
  • Minimum duration: 1 minute
  • Maximum duration: 7 days
  • Cannot overlap existing pauses
Error codes:
  • BadRequest — Invalid parameters
  • InterruptionOverlap — Overlaps with existing pause
  • Unauthorized — Invalid token
  • Forbidden — No permission
  • InternalServerError — Failed to create interruption

`DELETE /merchants/{merchantId}/interruptions/{interruptionId}`
Elimina una pausa y reabre la tienda.Path parameters:
  • merchantId — Store ID
  • interruptionId — Interruption ID
Response 204:No content. Interruption deleted successfully.Error codes:
  • Unauthorized — Invalid token
  • Forbidden — No permission
  • InternalServerError — Failed to delete interruption

`GET /merchants/{merchantId}/opening-hours`
Retorna los horarios de funcionamiento configurados.Path parameters:
  • merchantId — Store ID
Response 200:
[
  {
    "shifts": [
      {
        "id": "shift-001",
        "dayOfWeek": "MONDAY",
        "start": "09:00:00",
        "duration": 360
      }
    ]
  }
]

`PUT /merchants/{merchantId}/opening-hours`
Actualiza los horarios de funcionamiento (reemplazo completo).Path parameters:
  • merchantId — Store ID
Request body:
{
  "storeId": "550e8400-e29b-41d4-a716-446655440000",
  "shifts": [
    {
      "dayOfWeek": "MONDAY",
      "start": "09:00:00",
      "duration": 360
    }
  ]
}
Required fields:
  • storeId — Store ID
  • shifts — Array of shifts
    • dayOfWeek — Day of week (MONDAY-SUNDAY)
    • start — Opening time (HH:MM:SS)
    • duration — Duration in minutes
Response 201:
{
  "storeId": "550e8400-e29b-41d4-a716-446655440000",
  "shifts": [
    {
      "id": "shift-001",
      "dayOfWeek": "MONDAY",
      "start": "09:00:00",
      "duration": 360,
      "enabled": true,
      "createdAt": "2025-02-06T10:30:00Z"
    }
  ]
}
Validations:
  • dayOfWeek must be MONDAY-SUNDAY
  • start must be 00:00:00 to 23:59:59
  • duration must be > 0
  • No overlapping shifts on same day
  • List cannot be empty
Error codes:
  • BadRequest — Invalid parameters
  • Unauthorized — Invalid token
  • Forbidden — No permission
  • InternalServerError — Failed to update hours

`POST /merchants/checkin-qrcode`
Genera archivo PDF con códigos QR para check-in de repartidor.Request body:
{
  "merchantIds": [
    "550e8400-e29b-41d4-a716-446655440000",
    "550e8400-e29b-41d4-a716-446655440001"
  ]
}
Required fields:
  • merchantIds — Array of store IDs (max 20)
Response 200:Archivo PDF binario listo para impresión.Límites:
  • Máximo 20 tiendas por solicitud
  • Solo tiendas tipo Groceries
  • Código QR no expira
Error codes:
  • BadRequest — Empty list or more than 20 stores
  • Unauthorized — Invalid token
  • Forbidden — No permission for one or more stores
  • NotFound — One or more stores not found
  • InternalServerError — Failed to generate QR code

CodeMeaning
HTTP 200OK — Successful request
HTTP 201Created — Resource created successfully
HTTP 204No Content — Success with no response body
HTTP 400Bad Request — Invalid parameters
HTTP 401Unauthorized — Invalid or expired token
HTTP 403Forbidden — No permission for resource
HTTP 404Not Found — Resource not found
HTTP 409Conflict — Conflict (e.g., interruption overlap)
HTTP 429Too Many Requests — Request limit exceeded
HTTP 500Internal Server Error — Server error

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