Every point-of-sale order ends the same way: the customer pays, and a receipt proves it. That makes the payment screen and the receipt the two most legally and commercially important surfaces in Odoo POS — the receipt is the customer's record of the transaction, the basis for expense claims and returns, and in many jurisdictions a regulated document. Odoo 20 keeps the payment and receipt flow that cashiers already know, and adds a handful of genuinely useful refinements: simplified receipts, multi-currency checkout, better printer management, and an easier end-of-session accounting story.
This article walks the full flow — from clicking Payment to a printed, emailed, or WhatsApp-delivered receipt — separating the long-standing mechanics documented in the Odoo 20.0 documentation from the changes the Odoo 20 release notes actually introduce.
The payment flow, step by step
The core flow in a shop or restaurant register has four steps:
- Click Payment on the completed order.
- Select a payment method and enter the amount tendered. A single order can be settled with several payment lines — part cash, part card, for example — until the amount due is covered.
- Optionally, select a customer and enable Invoice if the customer needs a formal invoice for the order (more on that below).
- Click Validate. The order is closed, the payments are recorded against the session, and the receipt becomes available to print or send.
Payment methods are configured per point of sale, so the till in the bar and the till in the shop can offer different options — cash, card and bank methods, and terminal-backed payments where a payment terminal integration is in use. Cash handling follows the amounts entered on the payment screen: tender more than the amount due and the change is computed from the payment lines. Because every payment is recorded as a line on the order, the session's takings can later be reconciled method by method rather than as one undifferentiated total.
New in Odoo 20: multiple currencies can be supported at checkout in the same point of sale, which matters for border towns, tourist areas, and airport retail where customers routinely offer a second currency. Also new, and easy to miss: at the end of a session, a global sale is now generated to simplify the accounting entries and remove miscellaneous entries, and payment journal entries are generated automatically at the time specified in the settings, without needing to end the session first.
Tips: three ways to collect them
Tipping is configured in the Payment section of the POS settings by enabling Tips. Saving that setting automatically fills the Tip product field with the preconfigured [TIPS] Tips product, which exists only to encode tips — tips are booked as a product line, not as a vague adjustment to the total, which keeps them visible in sales reporting.
From there, Odoo supports three collection patterns:
- Tip during payment: on the payment screen, click Tip, add an amount or a percentage, and confirm before validating. If the order and the tip are paid by different methods, select the payment method for the order first, then the method for the tip.
- Tip through the terminal: with the relevant setting enabled, the tip can be added through an Adyen card terminal as part of the card flow.
- Tip after payment (United States only): with Add tip after payment enabled on a POS using an Adyen or Stripe terminal, the card is closed first; the Add a tip screen then offers 15%, 20%, or 25% of the order total, No Tip, or a custom amount, and Settle validates it.
Bills before payment, and splitting them
Restaurants rarely go straight from order to payment, and two features cover the gap. With Early Receipt Printing enabled, staff can print a pro forma bill for an ongoing order at any moment — from the register, open the Actions menu and select Bill. The printed bill is not final: it reflects the order as it stands and is superseded if the order changes, which is exactly what a table reviewing its tab mid-meal needs.
Bill splitting handles the group that wants separate checks. From the register, click the Actions icon and then Split, select at least one product, and choose what to do with the selection: Payment to take direct payment for those items, Split Order to create a sub-order, or Transfer to move items to another table. Splitting requires at least two products on the order, and the sub-order created must be paid before returning to the main order; click Continue and repeat for each guest. Paid items leave the main order, so the remainder is always what is still owed.
What the receipt shows
A POS receipt displays a defined set of elements:
- The company logo.
- The receipt and order number.
- The customizable header and footer.
- The name of the cashier, and of the customer where a customer was set on the order.
- The complete order — lines, discounts, and prices — and the payment methods used.
- Optionally, a QR code or URL link that lets the customer generate an invoice themselves.
Receipt layout is configured in the Bills & Receipts section of the POS settings. Activating Header & Footer lets you fill in the text printed at the top and bottom of every receipt — the natural place for a returns policy, a Wi-Fi password, or a thank-you message. A Basic Receipt option prints receipts that do not display product prices. And Odoo 20 adds simplified receipts: a receipt that displays the subtotals and taxes of the order without the order lines — handy where a short proof of payment is all the customer wants, or where local practice distinguishes a simplified document from a full itemized one. Odoo 20 also lets a printer's paper size be configured manually in developer mode, so receipts format correctly on the paper actually loaded.
Printing, reprinting, and sending receipts
Enable Automatic Receipt Printing and the receipt prints as soon as the payment is registered; if a receipt printer is configured and linked to the point of sale, the receipt is printed automatically upon payment confirmation. Odoo 20 improves the hardware side of this in two ways: a POS can now have multiple printers set up and linked, with a choice of which printer to print on — improving the workflow for larger structures with several cash drawers — and the 20.0 hardware documentation describes connecting ePOS receipt printers directly, including Local Network Access, which lets the browser talk to local printers without SSL certificates, alongside the IoT system route for coordinating printers, scales, and scanners.
Receipts are not print-only. They can be sent by email by default, and also by SMS or WhatsApp when the corresponding options are enabled (WhatsApp requires the WhatsApp Messaging module); for self-ordering, Odoo 20 adds receipt delivery via WhatsApp or SMS as well. And when a customer comes back asking for a copy, reprinting is built in: from the POS interface, click Orders, switch the filter from All active orders to Paid, select the order, and click Print Receipt. Finding that order is easier in 20, too: the Orders overview can now be searched by invoice number or receipt number, in addition to the existing reference, date, and customer filters.
When a receipt is not enough: invoices from the POS
Some customers — business buyers, expense-account diners — need an invoice rather than a receipt. On the payment screen, select or create the customer and enable Invoice before validating; the invoice is then issued automatically, ready to download or print. Two rules govern this: a customer must be selected for an invoice to be issued, and an invoice created in the POS creates an entry in the corresponding accounting journal. Which journals a POS uses by default for orders and invoices is set in the accounting section of the POS settings. The QR code or URL that can be printed on the receipt itself extends this to self-service: the customer scans it and generates their own invoice later, without coming back to the till.
Put together, the design principle is consistent across versions: the receipt proves the payment, the invoice documents it for accounting, and the POS keeps both attached to the same order, session, and payment lines. Odoo 20 does not reinvent any of that — it sands down the edges, with shorter receipts when lines are not needed, more printers when one is not enough, more currencies when one is not enough, and session accounting that closes itself out on schedule.
Further reading
- Odoo 20 Release Notes — the Point of Sale section: simplified receipts, multiple currencies at checkout, printer management, and end-of-session changes.
- Restaurant features — Odoo 20.0 documentation — the Bills and payment section: bill splitting, order payment, early receipt printing, and tips.
- Hardware and network — Odoo 20.0 documentation — receipt printers, ePOS configuration, Local Network Access, and IoT connections.
- Point of Sale — Restaurant features (odoo.com) — the feature overview for restaurant payment and kitchen operations.
