Sage Intacct and Chargebee integration
Sage Intacct handles finance and accounting across the business. Chargebee runs subscription billing and revenue management. Connecting them keeps your subscription revenue recognized in the general ledger and your AR aged accurately. New subscriptions in Chargebee create customers in Sage Intacct, and each billing invoice flows automatically into your accounts receivable and deferred revenue accounts. ml-connector transforms Chargebee's REST-based subscription events into the XML-formatted AP bills and GL postings Sage Intacct consumes.
What moves between them
ml-connector polls Chargebee on a subscription and invoice cycle (typically monthly) and reads customers and invoices. For each new customer, it posts a vendor record into Sage Intacct. For each invoice, ml-connector posts an AP bill and GL entries into the appropriate accounts receivable and deferred revenue accounts, mapped by currency and invoice status. Payment records from Chargebee create AP payment records in Sage Intacct to keep AR aged. The flow is unidirectional: Chargebee to Sage Intacct. GL accounts are looked up per invoice amount and subscription term.
How ml-connector handles it
ml-connector encrypts both credential sets: Chargebee API key as Basic Auth (stored with the site domain), and Sage Intacct session credentials (senderId, companyId, userId, userPassword). On each polling cycle, ml-connector obtains a Sage Intacct sessionid via the XML gateway, which is cached for up to 50 minutes and refreshed on the next call if expired. For Chargebee, it uses the REST API with standard Basic Auth. Chargebee invoices map to Sage Intacct AP bills by matching the subscription customer to a vendor in Sage Intacct; if no vendor exists, ml-connector creates one. GL entries are templated by revenue type (annual, monthly, usage) and posted to the correct deferred revenue and income accounts. Because Sage Intacct returns HTTP 200 with errors inside the XML body, ml-connector parses the response and retries only on genuine transport errors or session timeout. Chargebee's API rate limits (150 to 3500 req/min depending on plan) are honored with backoff and retry. Every record carries an audit trail linking the Chargebee invoice ID to the Sage Intacct bill reference.
A real-world example
A B2B SaaS company with multiple subscription tiers and annual/monthly billing runs Chargebee for subscription management and Sage Intacct for corporate accounting. Before the integration, the accounting team ran a monthly export from Chargebee, mapped invoices to customers in Sage Intacct, created AP bills, and hand-posted GL entries for deferred revenue and revenue recognition. With the integration, each Chargebee invoice cycle automatically posts into Sage Intacct as an AP bill, the GL entries for deferred revenue and revenue recognize on the invoice date, and the AR aging is live. Month-end close starts with subscription revenue already posted and reconciled, eliminating manual entry and the risk of posting mistakes.
What you can do
- Sync Chargebee customers into Sage Intacct as vendor records, keeping AR contact details aligned.
- Post Chargebee invoices into Sage Intacct's AP module with automatic GL entries to deferred revenue and revenue recognition accounts.
- Map Chargebee payment transactions to Sage Intacct AP payments to keep accounts receivable aged accurately.
- Handle the XML gateway session lifecycle and Chargebee HTTP Basic Auth, with encrypted credential storage and audit trails on every record.
- Poll Chargebee on a schedule aligned to your subscription billing cycle, with automatic retries and full error tracking.
Questions
- Which direction does billing data flow between Chargebee and Sage Intacct?
- The flow is unidirectional: Chargebee to Sage Intacct. Customers and invoices from Chargebee create vendors and AP bills in Sage Intacct, with GL entries posted to the configured deferred revenue and income accounts. Payments from Chargebee update AR aging. Sage Intacct is the source of truth for accounting records.
- How does ml-connector handle Sage Intacct's session-based XML authentication?
- ml-connector sends the initial getAPISession request with senderId, senderPassword, companyId, userId, and userPassword to obtain a sessionid from the XML gateway. The sessionid is cached for up to 50 minutes and automatically refreshed on the next polling cycle if it has expired. This eliminates the need to re-authenticate on every API call while keeping credentials out of individual requests.
- Does the integration support multi-currency subscriptions?
- Yes. ml-connector reads the currency from each Chargebee invoice and maps it to the corresponding GL account for that currency in Sage Intacct. If an invoice currency does not have a pre-configured account, the record is flagged in the audit log and can be replayed once the account is created.
Related integrations
More Sage Intacct integrations
Other systems that connect to Chargebee
Connect Sage Intacct and Chargebee
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started