Xero and the 60-Day Expiry
Xero can be connected for accounting integration. One characteristic of that connection causes more failures than everything else combined, so it gets its own article.
Where to find it
Architect Panel → Integration & Connections:
- Xero Connections — the connection, its credentials, webhooks and expiry notifications
Architect Panel → Automation:
- Tasks — Check Xero Authorisation Expiry
Architect Panel → Activity:
- Error Log — where a lapsed connection surfaces
The 60-day rule
Xero's authorisation lapses after 60 days without being refreshed. It is not a certificate expiry you can diary once — it is a rolling window that resets each time the connection is used.
So an integration used daily never lapses, and one used monthly, seasonally or only at year end will. Quiet integrations are exactly the ones this catches, and they are the ones nobody is watching.
Why it fails silently
Nothing announces it. The connection simply stops working, and because the integration was quiet by definition, the first symptom is usually somebody asking why nothing has come through — often after a period end, which is the worst time to be reconnecting.
The notification exists for this
The connection carries notification e-mail addresses and a number of days' notice, and a scheduled task checks the expiry and warns you.
Configure both. This is one of the few tasks that ships enabled, precisely because the failure it prevents is common, silent and inconvenient.
Set the notice generously
Two weeks or more. A warning arriving the day before is not much use if the person who can reconnect is away — and reconnecting needs somebody with the Xero credentials, not just any administrator.
Send it to more than one person
The field takes several addresses. Use them. A warning sent to one person who has left, or who is on leave, is a warning nobody receives — and this is precisely the failure mode the notification exists to prevent.
Reconnecting
Somebody signs in to Xero and re-authorises. Straightforward, and it needs Xero credentials — so know in advance who that is, and make sure it is not one person.
Webhooks
The connection can receive webhooks from Xero, with a signing key and a function to handle them, so changes made in Xero can be reacted to here rather than polled for.
Note that webhooks stop when the authorisation lapses, like everything else — so a webhook-driven integration is not immune, it just fails more quietly still.
Test the whole loop after reconnecting
Confirm data flows and webhooks arrive, rather than assuming that because the authorisation succeeded everything resumed. It usually has; occasionally something else needs attention and finding out now is better.
Worked example
An organisation syncs invoices to Xero daily, so the authorisation refreshes constantly and never lapses. A second connection for a dormant subsidiary is used twice a year — it lapsed twice before the notification was configured with 21 days' notice to three people. It has not lapsed since.
Recommendations
- Configure expiry notifications on every Xero connection.
- Give at least two weeks’ notice, to several people.
- Know who holds the Xero credentials before you need them.
- Watch quiet connections hardest — they are the ones that lapse.