Webhooks para pedidos nuevos
Un webhook envía cada pedido nuevo, y cada cambio en él, a tu propio sistema como un mensaje JSON firmado. Le das a Menuthere una dirección HTTPS y un secreto, y luego verificas la firma en cada solicitud. Un botón de prueba y un registro de entregas te permiten comprobar que funciona.
- Dónde
- Set up by Menuthere support
- Plan
- El panel no bloquea los webhooks por plan.
- Tiempo
- 15 min
- Actualizado
Configura un webhook
Paso 1: Envía tu dirección al soporte
Los webhooks todavía no están en el panel, así que el soporte de Menuthere los configura. Envía al soporte la dirección que recibirá los pedidos. Debe empezar con https:// y ser accesible desde internet. Direcciones como localhost o una red privada no se pueden llamar.
Paso 2: Guarda el secreto de firma
El soporte activa los webhooks de pedidos y te da un secreto de firma. Guárdalo solo en tu servidor. Lo usas para comprobar que cada solicitud realmente vino de Menuthere.
Paso 3: Pide un evento de prueba
Pide al soporte que envíe un evento de prueba. Envía un order.created de ejemplo a tu dirección, y el resultado muestra Delivered con el código de respuesta de tu endpoint, o lo que salió mal.
Qué envía Menuthere
| Evento | Se envía cuando |
|---|---|
| order.created | Se hace un pedido. |
| order.status_updated | Cambia el estado de un pedido, por ejemplo aceptado, comida lista o completado. |
| payment.status_updated | Un pedido se marca como pagado, o cambia su forma de pago. |
| delivery.status_updated | Se asigna un repartidor o cambia el estado de la entrega. |
| Encabezado | Valor |
|---|---|
| x-menuthere-event | El nombre del evento. |
| x-menuthere-timestamp | Hora Unix en segundos, que se define de nuevo en cada intento. |
| x-menuthere-signature | Un HMAC-SHA256 hexadecimal del cuerpo sin procesar de la solicitud, hecho con tu secreto. |
El cuerpo es un sobre con event, un id único, created_at y data. Un evento de prueba también lleva "test": true, así que ignóralo en tu cocina. Para order.created, data contiene los campos de abajo.
| Campo | Contenido |
|---|---|
| order_id, order_number | El ID del pedido y el número que ve tu equipo. |
| status, type, placed_at, currency | Estado actual, tipo de pedido, hora en que se hizo y moneda. |
| totals | subtotal, delivery_charge, packing_charge, gst, discount, grand_total. |
| customer | name, phone, address. |
| table | number y name de la mesa en un pedido de mesa, y vacío en los demás. |
| items | Cada línea: name, quantity, unit_price, total_price, variant, notes. |
| notes, payment | La nota del cliente, y el method de pago y si is_paid. |
Verificación y confiabilidad
- Verifica la firma contra el cuerpo sin procesar. Analizar y volver a codificar el JSON cambia los espacios y el orden, y la firma no coincidirá.
- Sé idempotente. El mismo id puede llegar dos veces. Úsalo para evitar un segundo ticket de cocina.
- Responde con un 2xx rápido. Menuthere espera 8 segundos por intento y prueba hasta tres veces, después de 1.5 segundos y luego de 5 segundos. Un tiempo agotado, un 5xx, un 408 o un 429 se reintenta. Cualquier otro 4xx se toma como un no deliberado y se detiene.
- Revisa Recent deliveries. El panel lista los intentos de las últimas 24 horas, del más reciente al más antiguo, con el código de respuesta y la hora. Cada reintento es su propia fila.
Preguntas
¿Puedo apuntarlo a un servidor de mi propia red?
¿Puedo decirle a mi POS que el pedido fue aceptado?
¿El registro de entregas se guarda para siempre?
Relacionado
¿No lo encuentras? Escribe a [email protected] o chatea con nosotros, de 9 a. m. a 9 p. m.Centro de ayudaPreciosmenuthere.com
