Skip to content

Sage Intacct to Xero Migration: API Limits, Data Mapping & Methods

Complete technical guide to migrating from Sage Intacct to Xero, covering API rate limits, dimension-to-tracking-category mapping, multi-entity handling, and method comparison.

Raaj Raaj · · 18 min read
Sage Intacct to Xero Migration: API Limits, Data Mapping & Methods
TALK TO AN ENGINEER

Planning a migration?

Get a free 30-min call with our engineers. We'll review your setup and map out a custom migration plan — no obligation.

Schedule a free call
  • 1,200+ migrations completed
  • Zero downtime guaranteed
  • Transparent, fixed pricing
  • Project success responsibility
  • Post-migration support included

Moving from Sage Intacct to Xero is not an upgrade — it's a structural simplification. You're compressing an enterprise-grade, multi-dimensional ERP into an SMB accounting platform with hard architectural limits. Done right, it saves your organization significant licensing costs and operational overhead. Done wrong, you lose historical reporting granularity, break multi-currency setups, or hit API rate limits mid-migration and stall for days.

This guide covers the real technical constraints on both sides, the complete object-by-object data mapping, the dimension-to-tracking-category compression problem, multi-entity handling, and a direct comparison of migration methods — so you can pick the approach that matches your volume, timeline, and risk tolerance.

For a real-world example of this migration executed in under a week, see our case study: Sage Intacct to Xero Migration: How a 5-Day Financial Data Migration Was Completed.

Why Move from Sage Intacct to Xero?

The most common reasons we see for this "downmarket" shift:

  • Cost reduction. Sage Intacct licensing runs significantly higher than Xero, especially when you factor in the Web Services Developer License, Performance Tier upgrades, and per-seat costs. For a mid-market company that has simplified its operations, Xero's transparent pricing removes that overhead.
  • Business unit spin-offs. A parent company keeps Intacct for consolidated reporting while a divested subsidiary moves to Xero for independent operations.
  • System simplification. Teams that don't use Intacct's multi-entity consolidation, revenue recognition, or project accounting are paying for complexity they don't need.

Migrating from Sage Intacct to Xero offers businesses an opportunity to streamline their accounting processes and reduce costs, since Sage Intacct's complexity and high costs can hinder growth, especially for small to medium-sized businesses.

This is a valid move for many organizations. But you need to go in with eyes open about what Xero can't do that Intacct can. A good fit usually looks like this:

  • Each legal entity can live in its own Xero organisation
  • Only two reporting axes need to stay live at line level
  • Older closed periods can be summarized or archived
  • Group consolidation can happen outside the core ledger
  • Finance is willing to rebuild some workflows instead of copying every Intacct behavior

If you want a broader risk model before touching data, read 7 Costly Mistakes to Avoid When Migrating Financial Data.

Data Architecture Mismatch: Dimensions vs. Tracking Categories

This is the single hardest problem in the migration. It's not a data transfer issue — it's a data compression issue.

Sage Intacct comes with eight built-in dimensions: location, department, vendor, customer, employee, project, item, and class. You can also create additional user-defined dimensions when none of the built-in ones apply. The list of dimensions includes location, department, project, customer, vendor, employee, item, and class — plus you can create custom dimensions unique to your business.

Xero allows only 2 active tracking categories to be used within all transaction pages, including quotes, invoices, payments, bills, bill payments, and manual journals. Each category can contain up to 100 individual options.

That's 8+ dimensions compressed into 2 tracking categories. There's no workaround inside Xero itself — this is a hard platform constraint.

How to Handle the Compression

Step 1: Audit your actual reporting usage. Most Intacct customers use 3–5 dimensions actively in reports. Identify which two provide the most decision-useful segmentation (typically Department and Location, or Department and Project).

Step 2: Map remaining dimensions to alternative Xero structures.

