← All insights
Field guide 10 min read

Why do orders break between systems? A lead-to-cash process guide

A practical guide to connecting the records and decisions behind an order, from the first enquiry to the last payment.

  1. 01Enquiry
  2. 02Order
  3. 03Supply
  4. 04Dispatch
  5. 05Cash

Sales has won the order. The warehouse can ship only part of it. Finance has billed the whole thing. The customer is asking for a delivery date that none of those systems agrees on. This is where a lead-to-cash process breaks: at the handoffs. Here is how we would connect them.

How can one order have five different answers?

Consider an illustrative wholesale order for 120 units. A buyer accepts a negotiated price and asks for delivery this week. The sales system marks the deal won. The commerce portal shows an order for 120. Operations finds 80 available now and 40 awaiting replenishment. The warehouse ships 80. Finance imports the original order and invoices 120. Every team has a plausible record; the business still cannot answer a simple question: what has been promised, shipped, billed and paid?

The failure is in the transitions. A lead-to-cash process covers the path from enquiry and quote through accepted order, supply, dispatch, invoice and settlement. Order-to-cash begins at the accepted order. In either case, the useful design question is the same: which system is allowed to make each decision, and what must the next system receive?

One order / five handoffs120 units accepted
  1. 01
    Sales or B2B commerceBuyer and agreed terms

    Customer ID, accepted price, quantity, tax context, delivery and payment terms

  2. 02
    ERP or inventory systemSupply and promise date

    Reserved quantity, shortage, revised promise and reason

  3. 03
    Warehouse or fulfilment partnerPhysical dispatch

    Shipped quantity by order line, shipment ID and tracking

  4. 04
    Accounting systemInvoice and credit

    Invoice or credit ID, amount, source order and shipment references

  5. 05
    Accounting or payment systemReceipt and settlement

    Allocated payment, relevant fees and remaining balance

Illustrative ownership map for the 120-unit order. Each node names the decision owner and the update sent onward.

These are roles, not a prescribed software stack. A smaller business may keep several roles in one product. A manufacturer may have separate commerce, ERP, warehouse and accounting systems. We would draw the boundary around each decision before choosing how to move data across it.

What must cross when a quote becomes an order?

For a trade buyer, the first connection may be from an enquiry or customer account to a quote. Match the buyer to a company record; carry the requested items, unit of measure and delivery address; then let sales negotiate. When the buyer accepts, freeze the commercial facts as an order revision. Operations should receive the accepted terms, not the latest editable quote or whatever the catalogue price happens to be tomorrow. A direct checkout can enter at this same accepted-order point without the quoting branch.

The handoff needs stable IDs for the customer, order and each line; the accepted revision; SKU and unit; quantity; currency; net price and discount; approved tax treatment; ship-to address; requested date; and payment terms. We would map those fields to the receiving system, validate missing or unknown values before creating work, and store both systems’ IDs together. That mapping lets a later shipment or credit find the exact source line.

If sales changes 120 units to 110 after acceptance, we do not send a second new order. We send a controlled amendment against the existing order and revision, then check whether 10 units have already been reserved, picked or made. Changes after physical work starts need an explicit approval and reversal path.

Who decides what can actually be promised?

The commerce or sales view should not independently subtract stock while the ERP or warehouse does the same calculation. Pick one owner for available-to-promise quantity. It may start with physical stock, then subtract reservations and a safety allowance; incoming stock should count only under an agreed date and confidence rule. Publish that result to sales channels with its location and timestamp so people can see how fresh the promise is.

In our example, the supply system reserves 80 units and marks 40 short. The response to sales is not just “backordered.” It identifies the line, quantity, location, expected replenishment date and whether a split shipment is allowed. Sales can then confirm the changed promise with the buyer. For made-to-order goods, that same shortage branch may create purchasing demand or a work order from the agreed product configuration and bill of materials. The work order must retain the originating sales line so a material delay can update the customer promise.

We would test the last unit sold through two channels, an order cancelled after reservation and a component shortage discovered after production starts. Those cases expose whether the system releases stock once, oversells, or leaves a customer promise unchanged while the floor knows it cannot be met.

How does a partial shipment become a trustworthy customer update?

