Valida la firma del payload tan pronto como lo recibas, antes de cualquier procesamiento o lectura de los datos. Haz la validación directamente en el byte array, sin hacer parse del contenido.
Request con espacios extras
Consulta el ejemplo de una request con payload equivalente al del primer ejemplo, solo con algunos espacios extras que afectan la firma, pero igualmente válida:
Consulta el ejemplo de otra request con payload equivalente, ahora formateada para facilitar la lectura, lo que también resulta en otra firma igualmente válida:
Envía una respuesta con el código 202 Accepteden hasta 5 segundos para confirmar la recepción del evento. El sistema considera esta respuesta como exitosa y no intentará reenviar el evento. Ignoramos el cuerpo de la respuesta, excepto en auditorías internas para fallos de entrega. En esos casos, envía la respuesta en el formato especificado.
Casos de error
El propósito de la request del webhook es integrar el evento con éxito. Usa respuestas de error solo para indicar falla en la integración, es decir, cuando el servidor no recibió o no procesó el evento correctamente.El webhook reconoce errores HTTP 5xx como fallos de recepción o procesamiento. El sistema solo hace reintentos para esta clase de errores.Las respuestas de error impactan el flujo de reintentos y deben usarse solo cuando sea necesario intentar la entrega nuevamente.Al retornar un error, envía el payload especificado abajo para detallar el motivo en la auditoría interna. Ignoramos cualquier otro formato o campo, como XML.
{"error": "error message"}
Si todos los intentos de entrega fallan, el webhook descarta el evento. El sistema no hará nuevos intentos de entrega de ese evento.
iFood define el número máximo de intentos, el intervalo entre ellos y el tiempo de timeout. Informaremos cualquier actualización con anticipación. Consideramos timeout para requests con más de 5 segundos de respuesta e intentamos reenviar eventos por hasta 15 minutos. Si el endpoint responde con 202 después de 5 segundos, el sistema aún intentará reenviar el evento.