Sage Intacct Dimension Xero Equivalent Notes
Department Tracking Category 1 Direct map, up to 100 options
Location Tracking Category 2 Direct map, up to 100 options
Project Contact Groups or Account Codes Lossy — no native project tracking
Class Prefixed Account Codes Encode in the CoA structure
Customer Contacts Native Xero object
Vendor Contacts Merged with customers in Xero
Employee N/A Use payroll or external HR tool
Item Items Direct map

Step 3: For the dimensions that don't fit, decide between encoding them into the Chart of Accounts, pushing them to an external reporting layer, or archiving the historical data and accepting reduced granularity going forward.

Pushing operational dimensions like project or channel into an external reporting layer is often cleaner than forcing them into description fields. The right answer is frequently to preserve less data inside Xero and preserve more meaning outside it.

Warning

Do not try to overload Xero's 2 tracking categories by concatenating dimension values (e.g., "NYC-Engineering"). This breaks downstream reporting and makes every future filter operation painful. Pick two clean dimensions and accept the trade-off. Also, do not use Xero's Contact Groups as a pseudo-dimension — Contact Groups apply at the customer/vendor level, not the transaction line-item level.

For more on how Chart of Accounts cleanup affects migration outcomes, see Your Chart of Accounts Migration Plan.

Handling Multi-Entity Splits

Sage Intacct supports multi-entity management within a single instance — handling multi-entity structures is a unique challenge, since Sage Intacct is known for its robust entity management, supporting granular reporting, intercompany transactions, and consolidated financials.

Xero takes a different approach. Instead of built-in multi-entity support, Xero relies on tracking categories, custom reports, and sometimes add-ons to manage group structures. This shift can cause issues during the migration process if not planned correctly.

In practice, this means: each Sage Intacct entity becomes a separate Xero organization. There is no native consolidated view across Xero orgs — you'll need a third-party tool like Syft Analytics, Fathom, or Dext to consolidate reporting across entities.

The Multi-Entity Migration Sequence

  1. Export data per entity from Intacct using entity-level API queries (filter by LOCATIONID or entity ID).
  2. Create a separate Xero organization for each entity. Each org gets its own Chart of Accounts, contacts, tax rates, and bank accounts.
  3. Standardize the Chart of Accounts across all Xero orgs before import. Inconsistent account codes across entities will make post-migration consolidation impossible.
  4. Decide whether shared customers and vendors will be duplicated across Xero orgs or maintained by sync logic.
  5. Recreate intercompany transactions deliberately. Intacct's native intercompany elimination does not carry over. An Intacct bill entered at the Top Level and allocated across three entities must be split into the parent organization's bill plus corresponding inter-company AP and AR invoices in each subsidiary organization. Your migration logic must detect these cross-entity allocations in the Intacct GLENTRY and spawn the correct balancing entries in Xero.
Danger

Watch for private entity query gaps. In a multi-entity Intacct company, top-level queries do not access private entities by default. If you don't explicitly include private data or pull entity by entity, you can reconcile at group level while still silently dropping subsidiary detail. (developer.intacct.com)

Tip

The silver lining of the multi-entity split: each Xero organization gets its own API rate limits. If you're migrating 4 entities, you effectively get 4× the daily API budget (5,000 calls × 4 = 20,000 calls/day across all orgs). Run one entity end-to-end first — it exposes tax-code drift, shared-master collisions, and FX edge cases before you scale the runbook across every subsidiary.

API Limits & Throttling: Sage Intacct and Xero

Both platforms enforce strict rate limits that directly affect migration speed. You need to plan around both the read side (Intacct) and the write side (Xero). Most failed DIY migrations aren't mapping failures first — they're throughput failures.

Sage Intacct API Limits

With your Intacct subscription, you are automatically enrolled in Performance Tier 1. This tier allows for 100,000 transactions per month. If that is not enough for your needs, you can upgrade to a higher tier for an additional fee.

