← All postsPoint of sale

How to stop a counter sale from busting a customer's credit limit

iotoms team · September 7, 2026 · 5 min read

A building materials distributor ran a trade counter behind its warehouse — contractors walked in, picked up lumber, fasteners and sheet goods, and most of them paid the way trade accounts always have: on account, invoice at the register, statement at month end. The business had set a credit limit for every one of those accounts. It was right there in the accounting system, next to the customer record.

The register behind the counter didn't know it existed.

A number that lived in the wrong system

The credit limit had been set up properly, months earlier, by the office: a cap per contractor, based on job size and payment history. But the counter register was a separate piece of software from the accounting package, connected only by an overnight export. A contractor's balance as the cashier saw it was whatever it had been at last night's sync — not what it actually was the moment they rang up a sale.

So the check that was supposed to happen — is this account still under its limit? — never actually happened at the only point where it mattered: the moment the cashier hit "charge to account" and handed over a stack of framing lumber.

How it played out

One contractor, mid-build on a house, was a regular at the counter — reliable, well liked, always good for it eventually. Over three weeks he made six separate visits, each one a normal-sized purchase, each one charged to account, each one approved instantly because nothing at the register said not to. By the fourth visit he'd already crossed his limit. Nobody at the counter could have known — the number on their screen was three weeks stale. By the sixth, he was most of the way to double his approved limit, still buying, still getting invoices with no flag on them.

The office caught it the way most businesses do: at month end, running statements, when someone noticed one balance was a lot bigger than it should be. By then the job the lumber went into was mostly built. The conversation had already shifted from "let's hold the line at his limit" to "how do we collect an amount well past what we ever agreed to extend him."

Multiply that by every regular account at a counter that moves a hundred transactions a day, and the pattern isn't a bad-customer problem. It's a blind spot built into the software: the number that should stop a sale exists, but it doesn't exist where the sale happens.

The turning point

The distributor's owner didn't conclude they'd trusted the wrong contractor. He concluded the limit was decorative — a number the accounting system tracked for its own reporting, disconnected from the one screen where a sale actually gets approved or declined. Fixing the contractor's balance fixed one invoice. It didn't fix the next one, at the next counter, for the next account creeping toward its own limit unseen.

What a real credit check at the register looks like

A credit limit only does its job if it's checked at the same instant the sale is created, against the same balance the rest of the business uses — not a nightly copy of it.

Check the live balance, not last night's balance. The register needs to see the account's current outstanding total — every invoice, including the one from an hour ago — at the moment a new sale is rung up, not whatever number a batch job handed it overnight.

Warn before the limit, block at it. A cashier needs a signal well before the hard stop: a visible "80% of limit" flag lets staff have the conversation with a regular customer before it becomes a declined sale in front of them. The hard block at 100% exists for the account that ignores the warning.

Make the override visible, not silent. Some sales past a limit are legitimate — a manager approves it, a payment is already in transit. That's fine, but it should require a deliberate override with a name attached, not a register that quietly lets every sale through because the check was never wired in.

Treat every channel the same account. A contractor's balance doesn't reset because he bought from the counter instead of a delivery route, or vice versa. The limit check has to see all of it — counter sales, route invoices, online orders — as one number, because that's how the customer sees their own credit.

Practical checklist

  • Confirm your register checks a live account balance at the moment of sale, not a nightly export.
  • Set a warning threshold below the hard limit so staff can flag it before declining a sale.
  • Require a named, logged override for any sale approved past the limit — never a silent pass-through.
  • Make sure counter, route and online sales all draw against the same account balance, not separate totals.
  • Review accounts sitting near their limit weekly, the same way you'd review an aging report — don't wait for month end to find out a limit was crossed.

iotoms checks a customer's live balance against their credit limit at the moment any sale is created — counter, route or otherwise — against the same ledger the rest of the business runs on, so a limit set in the office actually holds at the register, not just on the statement.

See your own routes running on iotoms

Book a demo