Sage Intacct: API Guide (SOAP/XML vs REST)

Edited

Sage Intacct offers two APIs: the long-established SOAP/XML Web Services API and the newer REST API, which reached General Availability with Sage's 2025 Release 1. Apideck has a separate connector for each, and both are fully supported through the Apideck Unified Accounting API:

  • Sage Intacct (sage-intacct), built on the XML API

  • Sage Intacct REST (sage-intacct-rest), built on the REST API

Both connectors return the same normalized objects, so you don't write any XML or Sage-specific JSON either way. The differences are in how your customers connect, which resources are available, and where Sage is investing going forward.

Sage Intacct (SOAP/XML)

Sage now labels the XML API "legacy". It's stable and still supported, but Sage isn't adding new objects or features to it.

  • Authentication: credential-based. You configure your Sage Sender ID once in Apideck. Each customer then enters their Company ID, plus the User ID and Password of a Web Services user, and authorizes your Sender ID in their company's Web Services settings.

  • Multi-entity: customers choose a default entity (or "Top level") when they connect.

  • Only on this connector: financial reports (Balance Sheet, Profit & Loss, Aged Debtors) and account hierarchies, plus journals, bill credit notes, GL account groups, and checking/savings/credit-card accounts.

  • Good to know: if a customer doesn't authorize your Sender ID in their company, every call fails with "Invalid Web Services Authorization" (XL03000006).

Sage Intacct REST

Sage recommends the REST API for new integrations, and it's where Sage adds new functionality.

  • Authentication: a standard OAuth 2.0 sign-in. Your customer clicks connect and approves access, with no passwords to enter. A Sage Intacct company Admin must authorize the application in each customer's company.

  • Test credentials: you can test with Apideck's own Sage application before registering yours (the consent screen shows Apideck branding).

  • Coverage: the core accounting resources. That means journal entries, ledger accounts, tax rates, tracking categories, customers, invoices, payments, credit notes, suppliers, bills, bill payments, expenses and expense reports, departments, locations, projects, employees, subsidiaries, bank accounts, bank feed statements and attachments.

  • Only on this connector: refunds and creating quotes. Departments and locations can also be created, updated and deleted here; on the XML connector they're read-only.

  • Good to know:

    • Use a dedicated integration user. The connection is tied to the user who authorized it, and that user signing in to the Sage Intacct web UI invalidates the connection (error REST-2102).

    • Journal entry numbers are assigned by Sage. A journal entry's number can't be set on create; Sage assigns it on posting. Use source_id (Sage's reference field) as your own identifier.

    • Payment updates aren't supported. AR payments can't be updated in place (Sage's REST API has no update for them).

    • Some features need specific modules. Quotes need the Order Entry module. Refunds need the feature enabled in Accounts Receivable.

  • Sage endpoints we don't map yet are still reachable through the Apideck Proxy API.

Side-by-side

Area

Sage Intacct (SOAP/XML)

Sage Intacct REST

Available in Apideck Unify

✔️ Fully supported

✔️ Fully supported

Authentication

Sender ID + Web Services user credentials

OAuth 2.0 (Admin approval per company)

Apideck test credentials

—

✔️

Journal entries, invoices, bills, payments, credit notes, ledger accounts

✔️

✔️

Financial reports (Balance Sheet, P&L, Aged Debtors)

✔️

—

Refunds, creating quotes

—

✔️

Journal entry statuses (unified)

draft, pending_approval, approved, posted, rejected, voided, other

draft, posted, voided, other

New features from Sage

No new additions

Actively developed

Webhooks

Virtual (polling-based)

Virtual (polling-based)

Applies to both

  • Sage license: going live requires a Sage Web Services developer license, usually through the Sage Intacct Marketplace Partner Program.

  • Usage limits: both APIs draw on the same Sage API usage allowance for each company.

  • No migration between connectors: the two aren't interchangeable. Moving a customer from one to the other means creating a new connection, and record IDs don't carry over, so choose one before you build.

Which one should you use?

  • Use Sage Intacct REST for new integrations. It has modern OAuth onboarding, it's the API Sage is investing in, and it has refunds and quote creation.

  • Use Sage Intacct (SOAP/XML) if you need financial reports (Balance Sheet, Profit & Loss, Aged Debtors) or finer-grained journal entry approval statuses, or if you already have customers connected through it.

Was this article helpful?

Sorry about that! Care to tell us more?

Thanks for the feedback!

There was an issue submitting your feedback
Please check your connection and try again.