Epicor Kinetic and Chargebee integration
Epicor Kinetic manages your manufacturing and distribution business, while Chargebee handles subscription billing and recurring revenue. Connecting the two keeps your customer master in sync and ensures that every billing invoice and payment in Chargebee posts automatically into Epicor's general ledger without manual re-entry. New customers created in Epicor flow to Chargebee, and billing records flow back for accounting reconciliation.
What moves between them
Customers flow from Epicor Kinetic into Chargebee on a daily or weekly schedule. ml-connector polls Epicor for customers with UpdatedOn dates since the last sync and creates or updates matching Chargebee customer records. Billing data flows in the opposite direction: Chargebee pushes invoice.created, invoice.updated, and transaction.success webhooks, and ml-connector receives those events, retrieves the full invoice and transaction details via GET, then posts corresponding GL entries into Epicor's general ledger accounts mapped to the customer's cost center or business segment.
How ml-connector handles it
ml-connector stores both credential sets encrypted and uses HTTP Basic Auth for Chargebee (API key as username) and Basic or OAuth2 for Epicor depending on the customer's deployment. On the Epicor side it accepts the full tenant and instance URL and polls using OData $filter on UpdatedOn to retrieve only changed records, using offset pagination to handle large customer sets. Chargebee webhooks arrive unsigned, so ml-connector verifies them by re-fetching the event via GET /api/v2/events/{event_id} before processing. When posting GL entries from Chargebee invoices into Epicor, ml-connector follows Epicor's two-step write pattern: it first calls GetNewAPInvHed to prepare the invoice structure, then UpdateMaster to persist it, ensuring the GL distribution lines align with pre-mapped cost centers and GL accounts. Chargebee rate limits are tracked per plan tier, and ml-connector backs off on HTTP 429 responses. Bearer tokens in Epicor expire in roughly one hour, so the OAuth2 flow implements token refresh logic. Every customer sync and every GL posting carries a full audit trail.
A real-world example
A mid-market software company sells on-premises and cloud subscription licenses through Chargebee. The finance team uses Epicor Kinetic to manage vendor relationships, procurement, and GL, but customer master data exists only in Chargebee. Each month, billing invoices and payments from Chargebee had to be re-entered into Epicor by hand for GL reconciliation and cash application. With Epicor Kinetic and Chargebee connected, new customers from Epicor are automatically synced to Chargebee when set up in the ERP, and subscription invoices and payments flow back into Epicor's GL daily. The accounting team no longer re-enters subscription revenue, payment transactions are matched to customers automatically, and month-end close runs faster because the billing accounts and GL are already in agreement.
What you can do
- Sync Epicor Kinetic customers to Chargebee on a schedule, creating new billing accounts and updating existing ones.
- Receive Chargebee invoice and transaction webhooks and post corresponding GL entries into Epicor's general ledger.
- Map Chargebee invoice line items to Epicor GL accounts and cost centers, handling multi-currency and tax variations.
- Authenticate Epicor with Basic Auth, API Key, or OAuth2, and Chargebee with HTTP Basic Auth and encrypted API keys.
- Poll Epicor using OData with date-based filters and offset pagination, with retries on rate-limit 429 responses and full audit trails on every record.
Questions
- Which direction does data flow between Epicor Kinetic and Chargebee?
- Customers flow from Epicor Kinetic into Chargebee on a regular schedule, so your billing account master stays current with your ERP. Billing data flows the opposite direction: Chargebee invoice and payment webhooks trigger GL postings in Epicor, keeping your general ledger in sync with subscription revenue and cash receipts. Both directions are bidirectional for customer updates, so changes to name or billing address in either system can be reflected in the other depending on your configuration.
- How does ml-connector handle Epicor's OData API and lack of webhooks?
- ml-connector polls Epicor using OData $filter on the UpdatedOn date field to retrieve only customers changed since the last sync, with offset pagination to handle large datasets efficiently. Because Epicor publishes no native webhooks, polling on a daily or weekly schedule is the standard pattern. ml-connector automatically refreshes OAuth2 bearer tokens, which expire in about one hour, so credentials stay valid across multiple poll cycles.
- How are Chargebee invoices mapped into Epicor GL accounts?
- Before the integration runs, ml-connector requires a mapping from Chargebee items and customer segments to Epicor GL accounts and cost centers. When a Chargebee invoice.created webhook arrives, ml-connector retrieves the full invoice, maps each line item to the correct GL account and cost center, then posts a two-step AP invoice into Epicor using the GetNewAPInvHed and UpdateMaster pattern. Chargebee rate limits are monitored, and HTTP 429 responses trigger automatic exponential backoff and retry.
Related integrations
More Epicor Kinetic integrations
Other systems that connect to Chargebee
Connect Epicor Kinetic and Chargebee
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started