ml-connector
Epicor KineticSFTP / Flat Files

Epicor Kinetic and SFTP / Flat Files integration

Epicor Kinetic is a cloud and on-premises ERP for manufacturing, distribution, and service industries. SFTP and flat files are the lingua franca for legacy systems and EDI trading partners that don't have REST APIs. Connecting them lets you exchange vendor data, invoice records, and payment information with partners and internal systems that work with CSV, X12 EDI, or fixed-width files. ml-connector reads from Epicor Kinetic on a schedule, transforms the records into your chosen file format, and uploads to SFTP; it also watches for inbound files and posts them back into Epicor Kinetic.

How Epicor Kinetic works

Epicor Kinetic exposes vendors, AP invoices, purchase orders, payments, GL accounts, and custom business activity queries (BAQs) through REST endpoints using OData v4 filtering and pagination. Authentication supports API Key headers combined with Basic Auth or OAuth2 bearer tokens, with Bearer tokens expiring in about one hour. Cloud and on-premises instances each have their own base URL, and every query must specify the company segment. Polling is the only option; Epicor Kinetic has no native webhook or outbound event system, so ml-connector queries for changed records using OData date filters like UpdatedOn gt {timestamp} and handles pagination with $top and $skip parameters.

How SFTP / Flat Files works

SFTP / Flat Files is a file-transfer protocol for legacy systems and EDI trading partners. Data is exchanged as structured text files stored on an SFTP server: CSV with headers, X12 EDI (e.g., 810 invoices, 820 remittances), EDIFACT, XML, or fixed-width records with positional columns. Authentication uses SSH keys (recommended) or username and password over an encrypted SSH channel. Each trading partner provides their own SFTP host and folder structure. No push notifications exist; ml-connector must actively poll the SFTP server for new files in the inbound folder, and X12 acknowledgments (997) or EDIFACT acknowledgments (CONTRL) must be generated and placed in the acks folder after processing.

What moves between them

The integration runs bidirectional on a schedule you control. Outbound: ml-connector polls Epicor Kinetic for new or changed vendor records, AP invoices, and payments (using OData date filters), transforms them into CSV or X12 820 remittance format, and uploads files to the SFTP outbound folder for your trading partners or internal legacy systems. Inbound: ml-connector polls the SFTP inbound folder for new files (CSV vendor records, payment advice, invoice confirmations), parses them according to your file layout, and creates or updates vendor and payment records in Epicor Kinetic. Frequency is typically once per business day or multiple times per day depending on your sync cadence.

How ml-connector handles it

ml-connector stores both the Epicor Kinetic API credentials and the SFTP host, username, and private key encrypted in its database. For outbound flows, it queries Epicor Kinetic using OData filters (e.g., UpdatedOn gt {last-sync-time}) to fetch only changed records since the last run, respects Epicor Kinetic's one-hour Bearer token expiry with automatic refresh logic, and writes transformed records as CSV or X12 files to the SFTP server's outbound folder using SSH key or password authentication. For inbound flows, it connects to SFTP, lists the inbound folder, downloads files, parses them according to your mapping (column positions for fixed-width, headers for CSV, X12 segments), and posts them into Epicor Kinetic using the two-step pattern required for complex objects: GetNewXxx to create the record template, then UpdateMaster to write the final values. ml-connector generates X12 997 acknowledgments for EDI files and deposits them in the acks folder, handles file rename-on-upload to prevent partial-file reads, retries failed SFTP operations, and maintains a complete audit trail of every file transferred, parsed record, and Epicor Kinetic API call.

A real-world example

A mid-sized distributor uses Epicor Kinetic for inventory, procurement, and accounts payable, and exchanges invoices and payment records with a network of logistics partners and a legacy accounting system via SFTP. Before the integration, the AP team received X12 820 payment advice files from partners, manually imported them into Epicor Kinetic by copying and pasting into a spreadsheet, and exported Epicor Kinetic invoices to CSV files that were uploaded manually to the SFTP server for partners to download. With Epicor Kinetic and SFTP / Flat Files connected, inbound payment advice files are automatically parsed and posted into Epicor Kinetic as payments, and outbound invoices are automatically exported to CSV and uploaded to the SFTP server every evening so partners have fresh data without manual touches.

What you can do

  • Poll Epicor Kinetic on your schedule for changed vendor, invoice, and payment records using OData date filters.
  • Transform Epicor Kinetic records into CSV or X12 EDI files and upload to SFTP outbound folders for trading partners.
  • Download inbound CSV, X12, or fixed-width files from SFTP, parse them, and post as vendor and payment records into Epicor Kinetic.
  • Generate X12 997 acknowledgments for inbound EDI files and deposit them in the SFTP acks folder.
  • Handle Epicor Kinetic Bearer token refresh, SFTP key-based and password authentication, file retries, and a full audit trail on every transfer.

Questions

How does ml-connector handle Epicor Kinetic's API Key and Bearer token requirements?
Epicor Kinetic requires both an API Key header and either Basic Auth or an OAuth2 Bearer token on every request. ml-connector stores the credentials encrypted, sends the API Key on all calls, automatically refreshes the Bearer token when it approaches expiry (about one hour), and falls back to Basic Auth if OAuth2 is not configured for your instance.
Which direction does data flow, and can I filter by record type?
Data flows bidirectional on a schedule you set. Outbound: ml-connector polls Epicor Kinetic for changed vendors, invoices, and payments using OData date filters (e.g., UpdatedOn gt {timestamp}) and exports them to CSV or X12 files on SFTP. Inbound: it watches the SFTP inbound folder for files matching your naming pattern, parses them by your layout, and posts into Epicor Kinetic. You can configure separate flows for each record type.
What happens if an SFTP file transfer fails or a file is only partially uploaded?
ml-connector retries failed SFTP operations with exponential backoff and uses atomic rename-on-upload to prevent your downstream system from reading partial files. Every file transfer and parse result is logged to the audit trail, so you can replay or investigate any failure. If a file cannot be parsed, ml-connector moves it to the error folder and alerts you.

Related integrations

Connect Epicor Kinetic and SFTP / Flat Files

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

Get started