Custom payment
Define your own payment methods, with your own names, rules and fields.
What is this?
Custom payment lets you add payment methods Flow Retail does not ship: a staff account, a voucher scheme, a local financing partner, a customer club card. You name it, decide how it behaves, and it appears at the till like any other method.
Flow Retail records the money and prints it on the receipt. It does not talk to anyone on your behalf — whatever happens outside the till is between you and whoever provides the payment.
How does it work?
You define the method once for the whole chain, then enable it in the stores that should have it.
The Name you give it is what the cashier sees and what goes on the receipt, unless you set a separate Receipt text. The Settlement Code is how the payment shows up in accounting and in exports; it has to be unique and start with EXTERNAL_, and a Generate from name button will build one for you.
From there you decide how it behaves: whether it can be used for sales, refunds, cashback and deposits, whether the amount is free or forced to the remainder, and whether it should be Featured with its own button, merely Listed, or Hidden.
If the cashier needs to record something — a card number, a voucher code, an approval reference — add a New Parameter for it. Give it a name, mark it required or not, and pick a Type; the till builds the input and checks what is typed. Types run from Free text and Whole number to Date, Mobile number and modulus-checked account numbers, and you can set your own Validation Pattern on top.
Custom payment methods also work on orders imported through the API, alongside invoice and payment gateway.
How do we get started?
Go to Admin → Settings → Payment Methods and select Create external payment method. Fill in the name and settlement code, set the rules, and add any parameters you need.
Then open each store, go to its Payment Methods tab and select Add payment method. That is also where you set the ledger account it posts to.
Selling through a partner system as well? Add an External System Mapping so the same method carries that system's own ID on the way out.
Last updated 17.09.2026
Was this helpful?

