QuickBooks Desktop and Procore integration
QuickBooks Desktop holds your vendors, bills, and accounts on premises. Procore manages project costs, commitments, and payment applications in the cloud. Connecting them keeps your project financials in Procore aligned with the bills and vendors in QuickBooks Desktop, so you have one source of truth for what you owe and when. ml-connector handles the complexity of the on-premises QBWC polling protocol and the cloud OAuth2 handshake, so your team sees accurate vendor and commitment data in Procore without re-keying.
What moves between them
The main flow is from QuickBooks Desktop into Procore. Vendors created or updated in QuickBooks Desktop are read by the QBWC polling agent and sent to ml-connector, which writes them to Procore as vendors within a specified project. Bills in QuickBooks Desktop become payment applications in Procore, linked to the corresponding vendor and cost code, so Procore project managers see a complete picture of vendor commitments and outstanding bills. Bill deletions trigger deletion in Procore, keeping the commitment list clean.
How ml-connector handles it
ml-connector acts as the SOAP endpoint that the QBWC agent calls. When QBWC contacts your service with a username and password, ml-connector validates them, returns a session ticket, and queues a job to read vendors and bills from the current session using ModifiedDateRangeFilter to fetch only changed records. After the session ends, ml-connector transforms each vendor and bill into Procore entities: vendors become Procore vendors with the same display name and contact details, and bills become payment applications assigned to the cost code you specify for that vendor. ml-connector stores the Procore OAuth2 credential encrypted, refreshes the bearer token before expiry (at 5400 seconds), and retries on rate limits or transient errors. Each mapped record carries an audit trail so you can trace a bill's journey from QuickBooks Desktop to Procore.
A real-world example
A mid-sized construction firm runs QuickBooks Desktop at their office for accounting and vendor management, and uses Procore to track project budgets, commitments, and field costs across six active projects. Before the integration, the operations manager exported vendor and bill reports from QuickBooks Desktop weekly and manually entered them into Procore project budgets, a tedious process prone to data entry errors and stale information. With QuickBooks Desktop and Procore connected, vendors are synced automatically when they are added or changed, and bills flow into Procore as payment applications so project managers can see what is owed without waiting for a manual export. Monthly reconciliation is faster because Procore data already matches QuickBooks Desktop.
What you can do
- Sync vendors from QuickBooks Desktop into Procore, keeping vendor master data aligned across both systems.
- Convert QuickBooks Desktop bills into Procore payment applications, mapped to the correct project and cost code.
- Poll QuickBooks Desktop on your QBWC schedule, so updates reflect the cadence your office uses.
- Handle QuickBooks Desktop session-token authentication and Procore OAuth2 credentials securely and refresh tokens automatically.
- Track every vendor and bill through an audit trail, so you can replay a failed sync or reconcile a discrepancy.
Questions
- Does ml-connector replace our QBWC agent?
- No. ml-connector acts as the SOAP endpoint that QBWC calls. Your customer still runs QBWC on their Windows machine, and QBWC polls your ml-connector endpoint on your schedule, just as it would any other remote SOAP service. ml-connector then reads the QuickBooks Desktop data via that session and pushes it to Procore.
- What if a bill in QuickBooks Desktop is deleted?
- ml-connector detects deletions using TxnDeletedQueryRq on each poll and mirrors the delete to Procore by removing the corresponding payment application. This keeps your Procore commitment list accurate and prevents orphaned bill records.
- How does ml-connector handle the different Procore sandboxes and production environments?
- ml-connector stores separate OAuth2 credentials for Procore sandbox and production, and you specify which environment each customer targets during setup. Tokens are refreshed automatically before expiry so your syncs never stall due to an expired bearer token.
Related integrations
More QuickBooks Desktop integrations
Other systems that connect to Procore
Connect QuickBooks Desktop and Procore
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started