Epicor Kinetic and Square integration
Epicor Kinetic runs your manufacturing and distribution, while Square captures sales, payments, and inventory at your point-of-sale and locations. Connecting the two keeps your financial and operational records in one place. Square payment records and orders post into Epicor as accounts receivable transactions and customer records, inventory adjustments flow back into your stock ledger, and cash reconciliation happens automatically without manual re-entry.
What moves between them
Square payment and order events flow into Epicor in real-time via webhooks. Each Square payment posts to Epicor as a customer payment applied to an accounts receivable transaction. Each Square order creates or updates a Customer record in Epicor and, if invoiced, posts as an AR invoice. Square inventory count changes trigger adjustments in Epicor's Parts ledger, mapped to the location-specific warehouse accounts. Conversely, ml-connector polls Epicor for new Customers and GLAccounts on a schedule to validate that Epicor's chart of accounts and customer dimension match what Square can write to. Refunds in Square map to AR credit memos in Epicor.
How ml-connector handles it
ml-connector listens for Square webhooks at a registered endpoint, verifies each webhook signature using HMAC-SHA256, and transforms the payment, order, and refund payloads into Epicor OData transactions. It maps Square Location IDs to Epicor company segments and sales territories, and Square Customer IDs to Epicor Customer records, creating new customers in Epicor if they do not exist. For inventory, each Square catalog item maps to an Epicor Part, and count adjustments are posted as GL transactions to location-specific stock accounts. ml-connector refreshes Square access tokens before expiry, retries failed postings with exponential backoff when Epicor rate limits are encountered, and tracks the full audit trail for every transaction so replays and reversals can be issued if a posting fails downstream. Because Epicor is company-scoped and on-premises instances may not share OAuth infrastructure, ml-connector validates the tenant URL and API Key per customer deployment.
A real-world example
A mid-sized food service distributor runs Epicor Kinetic at the head office to manage purchasing, inventory, and general ledger, and Square at three regional hubs as the point-of-sale system for customer cash sales. Before integration, the back-office team exported daily sales reports from Square each morning and entered the totals into Epicor by hand, then reconciled cash receipts at month-end, a process that took two days. Payments often sat in limbo between the two systems, and stock adjustments were entered late, making the inventory balance unreliable. With Square and Epicor connected, each payment posts automatically to AR, inventory adjustments sync in real-time, and cash reconciliation takes minutes. The sales data is always current, and the finance team can close the books two days earlier.
What you can do
- Post Square payments and refunds into Epicor accounts receivable, mapped to the correct customer and GL account.
- Sync Square orders into Epicor as customer records and AR invoices without manual re-entry.
- Adjust inventory in Epicor when Square counts change, allocated to the location-specific warehouse account.
- Handle Square OAuth2 token refresh and Epicor Basic Auth or OAuth2, plus API Key requirements on each request.
- Verify Square webhook signatures and poll Epicor on a schedule for reconciliation and full audit trail on every transaction.
Questions
- Which way does data flow between Epicor Kinetic and Square?
- Primarily from Square into Epicor. Payments, orders, refunds, and inventory changes in Square trigger posts to Epicor as AR transactions, customer records, and stock adjustments. ml-connector polls Epicor for new customers and GL accounts to validate mappings and ensure Square writes land on accounts that exist.
- How does ml-connector handle Epicor's polling-only model and Square's webhooks?
- ml-connector listens for Square webhooks in real-time to capture payments and orders the moment they occur. For Epicor, it polls at a schedule to verify the receipt of postings and to reconcile new customers and GL accounts added outside the integration. This hybrid approach ensures immediate data flow from Square and eventual consistency with Epicor's slower poll window.
- What happens if a Square payment fails to post to Epicor?
- ml-connector retries the posting with exponential backoff when Epicor returns a rate limit or transient error. Each attempt is logged with full details so the finance team can see exactly which transactions were retried and when. If a posting continues to fail, ml-connector surfaces the error with enough context to diagnose the root cause, such as a missing customer record or GL account mismatch.
Related integrations
More Epicor Kinetic integrations
Other systems that connect to Square
Connect Epicor Kinetic and Square
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started