ERP connectors
Pull data from your ERP, push journals back. OAuth handled, refresh transparent.
Supported systems
Add a connection from Connections in the side rail (Settings → Connections in some builds). The type picker lists every adapter HISAB ships:
| Connector | How it connects | Read | Write |
|---|---|---|---|
| Xero | OAuth 2.0 (your own developer app: client_id + client_secret) | ✓ | ✓ |
| QuickBooks Online | OAuth 2.0 (Intuit developer app: client_id + client_secret) | ✓ | ✓ |
| Zoho Books | OAuth 2.0 (Zoho API console app: client_id + client_secret) | ✓ | ✓ |
| Odoo | XML-RPC — URL + database + username + password | ✓ | ✓ |
| Generic OData (v2/v4) | For Dynamics 365 or any OData endpoint | ✓ | ✓ |
| CSV folder | A local folder of .csv exports from any system | ✓ | — |
Reads work on every connection and every plan — and so do writes: ERP write-back is included in every plan. Xero, QuickBooks Online, Zoho Books, Odoo and Generic OData support write-back, while CSV folders are read-only by design.
Setting up a connection
Click + Add connection, pick the type, and fill in the details for that adapter (a folder path, or an ERP URL + credentials). For the OAuth connectors (Xero, QuickBooks, Zoho), you connect through your own developer app:
- Create an app in the provider's developer portal (developer.xero.com, developer.intuit.com, or api-console.zoho.com) and copy its
client_idandclient_secretinto the connection. - HISAB shows you the exact redirect URI to register —
http://localhost:8765/hisab-oauth-callback(the port auto-increments for additional OAuth connections). Paste it into your app's allowed redirect URIs. - Click Authorise on the connection. HISAB opens your browser to the provider's consent page; sign in, approve the scopes, and the local callback completes the grant. Use Re-authorise later if the token expires.
Connections are encrypted at rest with Windows DPAPI (per-user, per-machine) and stored at %APPDATA%\HISAB\connections.json. Secrets like client secrets, passwords and tokens are never returned to the AI — only non-secret metadata (name, kind, public params) is.
Pulling data
Just ask in the chat:
Pull the May trial balance from Zoho Books into a new sheet.
The AI inspects the connection's schema, fetches rows (paged automatically for large pulls), and lands them in your workbook. Every read is restricted at the connection layer to read-only: HTTP requests are limited to GET/HEAD/OPTIONS, SQL is SELECT-only, and the read adapter exposes no methods that can write, post or delete anything in the source system. Every read is logged to %APPDATA%\HISAB\Telemetry\.
Writing back to your ERP (every plan)
Writing to an ERP is opt-in per connection, never on by default. When you add or edit a write-capable connection (Xero, QuickBooks, Zoho, Odoo, or a Generic OData endpoint), pick the capability mode:
- Read-only — the default. The AI can read journals, invoices and reports but cannot post anything.
- Read + Write — HISAB requests the provider's granular write scopes (for Xero: invoices, payments, bank transactions, manual journals, contacts, settings, attachments). You may need to re-authorise so the new scopes are granted.
Writes do not go through a simple “push” call. They use a staged-sheet workflow so you can review the exact rows before anything leaves Excel:
- Stage — HISAB builds a staging sheet with the required columns (and reference sheets with valid ids to pick from).
- Validate — it checks each filled row against the ERP's rules and flags problems before submission.
- Submit — validated rows are posted as drafts or final entries.
Before each batch posts, a confirmation card shows the entity counts and a data preview; approving it mints a short-lived token bound to that batch. There are no silent writes.