Ir al contenido

Orden entregada

Identificador del evento: order.delivered

IDPOS le avisa de que una orden pasó al estado «entregada». Es un aviso breve: trae un resumen de la orden con sus importes, cliente, líneas, pagos y tienda.

Cuando una orden pasa al estado «entregada».

  • Marcar el pedido como completado en su sistema.
  • Cerrar el seguimiento del pedido en su panel o en su ERP.
  • Guardar el resumen final de la orden, con sus importes y sus pagos.
  1. Verifique la firma.

    Calcule el HMAC con el cuerpo crudo y compárelo con X-Webhook-Signature. Si no coincide, no procese el evento. Los pasos están en Autenticación y firma.

  2. Responda 2xx de inmediato.

    Guarde el evento en una cola y responda sin esperar a procesarlo. Si tarda más que el tiempo de espera, IDPOS lo trata como fallido y lo reintenta.

  3. Descarte los duplicados.

    Si ya procesó ese event_id del cuerpo, ya verificado, no lo procese otra vez. Como segunda clave use event_type junto con data.id (por ejemplo, order.delivered y el id de la orden).

  4. Procese el evento en segundo plano.

    Marque la orden como entregada en su sistema usando data.id. Si todavía no conoce la orden porque Orden aceptada no llegó, guárdela igualmente: este evento solo trae un resumen.

order.delivered.json
{
"event_id": "01J9ZK5R2W8P3Y6N7V9S4C1D0E",
"event_type": "order.delivered",
"timestamp": "2026-10-12T20:10:00Z",
"api_version": "v1",
"data": {
"id": "9b6f0c3e-1a2d-4c55-8f01-3d2a7e6b9a10",
"code": "ORD-7F3K2",
"correlative": 1234,
"reference": "OV-001234",
"status": "delivered",
"created_at": "2026-10-12T19:30:00Z",
"sold_at": "2026-10-12T19:30:00Z",
"paid_at": "2026-10-12T19:45:00Z",
"currency": "PEN",
"subtotal_amount": "57.00",
"discount_amount": "6.00",
"global_discount_amount": "0.00",
"total_amount": "63.00",
"customer": {
"id": "e2f4a6c8-1b3d-4f57-9a0c-6d8e0f2a4b61",
"identification_type": "DNI",
"identification_value": "12345678",
"name": "CLIENTE EJEMPLO",
"email": "cliente@example.com",
"phone": "900000000"
},
"products": [
{
"id": "3d5f7a9b-2c4e-4a68-8b0d-1e3f5a7c9d20",
"sku": "HAM-001",
"external_id": "100234",
"name": "Hamburguesa Clásica",
"quantity": 2,
"unit_price": "30.00",
"subtotal_amount": "60.00",
"discount_amount": "6.00",
"total_amount": "54.00"
}
],
"payments": [
{
"id": "5f7b9d1e-4a6c-4c8a-8d2f-3e5a7c9b1d42",
"status": "approved",
"method_type": "card",
"method_name": "Visa",
"amount": "57.00",
"tip": "0.00",
"reference_number": "123456",
"approval_code": "A1B2C3",
"first_six_digits": "411111",
"last_four_digits": "1111",
"paid_at": "2026-10-12T19:45:00Z"
}
],
"store": {
"id": "6a8c0e2f-5b7d-4d9b-9e3a-4f6b8d0c2e53",
"name": "Tienda Centro",
"external_id": "T01"
}
}
}

Cómo leer las tablas: el tipo aparece debajo del nombre del campo y «nulo» indica que puede venir como null. Los demás términos están en la guía de lectura de campos.

CampoDescripción
id
string (UUID)
Identificador de la orden
code
string · nulo
Código de la orden
correlative
entero · nulo
Número correlativo
reference
string · nulo
Referencia de la orden
status
string
Estado de la orden
created_at
string (fecha) · nulo
Fecha de creación
sold_at
string (fecha) · nulo
Fecha y hora de la venta
paid_at
string (fecha) · nulo
Fecha y hora del pago
currency
string
Nombre de la moneda
subtotal_amount
string (2 dec)
Monto de la orden con los descuentos de línea y antes del descuento global: total_amount menos discount_amount
discount_amount
string (2 dec)
Suma de los descuentos de línea. No incluye el descuento global
global_discount_amount
string (2 dec)
Descuento aplicado a la orden completa. Se resta de subtotal_amount
total_amount
string (2 dec)
Monto de la orden antes de descuentos
payments
lista
Pagos de la orden, con los mismos campos que payments[] de Orden aceptada, excepto method_id, que este evento no envía
store
objeto
Tienda (id, name, external_id)
CampoDescripción
customer
objeto · nulo
Cliente
customer.id
string (UUID) · nulo
Identificador del cliente
customer.identification_type
string · nulo
Tipo de documento de identidad
customer.identification_value
string · nulo
Número de documento de identidad
customer.name
string · nulo
Nombre del cliente
customer.email
string · nulo
Correo electrónico del cliente
customer.phone
string · nulo
Teléfono del cliente
CampoDescripción
products
lista
Líneas de la orden
products[].id
string (UUID)
Identificador de la línea
products[].sku
string · nulo
Código del ítem
products[].external_id
string · nulo
Código externo del producto
products[].name
string
Nombre del producto
products[].quantity
número
Cantidad
products[].unit_price
string (2 dec)
Precio unitario
products[].subtotal_amount
string (2 dec)
Monto de la línea antes de su descuento
products[].discount_amount
string (2 dec)
Descuento de la línea
products[].total_amount
string (2 dec)
Monto de la línea con su descuento: subtotal_amount menos discount_amount