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.
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.
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
- Export data per entity from Intacct using entity-level API queries (filter by
LOCATIONIDor entity ID). - Create a separate Xero organization for each entity. Each org gets its own Chart of Accounts, contacts, tax rates, and bank accounts.
- Standardize the Chart of Accounts across all Xero orgs before import. Inconsistent account codes across entities will make post-migration consolidation impossible.
- Decide whether shared customers and vendors will be duplicated across Xero orgs or maintained by sync logic.
- 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
GLENTRYand spawn the correct balancing entries in Xero.
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)
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.
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:
- Create the
CreditNotein Xero. - Create the
Invoicein Xero. - Use the Xero
Allocationsendpoint 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:
- Export your Intacct tax schedule details.
- Map each to a Xero tax rate (e.g.,
OUTPUT2for 20% UK VAT,TAX001for US Sales Tax). - 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-Remainingheaders), 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.