Acumatica and Toast integration
Acumatica Cloud ERP runs your accounting and general ledger. Toast runs the restaurant front of house: orders, checks, payments, and tips. Connecting the two brings each day's sales and payment activity into Acumatica without re-keying register totals. After every business date closes in Toast, ml-connector reads the orders and payments, drops voids, and posts the net sales, tax, discounts, and tender breakdown into Acumatica as a balanced journal entry against the accounts you choose. ml-connector handles the very different APIs on each side and moves the data on the cadence you set.
What moves between them
The flow runs from Toast into Acumatica. After each Toast business date closes, ml-connector reads orders and payments by businessDate, filters out voided orders, checks, and payments, and posts the day's net sales, tax collected, discounts, and tender amounts into Acumatica as a balanced JournalTransaction, or as an AR sales invoice where line-level detail is wanted. Toast revenue centers and sales categories are mapped to Acumatica GL accounts and subaccounts so each closeout lands on valid dimensions. Toast is treated as a read-only accounting source, so ml-connector never writes financial entries back into the POS.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the Toast side it exchanges the client credentials for a short-lived bearer token, caches it until near expiry to stay under the auth rate limit, and sends the Toast-Restaurant-External-ID for each location on every call. On the Acumatica side it accepts the full instance URL and the exact endpoint version per customer, since a version mismatch returns 404, and it wraps every posted field as a value object as the contract requires. Sales are pulled by businessDate rather than by timestamp so a 1 AM sale falls on the correct day per the restaurant's closeout hour, and voided orders, voided checks, and voided payments are dropped before posting because Toast still returns them. Revenue centers and sales categories are mapped to GL accounts first, so every journal line references an account that already exists in Acumatica. Toast order webhooks signed with HMAC-SHA256 can trigger a near-real-time refresh, while a nightly poll backfills payments and anything a webhook missed. Acumatica throttles by license tier and returns HTTP 429, so ml-connector backs off and retries, and before creating a journal it checks for an existing entry by reference to avoid a duplicate, since Acumatica has no idempotency-key header.
A real-world example
A regional restaurant group running roughly a dozen locations uses Toast at each site for orders and payments and keeps its books in Acumatica Cloud ERP. Before the integration, a bookkeeper opened Toast Web for every location each morning, copied the day's net sales, tax, comps, and card and cash totals, and typed a journal entry into Acumatica by hand, then spent the start of month-end close chasing locations whose deposits did not tie to recorded sales. With Acumatica and Toast connected, each location's closeout posts into Acumatica automatically, split across revenue centers and sales categories mapped to the right GL accounts, with cash and card tenders separated. The morning re-keying is gone and close starts from numbers that already reconcile to the bank.
What you can do
- Post each Toast business date's net sales, tax, and discounts into Acumatica as a balanced GL journal entry.
- Split tender into cash, card, and other payment types and record them against the correct Acumatica accounts.
- Map Toast revenue centers and sales categories to Acumatica GL accounts and subaccounts so every closeout lands on valid dimensions.
- Drop voided orders, checks, and payments before posting, and align sales to the restaurant's closeout hour by business date.
- Authenticate Toast with client credentials per location GUID and Acumatica with its company-scoped OAuth token and version-pinned endpoints.
Questions
- Which direction does data move between Acumatica and Toast?
- The flow is Toast into Acumatica. Daily orders, payments, tax, and discounts move from Toast into Acumatica as GL journal entries or AR invoices. Toast is a POS and is treated as a read-only accounting source, so ml-connector does not write financial entries back into Toast.
- Does Toast provide vendors, bills, or a chart of accounts to Acumatica?
- No. Toast is a restaurant POS and has no vendor, purchase order, AP bill, or chart-of-accounts objects. What it provides is sales, payment, and configuration data such as revenue centers and sales categories, and ml-connector maps that activity onto the GL accounts you already keep in Acumatica.
- How does the integration get the daily totals right?
- ml-connector pulls Toast orders and payments by businessDate, which follows each restaurant's closeout hour, so a late-night sale is counted on the correct day to match what Toast Web reports show. It drops voided orders, checks, and payments before posting, since Toast still returns them, and a nightly reconciliation poll backfills any records an order webhook missed.
Related integrations
More Acumatica integrations
Other systems that connect to Toast
Connect Acumatica and Toast
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started