ml-connector
Sage IntacctChargebee

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.

How Sage Intacct works

Sage Intacct is a cloud ERP and accounting system accessible through a single XML gateway endpoint at https://api.intacct.com/ia/xml/xmlgw.phtml. Authentication is session-based: a senderId, senderPassword, companyId, userId, and userPassword exchange for a sessionid cached for 50 minutes. The system exposes vendors, AP bills, AP payments, GL accounts, and dimensions. HTTP 200 responses may contain application-level errors in XML body tags, so ml-connector must parse for errormessage elements. Sage Intacct has no push webhooks; all reads are polling-driven on a schedule you define.

How Chargebee works

Chargebee is a subscription billing and revenue management SaaS platform with REST API endpoints at https://{site}.chargebee.com/api/v2/. It authenticates via HTTP Basic Auth with the API key as username and an empty password. Chargebee exposes customers, subscriptions, invoices, credit notes, transactions, payment sources, and items. The platform pushes 200+ webhook event types for subscription, customer, invoice, and payment activities, retrying failed deliveries for up to 2 days. Rate limits vary by plan tier: 150 to 3500 requests per minute with concurrent GET and POST caps. Pagination is offset-based with a maximum page size of 100 items.

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

Connect Sage Intacct and Chargebee

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started