Skip to content

order/updated ​

Overview ​

PropertyValue
Webhook typeorder/updated
Kafka topicorder.updated
DirectionPlatform → Your endpoint

Description ​

Fired whenever an order is modified after creation. This includes changes to order metadata, contact information, line statuses, financial totals, or any other mutable order field.

Trigger Conditions ​

  • An order field is updated via the GraphQL API or internal command
  • An order line status transitions (e.g. PENDING → ACCEPTED)
  • Contacts (buyer, billing, delivery, seller) are updated
  • Order priority, state, or dispatching type changes
  • fulfillmentRequestedAt is set when fulfillment is triggered

Message Envelope ​

json
{
  "header": {
    "organizationId": "org_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "messageId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "webhookId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "type": "order/updated",
    "date": "2024-03-15T11:05:00.000Z"
  },
  "body": { ... }
}

Body — Property Table ​

The body has the same shape as order/created. See order-created.md for the full property table.

Key fields that commonly change in update events:

FieldChange scenario
stateDRAFT → OPENED when order is confirmed; OPENED → COMPLETED when fulfilled
lockedSet to true when fulfillment is in progress
fulfillmentRequestedAtSet when dispatch to warehouse is triggered
lines[].statusTransitions as items are processed
lines[].fulfilledQuantityIncreases as items are shipped
priorityManual escalation by operator

Full JSON Payload Sample ​

json
{
  "header": {
    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "messageId": "e5f6a7b8-c9d0-1234-efab-456789012345",
    "webhookId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
    "type": "order/updated",
    "date": "2024-03-15T11:05:00.000Z"
  },
  "body": {
    "id": "d4e5f6a7-b8c9-0123-defa-234567890123",
    "externalReference": "SHOP-12345",
    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "tpAppId": "e5f6a7b8-c9d0-1234-efab-345678901234",
    "shippingMethodId": "f6a7b8c9-d0e1-2345-fabc-456789012345",
    "shippingMethodName": "Colissimo Domicile",
    "collectPointId": null,
    "collectPointCountry": null,
    "collectPointZipCode": null,
    "type": "B2C",
    "dispatchingType": "AUTOMATIC",
    "total": 85.00,
    "totalTaxInclusive": 102.00,
    "totalShipping": 5.99,
    "totalDiscount": 0.00,
    "totalVat": 17.00,
    "totalInsurance": null,
    "currency": "EUR",
    "invoiceNumber": "INV-2024-001234",
    "invoiceUrl": "https://cdn.example.com/invoices/INV-2024-001234.pdf",
    "gift": false,
    "inventoryPolicy": "DENY",
    "issuedAt": "2024-03-15T09:00:00.000Z",
    "prepareAt": null,
    "receivedAt": "2024-03-15T10:23:45.000Z",
    "fulfillmentRequestedAt": "2024-03-15T11:00:00.000Z",
    "buyer": {
      "id": "a7b8c9d0-e1f2-3456-abcd-567890123456",
      "type": "PERSON",
      "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "fullname": "Alice Dupont",
      "email": "alice.dupont@example.com",
      "address": "12 Rue de la Paix",
      "addressComplement": "Apt 4B",
      "zipcode": "75001",
      "country": "FR",
      "city": "Paris",
      "state": null,
      "phone": "+33612345678",
      "comments": null,
      "metadata": null,
      "taxId": null,
      "eori": null,
      "form": null,
      "capital": null,
      "companyId": null,
      "registration": null
    },
    "billingContact": {
      "id": "a7b8c9d0-e1f2-3456-abcd-567890123456",
      "type": "PERSON",
      "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "fullname": "Alice Dupont",
      "email": "alice.dupont@example.com",
      "address": "12 Rue de la Paix",
      "addressComplement": "Apt 4B",
      "zipcode": "75001",
      "country": "FR",
      "city": "Paris",
      "state": null,
      "phone": "+33612345678",
      "comments": null,
      "metadata": null,
      "taxId": null,
      "eori": null,
      "form": null,
      "capital": null,
      "companyId": null,
      "registration": null
    },
    "deliveryContact": {
      "id": "b8c9d0e1-f2a3-4567-bcde-678901234567",
      "type": "PERSON",
      "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "fullname": "Alice Dupont",
      "email": "alice.dupont@example.com",
      "address": "12 Rue de la Paix",
      "addressComplement": "Apt 4B",
      "zipcode": "75001",
      "country": "FR",
      "city": "Paris",
      "state": null,
      "phone": "+33612345678",
      "comments": null,
      "metadata": null,
      "taxId": null,
      "eori": null,
      "form": null,
      "capital": null,
      "companyId": null,
      "registration": null
    },
    "seller": null,
    "comment": null,
    "meta": null,
    "state": "OPENED",
    "priority": "NORMAL",
    "locked": true,
    "opening": false,
    "sourceType": "CMS",
    "deliveryType": "HOME",
    "lines": [
      {
        "id": "c9d0e1f2-a3b4-5678-cdef-789012345678",
        "orderId": "d4e5f6a7-b8c9-0123-defa-234567890123",
        "status": "IN_PROGRESS",
        "label": "T-Shirt Blanc Taille M",
        "sku": "TSHIRT-WHITE-M",
        "price": 25.00,
        "vatRate": 0.20,
        "total": 50.00,
        "totalTaxInclusive": 60.00,
        "fulfillableQuantity": 2,
        "quantity": 2,
        "fulfilledQuantity": 0,
        "meta": null,
        "locationId": "f0a1b2c3-d4e5-6789-f0ab-123456789012",
        "shippingMethodId": null,
        "number": "1"
      },
      {
        "id": "d0e1f2a3-b4c5-6789-defa-890123456789",
        "orderId": "d4e5f6a7-b8c9-0123-defa-234567890123",
        "status": "IN_PROGRESS",
        "label": "Pantalon Bleu Taille 38",
        "sku": "PANTS-BLUE-38",
        "price": 35.00,
        "vatRate": 0.20,
        "total": 35.00,
        "totalTaxInclusive": 42.00,
        "fulfillableQuantity": 1,
        "quantity": 1,
        "fulfilledQuantity": 0,
        "meta": null,
        "locationId": "f0a1b2c3-d4e5-6789-f0ab-123456789012",
        "shippingMethodId": null,
        "number": "2"
      }
    ]
  }
}

Notes ​

  • order/updated is a full-state snapshot, not a delta. You receive the complete order object on every update.
  • Updates can be frequent during fulfillment processing (multiple line status transitions may each trigger an update).
  • The locked flag is true while a delivery order is being processed; no modifications should be attempted while locked.
  • When dispatchingType is MANUAL, fulfillmentRequestedAt is only set when an operator explicitly triggers fulfillment.

HappyColis API Documentation