Issuing a receipt
Open Receipts, press New Receipt, work down the cards, and press Issue Receipt. This page covers every card in the order it appears and what the server checks.
Which cards you see
Some cards only appear when a setting or module calls for them:
| Card | Appears when |
|---|---|
| Location | Enable Location Selection is on in Receipt settings. |
| Customer | Always. Searches your customer list when the Customers module is licensed; otherwise it is a plain name. |
| Items | Always. The product search appears only when the Products module is licensed; Add Custom Line appears while Allow Custom Lines is on in Receipt settings (it is on by default, and always on without Products). |
| Custom Fields | At least one custom field is defined and shown. |
| Signatures | At least one signature (issuer or customer) is set to Optional or Required. |
| Footer Note | Show Footer Note is on in Receipt settings (it is on by default). |
| Total | Always. |
Location
The subtitle says Required or Optional depending on the setting. You are offered the locations assigned to you under Users; the owner is offered every active location. The default location, if there is one, is marked "· default".
- If you have exactly one location it is selected for you: "Your only location — selected automatically."
- Tap a selected location again to clear it, unless a location is required.
- If you are assigned to no locations the card says so. When a location is required you cannot issue until an administrator assigns you one.
- The location decides what the catalogue charges: products are read through that location's overrides of price, unit, pricing and availability (see How products connect). Changing the location re-reads the catalogue lines already added; a product not sold at the new location is removed with a note under the Items heading.
The chosen location's name and address print under the logo or label, and if the location has its own currency the receipt is recorded in it. See How receipts connect.
Customer
One box does two jobs. As you type it searches your customers by name, phone or email and lists up to eight matches; tap one to attach it (a highlighted panel shows the name with a Clear button). If nothing matches, what you typed is simply the name that prints.
- Create as New Customer appears when there is no match, you hold
Customers.Createand you are online. It is ticked by default, so issuing the receipt also files a new customer with that name. Untick it and the name only prints. Offline the checkbox is not offered and the name prints as typed. - Leave the box empty when the customer is not known. The receipt then shows a dash in the Receipts list and the Receipts Register, has no Customer fact on its detail screen, and the printed receipt has no Customer line at all.
- Without the Customers module the box is a plain name field, there is no search, and the typed name prints. A free-typed name may be up to 120 characters.
Items
The card is headed with the currency prices are in. There are two kinds of line, and you can mix them freely.
Catalogue lines (Products module licensed)
Type in Search products to add…. Matches show the name, SKU and how the product is priced: a price per unit, Custom Price, or a price per unit "or Custom Price". Tapping one adds a line badged Product whose description is locked to the catalogue. The rest of the line depends on the product's pricing, set under Products:
- Per Unit: the price is locked to the catalogue; only Qty is editable, labelled with the product's unit (for example "Qty (gal)"). Tapping the same product again adds one to its quantity rather than adding a second line.
- Custom Price: an Amount box instead of a quantity; type what the customer pays for the line. The quantity is 1 and no unit prints. Tapping the product again adds another line. If the product works units out from the amount (set under Products), the caption under its name shows what the amount buys as you type, "≈ 4.545 gal at 1,100 / gal", and the receipt records and prints those units with the rate; the amount is still what the customer pays.
- Both: two buttons, Per unit and Custom Price, start in the product's default. Switching resets the line to quantity 1 and, per unit, the catalogue price.
Only products available at the selected location (or active globally, when there is none) are offered. If nothing matches: "No matches — add it as a custom line below." (or just "No matches." when custom lines are off).
Custom lines
Press Add Custom Line. Each line has a Description, a Qty and a Unit Price. Lines with an empty description are dropped when you issue. Remove appears once there is more than one line.
When the organisation has switched Allow Custom Lines off in Receipt settings, the button is absent, the card starts empty with "Search products to add them to this receipt.", and issuing with no line says "Add at least one product." The server refuses a custom line sent while the setting is off.
Rules
- 1 to 100 lines. Descriptions up to 200 characters.
- Quantities follow the product's quantity rule as it applies at the receipt's location (see Managing products). A Whole Quantity product takes a whole number of 1 or more; anything else shows "Enter a whole number of 1 or more." under the box. A Fractional Quantity product takes a quantity above zero with up to its precision in decimal places (2.5 gal, 0.75 kg), with the decimal keypad; a blank, zero, negative or too-precise quantity shows "Enter a quantity above zero, up to n decimal places." A custom line has no product to narrow it, so it takes either a whole number or a decimal up to three places. The line total is the quantity times the unit price, rounded half up to the currency's smallest unit (2.5 gal at 1,100 is 2,750). Tapping a per-unit product already on the receipt adds one to its quantity (2.5 becomes 3.5). The server checks the same rule when issuing; offline, the rule in the device's snapshot applies and a rule changed meanwhile is noted on sync, not enforced.
- Unit prices are zero or more, in the receipt's currency. For a currency with no minor unit, type whole numbers. A blank or unreadable price shows "Enter a valid price." (or "Enter a valid amount." for a custom-priced line); nothing is silently rounded or defaulted.
- Pressing Issue Receipt with any such problem stops with "Fix the highlighted lines before issuing." and scrolls to the Items card; an issued receipt cannot be edited or voided, so every line must be right first.
- For catalogue lines priced per unit the server re-reads the product's current name and price when the receipt is issued online, so the catalogue is authoritative. A custom-priced catalogue line keeps the amount you typed; the server checks only that the product allows it, and works the units out at the catalogue's current price per unit when the product asks for that. Offline, the price the customer actually paid is kept, and so is the rate the units were worked out at; see Working offline.
Custom Fields
"Printed under the customer on the receipt." On the roll (preview and thermal print) the fields appear directly under the customer line, before the items; on the paper document they print below the totals. Required fields are always present, marked with an asterisk. Optional fields sit in an Add a Field chip row; add the ones you need and remove them again with Remove. Each field's help text shows under its input. How each type is entered:
| Type | Input | Accepted values |
|---|---|---|
| Text | Plain text | Up to 500 characters. |
| Number | Decimal keypad | A number, with an optional decimal part and sign. |
| Date | Text with the pattern YYYY-MM-DD | A calendar date, for example 2026-09-23. No time or zone. |
| Yes / No | Two buttons | Yes or No. |
Fields are defined under Receipt settings → Custom Fields. Up to 50 values can be on one receipt.
Signatures
"Drawn here, printed under the totals." For each signature that is switched on you see Issuer or Customer with a Required or Optional badge and a pad. The issuer pad is hinted with your name; the customer pad with the customer's name once one is known. Draw with a finger, stylus or mouse; Undo removes the last stroke and Clear starts over; the caption flips to "Signed ✓" once there is ink. An empty pad counts as not signed. Signatures are stored as strokes and print on both the roll and the full page, with the signer's name and the time. Configure them under Receipt settings → Signatures.
Footer Note
A note printed at the very bottom, for example "Thank you for your business!". Up to 200 characters, on as many lines as you like: press Enter to start a new line, and the receipt prints the line breaks as typed. The field starts with the organisation's Default Footer Note if one is set; whatever you leave in it is what prints on this receipt, so you can change or clear it. When the organisation has switched Allow Changing the Default off, the field is read-only, the subtitle says "set by your organisation", and the default prints as is. The card is absent when Show Footer Note is off, and the receipt then prints without a footer line.
Total
The running total of quantity times unit price across every line (a custom-priced line counts its amount once). The caption reminds you that the server recalculates it when the receipt is issued. There is no tax, discount or payment method on a receipt in this release.
Issue Receipt
The button at the top reads Issue Receipt, or Issue Receipt (offline) when the device has no connection. Before anything is sent the app checks the whole screen and marks every problem where it lives: the Items or Location card turns red with its message at the top, the Signatures card turns red with the blank pad framed and its message underneath, and an empty required custom field is marked on the field itself. The page scrolls to the first problem so nothing is announced off screen, and each mark disappears the moment you fix it. The messages you may see:
- "Add at least one item with a description." (Items card)
- "Choose the location this receipt is issued at." (Location card; or that a location is required but none is assigned to you)
- "Your signature is required before the receipt can be issued." (under the issuer pad)
- "The customer's signature is required before the receipt can be issued." (under the customer pad)
- "Field name is required." (on the field)
A refusal from the server appears as a red message in the bottom-right corner, like every other error in the app; the form keeps what you typed. Problems the screen can see for itself — a missing item, a required field left empty — are marked on the field or card concerned instead.
The server then applies the same rules again, plus its own (a valid location for you, a sellable product, a well-formed custom field value) and answers with a specific message if something is off. On success the receipt gets its number, the currency is snapshotted, and you land on the receipt's detail screen ready to print. If the connection drops mid-way the app treats the receipt as issued offline rather than losing the sale.