Buscar na documentação
ctrl+4K
Módulos
Authentication
Merchant
Catalog
Order
Events
Logistics
Shipping
Review
Financial
Soluções

Endpoints

Referência técnica de todos os endpoints da API Merchant.
https://merchant-api.ifood.com.br/merchant/v1.0
Todas as requisições devem incluir o header de autenticação:
Authorization: Bearer YOUR_TOKEN
GET /merchants
Retorna todas as lojas vinculadas ao seu token.Query parameters:
  • page (optional) — Page number (starts at 1)
  • size (optional) — Stores per page (default: 100)
Response 200:
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "Pizzaria Central",
    "corporateName": "Pizzaria Central LTDA"
  }
]
Error codes:
  • 401 Unauthorized — Token inválido ou expirado
  • 500 InternalServerError — Erro ao buscar lojas

GET /merchants/{merchantId}
Retorna informações completas de uma loja específica.Parâmetros de path:
  • merchantId (obrigatório) - ID da loja
Response 200:
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "Pizzaria Central",
  "corporateName": "Pizzaria Central LTDA",
  "description": "Pizzaria especializada em pizza napoletana",
  "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 — Token inválido
  • 403 Forbidden — Sem permissão
  • 500 InternalServerError — Erro ao buscar detalhes

GET /merchants/{merchantId}/status
Retorna o status operacional de uma loja.Parâmetros de path:
  • merchantId (obrigatório) - ID da loja
Response 200:
[
  {
    "operation": "DELIVERY",
    "salesChannel": "MARKETPLACE",
    "available": true,
    "state": "OK",
    "validations": [
      {
        "id": "val-001",
        "code": "is-connected",
        "state": "OK",
        "message": {
          "title": "Conectado",
          "subtitle": "Loja está respondendo",
          "description": "Polling recebido nos últimos 30 segundos"
        }
      }
    ],
    "message": {
      "title": "Loja Online",
      "subtitle": "Pronta para receber pedidos",
      "description": "Todas as validações passaram com sucesso"
    }
  }
]
Error codes:
  • 400 BadRequest — Parâmetros inválidos
  • 401 Unauthorized — Token inválido
  • 403 Forbidden — Sem permissão
  • 500 InternalServerError — Erro ao buscar status

GET /merchants/{merchantId}/status/{operation}
Retorna o status de uma operação específica.Parâmetros de path:
  • merchantId (obrigatório) - ID da loja
  • operation (obrigatório) - Nome da operação (DELIVERY, TAKEOUT, INDOOR)

GET /merchants/{merchantId}/interruptions
Retorna todas as pausas ativas e futuras.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
Cria uma pausa no recebimento de pedidos.Parâmetros de path:
  • merchantId (obrigatório) - ID da loja
Corpo da requisição:
{
  "description": "Manutenção do equipamento",
  "start": "2025-02-05T14:00:00Z",
  "end": "2025-02-05T15:30:00Z"
}
Required fields:
  • description - Motivo da pausa (até 255 caracteres)
  • start - Início da pausa (ISO 8601)
  • end - Fim da pausa (ISO 8601)
Response 201:
{
  "id": "interrupt-001",
  "description": "Manutenção do equipamento",
  "start": "2025-02-05T14:00:00Z",
  "end": "2025-02-05T15:30:00Z"
}
Validations:
  • start < end (início deve ser antes do fim)
  • Duração mínima: 1 minuto
  • Duração máxima: 7 dias
  • Não pode sobrepor com pausa existente
Error codes:
  • 400 BadRequest - Parâmetros inválidos
  • 409 InterruptionOverlap - Pausa sobrepõe com outra existente
  • 401 Unauthorized - Token inválido
  • 403 Forbidden - Sem permissão
  • 500 InternalServerError - Erro ao criar interrupção

DELETE /merchants/{merchantId}/interruptions/{interruptionId}
Remove uma pausa e reabre a loja.Parâmetros de path:
  • merchantId (obrigatório) - ID da loja
  • interruptionId (obrigatório) - ID da interrupção
Response 204:Sem conteúdo. A interrupção foi removida com sucesso.Error codes:
  • 401 Unauthorized - Token inválido
  • 403 Forbidden - Sem permissão
  • 500 InternalServerError - Erro ao remover interrupção

GET /merchants/{merchantId}/opening-hours
Retorna os horários de funcionamento configurados.Parâmetros de path:
  • merchantId (obrigatório) - ID da loja
Response 200:
[
  {
    "shifts": [
      {
        "id": "shift-001",
        "dayOfWeek": "MONDAY",
        "start": "09:00:00",
        "duration": 360
      }
    ]
  }
]

PUT /merchants/{merchantId}/opening-hours
Atualiza os horários de funcionamento (substituição completa).Parâmetros de path:
  • merchantId (obrigatório) - ID da loja
Corpo da requisição:
{
  "storeId": "550e8400-e29b-41d4-a716-446655440000",
  "shifts": [
    {
      "dayOfWeek": "MONDAY",
      "start": "09:00:00",
      "duration": 360
    }
  ]
}
Required fields:
  • storeId - ID da loja
  • shifts - Array de turnos
    • dayOfWeek - Dia da semana (MONDAY-SUNDAY)
    • start - Horário de abertura (HH:MM:SS)
    • duration - Duração em minutos
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 deve ser MONDAY-SUNDAY
  • start deve estar entre 00:00:00 e 23:59:59
  • duration deve ser > 0
  • Sem sobreposição de turnos no mesmo dia
  • Lista não pode estar vazia
Error codes:
  • 400 BadRequest - Parâmetros inválidos
  • 401 Unauthorized - Token inválido
  • 403 Forbidden - Sem permissão
  • 500 InternalServerError - Erro ao atualizar horários

POST /merchants/checkin-qrcode
Gera arquivo PDF com QR codes para check-in de entregadores.Corpo da requisição:
{
  "merchantIds": [
    "550e8400-e29b-41d4-a716-446655440000",
    "550e8400-e29b-41d4-a716-446655440001"
  ]
}
Required fields:
  • merchantIds - Array com IDs das lojas (máximo 20)
Response 200:Arquivo PDF binário pronto para impressão.Limitações:
  • Máximo 20 lojas por requisição
  • Apenas lojas tipo Groceries
  • QR code não expira
Error codes:
  • 400 BadRequest - Lista vazia ou mais de 20 lojas
  • 401 Unauthorized - Token inválido
  • 403 Forbidden - Sem permissão para uma ou mais lojas
  • 404 NotFound - Uma ou mais lojas não encontradas
  • 500 InternalServerError - Erro ao gerar QR code

CódigoSignificado
200OK - Requisição bem-sucedida
201Created - Recurso criado com sucesso
204No Content - Sucesso sem conteúdo de resposta
400Bad Request - Parâmetros inválidos
401Unauthorized - Token inválido ou expirado
403Forbidden - Sem permissão para o recurso
404Not Found - Recurso não encontrado
409Conflict - Conflito (ex: sobreposição de interrupção)
429Too Many Requests - Limite de requisições excedido
500Internal Server Error - Erro interno do servidor

Esta página foi útil?
Avalie sua experiência no novo Developer portal: