ml-connector
PlexBasware

Plex and Basware integration

Plex runs manufacturing and procurement. Basware runs AP automation and e-invoicing. Connecting the two keeps your procurement records and approval workflows aligned. Suppliers, purchase orders, and invoices created in Plex flow into Basware automatically, where they route to approval based on your cost centers and GL codes. ml-connector handles the different auth models on each side and syncs on a schedule that fits your procurement calendar.

How Plex works

Plex Adaptive ERP exposes suppliers, purchase orders, purchase order releases, invoices, GL accounts, and inventory through REST JSON APIs at cloud.plex.com/api authenticated with OAuth2 client credentials, or through legacy SOAP Web Services with Basic auth and a company code (PCN) for data partitioning. The platform also supports scheduled SFTP DataSources extracts for bulk historical loads. Plex has no native webhook system, so procurement records are read by polling on a configurable interval, typically 5 to 15 minutes, filtering by modified date.

How Basware works

Basware AP Automation exposes purchase orders, purchase requisitions, vendors, and accounting documents through REST P2P APIs authenticated with OAuth2 client credentials, and through Data Access APIs for bulk extract using the same credentials. Basware is regionally deployed, so the API endpoint must match the customer's region (EU, US, AU, or CA). The P2P API supports webhooks for push notification of document changes, but the Data Access API is pull-only, so ml-connector can receive events where webhooks are enabled or poll when they are not.

What moves between them

Records flow from Plex into Basware. Suppliers, purchase orders, and invoices created or modified in Plex are polled and sent to Basware's P2P API on a schedule tied to your procurement cycle. Cost centers and GL codes from Plex are mapped to matching dimensions in Basware so each purchase order and invoice routes to the correct cost center and GL account during approval and accrual. Basware retains the records for AP workflow, matching, and archiving, and does not write back to Plex.

How ml-connector handles it

ml-connector stores both credential sets encrypted and uses OAuth2 on both sides, refreshing each token when a call returns 401. On the Plex side, it polls the REST API with the OAuth2 Bearer token on a configurable schedule, filtering by modified date to detect new and changed suppliers, purchase orders, and invoices. Because Plex rate limits are not publicly documented, ml-connector implements exponential backoff on HTTP 429 to avoid throttling. On the Basware side, it validates that the target region matches the customer's Basware deployment, then posts records to the P2P API with the OAuth2 credentials. GL codes and cost centers from Plex are mapped to Basware dimensions during the push, so each record lands on the correct account for approval. Every record carries a full audit trail and can be replayed if the downstream Basware call fails.

A real-world example

A mid-market discrete manufacturer runs Plex ERP for production, procurement, and finance across two facilities, and uses Basware for AP automation and invoice processing. Before the integration, the procurement team exported purchase orders and invoices from Plex weekly and uploaded them to Basware by hand, then manually mapped cost centers and GL codes in Basware. Supplier master changes in Plex were not reflected in Basware, causing approval workflows to route to incorrect cost centers, and incorrect GL coding delayed invoice accrual. With Plex and Basware connected, purchase orders and invoices sync automatically every 15 minutes, and cost centers from Plex are mapped to Basware dimensions automatically so approval routes correctly. The manual upload step is gone, supplier changes flow through within one polling interval, and invoice accrual starts on time.

What you can do

  • Poll Plex for suppliers, purchase orders, and invoices, and push them to Basware with OAuth2 credentials on both sides.
  • Map Plex GL codes and cost centers to Basware dimensions so each purchase order and invoice routes to the correct cost center during approval.
  • Handle Plex polling intervals and exponential backoff to respect rate limits, and Basware regional deployment endpoints.
  • Authenticate Plex with OAuth2 and the Basware P2P API with OAuth2, with token refresh on each 401 response.
  • Maintain a full audit trail of every supplier, purchase order, and invoice record and replay failed pushes to Basware when network issues occur.

Questions

Which direction does data move between Plex and Basware?
The flow is Plex into Basware. Suppliers, purchase orders, and invoices created in Plex are polled and pushed to Basware for AP automation and invoice processing. Basware is the downstream system of record for approval and payment, and does not write back to Plex.
How does ml-connector handle Plex's lack of webhooks and Basware's regional deployment?
ml-connector polls Plex on a configurable schedule, typically 5 to 15 minutes, filtering by modified date to detect changes. On the Basware side, it uses the OAuth2 credentials and regional endpoint that match your Basware deployment region (EU, US, AU, or CA), so the push succeeds without redirection or auth failure.
What happens if Plex GL codes do not match Basware dimension values?
ml-connector includes a dimension mapping step before pushing to Basware, so Plex GL codes are translated to the Basware dimension values that already exist in your Basware instance. If a mapping is missing, the record is flagged in the audit trail and can be retried after the mapping is added.

Related integrations

Connect Plex and Basware

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

Get started