Join our Newsletter — 33% off our NHI Course
Home› Guides› Xero Security: Protecting users, connected apps and supplier…
Guide SaaS & OAuth Integrations

Xero Security: Protecting users, connected apps and supplier payments

← All guides
By NHI Mgmt Group, edited by Lalit Choda Updated 8 November 2026 13 min read
On this page

A Xero organisation holds the ledger, supplier bank details, bank feeds and often payroll, so an invited adviser with more access than needed, a connected app with broad write scopes or an unverified change to a supplier's bank account can move real money. Xero gives organisations the controls to manage this: mandatory multi-factor authentication for everyone who logs in, a small set of user roles, OAuth 2.0 connections with granular scopes, and History and notes records on contacts and transactions. This guide explains how identity and access work in Xero, how to assign roles and keep the subscriber and adviser accounts under control, how to govern connected apps and custom connections, what to monitor, and a hardening baseline built around supplier payment fraud. It is for business owners, finance managers, accountants and bookkeepers who administer Xero, and the IT or security people who support them. Every setting here is on the customer side of the shared responsibility model.

This is an independent guide from NHI Mgmt Group, based on Xero's public documentation as of November 2026. It is not sponsored or reviewed by Xero. Product features change, so confirm settings against Xero's current documentation.

Key takeaways

  • MFA is required for every user who logs in. Xero's MFA FAQ states that users must turn on MFA to keep using Xero, with Xero Verify push approval or a time-based code from an authenticator app, plus backup email and security questions for recovery.
  • Roles are few, so assign them carefully. The Xero API lists the organisation roles Read only, Invoice only, Standard, Financial adviser, Managed client and Cashbook client; give each person the lowest one that fits their work.
  • Connected apps are standing access. An OAuth 2.0 connection keeps a refresh token that rotates on every use and lapses after 60 days unused, so an app that syncs daily holds access indefinitely until someone disconnects it.
  • Move integrations to granular scopes. Apps created from 2 March 2026 use granular scopes, and Xero has set September 2027 as the deadline for older apps to move from broad scopes.
  • Verify every supplier bank change out of band. History and notes on the contact records who changed what; pair it with a call-back to a known number before any payment run. See the Invoice Redirection and Supplier Bank Detail Fraud Guide.

How identity and access work in Xero

A Xero login is a personal identity that can be invited into one or more organisations. Inside each organisation the user holds a role, and the user's identity, MFA and devices are managed in their own account settings rather than by the organisation. One user per organisation is the subscriber, who holds the billing relationship (the API exposes this as IsSubscriber). Because a single login often spans several organisations, particularly for accountants and bookkeepers, a compromised adviser account can reach every client organisation it has been invited into.

Multi-factor authentication

According to Xero's MFA FAQ, MFA is mandatory for users who log in: invited users must set it up, it is optional only during a trial, and users who never log in (such as payroll employees using a portal) are out of scope. The options are:

MethodHow it worksOperational notes
Xero VerifyPush notification to Xero's own app, approved or denied by the userNeeds an internet connection; works only for Xero logins; train users to deny pushes they did not start
Authenticator app (TOTP)Time-based code typed at login, from apps such as Google Authenticator or FreeOTPWorks offline; requires accurate device time
Backup emailRecovery when the authenticator is unavailableProtect this mailbox with its own MFA and a unique password, since it can unlock Xero
Security questionsAlternative recovery methodUse answers that are not discoverable, stored in a password manager
Remember this deviceSkips MFA on that device for 30 daysUse only on managed, personal devices, never shared office machines

Because the backup email can complete sign-in, it is part of the Xero attack surface. Push approval also invites fatigue attacks, so teach users that an unexpected Xero Verify prompt means their password is known and must be changed. See the MFA Fatigue and Bypass Guide.

Admin roles and privileged access

Xero's role model is compact. The organisation roles exposed by the Xero Accounting API are shown below with the security view of each; confirm the exact role names and add-on permissions in your organisation's Users settings, since the user interface groups some of them differently.

