What shipped
Your bank doesn’t own your Zelle® QR code
A small water association moves its operating account from a national bank to a regional one. Good reasons — better service, someone who picks up the phone.
The national bank’s app had a button that produced a Zelle QR code, and that code had been going out on the invoices. The regional bank’s app has no such button.
The treasurer’s conclusion, and the first answer from an AI assistant: you can’t make one yourself. Only the bank can.
That is wrong, and the reason it is wrong is the whole feature.
What changed
Enter the Zelle email and the enrolled name once, in Company Settings. Every invoice now carries a Zelle® Payment block: pay by Zelle, no fees, no check to mail; send to this address; or scan this code; put your account number in the memo. The code is drawn by BasicBMS — on screen, and through the same print path as the rest of the invoice, on paper at about an inch square.
What the bank’s app does
Offers a My QR code button — or doesn’t. Move banks and the button may not come with you. The invoices lose the code.
What BasicBMS does now
Builds the code from the enrolled email and name in your settings, and prints it on every invoice. Switch banks tomorrow and nothing on the invoice changes.
Nothing on the invoice was ever the bank’s.
Here’s how to actually do it: How to accept Zelle on your invoices.
Why this is the part that matters
A Zelle QR code is not a credential.
Open any bank’s “My QR code” with a plain camera and it is a link to Zelle’s own website carrying two things: the enrolled email or phone number, and a display name.
{ "name": "Your Water Association",
"action": "payment",
"token": "billing@yourassociation.org" }
// no bank. no amount. no memo.
The banking app that scans it reads the email and looks it up in the Zelle directory — the same directory every other bank uses. There is nothing in the code that says which bank it came from, because the network does not care.
So the “feature” the national bank offered was a convenience button over a public fact, and the regional bank’s omission was just a missing button. BasicBMS builds the same link from the settings and draws the code.
Which bank you use stopped mattering.
The honest part
The code identifies you, not the bill.
There is no amount in it and no memo. The member types both. That is why the block’s last line is an instruction — include your account number or service address in the memo — and why the treasurer’s bank reconciliation is where the payment gets recorded, not some integration. BasicBMS does not see a Zelle payment arrive; the bookkeeper matches it, same as a check.
Zelle has no API for a business this size. We did not pretend otherwise.
Still modular
Start with what you run. Six core modules — Customers, Employees, Suppliers, Payables, Invoices, and a full general ledger — for $150 a month. Add Work Orders, Communication, or Projects for $25 each. Every user included, no per-seat games, no forced bundles.
Implementation is a one-time build: we configure your modules around your workflow and load your data, so you don’t start on a blank screen.
Business software as unique as your business.
Water Utility→
Property Management→
General Business→
Construction soon
Don’t see yours? Build a vertical →