The two arrangements
Same scheme, same settlement, entirely different records afterwards.
| Dimension | Static key or static QR | Dynamic QR or billing |
|---|---|---|
| What it is | A permanent address you hand out once | A request for one specific payment |
| Amount | Whatever the payer types | Fixed by you, or explicitly open |
| Carries your reference | No | Yes |
| Expires | Never | Yes, and can carry a due date |
| Effort per payment | None — it already exists | One request has to be generated |
| Works for a recurring client | They pay from memory, forever | Needs generating each cycle, or an authorised recurring arrangement |
| Reconciliation | Manual, on weak signals | Automatic |
Every row favours dynamic except the fifth, and the fifth is the one that decides what actually happens. Effort per payment is why the installed base is static.
Why the worse option wins
A static key requires nothing. You give it out once and money arrives forever, from clients who saved it, from a recurring transfer somebody set up in 2024, from a WhatsApp message you sent last year and cannot now unsend.
A dynamic code requires an action every time. Somebody has to generate it, attach it to the right invoice, and send it before the client pays — which is the sequence that breaks, because the client frequently pays before being asked.
The result is that businesses adopt dynamic codes for new arrangements and continue receiving static payments indefinitely from everything that predates the decision. Six months after "we've switched to dynamic QR", roughly half the receipts are still arriving on the old key. That mix is the actual operating condition and it is what any honest tool has to be built for.
Moving as much as possible to dynamic, realistically
Four steps. The point is not purity — it is shrinking the manual pile.
- 1
Split by client, not by intention
List your recurring clients. For each, decide whether you can practically change how they pay, and be honest about the ones you cannot.
The client who has paid the same key on the first of the month for two years is not going to start scanning a code, and pretending otherwise wastes the effort you could spend on the ones who would.
- 2
Change the new ones first
Every client onboarded from today gets a dynamic code and never learns the static key. This costs nothing and compounds.
Six months of this converts the majority of new volume without a single awkward conversation, which is the cheapest progress available.
- 3
For the immovable ones, use a distinct key
A second key, used only by a defined group, makes the ambiguity smaller — you know which bucket a payment came from before you look at anything else.
This is a workaround rather than a solution and it is genuinely useful. Narrowing the candidate set is most of what matching is.
- 4
Accept a permanent residue and plan for it
There will always be payments that arrive unannounced with no reference. The realistic target is that this is a short weekly list rather than a monthly afternoon.
A tool that promises to eliminate the residue entirely is describing something the scheme does not make possible. The honest promise is a smaller pile.
Done properly this takes a quarter and removes most of the problem. It does not remove all of it, which is why the product on this site exists at all — if step four had a clean answer, there would be nothing left to build.
When a static key is genuinely the right choice
Five situations. Reconciliation is not the only consideration.
- You are paid at the counter, in personA printed static code on the counter is faster than generating one per sale, and speed at the point of payment matters more than tidy records.
- Payments are rare and largeFour payments a month need no automation. Reconciliation at that volume is a two-minute glance and any tooling is overhead.
- The client pays a fixed amount on a fixed datePredictable value and predictable timing are strong matching signals on their own. This is the case where a static key is very nearly self-reconciling.
- Donations or open-value paymentsThere is nothing to reconcile against, because there was no invoice. A permanent address is exactly the right instrument.
- Your systems cannot generate codes at allPerfectly common. Adopting a whole platform to obtain dynamic codes is a large change to solve a matching problem, and frequently the wrong trade.
Rows two and three cover a large share of very small businesses, which is worth stating on a page selling a reconciliation tool. Below about twenty receipts a month, do nothing.
Questions
Can I have more than one key?
Does a dynamic code cost anything to generate?
Can I stop a static key from being used?
Is a static QR code any better than a typed key?
For the residue that will not move
In the context field: roughly what share of your receipts still arrive on a static key.