API role valueTypical holderSecurity view
READONLYAuditors, investors, managers who only reviewLowest risk; still exposes customer, supplier and financial data
INVOICEONLYSales staff raising invoices or entering billsSuited to front-office staff who only raise invoices or enter bills; confirm its scope in Xero Central
STANDARDBookkeepers and finance staffDay-to-day accounting; decide deliberately whether user management is added
FINANCIALADVISERAccountants and advisersBroad access; check the exact permissions in Xero Central and limit to the people who need it
CASHBOOKCLIENT and MANAGEDCLIENTClient users on partner-managed plansReduced feature sets defined by the plan
  • Protect the subscriber account: it controls billing and the organisation's existence, so hold it under a named owner with credentials in a password manager, a dedicated backup email and a documented succession plan.
  • Keep user management narrow: grant the ability to manage users to at least two trusted people for continuity and no more, because whoever holds it can invite new users or raise roles.
  • Review external advisers: accountants and bookkeepers often hold adviser access to many organisations. List them each quarter and remove those whose engagement has ended.
  • Separate payment duties: the person who edits supplier contacts and bank details should not also approve and release payments. In small teams, add a second person's review of the payment batch instead. See the Segregation of Duties Guide.
  • Remove leavers promptly: a removed user shows the role value REMOVED in the API, which gives a simple check that offboarding happened. See the Employee Offboarding Security Checklist.

Integrations, API tokens and service accounts

Every app that reads or writes Xero data, from payment platforms and receipt capture to reporting tools, connects through OAuth 2.0. These connections are non-human identities with standing access to the ledger, and they deserve the same review as human users. See the SaaS and OAuth App Governance Guide.

Connection typeGrantToken facts from Xero's developer docsGovernance point
Standard app (web or PKCE flow)Authorisation code; a user consentsAccess token 30 minutes; refresh token rotates on each use and expires after 60 days unusedDisconnect apps no longer in use; the authorising user's access bounds the app
Custom connectionClient credentials, one organisationAccess token 30 minutes; new tokens from client ID and secret aloneThe client secret is the credential: store it in a vault and rotate it

Scopes

Xero scopes take the form accounting.contacts (read-write) and accounting.contacts.read (read-only). Broad scopes such as accounting.transactions cover bank transactions, credit notes, invoices and repeating invoices together. Xero's granular scopes FAQ sets out the move to narrower scopes: apps created on or after 2 March 2026 use granular scopes, older apps could start requesting them from April 2026, and they have until September 2027 to complete the move, using a mix in the meantime. Xero's own example replaces accounting.transactions with accounting.invoices. When an app asks for consent, check whether it requests write access to contacts or settings and ask the vendor why if the use case is read-only reporting.

Custom connections

A custom connection is a premium option for a single organisation's own integration, available for organisations in Australia, New Zealand, the UK and the US. The integrator enters an authorising user's email, that user approves by email, and the integration then requests tokens with its client ID and secret, with no refresh token. That makes the client secret a long-lived credential equivalent to a password with the scopes chosen at setup. Keep it in a secrets manager, never in spreadsheets or scripts, and choose an authorising user whose role is appropriate for the integration. See the Machine-to-Machine OAuth (Client Credentials) Guide.

Refresh token handling for your own apps

If you build on Xero, store refresh tokens encrypted, replace the stored token with the new one returned on every refresh, and use the 30-minute retry window Xero describes only for a lost response. A refresh token that stops rotating as expected, or two systems refreshing the same token, is a sign it has been copied. See the How to detect use of a stolen OAuth refresh token guide.

Logging and detection

