Tendering the shipment is only the first half. If the signature never comes back, your WMS-TMS integration is decoration. That's the sentence I wish someone had nailed to the wall of every integration project I've watched blow up over twenty years in this business.

It cuts two ways. Done right, the loop saves labor and kills disputes — customer service finally stops calling carriers to ask where the freight is. Done wrong, the integration becomes your biggest chaos generator, and it generates chaos in real time: wrong, fast, and at scale.

I've seen too many companies treat this as a pure IT project: sign the statement of work, connect a few endpoints, sign the acceptance form, declare victory. Wrong. This is a business project with an IT component. Where does the data come from, who vouches that it's right, and who owns it when it breaks — if those three questions aren't answered, the cleanest API on earth won't save you.

Two holes I've watched swallow real money

The first: the POD that never came home, and the invoices that never went out.

Fall of 2023. A 3PL outside Ontario, California — a couple hundred thousand square feet, two to three thousand shipments a day. Point-to-point integration: the WMS generated the shipment and pushed it straight to the TMS, which tendered the load, tracked it, and reported back. The architecture diagram looked beautiful.

The break was at delivery. The driver dropped the freight and photographed the signed delivery receipt — but the photo lived only inside the carrier's own driver app. It never reached the TMS, and it never reached the WMS. The consignee had signed weeks earlier and put the goods away. In the 3PL's systems, those shipments sat "in transit" forever.

"In transit" means exactly one thing to a 3PL: you can't bill it. Their invoices were cut against confirmed, signed pallets. No POD in the system, no invoice out the door. Within a month, over $400,000 in receivables was stuck inside the system, and cash flow started to choke. Worse — when their biggest account asked for delivery proof on a handful of shipments, customer service had to go begging the carrier for photos, one by one. Two months later, that account, twenty-some thousand shipments a year, didn't renew.

When the signature doesn't come back, you don't lose data. You lose money and customers.

Loading dock operations

The second: a mistranslated status code, and inventory paid the price.

Spring 2024. A home-goods e-commerce DC outside Dallas, three to four thousand orders a day. They were exchanging EDI 204s and 214s with a few LTL carriers, feeding status through the TMS back into the WMS. The land mine was buried in the middleware's mapping table: somebody had taken a shortcut and mapped the carrier's "D1" code straight to "delivered." In that carrier's dictionary, D1 meant nothing more than "scanned at the destination terminal" — the freight was still sitting at the terminal, undelivered.

The WMS did the reasonable thing with a delivered flag: it released the reserved inventory, cleared those units out of in-transit hold, and made them available to sell. Two hundred-plus orders were still parked at the carrier's terminal — but the system said the stock was there, and the storefront kept taking orders. Oversold. Cancellations, address changes, expedited re-ships: forty to fifty thousand dollars gone in a week, plus a stack of one-star reviews.

Cut it both ways: technically, every interface was up and every message arrived. Commercially, one mistranslated code turned the whole loop into a lie. A loop only closes on correct data. The faster you integrate wrong data, the faster the damage spreads.

Three ways to connect, priced honestly

There are really only three routes, and I'll price them for a mid-size operation running about two thousand shipments a day:

Route Upfront cost Ongoing cost Biggest risk
Point-to-point API 2–4 weeks of dev per carrier Every carrier interface change means rework; the web gets unmaintainable Mapping errors, inconsistent status definitions
Middleware / integration platform License or build, 3–6 months Mappings managed in one place, relatively painless Heavy upfront spend — painful for small operators
Carrier portal + manual entry Near zero One or two people a day exporting, importing, reconciling Humans. Error rates I've seen hit 8% — one in twelve wrong — and peak season breaks it entirely

No silver bullet. Low volume, stable carrier list — point-to-point is the cheapest honest answer. More than five carriers and the list keeps changing — you'll pay for middleware sooner or later; it's pay now or pay in firefighting. Manual entry is a temporary fix, full stop. Past five hundred shipments a day, forget it.

Where the loop actually closes: four stages, none optional

A real closed loop has four stages: tender the shipment, get status back in transit, confirm delivery, reconcile the freight bill. When something breaks, walk them in order. My checklist:

Tendering — check three things. Do the WMS shipment number and the TMS shipment number map one-to-one? Plenty of warehouses run two numbering schemes and then wonder why nothing matches. Who owns the address master data? If the WMS address and the TMS address disagree, the carrier delivers to the wrong one. And is anyone maintaining the carrier-code mapping table? New carrier onboarded, table never updated — shipments go out, statuses never come back.

Status updates — check two things. Has the status-code dictionary been walked through with every single carrier, line by line? That's the Dallas hole. And is the feed real-time or batch? Real-time isn't mandatory, but the delay has to be predictable. The worst setup I've seen was "advertised real-time, actually random" — customer service couldn't promise anyone anything.

Delivery confirmation — did the POD actually arrive? Photo, e-signature, timestamp: you need at least two of the three. 3PLs bill against this. Private DCs close orders against this.

Freight reconciliation — can the freight invoice reconcile against the system automatically? Actual freight versus quoted, accessorials — fuel, extended area, address correction — with line-item detail. If it can't, month-end is a swamp.

One contrarian note to close: for nine out of ten of these projects, step one isn't the API. It's unifying master data first. Customer addresses, SKUs, carrier codes, warehouse codes — both systems must speak the same four. I've seen integrations where the endpoints took three days and the master data took three months. Get the order wrong and the rework is guaranteed.

Cut it both ways: engineers love starting with the interface because the progress is visible. But commercially, clean master data first makes the interface the easy part. I'd rather have correct data fifteen minutes late than dirty data in real time — real-time dirty data just means your mistakes propagate at the speed of light.

So back to the opening line: tendering the shipment is the first half. Don't judge an integration by how pretty the API docs are. Judge it by three numbers: POD return rate, in-transit status latency, and month-end reconciliation variance. When those three look good, the loop is actually closed.

Otherwise? You've spent six figures on an integration and your CSRs are still calling carriers asking "where's my freight" — and at that point, what exactly did you pay for?

By Lao Mi, Supply Chain Veteran (20 yrs)