ml-connector
PlexBILL

Plex and BILL integration

Plex runs manufacturing, purchasing, and finance. BILL runs accounts payable and payment operations. Connecting the two keeps your supplier data and invoice workflows aligned. Purchase orders and receipts from Plex flow into BILL so invoices can be matched to orders before approval and payment, eliminating manual invoice entry and reducing duplicate handling. ml-connector bridges the two systems on a schedule you control.

How Plex works

Plex is a cloud-native ERP and MES platform that combines full ERP capabilities with embedded production and quality management. It exposes suppliers, purchase orders, invoices, GL accounts, inventory, and sales orders through REST JSON APIs at https://cloud.plex.com/api, authenticated with OAuth 2.0 client credentials. Plex offers legacy SOAP XML Web Services as well, and supports scheduled SFTP flat-file DataSource extracts for bulk historical loads. Plex does not offer native webhooks for cloud connectors, so supplier and invoice records are read by polling on a configurable interval, typically 5 to 15 minutes, filtering by modified date and creation date.

How BILL works

BILL is a cloud-based financial operations platform that automates accounts payable, accounts receivable, and spend and expense workflows. It exposes vendors, bills, payments, invoices, chart of accounts, and payment records through REST APIs at https://gateway.prod.bill.com/connect, authenticated with a custom session token obtained via login endpoint with username, password, organizationId, and devKey. BILL also supports a separate API token for Spend and Expense operations. Sessions expire after 35 minutes of inactivity. BILL supports webhooks with up to 10 subscriptions per organization, with signature verification via HMAC-SHA256, but polling is also recommended to validate webhook coverage.

What moves between them

Purchase orders and supplier invoices flow from Plex into BILL. ml-connector polls Plex on a configurable schedule for new or modified purchase orders, invoices, and supplier records, then creates matching vendors and bills in BILL with references back to the Plex source records. Payment records from BILL are not written back to Plex, as Plex manages its own cash flow and payment approval. Cost coding and GL account mapping ensure each bill created in BILL references a valid GL account from both systems.

How ml-connector handles it

ml-connector stores Plex OAuth client credentials and BILL session credentials encrypted in its vault. On each poll cycle, it obtains a fresh OAuth 2.0 bearer token from Plex and calls the REST API endpoints filtering for modified purchase orders, invoices, and suppliers. For BILL, it logs in via the session endpoint, stores the sessionId with its expiry timestamp, and refreshes when expiry approaches. Vendor records are matched by name and external reference ID so duplicates are not created; purchase order lines are mapped to bill line items with GL account and cost center allocation. Because Plex offers no webhooks, polling intervals are tuned to your procurement cycle, typically after order placement and after goods receipt and three-way match. Every record synced carries a full audit trail, and failed bill creations can be retried or manually resolved in BILL.

A real-world example

A mid-sized discrete manufacturer runs Plex for production and procurement across three plants and uses BILL for centralized accounts payable and vendor management. Before integration, the AP team received invoices from suppliers, manually looked up the matching purchase order in Plex to confirm pricing and receipt, then entered the invoice into BILL by hand. Month-end close required re-matching invoices to POs to catch discrepancies. With Plex and BILL connected, each received PO and matched supplier invoice flows automatically into BILL, pre-populated with vendor names, line items, and GL coding. The AP team approves bills that are already three-way matched, and invoices paid are automatically marked as settled in Plex.

What you can do

  • Automatically sync supplier records from Plex into BILL so vendors are always current and duplicate entries are prevented.
  • Create bills in BILL from Plex purchase orders and supplier invoices, with line items and GL account coding pre-filled.
  • Match incoming invoices to purchase orders in Plex before creating bills in BILL to enforce three-way match discipline.
  • Poll Plex on a configurable schedule aligned to your procurement cycle, with exponential backoff and error recovery.
  • Maintain a full audit trail on every synced record with the ability to replay failed bills or manually resolve exceptions.

Questions

Can Plex and BILL data flow bidirectionally?
No. The primary flow is Plex to BILL. Purchase orders, invoices, and suppliers move from Plex into BILL so AP can manage bills and payments. Payment records from BILL are not written back to Plex, since Plex manages its own cash flow and approval workflows separately. Vendor master data can be enriched in both systems without conflict.
Does BILL's session token expiry cause interruptions?
No. ml-connector tracks the sessionId expiry time returned by BILL's login endpoint (35 minutes for standard login). When a session is about to expire, ml-connector obtains a fresh token before the timeout occurs, so polling intervals and bill creation calls proceed without interruption or retry delays.
How are Plex purchase orders matched to BILL vendors?
Vendor records flow from Plex to BILL on the same schedule as invoices. ml-connector matches vendors by name and external reference ID so duplicate vendor entries are never created in BILL. When a purchase order is received in Plex, the associated vendor is already synchronized to BILL, and the invoice matching the PO can be created with the correct vendor link.

Related integrations

Connect Plex and BILL

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

Get started