Microsoft Dynamics 365 F&O and Chargebee integration
Microsoft Dynamics 365 F&O runs financials and accounts receivable. Chargebee runs subscription billing and revenue collection. Connecting the two moves recurring billing activity into the system of record without re-keying. Paid invoices, recorded payments, and credit notes from Chargebee post into the D365 F&O ledger against the right customer accounts and financial dimensions, and the customer list stays aligned across both sides. ml-connector handles the very different APIs on each system and moves the data on the cadence you set.
What moves between them
The main flow runs from Chargebee into Microsoft Dynamics 365 F&O. After each billing cycle, ml-connector reads paid Chargebee invoices, recorded transactions, and credit notes and posts the resulting receivable entries into the D365 F&O customer payment journals and ledger, each mapped to the matching customer account and financial dimensions. Customer records are aligned so a Chargebee customer maps to a D365 F&O customer account, created or updated as needed. D365 F&O is the financial system of record, so ml-connector reads billing results from Chargebee and does not write invoices or subscription changes back into Chargebee.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the Chargebee side it sends the API key as HTTP Basic auth with the mandatory trailing colon and derives the correct regional base URL from the configured region, since an EU or AU site key fails against the US host. On the D365 F&O side it accepts the full tenant host per customer, requests an Entra ID bearer token through the client credentials flow, and refreshes that token when a call returns 401. Chargebee webhooks such as payment_succeeded, invoice_generated, and credit_note_created trigger the work, and because there is no HMAC signature ml-connector refetches each event by id before acting; a scheduled offset-paged poll backfills anything a webhook missed. D365 F&O Business Events arrive as stubs, so the handler follows the ControlNumber back to OData for full detail. Customer accounts and financial dimensions are mapped first, so every receivable entry references a customer and dimension string that already exists in D365 F&O, formatted per the integrating-applications dimension setup. Both sides return HTTP 429 with Retry-After under load, so ml-connector backs off and retries with jitter, and every record carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A mid-sized SaaS company with a few hundred recurring customers runs Chargebee for subscription billing and Microsoft Dynamics 365 F&O for corporate finance. Before the integration, the finance team exported paid invoices and payment reports from Chargebee each month and re-entered the receivable totals into D365 F&O by hand, then spent the first days of close reconciling subscription revenue against the customer accounts in the ledger. With the two systems connected, each cycle's paid invoices, payments, and credit notes post into D365 F&O automatically against the correct customer accounts and dimensions, and customer changes keep both sides aligned. Month-end close starts with subscription receivables already booked, and the manual re-keying step is gone.
What you can do
- Post paid Chargebee invoices, payments, and credit notes into the Microsoft Dynamics 365 F&O receivable ledger after each billing cycle.
- Keep customer records aligned so each Chargebee customer maps to a D365 F&O customer account.
- Map Chargebee billing results to D365 F&O customer accounts and financial dimensions so entries land on valid accounts.
- Authenticate Chargebee with API-key Basic auth and D365 F&O with the Entra ID OAuth2 client credentials flow.
- Trigger on Chargebee webhooks with event refetch, backfill by scheduled poll, and retry with a full audit trail on every record.
Questions
- Which direction does data move between Microsoft Dynamics 365 F&O and Chargebee?
- The main flow is Chargebee into Microsoft Dynamics 365 F&O. Paid invoices, payments, and credit notes move from Chargebee into the D365 F&O receivable ledger, while customer records are aligned across both sides. D365 F&O is the financial system of record, so ml-connector reads billing results from Chargebee and does not write invoices or subscription changes back into it.
- How does the integration secure Chargebee webhooks without an HMAC signature?
- Chargebee does not send an HMAC signature header on its webhooks. Following the documented pattern, ml-connector refetches each event by its id through the Chargebee events API before acting, rather than trusting the pushed payload. A scheduled offset-paged poll also backfills any event a webhook delivery missed.
- How does the integration handle the two different authentication methods?
- ml-connector stores both credential sets encrypted and bridges them on every call. Chargebee uses HTTP Basic auth with the API key as the username and an empty password, with the regional base URL derived from the configured region. Microsoft Dynamics 365 F&O uses an OAuth2 bearer token from Microsoft Entra ID via the client credentials flow, refreshed automatically when a call returns 401.
Related integrations
More Microsoft Dynamics 365 F&O integrations
Other systems that connect to Chargebee
Connect Microsoft Dynamics 365 F&O and Chargebee
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started