Multiple Odoo companies in one Payhawk entity
Payhawk is billed per entity (account). If you run several companies in Odoo but want to operate a single Payhawk entity, this optional feature lets you decide — per expense — which Odoo company each vendor bill is posted into.
When enabled, the connector publishes a custom field named “Odoo Company” in Payhawk. The value chosen on each expense routes the resulting bill to the matching Odoo company.
Optional — off by default
Leaving this off keeps the standard one-entity-to-one-company behaviour, so existing setups are unaffected. Available in the connector for Odoo 16, 17, 18 and 19.
How it works
Payhawk entity → “Odoo Company” field on each expense → bill posted in the chosen Odoo company
- A reviewed expense tagged with a mapped company → its bill is created in that company, using that company's own journals and accounts.
- An expense with no value, or an unmapped one → the bill falls back to the entity company (the one holding the Payhawk API key) and a note is added to the Sync Log.
Enable and configure
- Turn it on. Go to Settings → Payhawk and tick “Use many Odoo companies in one Payhawk entity”, then Save.
- Map your companies. A new Company Mapping tab appears. Add one line per Odoo company that should receive expenses from this entity. The Payhawk Value defaults to the company name — this is the label your team will pick in Payhawk.
- Synchronize. Click Synchronize data with Payhawk. The connector creates the “Odoo Company” custom field in Payhawk with one value per mapped company.
- Tag expenses in Payhawk. On each expense, set the Odoo Company field, then review/approve it as usual.
- Import. On the next sync, each reviewed expense's bill is posted in the company you chose — no manual re-assignment.
Routing rules
| In Payhawk | In Odoo |
|---|---|
| Expense tagged with a mapped company | Bill created & posted in that company |
| Not tagged, or an unmapped value | Bill created in the entity company (default) + Sync-Log note |
| Still in draft (not reviewed) | Not imported yet — only reviewed expenses sync |
Your other custom-field mappings (analytic accounts, etc.) continue to apply on top of the company routing.
Requirements
- Each target company needs its own chart of accounts and a purchase journal — bills are posted in that company's books.
- Only reviewed Payhawk expenses are imported (drafts are skipped).
- The entity company's base currency should match the Payhawk account's. For mixed-currency setups, turn off Match Base Currencies (see Sync options) and expenses post as normal foreign-currency bills.
- Works with Payhawk group accounts — several entities can each feed several Odoo companies.
Troubleshooting
| Symptom | Resolution |
|---|---|
| Company Mapping tab is missing | Enable the option above and Save — the tab appears once it is on. |
| An expense never appears in Odoo | Confirm it is reviewed in Payhawk and the Odoo Company value is set. |
| Bill won't post in the target company | Make sure that company has a chart of accounts and a purchase journal. |
Payhawk's base currency … does not match … | Match the entity company's currency, or disable Match Base Currencies. |
Odoo instance ID … does not match the one in Payhawk | The Payhawk account is linked to a different Odoo database — contact PLANA support to re-link it. |
See also: Sync options · Configuration · Troubleshooting