Connect Odoo POS
What this does
Connect your Odoo Point of Sale and the registers you choose do the loyalty work for you. Your staff ring up the sale the way they always do, with one small habit added: they put the customer on the ticket. Passtastic sees the sale and updates the customer's card, usually within seconds — no separate device needed for earning.
A reward the customer has already earned works at the counter too: a full stamp card, an item from your points catalogue, a perk that comes with their level. Your staff pick it on the sale and it comes off, without leaving Odoo.
Two shops, to make it concrete:
- Rolling Pin, a bakery with a stamp card. Every coffee earns a stamp. The cashier finds Marta on the ticket, rings up the flat white, and her card gains a stamp before she has found a table. On the tenth visit the free croissant is waiting on the register's list of rewards.
- Foglia Verde, a deli with points. One point per euro, and the jar of pesto costs 300 points. Luca asks for it, the cashier picks it on the sale, the jar comes off the bill, and a minute later his card shows what is left.
This integration is included on every Passtastic plan: Single Location, Multi-Location and Groups & Brands.
What works at the register — and what still needs a scan
At the register your staff can give:
- a full stamp card's reward,
- an item from your points catalogue,
- a perk that comes with the customer's level.
A campaign offer cannot be claimed at the register. A birthday free coffee, a "we miss you" treat, anything you send out as an offer — those are still given the way they always were: your staff open the Passtastic Scanner app, scan the customer's card and confirm the offer there. Keep the scanner app on a phone behind the counter for exactly this.
Which cards can earn from Odoo sales
- Points and level cards earn by the points rule attached to the card, for example one point per euro. A card with no rule attached earns nothing until you set one up.
- Stamp cards earn one stamp per paid sale — or one per qualifying item, if you choose that when you set the program up.
- Coupons, bundles (prepaid stamps / prepaid points) and memberships cannot earn from Odoo sales, so they do not appear in the list of programs you can switch on.
Before you start
- Odoo with Point of Sale, version 17, 18 or 19, and the ability to create an API key. Odoo.sh, on-premise and Community databases all work; on an Odoo Online plan, connecting tells you straight away whether your database answers.
- An Odoo login that can create a user and grant access rights.
- At least one published points, level or stamp card in Passtastic. If you do not have one yet, create it from Programs → Create New Program.
- The free Passtastic Scanner app on a phone or tablet — you will still use it for campaign offers.
- Optional: a barcode scanner at the register, so staff can pull a customer up by scanning their card instead of searching by name.
Step 1 — Create a user in Odoo and get its API key
Give Passtastic its own Odoo user rather than using your own login. That way you can see what it did, and switching it off later is one click.
1. In Odoo, create a new user — call it something like *Passtastic Integration* — and give it the point-of-sale access right Point of Sale: User and the address-book access right Contacts.
2. Sign in to Odoo as that user.
3. Click the avatar in the top right, then the personal settings entry Preferences.
4. Open the security section Account Security and click New API Key.
5. When Odoo asks how long the key should last, choose the never-expiring option Persistent Key, then copy the key.
Odoo shows the key once and never again. Copy it before you leave that screen; if you lose it, create a new one.
You will also need three details from the same Odoo: your Odoo address (the web address you open Odoo at, for example `https://yourcompany.odoo.com`), your database name (shown on your Odoo login screen) and that user's login (the email address it signs in with).
Step 2 — Connect Odoo to Passtastic
1. In your Passtastic dashboard, open Settings, then Integrations (under Business).
2. Find Odoo POS and click Connect.
3. Fill in Your Odoo address, Database name, Integration user login and API key, then click Connect Odoo.
Passtastic checks the details against your Odoo and brings back the list of your registers.
Earning starts from here, not from last month. Sales already sitting in your Odoo are not credited backwards. Everything rung up from this moment on earns.
Step 3 — Match your registers to your shops
The page calls each point-of-sale device in Odoo a register, and shows one row per register. For each one, pick the Passtastic shop it stands in, and switch Earns loyalty on for the registers that should count.
- Registers we can match by name are filled in for you. Anything we cannot match starts on Don't use.
- No shop for it yet? Use + New shop… in the same list to create one without leaving the page.
- A register marked Needs attention was not in the list your Odoo sent last time. It still earns and still uses a scan point, so check it is still a register you want counting.
A register that earns counts as a scan point. Scan points are the same allowance your staff scanner apps draw from — three on Single Location, nine on Multi-Location, thirty on Groups & Brands. The footer of this step shows how many you have used. Every shop with an earning register includes one staff scanner free, so switching a register off does not always make that number drop.
Step 4 — Which programs earn?
Next you see your loyalty programs. Switch on the ones that should earn from Odoo sales, and for each one decide:
- Earn on — every sale, or only sales that include an item from the Odoo product categories you pick.
- Stamps, on a stamp card — one per sale, or one per qualifying item up to a limit you set.
- Rewards at the register — whether a reward on this program can be given from the register.
For points and level cards, check that a points rule is attached. Without one the card earns nothing, however many sales go through.
Step 5 — Tell Odoo which products a reward can be used on
When you switch a card on, we create a tag in your Odoo called Passtastic: <your reward name>. A reward that gives something away — a free croissant, a free coffee — can only come off a product carrying that tag, so it never discounts the whole bill by mistake.
Put the tag on the products you are happy to give away: in Odoo open the product and add it under Product Tags. One product is enough; add more if the customer may choose.
Until you do this, the reward appears on the cashier's screen and takes nothing off. Rewards that are a percentage off the whole bill need no tag.
Step 6 — Make it instant (optional)
Passtastic asks your Odoo to tell us the moment a sale is paid, which is why sales normally land within seconds. If the user you created does not have the rights to set that up, Passtastic shows you five short steps and the address to paste into Odoo yourself.
Either way nothing is lost: we also check your Odoo every minute, so a sale arrives within a minute even if this step is never done.
Step 7 — Refresh each register once so rewards appear
A register keeps its own copy of your products and loyalty programs, so one that is already open does not know about a reward you have just switched on. On each register, open the menu (☰ top right), choose Reload Data, then Limited. Do this after you connect, and again whenever you switch on another card or change a reward. Finish any sale in progress first: reloading discards an unfinished ticket.
What your staff do at the counter
The one habit: put the customer on the ticket. Staff search for the customer by name in Odoo and add them to the sale before taking payment — the same step as putting a customer on any ticket. That is what earns the stamp or the points. A sale with nobody on it earns nothing.
If you have a barcode scanner at the register, staff can scan the customer's wallet card instead of typing a name; it brings up the same customer.
Giving a reward. With the customer on the ticket, the rewards they have earned are right there on the register. Staff pick one and it comes off the sale — nothing to type, nothing to remember. If the customer would rather save it, staff pick nothing and it stays on their card.
Campaign offers still use the scanner app. A birthday coffee or a "come back soon" treat is confirmed by scanning the customer's card in the Passtastic Scanner app, then handed over at the counter as usual.
Your members in your Odoo contacts
Your members appear in Odoo on their own. When someone joins your program, Passtastic adds them to your Odoo contacts with their name, email and phone, so your staff find them at the counter with one search. Members who joined before you connected are filled in over the following days. Somebody Odoo already has under the same email or phone is linked, not duplicated.
One exception: a member who gave neither an email address nor a phone number is not added to your contacts — there is nothing to match them on and nothing for staff to search for. Those customers are served the way they always were: scan their card with the Passtastic Scanner app.
Members are added automatically — there is no switch for this. Contacts already created stay in Odoo, and removing a member in Passtastic never deletes their Odoo contact.
Refunds
Refund a sale in Odoo and Passtastic takes back what that sale earned, in proportion to what was refunded: refund half the ticket and half the points go. A card never drops below zero — if the customer has already spent those points, it stops at zero. You can switch this off with Take points back on refunds on the Odoo page in Passtastic.
Frequently asked questions
Do I have to add my customers to Odoo myself?
What exactly do you write into my Odoo?
Do refunds take stamps and points back?
Can staff still scan the card with the Passtastic app — won't that give points twice?
What if the customer isn't on the ticket?
We put the wrong customer on a sale. Can we move it?
We refunded a sale where the customer used a reward. What happens to the reward?
What if a new member isn't found at the register?
Troubleshooting
"That key was not accepted by Odoo." The key, the login, or the pair of them is wrong. The key has to belong to the login you typed, so check that you copied the whole key and that the login is the email address that user signs in with. If in doubt, create a fresh key in Odoo under Account Security and paste that one.
"We couldn't reach your Odoo at that address." Use the address you open Odoo at, including `https://`, with nothing after the domain. If your Odoo is on your own server, check it is online and reachable from the internet.
"We can see no point-of-sale registers in your Odoo." Either there is no point-of-sale register set up in Odoo yet, or the user you created cannot see it. Give that user Point of Sale: User access and try again.
"This Odoo is already connected to Passtastic." That database is connected to another Passtastic business. Disconnect it there first, then connect it here.
"We recognise this Odoo database, but it is answering at a different address." Your Odoo has moved — a new domain, or from Odoo Online to your own server. Disconnect the old connection first, then connect at the new address. If this is a copy of your Odoo running alongside the live one, connect the live one instead.
A banner says this Odoo user can't create contacts. Earning keeps working, but new members will not appear in your Odoo contacts. Give the user Contacts access in Odoo, then reconnect on the Odoo page and the members are filled in from there.
Points or stamps didn't arrive. Most often the customer was not on the ticket. It can also be timing: allow a minute. If it still has not arrived, check on the Odoo page that the register is switched on to earn and pointed at the right shop, and that the program itself is switched on.
The reward isn't on the register. Close and reopen that register once — Odoo only picks rewards up when a register opens. If it is still missing, check that Rewards at the register is on for that program, and that the customer has actually earned it.
For running loyalty without a POS, or connecting other tools, see POS Systems & Integrations. There is an overview of what Odoo and Passtastic do together on the Odoo integration page.