Skip to main content

How to Integrate Xero with tofu

Learn how to connect Xero to tofu for seamless data syncing and easier bookkeeping.

Written by Jess B

1. Log in to tofu

  • Enter your credentials.

  • Make sure your organization name is visible at the top of the dashboard.


2. Select Entity and Access Integration Settings

  • Click on the Entity (Client Org) you want to integrate

  • Go to the Entity Settings menu (top right corner)

  • Click on the Integration tab


3. Add Xero Integration

  • Click Add Integration

  • Choose Xero from the list

  • Click Connect to begin the setup


4. Sign in to Xero

  • If prompted, log in to your Xero account

    • However, if you are already log-in to Xero at same web browser, most of the time this step will be skipped. (cont. to step 5)


5. Select Your Xero Organization

  • Use the dropdown to select your xero organization

  • Click Next

  • If your Xero login only has access to one organization, tofu selects it for you and skips this step.

📌 Good to know: A Xero organization can be connected to more than one entity in tofu, for example if you keep separate entities for AP Bills and expense claims. Only Owners and Admins can connect an organization that's already linked to another entity.


6. Configure Your Xero Settings

In the Xero Configuration panel, open each extraction type tab and set:

  • Invoice status on publish: the status your transactions land in the moment they're published (Draft, Awaiting Approval, or Awaiting Payment). This applies to AP Bills, AR Invoices, and AP and AR Credit Notes (if enabled).

  • Allow tax amount override: turn this on if you want to adjust tax amounts manually in tofu.

  • Self-Prompt: turn this on so tofie can learn from your historical Xero transactions and apply your coding patterns automatically during review.


7. Activate the Integration

  • Once you click Activate, you're all set! tofu is now connected to Xero.

💡 Tip: Already activated and want to turn on Self-Prompt later? Go to Entity Settings → Knowledge Base, select the extraction type, then click Self-Prompt.


8. Automate with Document Lifecycle

Once your integration is active, you can choose how much of the review flow tofu handles for you. Go to Entity Settings → Features → Extraction Types, select an extraction type, and open Document Lifecycle. You can turn on:

  • Auto-Ready: moves a clean Draft straight to Ready. Extractions with a validation error, a new contact, or a duplicate stay in Draft for your review.

  • Auto-Publish: publishes a Ready extraction to Xero right away, using the status you chose in Invoice status on publish.

  • Auto-Done: marks an extraction Done once it's published.

Each toggle switches from Manual to Automatic when you turn it on, and you can set them separately for each extraction type.

💡 Tip: New to tofu? Start with Auto-Ready off so you can see how tofie is doing, and turn it on once you're confident in its accuracy. Test any new setting on 2 to 3 extractions before making it your permanent workflow.


9. Xero Integration's Data Flow

  • The chart below illustrates the data flow between tofu and Xero


10. Understanding Xero's API Limits

Xero limits how many requests any connected app, including tofu, can make in a given time window. When you publish in large batches, tofu paces and queues requests to stay within those limits so your actions complete reliably.

  • If a limit is reached, you may briefly see a message such as "You have hit the Xero limit, please retry after a few seconds." tofu retries automatically, and items that already processed successfully are not affected.

  • To keep large runs smooth, publish in batches within tofu's bulk limits. See Bulk Actions Overview.

  • For the technical details of Xero's rate limits, see Xero's official guide: https://developer.xero.com/documentation/guides/oauth2/limits/


11. If Xero Disconnects

If your Xero connection drops, tofu blocks extraction review for this entity until it is reconnected. Entity Managers will see a Reconnect button that leads back to this integration setup; other roles will be asked to contact a manager.

Did this answer your question?