Intacct limits the results to 2,000 results per query command; you will need to utilize the offset parameter to receive all results. Sage also recommends limiting queries to fewer than 1,000 records and paginating even when larger results are technically possible. (developer.intacct.com) For example, extracting 5,500 AP bills requires 3 paginated queries — each counted as a separate API transaction.

If you go over the allotted number of transactions in a month, you will receive a bill for the overage. Intacct charges the overages in "packs" of ten transactions. Sage Intacct does not block API transactions that exceed the API transaction entitlement — you'll just get a bill.

Key implication for migration: A full data export of a mid-size Intacct instance (10,000 invoices, 5,000 bills, 3,000 customers, 2,000 vendors, plus GL entries) can easily consume 15,000–25,000 API transactions. That's a significant chunk of your monthly 100K budget. Schedule the export during a low-activity period.

For very large historical archives, consider a hybrid extract strategy. Sage's Data Delivery Service (DDS) can extract massive datasets to cloud storage. That's often a better source for archive-grade history than hammering transactional APIs for months of closed periods. (developer.intacct.com)

For new extraction logic, Sage now recommends the REST API over the legacy XML/SOAP interface. XML is still supported and common in older tooling, but REST should be the default unless a needed object still forces XML. (developer.intacct.com)

Xero API Limits

Concurrent Limit: 5 API calls in progress at a time (per-organization, per-app). Minute Limit: 60 API calls per minute (per-organization, per-app). Daily Limit: 5,000 API calls per day (per-organization, per-app). App-wide Minute Limit: 10,000 calls per minute across all tenancies for a single app.

The daily 5,000 call limit is the binding constraint for migration.

Syncing a single invoice involves: Checking/Creating a Contact (1 API call), Checking/Creating Items if required (1 call per item), Creating/Updating the Invoice (1 call), and Applying Payments optionally (1 call per payment).

You can sync up to 833 invoices per day without exceeding the 5,000 API call limit, assuming each invoice requires 6 API calls.

Info

As of March 2026, Xero introduced a new usage-based pricing model for its developer platform, charging based on connections and data egress volume. If you're using a custom OAuth app for the migration, be aware that Xero's new API pricing charges $2.40 AUD per GB of data egress. For a one-time migration, this cost is typically minimal, but it's worth factoring in.

Batching: The Throughput Multiplier

You can create more than one Invoice in a single PUT or POST Invoices API call. While there is no upper limit in the number of nodes that can be sent at one time, a ceiling of about 50 nodes per request is practical — this will ensure a request does not exceed the maximum size of 3.5MB.

With batching, the math changes dramatically:

Approach Invoices per API Call Daily Invoice Capacity (5,000 calls)
No batching (6 calls/invoice) 1 ~833
Batching invoices only (50/call) 50 ~4,000+
Batching + pre-cached contacts 50 ~5,000+

The key optimization: cache all Contacts and Items locally before starting the invoice import. Create them in batch first, store the Xero GUIDs, then reference those GUIDs when creating invoices. This eliminates the per-invoice Contact lookup call.

When you exceed a limit, the API returns a 429 Too Many Requests response with a Retry-After header. Your migration script must implement exponential backoff. For incremental reads during delta syncs, use Xero's If-Modified-Since header instead of full re-pulls. (developer.xero.com)

Data Mapping Guide: Sage Intacct Objects to Xero Endpoints

Here's the object-by-object mapping between the two systems. This is the reference table you'll use to build your migration script or configure your migration tool.

Core Objects

Sage Intacct Object Xero Endpoint Notes
CUSTOMER POST /Contacts Xero merges customers and vendors into a single Contacts object. Set IsCustomer: true.
VENDOR POST /Contacts Set IsSupplier: true. Watch for name collisions with customers.
GLACCOUNT POST /Accounts Map Intacct account types to Xero account class types (ASSET, EQUITY, EXPENSE, LIABILITY, REVENUE). Flatten nested hierarchies.
ARINVOICE POST /Invoices (Type: ACCREC) Accounts Receivable invoices. Map line items from ARINVOICEITEM.
APBILL POST /Invoices (Type: ACCPAY) AP bills become Xero bills. Map line items from APBILLITEM.
ARPAYMENT POST /Payments Apply to the corresponding Xero invoice by InvoiceID. Load only after target invoices exist.
APPAYMENT POST /Payments Apply to the corresponding Xero bill by InvoiceID. Same dependency on target IDs.
GLBATCH / GLENTRY POST /ManualJournals Historical GL entries. Note: Xero's /Journals endpoint is read-only. You must use /ManualJournals for writes.
ITEM POST /Items Inventory items. Map ITEMID, description, and purchase/sale pricing.
CREDITNOTE (AR) POST /CreditNotes (Type: ACCREC) Map from AR adjustments.
APADJUSTMENT POST /CreditNotes (Type: ACCPAY) Supplier credit notes. See credit note handling below.

Credit Note Handling

Intacct handles vendor credits via APADJUSTMENT. In Xero, these map to CreditNotes. If an Intacct credit note is partially applied to an invoice, your migration script must:

  1. Create the CreditNote in Xero.
  2. Create the Invoice in Xero.
  3. Use the Xero Allocations endpoint to link the credit note to the invoice.

Failure to script this correctly results in inflated AP aging reports — Xero will treat both the bill and the credit as open.

Dimension-to-Tracking Mapping

Sage Intacct Field Xero Field Notes
DEPARTMENTID Tracking.TrackingCategoryID (Cat 1) Must pre-create tracking category and options
LOCATIONID Tracking.TrackingCategoryID (Cat 2) Only 2 categories available
PROJECTID No direct equivalent Encode in line item description or use account codes
CLASSID No direct equivalent Encode in account code prefix

Multi-Currency Handling

Sage Intacct stores transactions in both the transaction currency (CURRENCY) and the base currency (BASECURR) with the exchange rate at the time of posting. Xero also supports multi-currency, but with a key constraint: each Contact can only have one default currency. If a vendor bills you in both USD and EUR in Intacct, you may need to create two Xero contacts (e.g., "Acme Corp (USD)" and "Acme Corp (EUR)") or update the currency per-invoice.

When importing historical invoices, pass the original exchange rate via the CurrencyRate field on the Xero invoice. If omitted, Xero will apply its own daily rate, which will cause reconciliation mismatches.

You must enable the required currencies in Xero before pushing transactions — Xero will reject any invoice payload containing an unregistered currency code. Multi-currency requires Xero's Business plan or higher.

If older closed periods have weak FX fidelity, summarize them. Force-fitting imperfect historical rates into detailed Xero transactions usually causes more confusion than value.

Tax Configuration

Sage Intacct's tax model is highly configurable with tax schedules, tax details, and nexus assignments. Xero uses a simpler model with predefined tax rates per region. You'll need to:

  1. Export your Intacct tax schedule details.
  2. Map each to a Xero tax rate (e.g., OUTPUT2 for 20% UK VAT, TAX001 for US Sales Tax).
  3. Pre-create any custom tax rates in Xero before importing transactions.

For the full list of common financial data pitfalls, see 7 Costly Mistakes to Avoid When Migrating Financial Data.

Migrating Attachments and Audit Trails

Financial migrations involve compliance records. Intacct stores vendor bills and receipts as attachments. Xero supports attachments via the POST /Invoices/{Guid}/Attachments endpoint.

Pushing attachments costs an additional API call per file. If you have 20,000 historical bills with PDFs, that's 20,000 extra API calls — taking a minimum of 4 days just to migrate files due to Xero's 5,000/day limit.

Prioritize attachment migration. Move open AP/AR attachments first, and backfill historical closed attachments in a secondary background process.

Migration Methods Compared: CSV vs. API vs. ClonePartner

There are three realistic approaches. Each has distinct trade-offs.

Method 1: Manual CSV Export/Import

How it works: Export data from Intacct using built-in reports or Data Delivery Service (DDS) to CSV. Clean and transform in Excel. Import into Xero using Xero's built-in CSV import or third-party conversion tools.

Xero's DIY conversion templates cover chart of accounts, invoices, bills, contacts, and fixed assets. That leaves out relationship-heavy records like payments and applied-settlement history. (xero.com)

Pros:

  • No API credentials or development required
  • Good for very small datasets (< 500 transactions)
  • Full visibility into what's being moved

Cons:

  • No relational integrity. CSV exports are flat — you lose the link between an invoice and its payment, or between a bill and its line-item dimensions. You'll have to manually reconstruct these relationships.
  • No automation. If you need to re-run or do delta syncs during cutover, you're starting from scratch.
  • Error-prone at scale. A single misaligned column in a 5,000-row CSV will silently corrupt data.
  • Xero CSV import limitations. Xero's built-in import doesn't support all fields — you can't import payments or set historical exchange rates via CSV.

For a deeper analysis of when CSVs work and when they break down, see Using CSVs for SaaS Data Migrations: Pros and Cons.

Method 2: DIY API Integration

How it works: Write custom scripts that read from the Sage Intacct API and write to the Xero REST API. Handle pagination, batching, error retries, and data transformations in code.

Pros:

  • Full control over mapping logic and transformation rules
  • Can handle complex dimension compression programmatically
  • Supports delta syncs for cutover periods
  • Preserves relational integrity (invoice → payment → contact)

Cons:

  • Significant development effort. You need engineers familiar with both Intacct's API and Xero's OAuth 2.0 REST API.
  • API limit management. You must build pagination (2,000-record pages for Intacct), batching (50-item batches for Xero), rate limit monitoring (reading X-DayLimit-Remaining headers), and retry logic.
  • Intacct API cost. Companies that exceed their monthly Performance Tier API transaction entitlement are charged an overage fee. Sage Intacct does not block transactions that exceed the entitlement — but the overage bill can be surprising.
  • Xero OAuth complexity. Xero access tokens expire after 30 minutes. To maintain uninterrupted access, request the offline_access scope to receive a refresh token.
# Simplified example: Batch-create invoices in Xero
import requests
import time
 
def create_invoices_batch(access_token, tenant_id, invoices_batch):
    """Send up to 50 invoices per request to Xero."""
    url = "https://api.xero.com/api.xro/2.0/Invoices"
    headers = {
        "Authorization": f"Bearer {access_token}",
        "Xero-Tenant-Id": tenant_id,
        "Content-Type": "application/json",
        "Accept": "application/json"
    }
    payload = {"Invoices": invoices_batch}  # Max 50 items
    
    response = requests.post(url, json=payload, headers=headers)
    
    if response.status_code == 429:
        retry_after = int(response.headers.get("Retry-After", 60))
        time.sleep(retry_after)
        return create_invoices_batch(access_token, tenant_id, invoices_batch)
    
    response.raise_for_status()
    return response.json()

iPaaS tools like Zapier or Make are built for ongoing, low-volume event syncing. They are not designed for historical data migrations and will rapidly consume your 100,000 Intacct monthly API limit while crashing against Xero's 60 calls/minute throttle.

Method 3: ClonePartner (Managed Programmatic Migration)

How it works: Our engineering team builds and runs custom migration scripts tailored to your specific Intacct configuration. We handle the dimension compression logic, multi-entity routing, API throttling, and continuous delta syncs during cutover.

What we handle that DIY doesn't:

  • Intelligent dimension mapping. We programmatically map Intacct's dimensions into Xero's 2 tracking categories using custom transformation rules — preserving reporting integrity where it matters most.
  • Multi-entity routing. Our engine splits a single Intacct multi-entity export and routes each entity's data to the correct, separate Xero organization.
  • API batching and optimization. We use Xero's batch endpoints (up to 50 invoices per request) to move thousands of transactions per day without hitting 429 errors.
  • Continuous delta sync. During the transition window, we run incremental syncs so your team doesn't need to do manual double-entry. New transactions entered in Intacct during the cutover period are automatically captured and pushed to Xero.

Method Comparison Table

Factor CSV Export DIY API ClonePartner
Best for < 500 transactions Engineering teams with API experience Any volume, any complexity
Preserves relationships
Handles multi-entity Manual Must build logic Automated routing
Dimension compression Manual mapping Must build logic Custom transformation rules
Delta sync during cutover Must build Included
Timeline 2–4 weeks 3–6 weeks of dev 3–7 business days
Risk of data loss High at scale Medium Low

Pre-Migration Checklist & QA

Before pulling the trigger on any migration method, complete this checklist. Failing to prepare your data leads to the most common financial data migration mistakes.

In Sage Intacct

  • Run a trial balance and save it as your reconciliation baseline. You'll compare this against Xero post-migration.
  • Clean up your Chart of Accounts. Delete or archive inactive accounts. Intacct allows deeply nested account hierarchies — Xero does not. Flatten where necessary.
  • Document your active dimensions. List every dimension value actively used in the last 12 months. This drives your tracking category mapping decisions.
  • Check your API transaction usage. Navigate to Company → Admin (tab) → Usage Insights → API Usage (tab) to see current consumption. Ensure you have headroom for the export.
  • Hard-close all historical periods to prevent backdated entries during the migration window.
  • Export and archive reports that depend on dimensions you're losing. Once you're in Xero, you can't recreate Intacct's 8-dimension P&L breakdowns.
  • Resolve open AP/AR items. Partially applied payments, unapplied credits, and disputed invoices are the #1 source of post-migration reconciliation failures.
  • Freeze configuration changes. No new dimensions, tax codes, or chart edits during mapping.

