Connecting your warehouse to ThroughlineOps

A guide for warehouses and 3PLs. Works with any provider — no specific platform required.

What ThroughlineOps sends you

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.

What your response can include (optional)

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"
}
FieldMaps toRequired?
warehouse_order_idWarehouse order IDRecommended
warehouse_referenceWarehouse referenceRecommended
statusWarehouse statusOptional
dispatch_numberDispatch numberOptional
tracking_numberTracking numberOptional
carrierCarrierOptional

Dispatch & tracking webhook

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.

Authentication options

  • Orders we send you: Bearer token or API-key header — whatever your API expects.
  • Webhooks you send us: a shared secret in the x-throughline-webhook-secret header, provided by the customer.

Always HTTPS. Secrets are never logged.

Testing the integration

  • 1. The customer configures your endpoint in ThroughlineOps (Connections → Custom Warehouse API).
  • 2. They run Test connection — a health check against your test endpoint.
  • 3. They run Send test order — a harmless payload with order ref TL-TEST-ORDER, clearly marked as a test. Please don't fulfil it.
  • 4. You send a test webhook for TL-TEST-ORDER to verify dispatch updates flow back.

Coming soon: field mapping

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.