I cannot get my Hubspot account to sync with my Xero account. The error message says to make sure I have 2FA set up, which I do - so I don't know why it is failing.
This is typical of the Xero integration, to put it mildly the integration is a train crash.
It's got to the point where I am thinking of building my own integration.
The only one I've ever seen that works is from Inbound Addons. Get in touch with Sam @sAlford she's super helpful.
Cheers
Mike
Here to learn more about HubSpot and share my HubSpot Knowledge. I'm the founder of Webalite a Gold HubSpot Partner Agency based in Wellington, New Zealand and the founder of Portal-iQ the world's first automated HubSpot Portal Audit that helps you work smarter with HubSpot.
Hi @Blvms , you’re not doing anything wrong, this is a known pain point with the native Xero integration.
The 2FA error is misleading. Even when 2FA is correctly enabled on the Xero side, the HubSpot integration can still fail because it relies on Xero’s OAuth flow in a way that’s quite fragile.
Any mismatch in token refresh, user permissions, or an expired consent can trigger that generic “make sure 2FA is set up” message, even though the real issue is deeper. Xero themselves acknowledge that integrations must fully re-authorize when auth settings or users change, but HubSpot doesn’t always handle that cleanly (https://knowledge.hubspot.com/integrations/connect-hubspot-and-xero-data-sync )
A couple of things that sometimes help before giving up. Make sure the Xero user who originally connected the integration is still active, still has full advisor or standard permissions, and still has 2FA enforced at the org level. If that user was removed, downgraded, or had 2FA reconfigured, the integration often breaks silently and cannot recover without a full disconnect and reconnect. Also double-check that you’re not hitting Xero’s org or app connection limits, because HubSpot won’t surface that clearly either (https://developer.xero.com/documentation/guides/oauth2/overview).
That said, Mike’s comment reflects what many teams run into. The native integration works for very light use, but once you rely on it for invoices, contacts, or revenue reporting, it becomes unreliable fast. Many teams end up replacing it rather than fighting it. Small disclaimer since I’m close to this space: I work on Stacksync. In Xero setups like this, teams often move away from the native connector and use a dedicated sync layer so auth, retries, and data consistency are handled more predictably, especially when 2FA and token refresh are involved.
Hope this gives you clarity on why it’s failing and saves you a few hours of head-scratching.
Did my answer help? Please mark it as a solution to help others find it too.
Ruben Burdin HubSpot Advisor Founder @ Stacksync Real-Time Data Sync between any CRM and Database
Hi @Blvms , you’re not doing anything wrong, this is a known pain point with the native Xero integration.
The 2FA error is misleading. Even when 2FA is correctly enabled on the Xero side, the HubSpot integration can still fail because it relies on Xero’s OAuth flow in a way that’s quite fragile.
Any mismatch in token refresh, user permissions, or an expired consent can trigger that generic “make sure 2FA is set up” message, even though the real issue is deeper. Xero themselves acknowledge that integrations must fully re-authorize when auth settings or users change, but HubSpot doesn’t always handle that cleanly (https://knowledge.hubspot.com/integrations/connect-hubspot-and-xero-data-sync )
A couple of things that sometimes help before giving up. Make sure the Xero user who originally connected the integration is still active, still has full advisor or standard permissions, and still has 2FA enforced at the org level. If that user was removed, downgraded, or had 2FA reconfigured, the integration often breaks silently and cannot recover without a full disconnect and reconnect. Also double-check that you’re not hitting Xero’s org or app connection limits, because HubSpot won’t surface that clearly either (https://developer.xero.com/documentation/guides/oauth2/overview).
That said, Mike’s comment reflects what many teams run into. The native integration works for very light use, but once you rely on it for invoices, contacts, or revenue reporting, it becomes unreliable fast. Many teams end up replacing it rather than fighting it. Small disclaimer since I’m close to this space: I work on Stacksync. In Xero setups like this, teams often move away from the native connector and use a dedicated sync layer so auth, retries, and data consistency are handled more predictably, especially when 2FA and token refresh are involved.
Hope this gives you clarity on why it’s failing and saves you a few hours of head-scratching.
Did my answer help? Please mark it as a solution to help others find it too.
Ruben Burdin HubSpot Advisor Founder @ Stacksync Real-Time Data Sync between any CRM and Database
This is typical of the Xero integration, to put it mildly the integration is a train crash.
It's got to the point where I am thinking of building my own integration.
The only one I've ever seen that works is from Inbound Addons. Get in touch with Sam @sAlford she's super helpful.
Cheers
Mike
Here to learn more about HubSpot and share my HubSpot Knowledge. I'm the founder of Webalite a Gold HubSpot Partner Agency based in Wellington, New Zealand and the founder of Portal-iQ the world's first automated HubSpot Portal Audit that helps you work smarter with HubSpot.