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

Operations

A store can offer different services and experiences to customers through multiple operations.
Operation is a set of processes that a store executes to provide a specific offer.
OperationDescription
DELIVERYOrders delivered to the customer's address
TAKEOUTOrders picked up by the customer at the store
INDOOROrders 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.
ChannelDescription
MARKETPLACEApp and website to browse iFood stores
WHATSAPPOrders received via WhatsApp
DIGITAL_CATALOGStore's own catalog with iFood support
TOTEMInteractive devices for in-store orders

Configuration and customization

An operation can have multiple acquisition channels (1:N relationship).Practical example:
  • TAKEOUT operation can accept orders via:
    • MARKETPLACE
    • WHATSAPP
    • DIGITAL_CATALOG
Each operation + channel combination allows specific configurations:
  • Different opening hours
  • Distinct catalogs
  • Customized delivery areas
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.
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:
FieldTypeDescription
operations[]arrayList of operations
operations[].namestringOperation name
operations[].salesChannelsarrayActive channels
operations[].salesChannels[].namestringChannel name
operations[].salesChannels[].enabledbooleanEnablement 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"
    }
  }
]
Main validations:
  • is-connected — Polling in last 30s
  • opening-hours — Within operating hours
  • catalog-enabled — Catalog enabled
  • delivery-area — Zone configured
  • unavailabilities — No interruptions
Restrictions:
  • Delivery zone required
  • Catalog enabled
  • Polling every 30s
Main validations:
  • is-connected — Polling in last 30s
  • opening-hours — Within operating hours
  • catalog-enabled — Catalog enabled
  • unavailabilities — No interruptions
Restrictions:
  • Catalog enabled
  • Delivery zone not required
  • Polling every 30s
Status: Coming soon
StateMeaning
OKOperation online and ready to receive orders
WARNINGOnline with restrictions (check validations)
CLOSEDClosed as expected (outside hours)
ERRORProblem detected (check validations)
UNAVAILABLEOperation 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: