Skip to content

delivery_order/created ​

Overview ​

PropertyValue
Webhook typedelivery_order/created
Kafka topicdelivery-order.created
DirectionPlatform → Your endpoint

Description ​

Fired when a delivery order (also called a fulfillment order) is created. A delivery order groups one or more order lines for fulfillment at a specific warehouse location. A single customer order can generate multiple delivery orders (e.g. lines fulfilled from different locations).

Trigger Conditions ​

  • The dispatching engine creates a delivery order from one or more order lines
  • An operator manually creates a delivery order via the GraphQL API
  • The fulfillmentType determines whether fulfillment is handled internally (INTERNAL) or by an external warehouse (WAREHOUSE)

Message Envelope ​

json
{
  "header": {
    "organizationId": "org_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "messageId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "webhookId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "type": "delivery_order/created",
    "date": "2024-03-15T10:30:00.000Z"
  },
  "body": { ... }
}

Body — Property Table ​

DeliveryOrder Object ​

FieldTypeNullableDescription
idstring (uuid)NoUnique delivery order identifier
orderIdsstring[] (uuid[])YesIDs of the source orders (one DO can aggregate multiple orders)
locationIdstring (uuid)YesWarehouse/location assigned to fulfill this delivery order
organizationIdstring (uuid)NoOrganization that owns this delivery order
shippingMethodIdstring (uuid)YesAssigned shipping method
shippingMethodNamestringYesHuman-readable shipping method name
collectPointIdstringYesPickup point ID (for PICKUP delivery type)
collectPointCountrystringYesCountry of the pickup point
collectPointZipCodestringYesZIP code of the pickup point
typeenumNoOrder type: B2B or B2C
priorityenumNoPriority: LOW, NORMAL, or HIGH
issuedAtstring (ISO 8601)NoTimestamp when the original order was placed
linesDeliveryOrderLine[]NoArray of delivery order lines (see below)
eventsFulfillmentEvent[]NoArray of fulfillment events (see below)
deliveryAddressDeliveryAddressYesDelivery address (see below)
statusenumNoCurrent status: DRAFT, PENDING, OPENED, or COMPLETED
fulfillmentTypeenumNoFulfillment type: INTERNAL or WAREHOUSE
totalfloatNoTotal amount (tax-exclusive)
totalTaxInclusivefloatNoTotal amount (tax-inclusive)
totalShippingfloatNoShipping cost
totalDiscountfloatYesDiscount amount
totalVatfloatNoVAT amount
totalInsurancefloatYesInsurance amount
currencystringNoISO 4217 currency code, default EUR
invoiceNumberstringNoInvoice reference number
invoiceUrlstringYesURL to the invoice document
orderNumberstringYesHuman-readable order number
giftbooleanYesWhether this is a gift delivery
inventoryPolicyenumNoInventory policy: DENY or CONTINUE, default DENY
createdAtstring (ISO 8601)NoTimestamp when the delivery order was created
prepareAtstring (ISO 8601)YesScheduled preparation date
commentstringYesFree-text comment
metaobjectYesArbitrary metadata (JSON)
incotermsenumYesIncoterms for international shipments: DDP or DAP
virtualbooleanNoWhether this is a virtual delivery order (no physical goods)

DeliveryOrderLine Object ​

FieldTypeNullableDescription
idstring (uuid)NoUnique line identifier
deliveryOrderIdstring (uuid)NoParent delivery order ID
orderLineIdstring (uuid)YesSource order line ID (if linked)
stockReferenceIdstring (uuid)NoStock reference (SKU) being fulfilled
statusenumNoLine status: NEW, AWAITING_STOCK, PENDING, CANCELED, ACCEPTED, IN_PROGRESS, REJECTED, FULFILLED, PARTIALLY_FULFILLED, DELIVERED, ERRORED
labelstringNoProduct label
skustringNoStock keeping unit
quantityintegerNoOrdered quantity
pricefloatNoUnit price (tax-exclusive)
vatRatefloatNoVAT rate as decimal
totalfloatNoLine total (tax-exclusive)
totalTaxInclusivefloatNoLine total (tax-inclusive)
metaobjectYesArbitrary metadata (JSON)
fulfilledQuantityintegerNoQuantity already fulfilled, default 0

FulfillmentEvent Object ​

FieldTypeNullableDescription
idstring (uuid)NoUnique event identifier
deliveryOrderIdstring (uuid)NoParent delivery order ID
typeenumNoEvent type: FULFILLMENT_ACCEPTED, FULFILLMENT_REJECTED, INTEGRATED, INTEGRATION_ERROR, INSUFFICIENT_STOCK, FULFILLMENT_IN_PROGRESS, PACKED, SHIPPED, CANCELED, CANCEL_REJECTED, HOLDED, RESUMED, COMPLETED, FULFILLMENT_REQUESTED, UPDATED, UPDATE_REJECTED, UNPROCESSABLE
levelenumNoSeverity: NORMAL, WARNING, or ERROR
messagestringYesHuman-readable event description
datestring (ISO 8601)NoWhen this event occurred