SourceWhat it recordsDetection use
History and notes on contactsChanges to the contact record and the user who made them (also available through the API's Contacts History endpoint)Supplier bank detail changes before a payment run
History and notes on transactionsCreation, edits, approval and payment of invoices, bills and batch paymentsBills edited after approval; payments to new or changed accounts
Users list and rolesWho has access and at which role, including REMOVED usersNew adviser invitations, role increases, leavers still active
Connected apps listApps connected to the organisationUnknown apps, apps connected by users who have left
User account settingsEach user's MFA device and backup methodsDevice changes the user did not make

Most Xero organisations are small and have no SIEM. The practical control is a weekly review routine: open History and notes for any supplier whose details changed, compare the users list with the staff list, and check the connected apps list. Larger finance teams can pull contact and transaction history through the API with a read-only integration and alert on changes to bank details. See the SaaS Audit Log Retention and Licensing Guide.

Metrics

  • Bank change verification: supplier bank detail changes confirmed by call-back to a known number before payment, target 100 per cent.
  • Adviser hygiene: external adviser users with a current engagement, target 100 per cent.
  • App ownership: connected apps with a named business owner and a use in the last quarter, target 100 per cent.
  • Broad scope apps: connections still using broad scopes, falling to zero before September 2027.
  • Backup method health: users whose backup email is a company-controlled mailbox with MFA, trending to 100 per cent.

Hardening baseline

  1. Inventory: export the users list with roles and user management rights, identify the subscriber, list external advisers and the organisations they reach, and list every connected app and custom connection with its owner.
  2. Authentication: confirm every user has completed MFA, prefer authenticator codes or Xero Verify on a managed phone, check that backup emails are protected mailboxes, and switch off "remember this device" on shared computers.
  3. Roles: move each user to the lowest role that fits, limit user management to two people, and remove advisers who no longer work on the organisation.
  4. Supplier payments: write a rule that any change to supplier bank details is verified by phone to a number already on file, recorded in History and notes, and reviewed by a second person before the next payment batch. Treat emailed requests to change bank details as suspect by default. See the Business Email Compromise Awareness for Finance Teams Guide.
  5. Connected apps: disconnect apps with no owner or recent use, ask vendors of remaining apps for their granular scope plans, and record which user authorised each connection.
  6. Custom connections and your own apps: keep client secrets and refresh tokens in a secrets manager, rotate secrets when staff with access leave, and restrict scopes to what the integration needs.
  7. Phishing reporting: forward suspicious emails claiming to be from Xero to the address Xero publishes on its security page, and check Xero's security noticeboard for current scam themes.

Test role changes with one user first and confirm their daily tasks still work; roll back by restoring the previous role from the users list. Disconnecting an app is reversible by reauthorising it, so disconnect unknown apps first and investigate second.

Small and large organisations

A sole trader or small business can apply this baseline in an hour: MFA confirmed, one adviser, one or two apps, and a call-back rule for bank changes. A finance team running several organisations should assign roles per organisation, review advisers and connected apps quarterly, keep a register of integrations with owners, and pull History and notes through a read-only API connection for automated bank change alerts.

Common misconfigurations

  • Everyone on the adviser role: staff given broad access because it was the quickest choice when inviting them.
  • Shared logins: one Xero login shared by a team, which breaks accountability in History and notes and ties MFA to one person's phone.
  • Unprotected backup email: a personal mailbox without MFA set as the Xero backup, giving a second route into the account.
  • Bank details changed by email request: a supplier "update" email accepted and keyed in without a call-back, the core pattern of invoice redirection fraud.
  • Forgotten connected apps: trial apps and apps authorised by former staff left connected with write scopes.
  • Client secrets in spreadsheets: custom connection credentials stored where many people can read them.

Framework mapping

Control areaNIST SP 800-53 Rev 5NIST CSF 2.0ISO/IEC 27001:2022 Annex AMITRE ATT&CK
User roles, user management, advisersAC-2, AC-6PR.AA-055.15, 5.18, 8.2T1098 Account Manipulation
MFA and recovery methodsIA-2, IA-5PR.AA-015.17, 8.5T1078.004 Cloud Accounts
Connected apps, custom connectionsIA-5, AC-6PR.AA-015.17T1528 Steal Application Access Token, T1550.001 Application Access Token
History and notes reviewAU-2, AU-6PR.PS-04, DE.CM-038.15, 8.16T1213 Data from Information Repositories
Supplier bank change verificationAC-6, AU-6DE.CM-035.15, 8.16T1657 Financial Theft, T1566 Phishing

Practitioner checklist

  • Confirm every user has MFA set up and that backup emails are protected mailboxes with their own MFA.
  • Identify the subscriber and document who owns that login and how it is handed over.
  • Move each user to the lowest suitable role and limit user management rights to two named people.
  • Remove external advisers and former staff who no longer need access.
  • List connected apps and custom connections, assign owners and disconnect the rest.
  • Track each integration's move to granular scopes ahead of September 2027.
  • Require call-back verification and a second reviewer for every supplier bank detail change, recorded in History and notes.
  • Store custom connection client secrets and refresh tokens in a secrets manager and rotate them when staff leave.

Standards and references

Related NHI Mgmt Group resources: Invoice Redirection and Supplier Bank Detail Fraud Guide · SaaS and OAuth App Governance Guide · MFA Guide · Segregation of Duties Guide · SaaS Security Guide

Free weekly newsletter

Subscribe to the NHI & AI Identity Journal

The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.

Bonus 33% off our NHI Course when you subscribe.

NHIMG Editorial Note
Researched and written by the NHI Mgmt Group editorial team using AI tools, under the editorial direction of Lalit Choda. Facts are drawn from the sources listed on this page and checked by our automated quality process. Last updated 8 November 2026. Spotted an error? Use our contact page.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM and Agentic AI security. nhimg.org