Support & Documentation
How Saral connects to Xero, what moves where, and how to get help.
1. Connecting your Xero organisations
- New customers: choose a module at /subscribe and click Sign up with Xero — your account is created from your verified Xero identity, and your organisations connect in the same flow.
- Existing customers connect (or add) organisations from Settings → Xero. One consent covers every organisation you select on Xero’s screen; each becomes its own entity in Saral.
- Multi-entity groups: each Xero organisation maps to one Saral company inside your group, and reports consolidate across them. The mapping is by organisation, never guessed.
- Returning users can also Sign in with Xero from the login page once their Xero identity is linked (Settings → Security).
2. How data flows
- Read path. Your Xero organisations notify the Saral sync engine by signed webhook and are polled incrementally (OAuth 2.0 with
offline_access). The engine upserts into the Saral database (Supabase, EU; tokens encrypted at rest), and the modules read from there, scoped to your group — reads: invoices, payments, bank, journals, contacts, reports. - Write path. A module writes a bill, invoice, payment, draft journal or contact to the one organisation you chose — only when a person (or a rule you configured) asks — and the sync engine brings the posted record back, so every module sees exactly what Xero holds.
- Your team reaches all of it through signed sessions; nothing is served from Xero directly to the browser.
Xero stays the system of record. Saral mirrors what it needs for cross-entity reporting and operations, and only ever writes what a person (or a rule you configured) explicitly asks it to push. Every write is verified after posting.
3. What Saral reads from Xero
Per connected organisation: sales and purchase invoices with credit notes and payments; bank transactions and transfers; manual journals; contacts; the chart of accounts, tax rates and tracking categories; fixed assets; invoice attachments; budgets; and Xero’s own financial reports (P&L, balance sheet, trial balance, aged balances, bank summary). Reads are incremental — webhooks in near-real-time, plus nightly delta polls as the safety net.
4. What Saral writes to Xero
- Bills and invoices you approve for posting (document processing, self-billing, intercompany recharges), with the source document attached — pushed to the specific organisation you chose, never anywhere else.
- Payments and batch payments created from your payment runs, and the bank transfers and card spend you post from them.
- Draft manual journals from year-end and allocation workflows — always drafts, for your review in Xero.
- Contact updates you initiate, tracking-category options where you use project tracking, and “enable payments” on an account you choose.
5. Sync schedule and manual sync
Webhooks apply Xero-side changes within minutes. Nightly delta syncs catch anything missed, and a nightly parity check counts Saral against Xero and self-repairs drift. You can trigger a manual sync any time from Settings → Xero (per organisation), and a full historical re-pull is available to account owners. Sync health, last-run times and any problems are visible on the same screen — errors are shown as errors, never as zeros.
6. Permissions (OAuth scopes) explained
When you connect, Xero shows exactly what you are granting. Every permission below maps to a feature you can see; none is requested “just in case”. Signing in (as opposed to connecting) asks for identity only. If you use a module that needs no accounting write, the unused permissions are simply never exercised.
openid profile emailIdentity only · All (account identity)- Tells us who you are when you connect, sign up or sign in with Xero — your name and email, from Xero's own login.
offline_accessIdentity only · All (sync engine)- Lets the sync keep running overnight without you re-approving every time.
accounting.invoicesRead and write · Accounts, Projects, BillScan, HR, Recharge, Payroll- Reads your sales and purchase invoices and credit notes so reports and approvals are up to date; writes the bills and invoices you approve for posting.
accounting.paymentsRead and write · Accounts, HR- Reads payments so 'what is still owed' is right; records the payments and batch payments you make from your payment runs.
accounting.banktransactionsRead and write · Accounts, HR- Reads bank transactions and transfers for the bank views and reconciliation; records the interbank transfers and card spend you post from payment runs.
accounting.manualjournalsRead and write · Accounts, Payroll, Recharge- Reads manual journals for the audit file; posts the DRAFT journals you prepare (year-end, intercompany offsets, payroll cost allocation, director loans) for review in Xero.
accounting.contactsRead and write · Accounts, BillScan, HR, Recharge- Reads your suppliers and customers so documents match the right contact; updates a contact only when you ask (bank details from a verified bill, harmonising names across your companies).
accounting.settingsRead and write · All (coding + reports), Projects, Accounts- Reads your chart of accounts, tax rates, tracking categories and organisation details; the only writes are the project tracking options you create and 'enable payments' on an account you choose.
accounting.attachmentsRead and write · BillScan, HR, Accounts- Attaches the source document to what we post (the scanned bill, the CIS timesheet PDF, the year-end calculation sheet) and reads attachments back for the audit file.
assetsRead only · Accounts (asset register)- Reads your fixed-asset register so the asset screens and depreciation checks match Xero.
accounting.reports.balancesheet.read · accounting.reports.profitandloss.read · accounting.reports.trialbalance.read · accounting.reports.banksummary.readRead only · Accounts, Projects- Reads Xero's own financial statements so Saral shows the same numbers Xero does, consolidated across your companies.
accounting.reports.aged.readRead only · Accounts- Reads aged payables and receivables for the 'who owes what' views and the audit file.
accounting.budgets.readRead only · Accounts- Reads your Xero budgets for the budget-vs-actual columns of the management report pack.
What Saral deliberately does not ask for
accounting.journals.read— Never requested. Xero's premium general-ledger scope (Advanced tier, security assessment, use-case approval). Saral covers the GL with accounting.manualjournals plus the invoice, payment and bank-transaction scopes above; requesting it unapproved would make Xero reject the whole consent.accounting.reports.bankstatement.read— Opt-in only (XERO_BANKSTATEMENT_SCOPE=1). Free, but granted by Xero only after the developer signs the bank-statement security addendum. It is added to the consent only on a deployment where that is confirmed, and only then does the bank-statement drill-down appear.accounting.transactions · accounting.reports.read— Never requested. The old broad scopes; Saral requests the granular per-resource scopes instead, so the consent screen names exactly what is used.payroll.* · files · projects · accounting.journals.read— Never requested. Saral never processes payroll and never submits a return; it has no feature that needs Xero Payroll, Xero Files or Xero Projects.
7. Reconnecting and disconnecting
- Reconnect from Settings → Xero if a connection lapses (for example after changing Xero passwords or removing the app). Reconnecting restores sync; nothing is lost in between.
- Disconnect any organisation from Settings → Xero. Saral immediately clears its stored tokens AND revokes its own access at Xero; if Xero is unreachable the revocation is retried automatically until confirmed. Your already-synced data stays in Saral until you delete it.
- Removing Saral inside Xero (Settings → Connected apps) has the same effect from the other side — Saral detects it and marks the organisation disconnected.
8. Cancellation and data deletion
Cancel any module or your whole subscription from your own settings — no call needed. Access runs to the end of the paid period. Afterwards: 30 days of read-only export access, 60 more days of offline retention, then permanent deletion at 90 days, with reminders first. Xero connections are revoked as part of offboarding. Full detail in the terms and privacy notice.
9. Common issues
- “Connection needs attention” — the Xero grant lapsed (password change, app removal, long inactivity). Fix: Settings → Xero → Reconnect; one consent restores every organisation on the grant.
- A push failed — the item stays in its queue with the reason shown (for example a Xero validation error such as a locked period or archived contact). Fix the cause and push again; nothing is double-posted.
- Numbers look behind — check Settings → Xero for the last sync time and run a manual sync. Xero rate limits can delay large backfills; Saral paces itself and resumes automatically.
- Can’t sign in with Xero — your Xero identity may not be linked yet: sign in with your password and link it under Settings → Security.
11. Contact and escalation
Start with the help centre — how every screen works and the answers to the questions people ask, searchable. Inside the app, Kuku (the tab on the edge of every screen) answers from the same knowledge and can read your own set-up; anything it cannot answer goes to Saral support from its panel, with the chat attached, and the reply comes back in the app and by email.
Email support@getsaral.co.uk — include your company name and, for sync questions, the organisation and an example document. We aim to respond within one UK business day; suspected security issues are prioritised ahead of everything else and can be sent to the same address marked “SECURITY”.
Before you write, check the status page: it shows the live state of each part of Saral, any incident we are working on, and 90 days of history. Monitors can read it at /api/status; the Atom feed at /api/status/feed carries every incident update.