Most Xero integration failures are not "bugs". They are operations:
- tokens expire
- permissions change
- tenants/org selections change
Start here:
Make connection status visible
If users cannot answer:
- Are we connected?
- Which org is connected?
- When was the last successful sync?
...then the integration is not operable.
Status visibility is what turns an integration from "hope" into "infrastructure".
Refresh vs reconnect (keep it explicit)
Two different recovery paths matter:
- Refresh: access exists, token needs refresh
- Reconnect: access changed, user must re-authorize
If those are not explicit, support teams guess and waste time.
Store credentials securely (encrypted at rest)
OAuth tokens are sensitive. Treat them like production secrets:
- encrypted at rest
- only service-side access
- auditable updates
What to do next
- Connect and operate the integration with explicit status: Xero integration (Dubai)
- If you also need real-time events, use: ERP webhooks (Dubai)