Microsoft Dynamics 365 Business Central and Chargebee integration
Chargebee runs recurring billing and subscriptions; Microsoft Dynamics 365 Business Central runs finance and the general ledger. Connecting the two moves billed revenue into the ERP without re-keying. Chargebee invoices become Business Central sales invoices, Chargebee payments are recorded against those invoices, and credit notes post as sales credit memos. ml-connector keeps the customer record aligned on both sides so every billing document lands on the right account.
What moves between them
The main flow runs from Chargebee into Microsoft Dynamics 365 Business Central. Posted Chargebee invoices are created as Business Central sales invoices and posted, successful Chargebee payments are recorded as customer payments applied to the matching invoice, and Chargebee credit notes post as sales credit memos. Chargebee customers are matched to Business Central customers so every document references an existing account, with new billing customers created in the ERP when no match exists. Business Central holds the general ledger, so ml-connector does not write financial entries back to Chargebee; the GL is the accounting destination and Chargebee remains the billing source of record.
How ml-connector handles it
ml-connector stores both credential sets encrypted. For Chargebee it sends the site API key as basic auth on every request, keeping the mandatory trailing colon and selecting the us, eu, or au base URL from the configured region. For Microsoft Dynamics 365 Business Central it requests an Entra client-credentials token, refreshes it on a 401, and builds the company-scoped URL from the stored environment name. Chargebee invoice and payment webhooks trigger the work, and because Chargebee signs nothing, each event is re-fetched by id before processing and deduplicated on the Chargebee event id. A scheduled poll using a lastModifiedDateTime filter backfills anything a webhook missed. Each sales invoice is created as a draft and then posted with Microsoft.NAV.post, since posting is a separate state change. Customers are matched first so every invoice, payment, and credit memo lands on a valid account, and Chargebee Unix-epoch timestamps are converted to the ERP datetime format. Business Central rate limits return HTTP 429 and Chargebee returns 429 with a Retry-After header, so ml-connector backs off and retries, renews the three-day Business Central subscriptions before they expire, and keeps a full audit trail with error replay on every record.
A real-world example
A roughly 120-person B2B SaaS company bills monthly and annual subscriptions in Chargebee and keeps its books in Microsoft Dynamics 365 Business Central. Before the integration, accounting exported Chargebee invoice and payment reports each week and re-keyed the totals into the ERP, then spent the first days of month-end close chasing the difference between billed revenue in Chargebee and posted AR in Business Central. With the two connected, each posted Chargebee invoice becomes a Business Central sales invoice automatically, payments are applied as they succeed, and credit notes flow through as credit memos. Month-end close starts with AR already matching the billing system and the weekly re-keying step is gone.
What you can do
- Create and post Chargebee invoices into Microsoft Dynamics 365 Business Central as sales invoices.
- Record successful Chargebee payments as Business Central customer payments applied to the matching invoice.
- Post Chargebee credit notes into Business Central as sales credit memos.
- Match and align customers across both systems so every billing document lands on a valid account.
- React to Chargebee webhooks by re-fetching each event, with scheduled polling, retries, and a full audit trail on every record.
Questions
- Which direction does data move between Microsoft Dynamics 365 Business Central and Chargebee?
- The main flow is Chargebee into Business Central. Invoices, payments, credit notes, and customers move from Chargebee into the ERP, where the general ledger lives. Business Central is the accounting destination, so ml-connector does not write financial entries back into Chargebee, which stays the billing source of record.
- How does the integration bridge the two different authentication methods?
- Chargebee uses HTTP basic auth with the site API key as the username and an empty password, while Business Central uses an OAuth2 client-credentials token from a Microsoft Entra app. ml-connector stores both encrypted, sends the Chargebee key with its required trailing colon on every call, and requests and refreshes the Business Central token as needed, refreshing it whenever a request returns a 401.
- How are Chargebee webhooks handled given they are not signed?
- Chargebee uses no HMAC signature, so ml-connector treats the pushed payload only as a trigger and re-fetches the event by its id before acting, then deduplicates on that event id. Business Central webhook subscriptions carry no payload and expire after three days, so ml-connector fetches the changed resource after each notification and renews subscriptions before they lapse, with a scheduled poll backfilling anything missed.
Related integrations
More Microsoft Dynamics 365 Business Central integrations
Other systems that connect to Chargebee
Connect Microsoft Dynamics 365 Business Central and Chargebee
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started