delivery_order/fulfillment_accepted
Overview
| Property | Value |
|---|---|
| Webhook type | delivery_order/fulfillment_accepted |
| Kafka topic | delivery-order.fulfillment-accepted |
| Direction | Platform → 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_ACCEPTEDacknowledgement - An operator manually confirms fulfillment acceptance via the GraphQL API
- The
FULFILLMENT_ACCEPTEDfulfillment event is recorded on the delivery order - Typically occurs after
delivery_order/pendingand beforedelivery_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 type | Level | Description |
|---|---|---|
FULFILLMENT_ACCEPTED | NORMAL | The 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
}
]
}
}Related Events
delivery_order/pending— precedes acceptancedelivery_order/updated— also fired when acceptance is recordeddelivery_order/opened— typically follows acceptancedelivery_order/completed— final state after fulfillment
Notes
- This event is fired in addition to
delivery_order/updated. Both are emitted when acceptance is recorded. delivery_order/fulfillment_acceptedis distinct fromdelivery_order/opened— acceptance confirms the warehouse will fulfill;openedconfirms active processing has started.- If a warehouse rejects the delivery order instead, no
fulfillment_acceptedevent fires. Monitor forFULFILLMENT_REJECTEDin theeventsarray ofdelivery_order/updated. - Line statuses typically transition to
ACCEPTEDwhen the warehouse accepts the delivery order.