Connecting a partner
Integrations are managed in Administration → Integrations. The page shows the whole catalogue, the company's country first, and the state of every connection.
Three kinds of partner
| Kind | What it is | Example |
|---|---|---|
| Connector | A service Hela connects to and exchanges with on its own | Odoo, Stripe, Google Drive, Clockify |
| Guide | A service that plugs in through the API, webhooks or an export, with no connection of its own | Sage, PayPal, Shopify, Zapier |
| Fiscal regime | An authority Hela submits invoices to; enabled from the Compliance page | eTIMS, Peppol, FNE |
Connecting
Two ways, depending on the partner:
Through OAuth (Google, Microsoft, Dropbox, QuickBooks, Xero, Yuki, Exact, Pennylane, Sage, Zoho Books, DocuSign): a Continue with … button sends you to the partner, you accept, you come back. Hela keeps a renewable token, never your password. Somebody has to have registered an application with that partner: either whoever runs the server, once for everybody (see Keys and environment variables), or your company itself. In the second case the connector's page gives you the callback address to declare in the partner's developer console, then asks for the client id and secret it hands you; the secret is encrypted like any other key, and the Continue with … button appears at once. When both exist, yours wins.
With a key (Odoo, Stripe, Mollie, the mobile money operators, Yousign, Clockify, Toggl, WhatsApp, Slack…): a form asks for the credentials the partner gave you. They are encrypted (AES-256-GCM) before being stored and never shown again — the field reads Set and stays empty to keep the value.
After connecting
- Settings: what the partner receives, and how. For example include counter sales for an accounting connector, or the wallet to credit for a payment provider.
- Test: a real call to the partner, to check the credentials.
- Sync: for partners that pull data (Clockify, Toggl, exchange rates), runs the import now instead of waiting for the next scheduled pass.
- Log: the last hundred exchanges, with what was sent, what came back and, on error, the partner's answer.
- Notification address: for partners that tell Hela things (payments, signatures), the address to paste into their webhook settings. Hela verifies the signature of each.
What flows
Every connector subscribes to events. When the event happens, a job is queued and run by the server in the background, retried on failure (up to eight times, at growing intervals). The app never slows down because Odoo is slow.
A document pushed to a partner keeps a link to its remote id: sale no. 42 knows it is invoice INV/2026/0042 in Odoo. The link prevents duplicates and lets you open the document at the partner from Hela.
Automatic or on demand
Two ways of working, and each partner has its own.
Automatic: once connected, the operation is enough. A sale, an invoice, a payment, a purchase, a stay, a stock movement goes to the partner without anybody thinking of it; the other way, what it receives (an order, a payment, hours, a statement) lands in Hela.
On demand: the partner waits for a gesture, on the page where it makes sense — a button on the invoice, at the till, on the table.
| Family | Connection | After an operation, by itself | On a gesture |
|---|---|---|---|
| Accounting (Odoo, QuickBooks, Xero, Yuki, Exact, Pennylane, Sage, Zoho) | button, except Odoo (instance keys) | sale, invoice, payment, purchase written into the books | — |
| Payments (Stripe, Mollie, Square, SumUp by button; PayPal, mobile money, Wave, Flutterwave, Paystack by keys) | button or keys | the payment confirmed by the provider is recorded, the invoice turns paid | Payment link, Request on the phone on the invoice; Online mode at the till; Pay online on the invoice the customer receives |
| Banking (GoCardless, Ponto, Plaid; statements) | keys; file import | movements land in reconciliation every hour | importing a statement, picking a suggestion |
| Commerce (Shopify, WooCommerce) | private app keys | orders as sales; stock rewritten on every movement | — |
| Calendar (iCal, Google Calendar) | address / button | stays pushed and read | — |
| Archives (Drive, OneDrive, Dropbox) | button | every invoice, signed quote, purchase, till closing filed | Archive now on the document |
| Sheets (Google Sheets, Excel Online) | button | one row per event, catalogue read back | To the sheet on Sales, Purchases, Partners, Catalogue, Treasury, Hours |
| Signature (Yousign, DocuSign) | key / button | the signature received is recorded | Send for signature on the quote or invoice |
| Hours (Clockify, Toggl) | key | hours imported every hour | Sync |
| Messaging (Slack by button; WhatsApp, Teams, Telegram, Twilio, Africa's Talking by keys) | button or keys | the chosen alerts go to the channel | sending a receipt or an invoice to the customer |
| Rates (ECB, Open Exchange Rates) | nothing / key | the day's rate proposed every morning | — |
| Tax (Peppol, eTIMS, EBM, VFD, EFRIS, FNE, e-MECeF…) | enrolment from Compliance | every invoice issued is submitted | Submit on the invoice |
"Button" connections need the operator to have registered Hela with the partner once for everybody (back office → Integrations and keys); failing that, the connector's page offers the key, or your own application.
On a document
On an invoice or quote, a Partners card appears when at least one connected service can act: create a payment link, request a payment on the customer's phone, send for signature, archive, submit to the tax authority. The same card shows what was already done and its state.
Disconnecting
Disconnect forgets the credentials and stops sending. Documents already pushed stay with the partner; links are kept, so a reconnection does not create duplicates.
Ceilings
The number of simultaneous connections depends on the subscription plan (integrations in the ceilings). One connector more than the plan allows is refused with an explicit message.