DeliveryAddress Object ​

FieldTypeNullableDescription
idstring (uuid)NoUnique address identifier
typeenumNoContact type: PERSON or COMPANY
deliveryOrderIdstring (uuid)NoParent delivery order ID
fullnamestringYesFull name
emailstringNoEmail address
addressstringYesStreet address line 1
addressComplementstringYesStreet address line 2
zipcodestringYesPostal/ZIP code
countrystringYesISO 3166-1 alpha-2 country code
citystringYesCity name
statestringYesState/region
phonestringYesPhone number
commentsstringYesFree-text comment
metadataobjectYesArbitrary metadata (JSON)
taxIdstringYesTax identifier
eoristringYesEORI number
formstringYesLegal form
capitalstringYesShare capital
companyIdstringYesCompany registration number
registrationstringYesTrade register number

Full JSON Payload Sample ​

json
{
  "header": {
    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "messageId": "b2c3d4e5-f6a7-8901-bcde-789012345678",
    "webhookId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
    "type": "delivery_order/created",
    "date": "2024-03-15T10:30:00.000Z"
  },
  "body": {
    "id": "e5f6a7b8-c9d0-1234-efab-890123456789",
    "orderIds": ["d4e5f6a7-b8c9-0123-defa-234567890123"],
    "locationId": "f0a1b2c3-d4e5-6789-f0ab-123456789012",
    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "shippingMethodId": "f6a7b8c9-d0e1-2345-fabc-456789012345",
    "shippingMethodName": "Colissimo Domicile",
    "collectPointId": null,
    "collectPointCountry": null,
    "collectPointZipCode": null,
    "type": "B2C",
    "priority": "NORMAL",
    "issuedAt": "2024-03-15T09:00:00.000Z",
    "status": "PENDING",
    "fulfillmentType": "WAREHOUSE",
    "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",
    "orderNumber": "ORD-2024-001234",
    "gift": false,
    "inventoryPolicy": "DENY",
    "createdAt": "2024-03-15T10:30:00.000Z",
    "prepareAt": null,
    "comment": null,
    "meta": null,
    "incoterms": null,
    "virtual": false,
    "deliveryAddress": {
      "id": "a1b2c3d4-e5f6-7890-abcd-901234567890",
      "type": "PERSON",
      "deliveryOrderId": "e5f6a7b8-c9d0-1234-efab-890123456789",
      "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
    },
    "events": [],
    "lines": [
      {
        "id": "b2c3d4e5-f6a7-8901-bcde-012345678901",
        "deliveryOrderId": "e5f6a7b8-c9d0-1234-efab-890123456789",
        "orderLineId": "c9d0e1f2-a3b4-5678-cdef-789012345678",
        "stockReferenceId": "d0e1f2a3-b4c5-6789-defa-123456789012",
        "status": "NEW",
        "label": "T-Shirt Blanc Taille M",
        "sku": "TSHIRT-WHITE-M",
        "quantity": 2,
        "price": 25.00,
        "vatRate": 0.20,
        "total": 50.00,
        "totalTaxInclusive": 60.00,
        "meta": null,
        "fulfilledQuantity": 0
      },
      {
        "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
        "deliveryOrderId": "e5f6a7b8-c9d0-1234-efab-890123456789",
        "orderLineId": "d0e1f2a3-b4c5-6789-defa-890123456789",
        "stockReferenceId": "e1f2a3b4-c5d6-7890-efab-234567890123",
        "status": "NEW",
        "label": "Pantalon Bleu Taille 38",
        "sku": "PANTS-BLUE-38",
        "quantity": 1,
        "price": 35.00,
        "vatRate": 0.20,
        "total": 35.00,
        "totalTaxInclusive": 42.00,
        "meta": null,
        "fulfilledQuantity": 0
      }
    ]
  }
}

Notes ​

  • A single customer order (order/created) may generate one or more delivery orders depending on the dispatching rules and available warehouse locations.
  • The events array is empty at creation time; it grows as fulfillment progresses.
  • The statuses and logs fields on the entity are excluded from the webhook payload (@Exclude()).
  • virtual: true indicates a logical grouping with no physical goods shipment (used for digital products or services).
  • For B2B orders, incoterms (DDP or DAP) defines the customs responsibility split between buyer and seller.

HappyColis API Documentation