Search in documentation
ctrl+4K
Modules
Authentication
Merchant
Catalog
Order
Events
Logistics
Shipping
Review
Financial
Solutions

Endpoints

Technical reference for all Merchant API endpoints.
https://merchant-api.ifood.com.br/merchant/v1.0
All requests must include the authentication header:
Authorization: Bearer YOUR_TOKEN
GET /merchants
Returns all stores linked to your token.Query parameters:
  • page (optional) — Page number (starts at 1)
  • size (optional) — Number of stores per page (default: 100)
Response 200:
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "Pizzaria Central",
    "corporateName": "Pizzaria Central LTDA"
  }
]
Error codes:
  • 401 Unauthorized — Invalid or expired token
  • 500 InternalServerError — Error fetching stores

GET /merchants/{merchantId}
Returns complete information about a specific store.Path parameters:
  • merchantId (required) — Store ID
Response 200:
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "Pizzaria Central",
  "corporateName": "Pizzaria Central LTDA",
  "description": "Specializes in Neapolitan pizza",
  "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:
  • 401 Unauthorized — Invalid token
  • 403 Forbidden — No access
  • 500 InternalServerError — Error fetching details

GET /merchants/{merchantId}/status
Returns the operational status of a store.Path parameters:
  • merchantId (required) — Store ID
Response 200:
[
  {
    "operation": "DELIVERY",
    "salesChannel": "MARKETPLACE",
    "available": true,
    "state": "OK",
    "validations": [
      {
        "id": "val-001",
        "code": "is-connected",
        "state": "OK",
        "message": {
          "title": "Connected",
          "subtitle": "Store is responding",
          "description": "Polling received in the last 30 seconds"
        }
      }
    ],
    "message": {
      "title": "Store Online",
      "subtitle": "Ready to receive orders",
      "description": "All validations passed successfully"
    }
  }
]
Error codes:
  • 400 BadRequest — Invalid parameters
  • 401 Unauthorized — Invalid token
  • 403 Forbidden — No access
  • 500 InternalServerError — Error fetching status

GET /merchants/{merchantId}/status/{operation}
Returns the status of a specific operation.Path parameters:
  • merchantId (required) — Store ID
  • operation (required) — Operation type

GET /merchants/{merchantId}/interruptions
Returns all active and future pauses.Path parameters:
  • merchantId (required) — Store ID
Response 200:
[
  {
    "id": "interrupt-001",
    "description": "Equipment maintenance",
    "start": "2025-02-05T14:00:00Z",
    "end": "2025-02-05T15:30:00Z"
  }
]

POST /merchants/{merchantId}/interruptions
Creates a pause in order receipt.Path parameters:
  • merchantId (required) — Store ID
Request body:
{
  "description": "Equipment maintenance",
  "start": "2025-02-05T14:00:00Z",
  "end": "2025-02-05T15:30:00Z"
}
Required fields:
  • description — Pause reason (max 255 chars)
  • start — Start time (ISO 8601)
  • end — End time (ISO 8601)
Response 201:
{
  "id": "interrupt-001",
  "description": "Equipment maintenance",
  "start": "2025-02-05T14:00:00Z",
  "end": "2025-02-05T15:30:00Z"
}
Validations:
  • start must be before end
  • Minimum duration: 1 minute
  • Maximum duration: 7 days
  • No overlapping pauses
Error codes:
  • 400 BadRequest — Invalid parameters
  • 409 InterruptionOverlap — Overlapping pause
  • 401 Unauthorized — Invalid token
  • 403 Forbidden — No access
  • 500 InternalServerError — Error creating interruption

DELETE /merchants/{merchantId}/interruptions/{interruptionId}
Removes a pause and reopens the store.Path parameters:
  • merchantId (required) — Store ID
  • interruptionId (required) — Interruption ID
Response 204:No content. Interruption removed successfully.Error codes:
  • 401 Unauthorized — Invalid token
  • 403 Forbidden — No access
  • 500 InternalServerError — Error deleting interruption

GET /merchants/{merchantId}/opening-hours
Returns configured operating hours.Path parameters:
  • merchantId (required) — Store ID
Response 200:
[
  {
    "shifts": [
      {
        "id": "shift-001",
        "dayOfWeek": "MONDAY",
        "start": "09:00:00",
        "duration": 360
      }
    ]
  }
]

PUT /merchants/{merchantId}/opening-hours
Updates operating hours (complete replacement).Path parameters:
  • merchantId (required) — 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
    • start — Opening time
    • 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 valid day
  • start must be valid time
  • duration must be positive
  • No overlapping shifts
  • List cannot be empty
Error codes:
  • 400 BadRequest — Invalid parameters
  • 401 Unauthorized — Invalid token
  • 403 Forbidden — No access
  • 500 InternalServerError — Error updating hours

POST /merchants/checkin-qrcode
Generates PDF file with QR codes for driver check-in.Request body:
{
  "merchantIds": [
    "550e8400-e29b-41d4-a716-446655440000",
    "550e8400-e29b-41d4-a716-446655440001"
  ]
}
Required fields:
  • merchantIds — Store IDs (max 20)
Response 200:Binary PDF file ready for printing.Limits:
  • Max 20 stores per request
  • Grocery stores only
  • QR codes never expire
Error codes:
  • 400 BadRequest — Invalid store list
  • 401 Unauthorized — Invalid token
  • 403 Forbidden — No access
  • 404 NotFound — Stores not found
  • 500 InternalServerError — Error generating QR code

CodeMeaning
200Request successful
201Resource created
204No content
400Invalid parameters
401Invalid token
403No access
404Not found
409Conflict
429Rate limit exceeded
500Server error

Was this page helpful?
Rate your experience in the new Developer portal: