Operations
A store can offer different services and experiences to customers through multiple operations.What are operations?
Operation is a set of processes that a store executes to provide a specific offer.Types of operations
| Operation | Description |
|---|
DELIVERY | Orders delivered to the customer's address |
TAKEOUT | Orders picked up by the customer at the store |
INDOOR | Orders consumed at the store (currently unavailable) |
Operation vs. Order typeOperation defines the store's service model. Order type indicates how the specific order will be processed. Acquisition channels
Acquisition channel is the means by which the customer places the order.Available channels
| Channel | Description |
|---|
MARKETPLACE | App and website to browse iFood stores |
WHATSAPP | Orders received via WhatsApp |
DIGITAL_CATALOG | Store's own catalog with iFood support |
TOTEM | Interactive devices for in-store orders |
Configuration and customization
Operation-channel relationship
An operation can have multiple acquisition channels (1:N relationship).Practical example:- TAKEOUT operation can accept orders via:
- MARKETPLACE
- WHATSAPP
- DIGITAL_CATALOG
Independent configurations
Each operation + channel combination allows specific configurations:- Different opening hours
- Distinct catalogs
- Customized delivery areas
Usage example
A store can:- Close DELIVERY on Marketplace at 10 PM
- Keep TAKEOUT on Digital Menu until midnight
- Operate INDOOR only during lunch hours
This allows greater flexibility and better store operation management.Retrieving operations
To check the configured operations of a store, use:curl --location 'https://merchant-api.ifood.com.br/merchant/v1.0/merchants/550e8400-e29b-41d4-a716-446655440000' \
--header 'Authorization: Bearer TOKEN'
Endpoint: GET /merchants/{merchantId}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",
"operations": [
{
"name": "DELIVERY",
"salesChannels": [
{
"name": "MARKETPLACE",
"enabled": true
},
{
"name": "WHATSAPP",
"enabled": false
}
]
},
{
"name": "TAKEOUT",
"salesChannels": [
{
"name": "DIGITAL_CATALOG",
"enabled": true
}
]
}
]
}
Response structure:| Field | Type | Description |
|---|
operations[] | array | List of operations |
operations[].name | string | Operation name |
operations[].salesChannels | array | Active channels |
operations[].salesChannels[].name | string | Channel name |
operations[].salesChannels[].enabled | boolean | Enablement status |
Operation status
To check the status of a specific operation, use the Status API:curl --location 'https://merchant-api.ifood.com.br/merchant/v1.0/merchants/550e8400-e29b-41d4-a716-446655440000/status/DELIVERY' \
--header 'Authorization: Bearer TOKEN'
Endpoint: GET /merchants/{merchantId}/status/{operation}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"
}
},
{
"id": "val-002",
"code": "opening-hours",
"state": "OK",
"message": {
"title": "Valid hours",
"subtitle": "Within operating hours",
"description": "Store is within configured hours"
}
}
],
"message": {
"title": "Operation Online",
"subtitle": "Ready to receive orders",
"description": "All validations passed successfully"
}
}
]
Validations by operation type
DELIVERY
Main validations:is-connected — Polling in last 30sopening-hours — Within operating hourscatalog-enabled — Catalog enableddelivery-area — Zone configuredunavailabilities — No interruptions
Restrictions:- Delivery zone required
- Catalog enabled
- Polling every 30s
TAKEOUT
Main validations:is-connected — Polling in last 30sopening-hours — Within operating hourscatalog-enabled — Catalog enabledunavailabilities — No interruptions
Restrictions:- Catalog enabled
- Delivery zone not required
- Polling every 30s
INDOOR
Status: Coming soonPossible operation states
| State | Meaning |
|---|
OK | Operation online and ready to receive orders |
WARNING | Online with restrictions (check validations) |
CLOSED | Closed as expected (outside hours) |
ERROR | Problem detected (check validations) |
UNAVAILABLE | Operation not configured or disabled |
All return HTTP 200. The actual state is in the state field of the JSON response.Was this page helpful? Rate your experience in the new Developer portal: