https://merchant-api.ifood.com.br/review/v2.0| Método | Endpoint | Descrição |
|---|---|---|
GET | /merchants/{id}/reviews | Lista avaliações com filtros e paginação |
GET | /merchants/{id}/reviews/{reviewId} | Obtém detalhes de uma avaliação |
POST | /merchants/{id}/reviews/{reviewId}/answers | Responde uma avaliação |
GET | /merchants/{id}/summary | Consulta estatísticas e média de notas |
Authorization:Authorization: Bearer {JWT_TOKEN}/merchants/{merchantId}/reviewsRetorna lista paginada de avaliações, com suporte a filtros por data e ordenação.merchantId (required) - ID da loja (UUID)| Parâmetro | Tipo | Padrão | Valores | Descrição |
|---|---|---|---|---|
page | integer | 1 | - | Número da página (começa em 1) |
pageSize | integer | 10 | Máx: 50 | Itens por página |
addCount | boolean | false | true/false | Incluir total e pageCount na resposta |
dateFrom | datetime | - | ISO 8601 | Filtro: data início (ex: 2025-01-01T00:00:00Z) |
dateTo | datetime | - | ISO 8601 | Filtro: data fim |
sort | string | DESC | ASC, DESC | Ordenação: crescente ou decrescente |
sortBy | string | CREATED_AT | CREATED_AT, ORDER_DATE | Campo para ordenação |
curl -X GET "https://merchant-api.ifood.com.br/review/v2.0/merchants/550e8400-e29b-41d4-a716-446655440000/reviews?page=1&pageSize=10&addCount=true" \
-H "Authorization: Bearer {JWT_TOKEN}"curl -X GET "https://merchant-api.ifood.com.br/review/v2.0/merchants/550e8400-e29b-41d4-a716-446655440000/reviews?page=1&pageSize=20&dateFrom=2025-01-01T00:00:00Z&dateTo=2025-03-31T23:59:59Z" \
-H "Authorization: Bearer {JWT_TOKEN}"{
"page": 1,
"size": 10,
"reviews": [
{
"id": "a26c8718-b1f5-44a0-8f06-ecc71ddfcd5a",
"comment": "Lanche gostoso e saboroso.",
"score": 5.0,
"status": "PUBLISHED",
"visibility": "PUBLIC",
"version": "v2",
"createdAt": "2021-04-07T01:46:59.722169Z",
"replies": [
{
"text": "Obrigado! Volte sempre.",
"from": "MERCHANT",
"createdAt": "2021-04-07T15:30:00.000000Z"
}
],
"order": {
"id": "bbec78f9-d579-414b-9120-37fda7968824",
"shortId": "1234",
"createdAt": "2021-04-07T00:39:30.902486Z"
},
"surveyId": "2c35c485-9f23-464d-bd83-cf6ecd1c71e0"
}
],
"total": 142,
"pageCount": 15
}/merchants/{merchantId}/reviews/{reviewId}Retorna informações completas de uma avaliação, incluindo questionário respondido e histórico de respostas.merchantId (required) - ID da loja (UUID)reviewId (required) - ID da avaliação (UUID)curl -X GET "https://merchant-api.ifood.com.br/review/v2.0/merchants/550e8400-e29b-41d4-a716-446655440000/reviews/a26c8718-b1f5-44a0-8f06-ecc71ddfcd5a" \
-H "Authorization: Bearer {JWT_TOKEN}"{
"id": "a26c8718-b1f5-44a0-8f06-ecc71ddfcd5a",
"comment": "Chegou muito rápido, ingredientes de qualidade.",
"score": 5.0,
"status": "PUBLISHED",
"visibility": "PUBLIC",
"version": "v2",
"customerName": "Elisa",
"createdAt": "2021-03-30T00:32:32.820884Z",
"replies": [
{
"text": "Obrigado Elisa! Ficamos felizes.",
"from": "MERCHANT",
"createdAt": "2021-03-30T10:15:00.000000Z"
}
],
"order": {
"id": "23651b6d-042e-4c66-8e1a-ee2a92544e4f",
"shortId": "1234",
"createdAt": "2021-03-29T03:10:28.552082Z"
},
"questions": [
{
"id": "7e7346ca-b24e-46c9-bda4-62411a8eb2fe",
"type": "CHOICE",
"title": "Do que você mais gostou?",
"answers": [
{
"id": "05e8622f-be9f-4692-b087-25a06d02cc59",
"title": "Educação"
}
]
}
],
"surveyId": "2c35c485-9f23-464d-bd83-cf6ecd1c71e0"
}/merchants/{merchantId}/reviews/{reviewId}/answersCria uma resposta para uma avaliação. Apenas reviews com status: NOT_REPLIED aceitam respostas.merchantId (required) - ID da loja (UUID)reviewId (required) - ID da avaliação (UUID){
"text": "Obrigado pelo feedback! Vamos melhorar."
}| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
text | string | Sim | 10-300 caracteres | Texto da resposta. Sem xingamentos, dados pessoais do cliente, links ou promoções não autorizadas. Veja validação de respostas |
curl -X POST "https://merchant-api.ifood.com.br/review/v2.0/merchants/550e8400-e29b-41d4-a716-446655440000/reviews/a26c8718-b1f5-44a0-8f06-ecc71ddfcd5a/answers" \
-H "Authorization: Bearer {JWT_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"text": "Obrigado pelo feedback! Vamos melhorar nosso atendimento."
}'# Enviar novo POST com texto atualizado na mesma rota
curl -X POST "https://merchant-api.ifood.com.br/review/v2.0/merchants/550e8400-e29b-41d4-a716-446655440000/reviews/a26c8718-b1f5-44a0-8f06-ecc71ddfcd5a/answers" \
-H "Authorization: Bearer {JWT_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"text": "Texto atualizado da resposta"
}'{
"createdAt": "2021-04-07T15:30:00.000000Z",
"reviewId": "a26c8718-b1f5-44a0-8f06-ecc71ddfcd5a",
"text": "Obrigado pelo feedback! Vamos melhorar nosso atendimento."
}/merchants/{merchantId}/summaryRetorna estatísticas agregadas: contagem total, contagem válida e nota média.merchantId (required) - ID da loja (UUID)curl -X GET "https://merchant-api.ifood.com.br/review/v2.0/merchants/550e8400-e29b-41d4-a716-446655440000/summary" \
-H "Authorization: Bearer {JWT_TOKEN}"{
"totalReviewsCount": 142,
"validReviewsCount": 53,
"score": 4.3
}| Campo | Tipo | Descrição |
|---|---|---|
totalReviewsCount | integer | Total de avaliações (todas as épocas) |
validReviewsCount | integer | Avaliações que contam no score |
score | number | Média aritmética das avaliações válidas (1.0-5.0) |
score é a média aritmética de todas as avaliações válidas.Avaliações são válidas quando:PUBLISHED (e não DISCARDED ou INVALID)PUBLIC (não PRIVATE)| Campo | Valor |
|---|---|
| Total de avaliações | 142 (todas as épocas) |
| Avaliações válidas | 53 (últimos 3 meses + PUBLIC) |
| Score exibido | 4.3 (média das 53 válidas) |
PRIVATE) são visíveis para você mas não contam na nota pública.| Endpoint | Limite |
|---|---|
| GET /merchants/{merchantId}/reviews | 2000 req/min |
| GET /merchants/{merchantId}/reviews/{reviewId} | 2000 req/min |
| POST /merchants/{merchantId}/reviews/{reviewId}/answers | 2000 req/min |
| GET /merchants/{merchantId}/summary | 2000 req/min |
| Código | Status | Quando ocorre | Ação |
|---|---|---|---|
| 200 | OK | Sucesso em GET | Processar response |
| 201 | Created | Resposta criada com sucesso | Processar response |
| 400 | Bad Request | Parâmetros inválidos | Validar entrada e retry |
| 401 | Unauthorized | Token expirado/ausente | Renovar token e retry |
| 403 | Forbidden | Sem permissão nesta loja | Verificar acesso e cancelar |
| 404 | Not Found | Recurso não existe | Validar IDs e cancelar |
| 409 | Conflict | Conflito de estado | Verificar status e retry ou cancelar |
| 422 | Unprocessable Entity | Validação falhou | Revisar dados e retry |
| 429 | Too Many Requests | Rate limit excedido | Aguardar e retry com backoff |
| 500 | Internal Server Error | Erro no servidor | Retry com backoff exponencial |
| 503 | Service Unavailable | Serviço temporariamente indisponível | Retry com backoff exponencial |
| Campo | Tipo | Descrição |
|---|---|---|
id | uuid | Identificador único da avaliação |
score | number | Nota de 1.0 a 5.0 |
status | enum | CREATED, NOT_REPLIED, REPLIED, PUBLISHED, INVALID, DISCARDED |
visibility | enum | PUBLIC ou PRIVATE |
version | string | Versão da API que criou (v1 ou v2) |
comment | string | Comentário do cliente (opcional) |
customerName | string | Nome do cliente |
createdAt | datetime | Timestamp ISO 8601 |
replies | array | Lista de respostas (veja Reply) |
order | object | Pedido avaliado (veja Order) |
questions | array | Questionário respondido (veja Question) |
surveyId | uuid | ID da versão do questionário |
| Campo | Tipo | Descrição |
|---|---|---|
text | string | Texto da resposta (10-300 caracteres) |
from | enum | MERCHANT (você) ou CUSTOMER (cliente) |
createdAt | datetime | Timestamp ISO 8601 |
| Campo | Tipo | Descrição |
|---|---|---|
id | uuid | ID único do pedido |
shortId | string | Código curto para exibição |
createdAt | datetime | Quando o pedido foi criado |
| Campo | Tipo | Descrição |
|---|---|---|
id | uuid | ID da pergunta |
type | enum | RATING, CHOICE ou BINARY |
title | string | Texto da pergunta |
answers | array | Respostas selecionadas (id, title) |
/summary).| Campo | Tipo | Descrição |
|---|---|---|
totalReviewsCount | integer | Total de avaliações |
validReviewsCount | integer | Avaliações que contam no score |
score | number | Média das avaliações válidas (1.0-5.0) |
| Valor | Descrição | Sua ação | Impacto no score |
|---|---|---|---|
CREATED | Em processamento (minutos) | Aguarde | Não contabilizado |
NOT_REPLIED | Aguardando sua resposta (5 dias) | Responda via API | Não contabilizado |
REPLIED | Respondida, cliente pode reagir (5 dias) | Aguarde reação | Não contabilizado |
PUBLISHED | Publicada (permanente) | Nenhuma | Sim (se visibility: PUBLIC) |
INVALID | Violou diretrizes iFood | Nenhuma | Não |
DISCARDED | Removida automaticamente | Nenhuma | Não |
CREATED são processadas automaticamente em alguns minutos. Após triagem, passam para NOT_REPLIED (se requerem resposta) ou PUBLISHED (se não requerem).| Valor | Quem vê | Afeta score | Caso de uso |
|---|---|---|---|
PUBLIC | Todos (página da loja) | Sim | Padrão - visível publicamente |
PRIVATE | Você + cliente | Não | Feedback confidencial |
| Valor | Significado |
|---|---|
v1 | Criada pela API Review V1 (legado) |
v2 | Criada pela API Review V2 (atual) |
version para detectar origem.