The fulfilment instruction contains the operational order ID, line IDs, quantities to pick, location, service level and any packing rules. The warehouse acknowledges what it accepted. On dispatch it returns a shipment ID, each shipped line and quantity, carrier and tracking reference. The order remains open for 40 units. Sending a single “fulfilled” flag for the whole order would erase that fact.

This line-level relationship matters to invoicing as well as customer support. The agreed billing rule might invoice the 80 dispatched units now and the remaining 40 later; another business may invoice at a different milestone. The integration records the actual shipment and lets finance apply the approved rule. The second shipment must consume only the outstanding 40 units.

A failed label, carrier rejection or returned parcel is a new event with an owner, not a reason to overwrite the original dispatch. Support needs to see what happened, what remains open and the next promised action.

Why does a paid order still fail reconciliation?

The order, shipment, invoice and payment are separate records. In the 120-unit example, finance may issue an invoice for 80 shipped units. It needs the original order and shipment references, the precise line quantities and approved prices, and a unique invoice reference returned to operations. When the final 40 ship, the next invoice must use the remaining quantity rather than replay the full order.

A B2B customer may pay two invoices with one remittance or pay part of an invoice. A card processor may settle several orders in one payout after fees and refunds. We would keep gross sale, fee, refund, payout and bank receipt distinguishable, then match the payment to the right invoices under finance’s rules. “Payment received” is not the same as “every invoice allocated and the bank amount reconciled.” Partial receipts stay open against the invoice until finance allocates them under the business’s accounting policy.

If accounting rejects a customer code or tax mapping, the order should appear in a finance exception queue with its source ID and error. Correct the mapping and retry the same posting safely. A silent failure or duplicate invoice is more expensive than a visible hold.

What keeps the handoffs working after launch?

An event or webhook is a signal to process a change, not proof that every downstream system is already correct. We would receive it, verify the sender, persist the event, acknowledge it quickly and process it from a queue. The worker validates the data, maps it to the destination record and records the result. If the destination is unavailable, it retries with a delay and eventually assigns the failure to an owner.

Every create operation gets a stable source key, such as the sales system plus its order ID. A retry looks up that key before creating anything, so the same delivery cannot make two sales orders or invoices. Each update carries a revision or timestamp; if an older update arrives after a newer one, the worker checks the current source record before applying it. Webhooks and other event feeds can arrive twice, out of order or not at all, so duplicate checks and reconciliation are part of the design.

A scheduled reconciliation compares authoritative orders, reservations, shipments and invoices with their downstream counterparts. It flags a missing record, quantity mismatch or stale status even if no error was raised at the time. The operating view should show the source ID, destination ID, last successful step, retry count, age and named owner. That is what turns an integration from a hidden script into a process people can run.

How would we implement this end to end?

From discovery to releaseFive connected implementation moves
  1. 01
    Trace two real orders

    Follow one straightforward order and one with a shortage, split dispatch or payment exception. Capture the records, IDs, manual edits and decisions from sales through finance.

  2. 02
    Write the handoff contract

    Agree each trigger, required field, source of truth, release rule, destination response and owner for rejected records. Fix the meaning of each status before mapping it.

  3. 03
    Build one complete route

    Move the accepted order into operations, return the supply promise, pass the fulfilment instruction, receive line-level dispatch, create the financial record and match payment. Keep the cross-system ID map.

  4. 04
    Make failure paths operable

    Add validation, duplicate prevention, safe retries, a visible exception queue and reconciliation. Test amendments, cancellations, shortages, split shipments, returns and failed accounting posts.

  5. 05
    Release against evidence

    Reconcile quantities and amounts in a test environment, then monitor the first live orders. Compare re-entry time, exception age, stock mismatches and unmatched receipts with the starting baseline.

The finished design may use APIs, webhooks, scheduled transfers or controlled imports depending on the systems already in place. The durable part is the agreement about who owns each fact, when it may change, and how another system proves it received the change. That is how a sale stays intelligible from the buyer’s first enquiry to the final reconciled payment.

Find the handoff that needs fixing.

Bring one real order, the systems it crosses and the exceptions your team handles manually. We can turn that journey into an implementation scope.

Discuss your workflow

See the systems behind the journey.

E-commerce & B2B ERP & manufacturing Integrations & automation