Sage Intacct and BigCommerce integration
BigCommerce runs your online store. Sage Intacct runs your accounting. Connecting them keeps order revenue flowing into your general ledger automatically, with no manual re-entry of sales totals. Order line items become billable transactions in Intacct, refunds post to the correct GL accounts, and your AR and revenue accounts stay in sync with e-commerce activity. ml-connector handles the very different API styles on each side and moves the order data on a webhook schedule that BigCommerce controls.
What moves between them
The main flow runs from BigCommerce into Sage Intacct. When orders are created or updated in BigCommerce, ml-connector receives the webhook, fetches the full order and transaction details via the REST API, and maps the order total and line items into Intacct as a payable bill or revenue journal entry against the configured GL accounts. Refunds and partial payments are posted separately to maintain accurate AR and revenue recognition. Reference data such as GL account mappings and customer dimensions are configured once and reused on every order.
How ml-connector handles it
ml-connector stores the BigCommerce API key encrypted and registers an HTTPS webhook endpoint in BigCommerce to receive store/order/created, store/order/updated, and refund events. When a webhook arrives, ml-connector extracts the order ID from the stub payload and immediately calls the BigCommerce REST API to fetch full order and transaction details. It then opens an Intacct session using the stored credentials, refreshing the session token if it has expired after 50 minutes, and maps the order line items and totals to the configured GL accounts and customer dimension. The transaction is sent via the Intacct XML gateway and the response is parsed for application-level errors or success confirmation. Refunds are processed sequentially to avoid conflicts. Rate limits on the BigCommerce API (450 per 30 seconds on Pro, 150 on Standard) are respected with backoff, and every record carries a full audit trail so failed orders can be inspected and replayed once the root cause is fixed.
A real-world example
A mid-sized e-commerce retailer sells home goods through BigCommerce and manages accounting in Sage Intacct. Before the integration, the finance team exported BigCommerce orders every day and manually entered the daily totals into Intacct as a revenue journal, then spent hours matching transaction IDs to reconcile discrepancies at month-end close. With BigCommerce and Intacct connected, each order posts to revenue automatically the moment it is completed, allocated to the correct GL account by product category, and refunds reverse the revenue on the same account. Month-end close starts with revenue accounts already reconciled, and the manual export-and-entry step is gone.
What you can do
- Post BigCommerce order transactions into Sage Intacct's general ledger on webhook, allocated to the correct revenue GL accounts and customer dimensions.
- Map order line items to product-category-based GL accounts so revenue lands on the right account for each sales channel.
- Handle BigCommerce webhook auto-deactivation by monitoring delivery failures and re-registering webhooks before they expire.
- Refresh Intacct session tokens automatically when they expire after 50 minutes so order posting never stalls mid-transaction.
- Parse Intacct XML responses for application-level errors and replay failed orders into the GL once the root cause is fixed.
Questions
- Which direction does data move between Sage Intacct and BigCommerce?
- The main flow is BigCommerce into Sage Intacct. Order transactions and refunds move from BigCommerce into Intacct's general ledger and accounts receivable, while GL account mappings and customer dimensions are configured once and reused on every order. Intacct does not push data back into BigCommerce.
- How does the integration handle BigCommerce's webhook stub payloads and Intacct's XML gateway?
- When BigCommerce sends a webhook containing only an order ID and type, ml-connector immediately calls the BigCommerce REST API to fetch the full order, transaction, and refund details. It then constructs an Intacct XML message with all required fields and sends it to the single gateway endpoint, parsing the HTTP 200 response for application-level errors inside the XML body rather than assuming success.
- What happens when Intacct session tokens expire or BigCommerce webhooks are auto-deactivated?
- Intacct session tokens are cached for 50 minutes and automatically refreshed on the next gateway call if they have expired. BigCommerce webhooks are monitored for delivery failures, and ml-connector will re-register a webhook if it detects that the original has been auto-deactivated after 90 days of inactivity or 48 hours of failed retries.
Related integrations
More Sage Intacct integrations
Other systems that connect to BigCommerce
Connect Sage Intacct and BigCommerce
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started