How to Import a Xero Trial Balance into UltraTax CS (Without Re-Keying)
If your clients keep their books in Xero and you prepare their returns in Thomson Reuters UltraTax CS, you've probably gone looking for the import button that connects the two. There isn't one. UltraTax CS imports trial balance data natively only from Thomson Reuters' own products — Accounting CS, Trial Balance CS, Workpapers CS. Xero isn't on that list, and neither is QuickBooks Online.
So the work falls to you: export the trial balance out of Xero, wrestle it into the shape UltraTax expects, assign a tax code to every account, and import. This guide walks the manual path step by step — including the parts that quietly cost you the most time — and then shows the version that takes about a minute.
Why there's no native Xero-to-UltraTax import
This isn't an oversight you can email support to fix. UltraTax CS is built to pull tax data directly from the rest of the Thomson Reuters CS Professional Suite. When the source ledger lives in Accounting CS or Trial Balance CS, balances flow in by tax code automatically. Xero is a different company's product with no such hook, so UltraTax treats a Xero trial balance the same way it treats any outside data: something you import from a spreadsheet and map by hand.
This is the same structural gap that exists between QuickBooks Online and UltraTax CS — two ecosystems that were never designed to talk to each other. The difference is that the Xero side of this problem is even more sparsely documented. Most firms end up piecing the workflow together from forum threads and trial-and-error.
The manual workaround, step by step
1. Export the trial balance from Xero
In Xero, go to Accounting → Reports → Trial Balance, set the date to your year-end, and click Update to generate the report. Scroll to the bottom, choose Export, and select Excel. You now have the client's full trial balance as an .xlsx file.
Before you do anything else, open it and delete the Total row. UltraTax will try to read that row as an account, and a "Total" line with no tax code is the first thing that breaks an otherwise clean import.
2. Get the spreadsheet into UltraTax's expected shape
UltraTax CS reads a trial balance import as a set of columns it can map to its own fields: account number, description, unit, tax code, and amount. The Xero export doesn't arrive in that layout, so you'll reshape it — splitting debit and credit columns into a single signed amount, trimming long account descriptions, and adding the tax code column UltraTax needs.
That tax code column is the entire job. Everything else is formatting; this is the accounting.
3. Assign a tax code to every account
UltraTax doesn't care what an account is called in Xero — it cares where the number lands on the return. You assign each account a UltraTax tax code (from the Tax Code Listing for the client's entity type), and UltraTax summarizes the balances, applies whole-dollar rounding, and transfers each amount to the right input screen by tax code.
There's no one-to-one shortcut here, because the correct code depends on the entity. The same Xero "Other Income" account belongs to a different line on a 1065 than on an 1120-S, and different again on a Schedule C. You're making an entity-aware judgment call on every line.
The gotchas that bite on a Xero import specifically
A Xero trial balance imports cleanly only if you've handled the things UltraTax silently assumes:
- Entity type drives every tax-code destination. Before you map a single account, you have to know whether you're preparing a partnership (1065), a sole proprietor (Schedule C), an S corporation (1120-S), or a C corporation (1120). Map first and decide the entity later and you'll redo the mapping.
- Cash vs. accrual has to match the return. Xero will happily export either basis. If the trial balance basis doesn't match how the return is filed, the numbers reconcile to nothing.
- Untagged accounts disappear. An account with no tax code isn't an error — it's simply excluded from the import. A balance you forgot to map doesn't bounce back at you; it just isn't there, and the return is quietly off until review catches it.
- Long descriptions get truncated. Import formats cap account/grouping descriptions (29 characters is a common limit), so "Officer compensation — health insurance" arrives clipped. Cosmetic, until two accounts truncate to the same string and you can't tell them apart.
- Accounts under one tax code are summed, not listed. When you map five Xero expense accounts to the same UltraTax grouping, they collapse into a single summed line. That's usually what you want — but it means a mismapped account hides inside a correct-looking total, so the groupings are worth a second look before you file.
None of these throw a loud error. They produce a return that imports successfully and is subtly wrong — the most expensive kind of mistake to catch on review.
The faster path: connect Xero directly
AccountantSync is built to remove this entire detour. It's the universal trial balance bridge to UltraTax CS, and Xero is fully supported alongside QuickBooks Online and spreadsheet uploads.
The workflow:
- Connect Xero through a secure OAuth connection — the same kind of authorization you'd use for any trusted Xero app.
- Pull the trial balance for the client and period, and set the entity type (partnership, sole proprietor, S corp, or C corp) and accounting method (cash or accrual).
- Auto-map the accounts to UltraTax tax codes. AccountantSync pre-fills the mappings it's confident about and flags the handful that need your judgment — drawing on the same mapping logic we use for QBO.
- Generate a UltraTax-ready import file. Signs, whole-dollar rounding, description truncation, and grouping sums are handled to UltraTax's spec, so the file imports without hand-formatting.
The part that compounds: your mappings persist year over year and copy between similar clients. The first Xero client you set up takes a few minutes of review. Every engagement after that — and every similar client — is close to a one-click sync. Instead of re-keying trial balances every season, you map once and reuse.
Frequently asked questions
Can you import a Xero trial balance directly into UltraTax CS?
Not natively. UltraTax CS imports tax data directly only from Thomson Reuters products like Accounting CS and Trial Balance CS. A Xero trial balance has to be exported and brought in as outside data — either manually mapped through a spreadsheet import, or automatically with a tool like AccountantSync that connects to Xero and generates the import file for you.
What format does UltraTax CS need for a trial balance?
UltraTax reads an import as columns it maps to its own fields: account number, description, unit, tax code, and amount. The critical column is the tax code — UltraTax routes each balance to the correct input screen based on it, applying whole-dollar rounding along the way.
Do I have to assign a tax code to every account?
Yes. Any account without a tax code is excluded from the import entirely. This is the step that makes manual imports slow and error-prone, because the right code depends on the client's entity type. AccountantSync assigns these automatically based on the entity you select and remembers them for next year.
Does AccountantSync support Xero?
Yes — Xero is fully supported and generally available, alongside QuickBooks Online and direct spreadsheet/CSV uploads. You connect Xero once, pull the trial balance, and export a UltraTax-ready file. Start free with your first two clients, no credit card required.