Connecting your warehouse to ThroughlineOps
A guide for warehouses and 3PLs. Works with any provider — no specific platform required.
When a customer sends an order to your warehouse, ThroughlineOps POSTs a JSON payload to an HTTPS endpoint you provide. Every line item carries the fulfilment SKU (your SKU) plus the original customer SKU for reference.
{
"order_ref": "TL-2041",
"customer_po_number": "PO-88231",
"customer_name": "Boots UK Ltd",
"delivery_address": "1 Thane Road, Nottingham, NG90 1BS",
"notes": null,
"line_items": [
{
"line_ref": "TL-2041-1",
"fulfilment_sku": "WH-GLOW-SERUM-30",
"customer_sku": "BOOTS-SERUM-001",
"product_name": "Glow Serum 30ml",
"quantity": 24
},
{
"line_ref": "TL-2041-2",
"fulfilment_sku": "WH-GLOW-CREAM-50",
"customer_sku": "BOOTS-CREAM-002",
"product_name": "Glow Cream 50ml",
"quantity": 12
}
]
}If you can't accept API orders, ThroughlineOps also supports receiving orders by email (with a CSV attachment) or a manual CSV export the customer uploads to you — no integration work needed on your side.
Returning identifiers helps match dispatch updates later. All fields are optional — common alternative field names are auto-detected.
{
"warehouse_order_id": "WH-100231",
"warehouse_reference": "REF-100231",
"status": "accepted"
}| Field | Maps to | Required? |
|---|---|---|
| warehouse_order_id | Warehouse order ID | Recommended |
| warehouse_reference | Warehouse reference | Recommended |
| status | Warehouse status | Optional |
| dispatch_number | Dispatch number | Optional |
| tracking_number | Tracking number | Optional |
| carrier | Carrier | Optional |
When an order ships, send a POST to the customer's ThroughlineOps webhook with the dispatch details. Match by order_ref or any warehouse reference you returned earlier.
POST https://<your-throughlineops-domain>/api/warehouse/webhook
x-throughline-webhook-secret: <shared secret>
Content-Type: application/json
{
"order_ref": "TL-2041",
"dispatch_number": "DSP-44120",
"tracking_number": "JD0002233445566",
"carrier": "DPD",
"status": "dispatched",
"dispatched_at": "2026-06-12T14:30:00Z"
}A status of dispatched, despatched, complete or deliveredmarks the order as dispatched. Common alternative field names (e.g. courier_name, tracking_reference) are auto-detected. If you can't send webhooks, customers can enter dispatch details manually — nothing breaks.
Always HTTPS. Secrets are never logged.
A per-connection field-mapping setting (order ref, PO, line items, SKU, quantity, dispatch number, tracking, carrier, status) so your exact field names work without code changes. Until then, the auto-detected aliases above cover most APIs.
Want to be supported out of the box?
Customers can request your 3PL from inside ThroughlineOps (Connections → Custom Warehouse API → “Can't find your 3PL?”), or email us your API docs at hello@throughlineop.co.uk.