Odoo
Hela pushes sales, purchases and payments into Odoo accounting (versions 14 to 18, Odoo.sh, Odoo Online and self-hosted) through the XML-RPC API.
What is sent
| In Hela | In Odoo |
|---|---|
| A customer or supplier | A res.partner, found by name if it exists |
A sales invoice (invoice.issued) |
An account.move of type out_invoice, one line per sale line, taxes and the chosen journal |
A counter sale (sale.created), if the setting includes them |
Same |
A supplier order (purchase.created) |
An account.move of type in_invoice |
A payment (invoice.paid, invoice.partially_paid, purchase.paid) |
An account.payment, reconciled with the invoice |
Amounts are sent in the document's currency; Odoo must know that currency.
Connecting
- In Odoo, Preferences → Account Security → API Keys → New API Key. Copy the key.
- In Hela, Integrations → Odoo → Connect:
| Field | Value |
|---|---|
| Address | https://your-company.odoo.com |
| Database | The database name (in Settings → About, or the address for Odoo Online) |
| Login | Your Odoo login e-mail |
| API key | The key from step 1 |
Hela checks the connection at once (common.authenticate) and shows the Odoo company name.
Settings
| Setting | Default | Meaning |
|---|---|---|
| Include counter sales | no | Also push receipts paid on the spot. A retailer often prefers one entry per till closing. |
| Post entries | yes | action_post after creation; otherwise documents stay as drafts for the accountant to validate. |
| Sales, purchase, payment journal | default journal | The numeric id of the Odoo journal, if you have several. |
Good to know
- The Hela number is written in the document's
ref, and the Odoo id is kept in Hela: no duplicate on reconnection. - Lines go out with their net amount and rate; Odoo taxes are those of the journal's default income account. Check the first document with your accountant.
- A partial payment creates an
account.paymentfor the partial amount; Odoo handles the matching. - The Odoo user needs Accounting / Accountant rights.