In Xero

  • Set up your Chart of Accounts to match the cleaned Intacct structure.
  • Create your 2 tracking categories with all required options.
  • Configure tax rates for every jurisdiction you operate in.
  • Enable multi-currency if applicable (requires Xero's Business plan or higher).
  • Set the financial year-end and lock dates appropriately.
  • Invite team members and set user roles before go-live.

Post-Migration QA

  • Compare trial balances. The closing trial balance from Intacct must match the opening balances in Xero to the penny.
  • Spot-check 20–50 invoices. Verify amounts, dates, contacts, tax calculations, and tracking category assignments.
  • Verify payment linkages. Confirm that payments are correctly applied to their respective invoices and bills.
  • Run a P&L by tracking category. Ensure the numbers match Intacct's equivalent dimension-filtered report.
  • Compare AP and AR aging reports. If the trial balance matches but aging doesn't, you're not finished — finance users feel those breaks on day one.
  • Spot-check multi-currency invoice-to-payment chains. Verify exchange rates, payment application, and FX gain/loss entries.
  • Test bank feeds. Connect your bank accounts and verify that reconciliation works against recently imported transactions.

A sensible acceptance pack includes: trial balance by entity and in total, AR aging in source vs. target, AP aging in source vs. target, sample invoice-to-payment chains in multiple currencies, tax summary spot checks, and sign-off from both finance and whoever owns reporting.

Realistic Timelines

The migration timeline typically takes 5–10 business days, depending on the complexity of your data. For larger organizations with multiple entities, complex intercompany transactions, and high transaction volumes, plan for 2–3 weeks with buffer.

The API limits are the hard ceiling on speed. With aggressive batching and a clean source dataset, our team typically completes migrations in under a week. Without batching or with a messy Chart of Accounts, expect the timeline to stretch.

When Not to Migrate to Xero

Be honest about whether Xero fits. Don't move if:

  • You actively use 4+ Intacct dimensions for board-level reporting and can't accept losing that granularity.
  • You rely on revenue recognition schedules (ASC 606/IFRS 15) — Xero has no native rev rec.
  • You process high transaction volumes (10,000+ invoices/month) — Xero is not suitable for all types of business, particularly those with very high transaction volumes.
  • You need native intercompany eliminations in consolidated financial statements.
  • You require advanced project accounting with budget tracking, percent complete, and cost-to-complete calculations.

If any of these apply, Intacct is the right tool for the job. Pay for the complexity — it's earning its keep.

Bringing It All Together

Migrating from Sage Intacct to Xero is a deliberate trade: you're exchanging reporting depth and enterprise flexibility for lower cost, simpler operations, and faster day-to-day accounting. The technical challenge isn't moving the data — it's compressing Intacct's rich dimensional model into Xero's two-category world without losing the financial reporting your team depends on.

The migration path you choose should match your data volume and internal engineering capacity. For small datasets, CSV works. For teams with API experience and time, a DIY approach gives full control. For everyone else — especially multi-entity migrations or anything over a few thousand transactions — a managed approach eliminates the risk.

A strong cutover keeps Xero clean enough to operate every day, preserves the balances and open-item detail finance actually needs, and archives the rest in a form you can still audit later. It does not try to pretend that two tracking categories are the same as an ERP dimension model.

Frequently Asked Questions

How many tracking categories does Xero support compared to Sage Intacct dimensions?
Xero allows only 2 active tracking categories per organization, each with up to 100 options. Sage Intacct supports 8 built-in dimensions (location, department, project, customer, vendor, employee, item, class) plus unlimited custom dimensions. This is the biggest structural challenge in the migration — you must choose which 2 dimensions to preserve and find alternative mappings for the rest.
What are the Xero API rate limits for data migration?
Xero enforces 60 API calls per minute, 5,000 calls per day, and 5 concurrent requests — all per organization per app. By batching up to 50 invoices per POST request (within the 3.5MB payload limit), you can import several thousand invoices per day instead of the ~833 limit you'd hit with single-invoice calls.
Can I migrate multi-entity data from Sage Intacct to a single Xero account?
No. Xero does not support native multi-entity management. Each Sage Intacct entity must be migrated to a separate Xero organization. For consolidated reporting across Xero orgs, you'll need a third-party tool like Syft Analytics or Fathom.
Does Sage Intacct charge for API usage during a data export?
Yes. Sage Intacct's default Performance Tier 1 includes 100,000 API transactions per month. Every query, create, update, or delete counts as a transaction, and paginated queries (limited to 2,000 results per call) each count separately. Overages are billed in packs of ten transactions. Sage does not block calls that exceed the limit — they just charge you.
Can I migrate all Sage Intacct data to Xero with CSV files?
Not for most real-world migrations. Xero's DIY conversion templates cover chart of accounts, invoices, bills, contacts, and fixed assets. Payments, applied credit notes, entity splits, and complex multi-currency relationships require API work or a managed migration approach.

More from our Blog

7 Costly Mistakes to Avoid When Migrating Financial Data
Accounting

7 Costly Mistakes to Avoid When Migrating Financial Data

One error can corrupt your entire history. This in-depth guide reveals the 7 costliest mistakes to avoid, including botching opening balances, incorrect data mapping, and failing to run parallel reports. We cover the "what not to do" pitfalls, from "Garbage In, Garbage Out" to ignoring multi-currency complexities. Read this before you migrate to ensure 100% data integrity, avoid tax season nightmares, and achieve a stress-free "go-live" on your new accounting system.

Raaj Raaj · · 13 min read
Your Chart of Accounts Migration Plan: How to Map & Clean Your Data for a New System
Accounting

Your Chart of Accounts Migration Plan: How to Map & Clean Your Data for a New System

Don't just "lift and shift." This expert guide provides a comprehensive 4-phase plan to audit, design, and map your CoA for a new accounting system. Learn how to properly clean your financial data, create a "Rosetta Stone" data mapping blueprint, and validate your migration in a sandbox for 100% accuracy. This is the technical plan you need to ensure a successful, clean data transfer.

Raaj Raaj · · 11 min read