ml-connector
Epicor KineticStampli

Epicor Kinetic and Stampli integration

Epicor Kinetic is your enterprise ERP; Stampli is your AP automation hub. Connecting them keeps invoice and payment records flowing from Stampli into Epicor without manual re-entry, and pushes your vendor master and GL structure back to Stampli so that approval workflows run against validated dimensions. Invoice captures in Stampli become AP records in Epicor on the schedule you choose. gl-connector handles the file-based SFTP transport, the OData authentication, and maps invoice and payment line details to your cost centers and expense accounts.

How Epicor Kinetic works

Epicor Kinetic exposes vendors, AP invoices, purchase orders, GL accounts, and business objects through REST OData v4 endpoints, configured per tenant and company segment. Cloud and on-premises deployments use different base URLs. Authentication is via Basic Auth, API Key headers, OAuth2 client credentials (cloud only, with tokens expiring in approximately one hour), or Token Resource Service (on-premises). Epicor has no native outbound webhooks or event push mechanism, so AP records are retrieved by polling with OData filters on date fields (e.g., UpdatedOn) and offset pagination ($top=100&$skip=0). Write operations for complex objects such as invoices and purchase orders follow a two-step pattern: GetNewXxx followed by UpdateMaster. Company segment is mandatory in all v2 API URLs.

How Stampli works

Stampli is an AI-powered AP automation platform that captures invoices, manages approval workflows, handles PO matching, and executes payments. Stampli does not publish a public REST API; file-based SFTP integration is the only third-party path available without a formal Stampli partner agreement. SFTP credentials (hostname, port, username, password) are required for authentication. Stampli exports invoices, vendors, purchase orders, GL accounts, and payments as flat CSV and XML files to an outbound SFTP directory. Customers must poll that directory on a defined interval (e.g., every 15 minutes) to detect new files. Internal sync refresh rates are approximately 5 minutes for invoices and GL accounts, and 2 hours for purchase orders. Stampli maintains duplicate detection for invoices internally, but third-party file-based connectors must implement their own dedup logic.

What moves between them

The main flow runs from Stampli into Epicor Kinetic. After invoices are approved in Stampli, ml-connector polls the outbound SFTP directory, detects new invoice files, transforms them to Epicor OData format, and posts them into Epicor's accounts payable and general ledger. Payment records flow the same direction. Reference data flows in the reverse direction: vendor master and GL accounts from Epicor are exported as CSV files to Stampli's inbound SFTP directory on a schedule (e.g., weekly) so that Stampli approval workflows reference validated vendors and cost centers that exist in Epicor.

How ml-connector handles it

ml-connector maintains two sets of credentials: SFTP access to Stampli's file directories and REST OData authentication to Epicor Kinetic. On a polling schedule you define, ml-connector connects to Stampli via SFTP, lists the outbound directory for new invoice and payment files, retrieves them, and parses the CSV or XML. Each invoice record is transformed into an Epicor OData APInvoice and posted using the UpdateMaster pattern after a GetNewAPInvoice call. Line items are mapped to Epicor GL accounts and cost centers based on Stampli approval routing and account coding. In the reverse direction, ml-connector queries Epicor's Vendors and GLAccounts via OData filters on UpdatedOn, exports them as CSV, and uploads them to Stampli's inbound SFTP directory so the two systems stay aligned. ml-connector tracks which files have been processed using file timestamps and filenames to avoid duplicate processing, implements retry logic for SFTP connectivity failures, and logs all transformations in an audit trail that can be queried per invoice.

A real-world example

A mid-sized services company runs Epicor Kinetic for finance and operations, and uses Stampli to automate their accounts payable process. Before the integration, AP staff received invoice approvals from Stampli and manually entered them into Epicor's APInvoice module, matching line items to Epicor cost centers and GL accounts. This manual step introduced data entry errors, delayed financial close, and created reconciliation work. When vendor hierarchies changed in Epicor, no one updated Stampli, so approval routing sometimes routed invoices to invalid cost centers. With Epicor and Stampli connected, approved invoices flow from Stampli directly into Epicor on a nightly schedule, mapped to the correct cost centers and GL accounts. Vendor master changes in Epicor sync back to Stampli automatically, so approvers always see valid cost centers. The finance team no longer re-enters invoices, and month-end close starts with AP already reconciled between the two systems.

What you can do

  • Poll Stampli's outbound SFTP directory on a schedule you define and post approved invoices and payments into Epicor Kinetic's accounts payable without manual re-entry.
  • Map invoice line items to Epicor cost centers and GL accounts based on Stampli approval routing and account coding, ensuring every entry lands on a valid dimension.
  • Export Epicor vendor master and GL accounts as CSV files and upload them to Stampli's inbound directory so approval workflows reference validated vendors and accounts.
  • Authenticate Epicor with OAuth2 or Basic Auth over REST OData, and Stampli with SFTP credentials, handling token refresh and connection retries automatically.
  • Track processed files with timestamps and filenames, implement duplicate detection, and maintain a full audit trail on every invoice so that failed records can be replayed.

Questions

Why does the integration use SFTP files instead of a direct REST API connection to Stampli?
Stampli does not publish a public REST API; file-based SFTP integration is the only third-party path available without a formal Stampli partner agreement. ml-connector polls Stampli's outbound SFTP directory on a schedule to detect new invoice and payment files, transforms them to Epicor OData format, and posts them into Epicor's accounts payable module.
How does ml-connector avoid duplicate invoices when polling SFTP files?
ml-connector tracks processed files using their timestamps and filenames to identify new files on each poll cycle. Stampli maintains built-in duplicate detection for invoices, but ml-connector also implements its own dedup logic based on invoice number and date. If a file is re-processed due to a failed downstream operation, the Epicor APInvoice module's unique key prevents duplicate posting.
How does vendor and GL account data flow from Epicor back to Stampli?
ml-connector queries Epicor's Vendors and GLAccounts modules via OData filters on the UpdatedOn timestamp to detect changes, exports the updated records as CSV files, and uploads them to Stampli's inbound SFTP directory on a defined schedule (e.g., weekly). This keeps Stampli's approval workflows and account coding synchronized with your Epicor master data.

Related integrations

Connect Epicor Kinetic and Stampli

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

Get started