Epicor Kinetic and Procurify integration
Epicor Kinetic runs procurement and finance. Procurify runs purchase requests and spend management. Connecting the two keeps your approved buying and your ERP invoices in sync. New purchase orders and requisitions from Procurify move into Epicor Kinetic as formal POs on the right vendor with the right GL codes, and supplier invoices and payments from Epicor flow back to Procurify so you always know what you owe against what you approved. ml-connector handles the very different APIs on each side and moves the data on a schedule you control.
What moves between them
The main flow runs from Procurify into Epicor Kinetic. Approved purchase orders and requisitions from Procurify are synced into Epicor Kinetic as new purchase orders, mapped to the correct vendor and GL account. Reference data such as vendors, account codes, and departments is aligned in both directions. Invoices and payments read from Epicor flow back into Procurify to close out approved orders and track actual spending against requisitions. The sync runs on a schedule you set, typically after each approval workflow in Procurify.
How ml-connector handles it
ml-connector stores Epicor API credentials (Basic Auth or OAuth2 client credentials with API Key header) and Procurify OAuth2 credentials encrypted, and refreshes Epicor tokens as they approach expiry. It polls Procurify's purchase-orders and requisitions endpoints with date filters to find new approvals, then uses Epicor's two-step write pattern (GetNewPurchaseOrder followed by UpdateMaster) to create matching POs with the vendor from Procurify and the GL account from the mapping. Vendor and account code reference tables are kept aligned in both directions. On the return flow, ml-connector reads Epicor APInvoices and APPayments with OData date filters and pushes them back into Procurify as bill records and payment records to track actual spend. Both systems are polled on your schedule rather than waiting for a push, and every record carries a full audit trail so a failed downstream call can be replayed. The integration maps Procurify requisition IDs to Epicor purchase order numbers so both systems reference the same logical order.
A real-world example
A mid-sized distribution company runs Epicor Kinetic for finance, procurement, and inventory, and uses Procurify for purchase requests and vendor management. Before the integration, buyers approved orders in Procurify, then procurement staff manually entered each approved order into Epicor as a formal PO, a step that took hours and introduced errors. When invoices arrived from vendors, they had to cross-check both systems to code the invoice to the right PO. With Procurify and Epicor Kinetic connected, each approved requisition flows into Epicor as a complete PO with vendor and account code already mapped, eliminating the manual re-entry step. Invoice receipt and payment matching happen automatically, and the team can see at a glance which orders are pending, invoiced, or paid in either system.
What you can do
- Sync approved purchase orders and requisitions from Procurify into Epicor Kinetic as new purchase orders with correct vendor and GL account mapping.
- Keep vendor and account code reference data aligned between both systems in both directions.
- Read AP invoices and payments from Epicor and sync them back to Procurify to close out orders and track actual spending against approved requisitions.
- Authenticate Epicor with Basic Auth or OAuth2 client credentials with API Key header, and Procurify with OAuth2, refreshing tokens as they expire.
- Poll both systems on a schedule you set with date filters on UpdatedOn, last_modified, and dateModified, with full audit trail on every record and replay capability on failure.
Questions
- How does the integration handle Epicor Kinetic's two-step write pattern for purchase orders?
- ml-connector uses the GetNewPurchaseOrder call to retrieve a new template, fills in the vendor and line items from Procurify data, then calls UpdateMaster to commit the record. This pattern is required for complex objects like purchase orders and ensures the PO is complete before it reaches the ERP.
- Can purchase orders created in Procurify be edited in Epicor after sync?
- Yes. Once synced into Epicor, a purchase order is a native Epicor record that can be edited, split, or voided by your procurement team. ml-connector does not overwrite edits made in Epicor, so your team has full control after initial creation. The mapping between the Procurify requisition ID and Epicor PO number is preserved for audit purposes.
- What happens if a vendor in Procurify does not exist in Epicor?
- ml-connector requires vendors to be pre-loaded in Epicor before creating purchase orders. If a Procurify vendor is not found, the sync is skipped and logged as an error. You can configure ml-connector to create new vendors in Epicor if needed, or maintain a mapping table to match Procurify vendors to existing Epicor vendor records.
Related integrations
More Epicor Kinetic integrations
Other systems that connect to Procurify
Connect Epicor Kinetic and Procurify
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started