ml-connector
Epicor KineticAirbase

Epicor Kinetic and Airbase integration

Epicor Kinetic runs your ERP, finance, and general ledger. Airbase, now Paylocity Finance, runs accounts payable, corporate cards, and expense reimbursements. Connecting the two means spend approved in Airbase posts into Epicor without re-keying, and vendors and GL accounts stay aligned so every transaction codes to a real account. ml-connector handles the different APIs on each side and moves records on the schedule you set.

How Epicor Kinetic works

Epicor Kinetic exposes vendors, AP invoices, purchase orders, AP payments, GL accounts, customers, and parts as OData v4 REST endpoints, documented in the interactive API help inside each instance. The cloud product runs on a tenant-specific URL such as a company epicorsaas.com host, and on-premises sites use a customer-defined hostname, so there is no shared base address. Calls authenticate with Basic auth or an Epicor IdP bearer token, and most v2 configurations also require a separate API Key header alongside the identity credential. The v2 URL must include the Company segment between the OData base and the service name. Epicor Kinetic has no native outbound webhooks, so finance records are read by polling with an OData filter on a modified-date field.

How Airbase works

Airbase, now Paylocity Finance, is a spend management platform, not an ERP, so its general ledger accounts and subsidiaries are read-only and the ERP is the source of truth for them. It exposes bills, vendors, purchase orders, payments, expense reimbursements, and corporate card transactions through a REST API that returns JSON over HTTPS. Card transactions are read-only and GL accounts are read-only, while bills, vendors, and purchase orders accept writes. Every call carries a portal-generated bearer token in the Authorization header against a tenant-specific base URL, because Airbase is multi-tenant and there is no single global endpoint. Airbase can also push events such as a purchase request approval to a registered webhook endpoint, though the signing scheme must be confirmed inside the portal.

What moves between them

The main flow runs from Airbase into Epicor Kinetic. ml-connector reads approved bills, expense reimbursements, and settled card transactions from Airbase and posts them into Epicor AP invoices and the general ledger, each line mapped to the matching Epicor GL account and vendor. Vendors and GL accounts flow the other direction, from Epicor Kinetic into Airbase, so the spend platform always codes against accounts and suppliers that already exist in the ERP. Where purchase orders are in scope, PO references travel with bills so Airbase can drive its three-way match. Card transactions and GL accounts are read-only in Airbase, so ml-connector pulls that data rather than writing it back.

How ml-connector handles it

ml-connector stores both credential sets encrypted. On the Epicor side it accepts the full tenant URL, the Company ID, and an API Key, since Epicor publishes no shared base address, and it refreshes the Epicor IdP bearer token when a call returns 401 while always sending the API Key header. On the Airbase side it sends the portal-generated bearer token against the customer tenant URL and tracks the token, since there is no public refresh flow and rotation is manual in the portal. Because Epicor Kinetic has no webhooks, it polls Airbase on a schedule, or consumes Airbase approval webhooks where enabled, then posts into Epicor using the UpdateMaster pattern so an invoice and its GL lines write in one call and avoid the known empty-GL-account bug. Airbase approval chains mean a bill is not final until approved, so ml-connector keys on status before posting. Epicor enforces uniqueness on invoice number plus vendor, which ml-connector uses to dedupe since neither side offers an idempotency key. Every record carries a full audit trail and can be replayed if a downstream call fails.

A real-world example

A mid-sized manufacturer with roughly 300 employees runs Epicor Kinetic for production, procurement, and finance, and adopts Airbase for corporate cards, employee reimbursements, and bill payments. Before the integration, the AP team exported approved bills and card spend from Airbase each week and re-keyed them into Epicor AP by hand, then reconciled card charges against the general ledger line by line at month-end. With Epicor Kinetic and Airbase connected, approved bills, reimbursements, and settled card transactions post into Epicor AP automatically against the right GL accounts and vendors, and the vendor list and chart of accounts stay aligned both ways. Month-end close starts with AP already entered and coded, and the manual re-keying step is gone.

What you can do

  • Post approved Airbase bills and reimbursements into Epicor Kinetic AP invoices against the correct GL accounts and vendors.
  • Bring settled Airbase card transactions into Epicor as coded general ledger activity.
  • Push Epicor Kinetic vendors and GL accounts into Airbase so spend codes to accounts that already exist in the ERP.
  • Authenticate Airbase with its portal bearer token and Epicor Kinetic with its tenant login plus API Key, on encrypted storage.
  • Poll on the schedule you set, dedupe on Epicor invoice uniqueness, and keep a full audit trail with replay on every record.

Questions

Which direction does data move between Epicor Kinetic and Airbase?
The main flow is Airbase into Epicor Kinetic. Approved bills, reimbursements, and settled card transactions move from Airbase into Epicor AP and the general ledger, while vendors and GL accounts move from Epicor into Airbase. Card transactions and GL accounts are read-only in Airbase, so ml-connector reads that data and does not write it back.
How does the integration handle Epicor Kinetic having no webhooks?
Epicor Kinetic has no native outbound webhooks, so ml-connector treats it as poll-only. It reads Airbase on a schedule you control, or consumes Airbase approval webhooks where they are enabled, then posts into Epicor using the UpdateMaster pattern so each invoice and its GL lines write in a single call.
How are duplicate invoices and credentials handled?
Neither side offers an idempotency key, so ml-connector relies on Epicor enforcing uniqueness on invoice number plus vendor to prevent duplicate AP entries. Both credential sets are stored encrypted, the Epicor API Key is sent on every call alongside the identity token, and because the Airbase token is portal-generated with no refresh flow, ml-connector tracks it so a manual rotation does not cause an outage.

Related integrations

Connect Epicor Kinetic and Airbase

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

Get started