Skip to content

delivery_order/fulfillment_accepted

Overview

PropertyValue
Webhook typedelivery_order/fulfillment_accepted
Kafka topicdelivery-order.fulfillment-accepted
DirectionPlatform → Your endpoint

Description

Fired when a warehouse or fulfillment service explicitly accepts the delivery order for processing. This event confirms that the warehouse has received, validated, and committed to fulfilling the delivery order.

Trigger Conditions

  • The warehouse integration layer sends a FULFILLMENT_ACCEPTED acknowledgement
  • An operator manually confirms fulfillment acceptance via the GraphQL API
  • The FULFILLMENT_ACCEPTED fulfillment event is recorded on the delivery order
  • Typically occurs after delivery_order/pending and before delivery_order/opened

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/fulfillment_accepted",
    "date": "2024-03-15T11:00:00.000Z"
  },
  "body": { ... }
}

Body — Property Table

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

When this event fires, the events array will contain at minimum:

Event typeLevelDescription
FULFILLMENT_ACCEPTEDNORMALThe warehouse acceptance confirmation

Full JSON Payload Sample

json
{
  "header": {
    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "messageId": "d0e1f2a3-b4c5-6789-defa-456789012345",
    "webhookId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
    "type": "delivery_order/fulfillment_accepted",
    "date": "2024-03-15T11:00: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": null,
    "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": [
      {
        "id": "f6a7b8c9-d0e1-2345-fabc-012345678901",
        "deliveryOrderId": "e5f6a7b8-c9d0-1234-efab-890123456789",
        "type": "FULFILLMENT_REQUESTED",
        "level": "NORMAL",
        "message": "Fulfillment requested by dispatcher",
        "date": "2024-03-15T10:35:00.000Z"
      },
      {
        "id": "a7b8c9d0-e1f2-3456-abcd-567890123456",
        "deliveryOrderId": "e5f6a7b8-c9d0-1234-efab-890123456789",
        "type": "FULFILLMENT_ACCEPTED",
        "level": "NORMAL",
        "message": "Order accepted by warehouse WH-PARIS-01",
        "date": "2024-03-15T11:00:00.000Z"
      }
    ],
    "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": "ACCEPTED",
        "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
      }
    ]
  }
}

Notes

  • This event is fired in addition to delivery_order/updated. Both are emitted when acceptance is recorded.
  • delivery_order/fulfillment_accepted is distinct from delivery_order/opened — acceptance confirms the warehouse will fulfill; opened confirms active processing has started.
  • If a warehouse rejects the delivery order instead, no fulfillment_accepted event fires. Monitor for FULFILLMENT_REJECTED in the events array of delivery_order/updated.
  • Line statuses typically transition to ACCEPTED when the warehouse accepts the delivery order.

HappyColis API Documentation