Merchant
Manage your store, configure operations, and monitor status in real time using the Merchant API.What is the Merchant module?
The Merchant module provides a complete API to integrate, configure, and monitor stores on the iFood platform. With it, you can:- Discover stores — List and get details of all stores linked to your token
- Monitor status — Check real-time availability and identify issues
- Manage operations — Configure delivery, takeout, and dine-in
- Control hours — Set operating hours per operation
- Pause temporarily — Create interruptions without changing schedules
- Generate QR codes — Facilitate driver check-in at Groceries stores
Common use cases
Store dashboard integration
Developers build dashboards for store managers to oversee multiple locations:- List all stores in a single panel
- Monitor status of each unit
- Enable/disable operations quickly
- Configure special hours for events
Operational automation
Autonomous systems that monitor and react to conditions:- Pause automatically when demand spikes
- Reopen after resolving issues
- Adjust hours for special days
- Alert managers about persistent ERROR status
Legacy system integration
Sync data between old systems and iFood:- Import hours from POS systems
- Sync availability status
- Manage multiple stores in bulk
Basic integration flow
- Authenticate — Get your Bearer token
- Discover — List stores with
GET /merchants - Monitor — Check status with
GET /merchants/{merchantId}/status - Control — Configure operations, hours, and pauses
- Homologate — Validate your integration before going live
Authentication
Include your Bearer token in every request:curl --location 'https://merchant-api.ifood.com.br/merchant/v1.0/merchants' \
--header 'Authorization: Bearer YOUR_TOKEN'
Receive your token during onboarding — it determines which stores you can access.Rate limits
The Merchant API allows 1000 requests per second across all endpoints.- Implement exponential backoff when receiving
429 Too Many Requests - Distribute requests across multiple stores
- Use polling with minimum 30-second intervals per store
See Rate Limiting Documentation for details.Response structure
All successful responses return 200 or 201:{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Pizzaria Central",
"status": "AVAILABLE",
"createdAt": "2024-01-15T10:30:00"
}
Errors return code and message:{
"code": "UNAUTHORIZED",
"message": "Invalid or expired token",
"details": {}
}
Was this page helpful? Rate your experience in the new Developer portal: