Connecting Odoo POS
Stash connects to Odoo POS so every sale automatically deducts stock from your inventory in Stash. Once connected, your Odoo locations and product catalog flow into Stash, and you can link each Odoo product to a Blueprint for full recipe-level deduction.
Odoo connection is more involved than Square or SumUp because Odoo doesn't use OAuth — you'll provide your Odoo URL, database name, username, and either your password or an API key. The whole flow takes about 5 minutes if you have everything ready.
Who can do this
Only Admins in Stash can connect Odoo. You also need to be an admin user in Odoo — regular Odoo user accounts don't have permission to authorize the connection.
Before you start — requirements
Confirm all four of these before starting. If any one is missing, the connection won't complete.
Odoo version 13 or higher. Earlier versions aren't supported. Works for Odoo SaaS and Odoo.sh.
A plan in Odoo that includes API access. Some Odoo plans don't include the API access required for the connection. If you're on a different plan, you'll need to upgrade with Odoo first — see Odoo's pricing page.
Admin permissions on the Odoo user account you'll use to connect.
If MFA (two-factor authentication) is enabled on your Odoo account, you'll need to generate an API key instead of using your password. Steps for that are below.
Heavy customizations on your Odoo instance can affect connector performance. If your Odoo setup is unusually customized, expect slower syncs — or contact us before you connect so we can flag potential issues.
Information you'll need to gather
Have these three pieces of information ready before opening Stash:
Your Odoo URL — the full URL of your Odoo instance (e.g.,
https://yourcompany.odoo.com). It's in your browser address bar when you're logged into Odoo.Your database name — found by enabling Odoo's developer mode, then looking at the database info on your home page. If you're not sure how to find this, see Odoo's guide to developer mode.
Your Odoo admin username and password — or an API key if MFA is enabled (see below).
If MFA is enabled — generate an API key first
If your Odoo account uses two-factor authentication, you can't connect with your password — you need an API key. Generate one before starting the Stash connection.
Log into Odoo.
Click your profile icon in the top-right corner and choose Preferences.
Open the Account Security tab.
Click New API Key.
Enter your password to confirm.
Give the key a name (e.g., Stash connection) and set the duration to Persistent Key.
Copy the API key and store it somewhere safe — Odoo only shows it once.
You'll use this API key in place of your password during the Stash connection.
Connecting Odoo to Stash
From the sidebar in Stash, open Integrations..
Choose Odoo POS from the integrations list.
Enter your Odoo URL.
Enter your database name.
Enter your Odoo admin username.
Enter your password — or your API key if MFA is enabled.
Click Connect.
Stash validates the credentials with Odoo. If everything checks out, you'll move to the configuration step.
Configuration - picking the company
If your Odoo account has multiple companies set up, you'll be asked which one to connect.
Pick the company you want to connect to Stash.
Click Submit to finalize the connection.
Stash now starts pulling in your Odoo locations and product catalog. This first sync can take a few minutes depending on the size of your catalog.
After connecting — finish the setup
The Setup card on the Integrations page guides you through the remaining steps:
Locations imported — happens automatically right after the connection finalizes.
Map locations — tell Stash which Odoo location corresponds to which Stash shop. See Mapping POS locations to Stash shops.
Sync products — Stash pulls in your Odoo POS catalog (runs automatically the first time, automatically refreshes periodically
Link Blueprints — connect each Odoo product to a Blueprint so sales deduct components from inventory. See Linking a Blueprint to a POS product.
How sales reach Stash
Stash pulls in Odoo POS sales every 15 minutes. Only orders that are closed in Odoo POS are processed. Historical Odoo orders placed before you connected are not imported. For the full breakdown, see How POS sales deduct stock automatically.
Good to know
Odoo POS vs Odoo ERP
Stash connects to Odoo POS — the point-of-sale module. If your business uses Odoo for full ERP and a different POS at the till, the connector won't capture those till sales. Make sure POS sales actually run through Odoo POS.
Multi-company Odoo accounts
If your Odoo account has multiple companies, only one company is connected per Stash shop. To connect more than one company, set up separate Stash shops and create a connection per company.
Odoo geographic versions
Different countries have different fiscal localizations in Odoo (Belgium, France, Germany, etc.). The connector works the same way regardless of localization — only the underlying accounting differs.
Refunds and voided sales
Odoo POS refunds and voids do not automatically reverse the stock deduction in Stash. If you refund a sale and need the stock to come back, do a manual stock adjustment with a note referencing the refunded order. See Adjusting stock quantity manually. Automatic refund reversal is on our roadmap.
What Stash reads from Odoo
Stash only reads what's needed for inventory: products, locations, and POS sale events. It doesn't access customer details, payment data, or accounting entries.
Troubleshooting
"Connection failed — invalid credentials"
Most common causes:
Username or password is wrong
MFA is enabled but you used your password instead of an API key — generate an API key (steps above) and try again
The user account doesn't have admin permissions in Odoo
"Connection failed — database not found"
Double-check the database name. Odoo SaaS users often confuse the database name with the URL. The database name is what you see when you enable developer mode, not the URL itself.
"Connection failed — version not supported"
Stash requires Odoo 13 or higher. If you're on an older version, you'll need to upgrade Odoo before the connector will work.
"Connection failed — API access denied"
This usually means your Odoo plan doesn't include API access. The Custom pricing plan is required. Confirm your plan in your Odoo account settings.
"Locations imported but no products"
The product sync runs after locations are mapped. Map your Odoo locations to Stash shops first, then click Sync now to pull products.
"Sales aren't appearing in Stash"
Check, in order:
You're still within the 15-minute window since the sale closed — wait for the next sync
The order isn't actually closed in Odoo POS yet
The Odoo connection is healthy on the Integrations page (no warning icon)
The location mapping is complete
The Odoo product is linked to a Blueprint (or matches an inventory item by name)
For a deeper diagnostic, see Why my Blueprint isn't deducting stock.
"The connection keeps slowing down"
Heavy customizations on your Odoo instance can affect connector performance. If you're seeing slow syncs, get in touch and we can look at what's happening.
Related articles

