Este é seu checklist de sign-off antes de ir para produção. Valide que sua integração funciona com os 4 endpoints principais.Garanta que existam avaliações recentes (pelo menos 2-3 dias antes da data agendada) para testar todos os cenários.
Listar avaliações
Endpoint:GET /merchants/{merchantId}/reviews
Teste: Lista básica
curl -X GET "https://merchant-api.ifood.com.br/review/v2.0/merchants/{merchantId}/reviews?page=1&pageSize=10&addCount=true" \ -H "Authorization: Bearer {JWT_TOKEN}"
Primeiro, encontre uma review com status: "NOT_REPLIED" usando o teste anterior.
curl -X POST "https://merchant-api.ifood.com.br/review/v2.0/merchants/{merchantId}/reviews/{reviewId}/answers" \ -H "Authorization: Bearer {JWT_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"text": "Obrigado pelo feedback! Vamos melhorar o tempo de entrega."}'
Resposta esperada (201 Created):
{"createdAt": "2025-03-01T15:00:00Z","reviewId": "a26c8718-b1f5-44a0-8f06-ecc71ddfcd5a","text": "Obrigado pelo feedback! Vamos melhorar o tempo de entrega."}
Validação
Esperado
Status
Texto válido (10-300)
Status 201 Created
[ ]
Response contém createdAt, reviewId, text
Campos presentes
[ ]
Teste: Status incorreto
Se a review está em PUBLISHED, tente responder:
curl -X POST "https://merchant-api.ifood.com.br/review/v2.0/merchants/{merchantId}/reviews/{reviewId}/answers" \ -H "Authorization: Bearer {JWT_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"text": "Texto de resposta"}'
Resposta esperada (409 Conflict ou 422 Unprocessable):
{"error": "Review must have status NOT_REPLIED to receive an answer","status": 409}