FIFO Webhook
Export orders, returns, and credit payments via HTTP POST with guaranteed ordering and automatic retries.
Overview
The FifoWebhook connector sends order data to an HTTP endpoint, like the regular Webhook export, but with delivery guarantees the regular export does not provide:
- Ordered delivery — each FifoWebhook connector has its own delivery queue. Messages are delivered one at a time, in the order they were exported.
- Guaranteed delivery — failed deliveries are retried with an escalating delay until they succeed. While a message is failing, later messages wait in the queue, so your endpoint never receives updates out of order.
Use it when the receiving system depends on processing order updates in sequence, or must not miss updates while it is down.
Unlike the regular Webhook export, which posts the bare order object, the FIFO webhook posts an envelope that can also carry a shipment, a return, or a credited payment — see Request Format.
Setup
Step 1: Create the connector
Create a connector in Configuration → Advanced Settings → Connectors:
| Property | Required | Description |
|---|---|---|
Name | Yes | Must be "FifoWebhook" |
ConnectorId | Yes | Unique ID for this connector. It identifies the delivery queue and appears as WebhookId in every delivery. |
WebhookEndpoint | Yes | URL that receives the HTTP POST (set as a property) |
Properties with KeyGroup: "RequestHeaders" | No | Sent as HTTP headers on every delivery — use for authentication |
Request headers must be configured on the connector, not on the workflow step. Allow a few minutes after creating a new connector before deliveries start.
Step 2: Export orders and returns
Add an Export Order workflow step (or the return-side export step) that references the connector:
The step supports the same options as any Export Order step (StopOnError, ErrorStatus, RunAfterOrderIsSaved).
If you have multiple FifoWebhook connectors, always set ConnectorId on the workflow step. Each connector has its own queue and endpoint, and the ConnectorId determines which one receives the export.
Step 3: Export credit payments (optional)
To also receive a webhook whenever a payment is credited from Omnium, add ICreditPaymentExporter to the connector's Implementations:
No workflow step is needed — the export triggers when the payment is credited. The delivery contains the full order plus a top-level Payment object identifying the credited payment:
The payment also appears in the order's own payment list — the top-level Payment tells you which payment the event is about.
Request Format
Omnium sends a POST request. Order is always included; fields that are not relevant for the event are omitted from the JSON. A typical order export:
| Field | Present | Description |
|---|---|---|
Order | Always | The full order object |
Shipment | Shipment exports | The shipment that triggered the export |
ReturnOrderForm | Return exports | The return that triggered the export |
Payment | Credit payment exports | The credited payment |
WebhookId | Always | The connector's ConnectorId |
TenantId | Always | Your tenant ID |
Determine the event type from which of the optional objects is present: a delivery with ReturnOrderForm is a return, with Payment a credited payment, with Shipment a shipment update, and with none of them a plain order update.
For very large orders the message also contains "IsMinified": true together with OrderId and, when relevant, ShipmentId, ReturnOrderFormId, and PaymentId. The Order object is still included — it is re-fetched just before delivery, so it reflects the latest state of the order.
Delivery and Retries
- Any
2xxresponse counts as delivered. Respond quickly and process asynchronously if needed — see securing your webhook endpoint. - On failure, the delivery is retried with an escalating delay, starting at 1 second and growing to 60 minutes between attempts, until it succeeds.
- Because delivery is ordered, later messages wait while a message is failing. A consistently failing endpoint blocks its queue — deliveries resume in order once the endpoint recovers.
- Deliveries and failures are logged as order events, and the state of each FIFO webhook queue can be inspected in the Omnium queue viewer.
Related
- Export Order — the workflow step that triggers the export, and the regular (unordered) Webhook export type
- Webhook Workflow Step — two-way webhook that can update the order from the response
- Events & Webhooks — lightweight event notifications as an alternative to full order exports
