ml-connector
PlexToast

Plex and Toast integration

Plex runs finance and production across food and beverage manufacturing operations. Toast manages point-of-sale, ordering, payments, and labor across restaurant locations. Connecting the two keeps your sales, inventory, and GL accounts current with Toast transaction data. Daily orders, checks, and payments flow from Toast into Plex mapped to the correct customers and GL revenue accounts, and labor shifts flow into inventory and costing records without manual spreadsheet work.

How Plex works

Plex Adaptive ERP exposes suppliers, purchase orders, invoices, customers, sales orders, parts, inventory, GL accounts, and payments through REST JSON APIs at cloud.plex.com and legacy SOAP endpoints at api.plex.com. Cloud REST authentication uses OAuth 2.0 client credentials; SOAP uses Basic auth with username, password, and company code (PCN). Plex offers no native webhooks, so transactions are read by polling on a configurable interval, typically 5 to 15 minutes, filtered by created_date or modified_date. Role-based permissions are enforced, so the integration user must have the correct Plex role assigned.

How Toast works

Toast exposes orders, checks, payments, menu items, employees, shifts, and revenue data through REST APIs at ws-api.toasttab.com. Authentication uses OAuth 2.0 client credentials with a bearer token and two required headers: Authorization and Toast-Restaurant-External-ID per location. Toast supports both webhooks and polling. Webhooks push events for order_updated and menu changes via HMAC-SHA256 signature verification. Payments and labor data require polling because webhooks are not guaranteed delivery. Historical orders and labor shifts use a business-date parameter (YYYYMMDD) that accounts for each restaurant's configurable closeout hour.

What moves between them

The main flow runs from Toast into Plex. Daily orders and payments flow from Toast into Plex as sales orders and customer invoices, with service charges and taxes mapped to Plex GL revenue accounts. Labor shifts flow into Plex inventory costing. Toast voided transactions are filtered out before posting to the GL. Multi-location Toast accounts require separate polling per restaurant using each location's Toast-Restaurant-External-ID, and business dates are aligned to each restaurant's closeout time so sales on one calendar day do not split across two Plex accounting dates.

How ml-connector handles it

ml-connector authenticates Toast with OAuth 2.0 and caches the bearer token to avoid hitting the auth rate limit. It polls Toast nightly using the reconciliation endpoint with each restaurant's business date, applying Toast's configurable closeout hour so a 1 AM sale belongs to the previous business date if that restaurant closes at 3 AM. Voided orders and checks are filtered by checking the voided flag before posting. Service charges classified as gratuity are excluded from net sales. Payments reconcile to Plex customers using Toast's external IDs. Each Toast order is tracked with an external reference in Plex so retries do not create duplicates. Toast's 20 requests per second rate limit and per-location API limits are honored with backoff. Multi-restaurant accounts send a separate request per location to avoid pagination conflicts on configuration changes.

A real-world example

A mid-sized food and beverage manufacturing company runs Plex ERP for supply chain, costing, and financial reporting, and operates 4 Toast-based casual restaurants across different cities using Toast POS and online ordering. Before the integration, the restaurant manager exported daily sales reports from Toast at 6 AM, manually consolidated multi-location totals, and emailed them to accounting who re-entered revenue, service charges, and tax into Plex as journal entries across 4 different GL accounts. With Plex and Toast connected, each restaurant's overnight sales and payments automatically post to Plex at 6 AM aligned to the correct business date, service charges split correctly between net sales and gratuity, and the accounting team starts their month-end close with revenue already reconciled. Month-end now takes 2 hours instead of 2 days.

What you can do

  • Sync Toast orders, checks, and payments daily into Plex sales orders and invoices mapped to the correct customer and GL revenue accounts.
  • Handle multi-location Toast restaurants by polling each location separately with its unique Toast-Restaurant-External-ID and reconciling to one consolidated Plex customer.
  • Filter voided transactions, gratuity service charges, and fundraising items so only net sales post to Plex GL.
  • Align Toast business dates to each restaurant's configurable closeout hour so sales do not split across accounting date boundaries.
  • Reconcile payments to Plex customer accounts and track every Toast transaction with an external reference to prevent duplicate postings on retry.

Questions

How does the integration handle multiple Toast restaurants in one account?
Toast requires a unique Toast-Restaurant-External-ID per location. ml-connector retrieves all accessible locations via the partners API and polls each location separately, consolidating all orders and payments under one Plex customer account for consolidated reporting. Business dates are aligned to each restaurant's configurable closeout hour so a midnight sale belongs to the correct accounting date at that location.
What happens to voided orders and payments in Toast?
Toast returns voided transactions alongside active ones. ml-connector filters out any order, check, or payment where the voided flag is true before posting to Plex GL. Service charges marked as gratuity are also excluded from net sales so they do not inflate revenue accounts. This prevents accounting from seeing false sales and manual correction.
Why poll Toast if webhooks are available?
Toast webhooks cover orders and menus but not payments or labor, and webhook delivery is not guaranteed. ml-connector reconciles daily using the nightly bulk endpoint on each restaurant's business date as a safety net, so accounting always has a complete picture by morning. Webhooks accelerate real-time reporting but polling ensures nothing is lost.

Related integrations

Connect Plex and Toast

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

Get started