Dumpster Controls · agent page

This is the agent-optimized version of https://dumpstercontrols.io/help/quickbooks/quickbooks-architecture-and-reliability: the same content as the human page, without scripts, styles, animations or navigation. People should open the full page.

Canonical page
https://dumpstercontrols.io/help/quickbooks/quickbooks-architecture-and-reliability
Last updated
2026-08-22
Tokens
1,294 tokens (cl100k_base), within the 2,000-token budget for a help page
Size
10.0 KB for this page, against 22 KB for the human page (54% smaller)
Markdown
https://dumpstercontrols.io/help/quickbooks/quickbooks-architecture-and-reliability.md, or send Accept: text/markdown to the canonical URL
Cite as
Architecture and reliability: how the sync engine works under the hood. Dumpster Controls. https://dumpstercontrols.io/help/quickbooks/quickbooks-architecture-and-reliability (accessed 2026-10-05).
More for agents
Facts sheet · llms.txt · llms-full.txt · All agent pages · Product manual

QuickBooks Integration · updated 2026-08-22

Architecture and reliability: how the sync engine works under the hood

For the technically curious: the engineering that makes the integration dependable enough for your ledger. This is the same infrastructure pattern that powers our public API webhooks.

  1. ## Outbox queue, never inline
    Nothing in your operation ever waits for QuickBooks. When an invoice, customer, payment or refund changes, a database trigger writes an event to a durable queue in the same transaction. A worker picks events up within about two minutes and delivers them to QuickBooks. If Intuit is slow or down, your dispatch board, booking page and payments continue exactly as always.
  2. ## Retries with backoff, and a hard stop
    Transient failures (network, QuickBooks 5xx, rate limiting) retry automatically at increasing intervals: 1, 5, 30 and 120 minutes, up to 5 attempts. Definitive business rejections (for example, a validation error from QuickBooks) do not retry blindly; they surface in the sync log with the exact reason. Authorization failures pause the connection immediately and never hammer Intuit with a dead token.
  3. ## Deduplication and ordering
    The queue keeps at most one pending event per entity, so a burst of edits becomes one sync. Ordering is resolved at delivery time: an invoice sync first guarantees its customer exists in QuickBooks; a payment sync first guarantees its invoice. Dependencies are never delivered out of order, even when queue items retry at different times.
  4. ## Crash safety: the reaper
    If a worker dies mid-delivery, the claimed item would be stuck. A reaper returns any item stuck in processing for more than 15 minutes back to the queue. Handlers are idempotent (they check the entity map before creating), so a re-delivery after a crash updates instead of duplicating.
  5. ## Token refresh, engineered against races
    QuickBooks access tokens expire hourly and refresh tokens rotate. The integration refreshes proactively with a two-minute margin, stores rotated tokens atomically with a compare-and-set (two concurrent refreshes can never corrupt the connection), and if a refresh loses a race it adopts the winner's token instead of erroring. A genuinely dead refresh token (revoked, expired after ~100 days of inactivity) marks the connection as needing reconnection, visibly.
  6. ## Recovery after reconnection
    Items that failed while a connection was broken are replayed automatically when you reconnect, newest state first, without duplicating anything. If you reconnect a DIFFERENT QuickBooks company, the integration clears its entity map so records are never written into the wrong ledger.
  7. ## Observability: intuit_tid everywhere
    Every failed call to Intuit logs the intuit_tid response header, Intuit's own transaction id, and shows it in the sync log. If you ever open a case with Intuit support, that id lets them find the exact request. Nothing fails silently is not a slogan; it is the design invariant of this integration.

© 2026 Dumpster Controls. All rights reserved. Made in the USA.

Frequently asked questions

Is Dumpster Controls really free?

Yes. The software is free: dispatch, online booking, the driver app, invoicing, the Tresha AI assistant and every other feature, with no monthly fee, no trial period and no credit card to sign up. The only cost on the free plan is optional card processing when a customer pays by card through the platform: 2.99% plus $3.99 per transaction on the free plan. An optional Unlimited plan at $169 per month lowers that to 2.99% plus $0.30. Prices as published on dumpstercontrols.io/pricing on 2026-09-23.

Do you charge per driver, per truck or per order?

No. There is no per-driver, per-truck, per-user or per-order fee, and no order limit. A company with one truck and a company with twenty pay the same for the software: nothing.

Is there a contract?

No. There is no contract, no minimum term and no setup fee. You create the account yourself, and on the free plan there is nothing to cancel because nothing is billed. The optional Unlimited plan is billed month to month.

Which countries and languages are supported?

Dumpster Controls serves hauling companies in the United States and Canada. The app interface and the Tresha AI assistant are available in English, Spanish and Portuguese. The public pages, such as the blog, the help center and the landfill finder, are in English.

How do I switch from another dumpster software?

Create a free account at dumpstercontrols.io/login, with no sales call and no credit card. Then import your customers from a CSV file using the template provided in the app; past orders can also be imported from a CSV. Container sizes and pricing are set up in Settings. The landfill database, with 1,750 active US and Canadian landfills as counted on 2026-10-01, is already loaded, so disposal sites do not need to be typed in. Step-by-step guides are at dumpstercontrols.io/help.