ml-connector
Epicor KineticZuora

Epicor Kinetic and Zuora integration

Epicor Kinetic runs manufacturing and procurement for your business. Zuora handles subscriptions, recurring revenue, and invoicing. Connecting the two keeps your customer data and billing aligned. Customer master records from Epicor flow into Zuora as accounts and subscriptions, and Zuora's invoice GL postings sync back into Epicor's AP ledger. ml-connector handles the different authentication methods on each side and reconciles the data on a schedule you control.

How Epicor Kinetic works

Epicor Kinetic is a cloud or on-premises ERP that exposes customers, sales orders, parts, GL accounts, vendors, and AP invoices through REST OData v4 endpoints. Authentication supports OAuth2 client credentials for cloud, Basic Auth, API Key headers, or Token Resource Service for on-premises deployments. Company segment is mandatory in all v2 API paths. Epicor has no native webhooks for cloud customers, so billing records are retrieved by polling with OData date filters and offset pagination. Write operations for complex objects follow a two-step pattern: GetNewXxx followed by UpdateMaster.

How Zuora works

Zuora is a subscription billing platform that exposes accounts, subscriptions, invoices, payments, and revenue recognition objects through REST endpoints. Every call requires OAuth2 client credentials with tokens that expire in one hour. The platform supports callout webhooks that notify on invoice posted, payment received, subscription renewed, and account events, with configurable retry behavior and HMAC-SHA256 signatures. Each customer has a multi-region base URL (rest.zuora.com, rest.eu.zuora.com, etc.) and the platform enforces rate limits of 50,000 requests per minute in production. Webhook payloads are minimal and require callbacks to fetch the full record.

What moves between them

Customer master records and sales order headers flow from Epicor into Zuora as accounts and subscriptions on a weekly schedule. Zuora then generates invoices from those subscriptions. Invoice and payment records created in Zuora are polled and posted back into Epicor's AP ledger as vendor payables, mapped to the GL accounts configured in your customer workspace. GL postings are read-only in Zuora, so ml-connector never writes financial entries back into the billing system.

How ml-connector handles it

ml-connector stores OAuth2 credentials for both systems encrypted and refreshes Zuora tokens on expiry. On the Epicor side it accepts either the cloud SaaS tenant URL or the on-premises server host, authenticates with the supplied API Key or OAuth2 bearer token, and queries for changed customers and orders using OData date filters since the last sync. Zuora's multi-region base URL is stored per customer tenant and used to build all API paths. Customer records are deduplicated by external ID before posting to Zuora as accounts, and order records become subscriptions with mapped revenue recognition GL accounts. Zuora invoices and payment notifications are polled on a schedule and posted back to Epicor as AP line items, with retries on timeout. Every record carries a full audit trail linking source and destination system identifiers.

A real-world example

A SaaS company uses Epicor Kinetic on-premises for order management and GL accounting, and Zuora for subscription billing and revenue recognition across multiple customer segments. Before the integration, the finance team exported customer and order data from Epicor each week, manually created matching accounts and subscriptions in Zuora, and then re-keyed invoices from Zuora back into Epicor's AP ledger at month-end. This manual process created discrepancies between GL accounts and billing revenue, delayed close cycles, and required skilled staff time. With Epicor and Zuora connected, new customers and orders flow automatically into Zuora on a weekly schedule, Zuora-generated invoices post into Epicor's AP on their due date, and the revenue GL accounts reconcile automatically. Month-end close is faster, the sync of customer master records removes manual entry errors, and the finance team redirects effort to analysis instead of data reconciliation.

What you can do

  • Sync customer master records from Epicor into Zuora as accounts on a weekly schedule, mapped by external ID for deduplication.
  • Create Zuora subscriptions from Epicor sales order headers, with revenue GL accounts mapped to Epicor GL chart.
  • Post Zuora invoices and payments into Epicor's AP ledger as vendor payables on a configurable schedule.
  • Authenticate Epicor with OAuth2 (cloud) or API Key (on-premises), and Zuora with OAuth2 client credentials plus multi-region base URL routing.
  • Handle Epicor polling with OData date filters and offset pagination, plus token refresh, retries, and full audit trail on every record.

Questions

Which direction does data move between Epicor Kinetic and Zuora?
Customers and orders flow from Epicor into Zuora as accounts and subscriptions. Zuora invoices and payments flow back into Epicor's AP ledger. GL accounts are mapped in the customer workspace so revenue postings land on the correct Epicor GL line. Zuora revenue records are read-only, so ml-connector does not write financial entries back into billing.
How does the integration handle Epicor on-premises vs cloud and Zuora's multi-region base URLs?
ml-connector accepts the full tenant URL for Epicor cloud (rest.zuora.com, rest.eu.zuora.com, etc.) and the on-premises server host. For authentication it supports both OAuth2 (cloud) and Basic Auth or API Key (on-premises). Each customer's Zuora multi-region base URL is stored encrypted and used to build all API paths, so regional failover and tenant migration are handled without code changes.
Does Zuora's webhook callout timeout affect the integration?
Yes. Zuora callouts have a fixed 25-second timeout. ml-connector polls Zuora invoices and payments on a schedule instead of relying on webhooks for critical billing records, ensuring no data loss if a callout exceeds the timeout window. Retries and full audit trail capture every attempt.

Related integrations

Connect Epicor Kinetic and Zuora

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

Get started