Short answer
Sage Intacct is primarily a financial system, so a Shopify integration is mostly about posting sales, refunds, fees, and tax correctly — often as daily or per-payout summaries tagged with Intacct dimensions — rather than running fulfillment. Sage recommends its REST API for new client applications; the XML API keeps working, but new objects and features are released only on REST. The REST API uses OAuth 2.0, and Sage documents authorization code, client credentials, and PKCE flows. Reconcile Shopify Payments payouts through a clearing account, post tax as calculated at checkout, and involve your Intacct partner and controller in the posting design before building.
Sage Intacct integration surface at a glance (documented by the vendor; see sources)
- Recommended API
- Sage recommends the REST API for client applications; new objects and features are released only on REST.
- Legacy API
- The XML API continues to be supported and existing integrations keep working.
- Authentication
- REST API uses OAuth 2.0; Sage documents authorization code, client credentials, and PKCE flows.
- Sender ID
- A web services sender ID must be authorized by the company (Company Security) or approved by an admin.
- Shopify Orders
- Sync service Summarize
- Sage Intacct AR
Sage Intacct is a cloud financial management system popular with US mid-market companies, including many direct-to-consumer brands that outgrew QuickBooks. Unlike ERPs that run the warehouse, Intacct usually sits at the end of the chain: Shopify (or an order management system and a 3PL) handles orders and fulfillment, and Intacct needs accurate revenue, receivables, cash, fees, and tax. The integration design is therefore mostly a posting design. As on every page, documented marks statements from Sage or Shopify documentation, and recommendation marks our guidance. Nothing here is accounting or tax advice.
REST, XML, and authentication
Documented: Sage Intacct recommends the REST API for client applications. The XML API continues to be supported and existing integrations keep working, but all new objects and features are released using the REST API.
Documented: the REST API uses OAuth 2.0. Sage documents the authorization code grant, the client credentials grant, and PKCE for public clients. A web services sender ID must be authorized by the company — added on the Company Security settings or approved by an admin during OAuth authorization.
Recommendation: build new integrations on REST. Use a dedicated integration user with only the permissions the postings need, store refresh tokens securely, and alert when authorization is revoked. If you inherit an XML-based connector, it will keep working, but new Intacct capabilities will arrive on REST.
Decide the posting design first
| Approach | What Intacct receives | Fits |
|---|---|---|
| Daily or per-payout summary | Summarized sales, discounts, shipping, tax, refunds, and fees per day or payout, with dimensions | High-volume D2C; Shopify keeps order detail |
| Per-order AR | An invoice (or sales document) per order, with payments applied | B2B orders on terms; low volume |
| Hybrid | Summaries for card-paid D2C, per-order invoices for wholesale | Blended D2C and B2B stores |
Recommendation: agree the design with your controller and Intacct partner before choosing a connector or writing code. Decide:
- Dimensions every posting carries (channel, store, location, department, class).
- Accounts for sales, discounts, shipping income, tax liability by jurisdiction, merchant fees, refunds, and the Shopify clearing account.
- Timing: post by order date, ship date, or payout date — this decides which period revenue lands in.
Payout reconciliation
Documented (Shopify): Shopify Payments balance transactions record each charge, refund, adjustment, and payout with gross amount, fee, and net, and are associated with the payout that settled them.
Recommendation: post payments into a clearing (undeposited funds) account, then post each payout as a deposit that clears them and books fees, refunds, and chargebacks to their own accounts. The clearing account should return to near zero after each payout. See reconciling Shopify payouts.
Sales tax
Recommendation: post the sales tax Shopify or your tax engine calculated at checkout, by jurisdiction, rather than recalculating it in Intacct. Keep marketplace-collected tax out of your own liability. See sales tax in ERP integrations.
Refunds and adjustments
Recommendation: refunds reverse sales, tax, and shipping in the same dimensions and accounts as the original posting. In a summary design, refunds get their own lines in the day’s (or payout’s) summary rather than being netted against sales. Chargebacks and dispute fees are booked when they appear in the payout data.
Idempotency and audit
Recommendation: every posting carries a deterministic reference — the payout ID for payout postings, the date and store for daily summaries, the Shopify order ID for per-order documents — and the integration checks for an existing posting with that reference before creating one. Keep the source data behind each summary so auditors can trace any line back to orders and payout transactions.
Common pitfalls
- Posting every order when finance only needed summaries, creating noise and API load.
- Missing dimensions that make channel or location reporting impossible later.
- Fees never booked, so revenue and cash are overstated.
- Tax recalculated in Intacct, creating differences from what customers paid.
- Reposted summaries after a retry because postings had no deterministic reference.
Frequently asked questions
Should a new Shopify–Sage Intacct integration use the REST or XML API?
REST. Sage recommends the REST API for client applications and releases new objects and features only on REST. The XML API remains supported, so existing integrations keep working, but new development should start on REST with OAuth 2.0.
Should every Shopify order be posted to Sage Intacct?
Often not. Intacct is usually the system of record for finance, not fulfillment. Many companies post daily or per-payout summaries — sales, discounts, shipping, tax, refunds, fees — tagged with dimensions such as channel, location, or department, and keep order-level detail in Shopify or an order management system. Agree the approach with your controller.
How do Shopify payouts reconcile in Sage Intacct?
Record payments into a clearing (undeposited funds) account and post each Shopify Payments payout as a deposit that clears those payments and books processing fees, refunds, and chargebacks separately. The clearing account should return to near zero after each payout.
What are Sage Intacct dimensions used for in an ecommerce integration?
Dimensions tag transactions for reporting — for example by sales channel, store, location, or department. Deciding which dimensions every Shopify posting carries is part of the mapping design, because adding them later means reposting or living with incomplete reports.
Sources and further reading
Platform-specific statements on this page were checked against these sources on . Vendor APIs change; confirm details in the current documentation before you build.
- [1] Sage Intacct Developer (API overview and release notes) — Sage Intacct
- [2] OAuth 2.0 authorization (REST API) — Sage Developer
- [3] Sage Intacct REST API reference — Sage Developer
- [4] ShopifyPaymentsBalanceTransaction (GraphQL Admin API) — Shopify
Related reading
- Guides How to Reconcile Shopify Payments Payouts in Your ERP Why Shopify payouts never match your sales, and how to reconcile them in an ERP — clearing accounts, balance transactions, fees, refunds, and chargebacks.
- Guides Sales Tax in Ecommerce ERP Integrations: Nexus, Tax Engines, and Data Flow How US sales tax should flow between Shopify, a tax engine, and your ERP — nexus after Wayfair, marketplace orders, exemptions, refunds, and reconciliation.
- ERP integrations Shopify QuickBooks Online Integration: Orders, Payouts, and Inventory How to connect Shopify to QuickBooks Online — per-order vs. daily summary posting, Shopify Payments payout reconciliation, inventory limits, API throttles, and webhooks.
- ERP integrations Shopify NetSuite Integration: Architecture, APIs, and Pitfalls How to integrate Shopify with Oracle NetSuite — REST web services, OAuth 2.0, external-ID upserts, concurrency limits, order and inventory flows, and connector options.
- Guides How to Handle Refunds and Cancellations in an ERP Integration Model ecommerce refunds, cancellations, and returns in an ERP — credit notes, restocking, partial refunds, shipping refunds, and which system initiates each action.
- Templates Shopify to ERP Field Mapping Template A starting field map for the order-to-cash flows most Shopify–ERP integrations need.