Endpoints
Referência técnica de todos os endpoints da API Merchant.Base URL
https://merchant-api.ifood.com.br/merchant/v1.0
Todas as requisições devem incluir o header de autenticação:Authorization: Bearer YOUR_TOKEN
Merchants
Listar lojas
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 expirado500 InternalServerError — Erro ao buscar lojas
Obter detalhes de loja
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álido403 Forbidden — Sem permissão500 InternalServerError — Erro ao buscar detalhes
Status
Verificar status
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álidos401 Unauthorized — Token inválido403 Forbidden — Sem permissão500 InternalServerError — Erro ao buscar status
Verificar status por operação
GET /merchants/{merchantId}/status/{operation}
Retorna o status de uma operação específica.Parâmetros de path:merchantId (obrigatório) - ID da lojaoperation (obrigatório) - Nome da operação (DELIVERY, TAKEOUT, INDOOR)
Interruptions
Listar interrupções
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"
}
]
Criar interrupção
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álidos409 InterruptionOverlap - Pausa sobrepõe com outra existente401 Unauthorized - Token inválido403 Forbidden - Sem permissão500 InternalServerError - Erro ao criar interrupção
Remover interrupção
DELETE /merchants/{merchantId}/interruptions/{interruptionId}
Remove uma pausa e reabre a loja.Parâmetros de path:merchantId (obrigatório) - ID da lojainterruptionId (obrigatório) - ID da interrupção
Response 204:Sem conteúdo. A interrupção foi removida com sucesso.Error codes:401 Unauthorized - Token inválido403 Forbidden - Sem permissão500 InternalServerError - Erro ao remover interrupção
Opening Hours
Listar horários
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
}
]
}
]
Configurar horários
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 lojashifts - Array de turnosdayOfWeek - 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-SUNDAYstart deve estar entre 00:00:00 e 23:59:59duration deve ser > 0- Sem sobreposição de turnos no mesmo dia
- Lista não pode estar vazia
Error codes:400 BadRequest - Parâmetros inválidos401 Unauthorized - Token inválido403 Forbidden - Sem permissão500 InternalServerError - Erro ao atualizar horários
Check-in
Gerar QR Code
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 lojas401 Unauthorized - Token inválido403 Forbidden - Sem permissão para uma ou mais lojas404 NotFound - Uma ou mais lojas não encontradas500 InternalServerError - Erro ao gerar QR code
Códigos de Status HTTP
|
| 200 | OK - Requisição bem-sucedida |
| 201 | Created - Recurso criado com sucesso |
| 204 | No Content - Sucesso sem conteúdo de resposta |
| 400 | Bad Request - Parâmetros inválidos |
| 401 | Unauthorized - Token inválido ou expirado |
| 403 | Forbidden - Sem permissão para o recurso |
| 404 | Not Found - Recurso não encontrado |
| 409 | Conflict - Conflito (ex: sobreposição de interrupção) |
| 429 | Too Many Requests - Limite de requisições excedido |
| 500 | Internal Server Error - Erro interno do servidor |
Esta página foi útil? Avalie sua experiência no novo Developer portal: