Integrations / ERP / QuickBooks Online
QuickBooks Online Integration Guide for Production Scheduling with SkyPlanner APS
This QuickBooks Online integration guide shows ProAdvisors, consultants and IT teams how to connect QuickBooks Online to SkyPlanner APS. SkyPlanner integrates with QuickBooks Online in both directions over Intuit’s Accounting API:
- Customers, items with quantity on hand, accepted estimates, open purchase orders and employees flow in.
- The planned finish goes back to each estimate’s ship date.
- Finished orders go back as invoices linked to their estimates, logged hours as time activities, and stock changes as inventory adjustments.
- QuickBooks webhooks report changes in, and SkyPlanner webhooks push schedule changes as they happen.
QuickBooks Online is accounting software, so it holds no machines, routings or production orders. Workstations, process steps, shifts and setup times live in SkyPlanner. The SkyPlanner team configures the integration to your QuickBooks company during onboarding and supports it after go-live. This guide is for partners and developers who want to take part, or to build on SkyPlanner’s documented REST API (API reference) themselves.
The QuickBooks Online Accounting API
QuickBooks Online is one multi-tenant cloud product, and every company runs the same Accounting API. It is a REST API, version v3. Each call addresses one company by its realm ID: https://quickbooks.api.intuit.com/v3/company/{realmId}/{entity}, with a separate sandbox host for testing. Requests and responses are JSON, and a minorversion parameter selects the schema version. (source)
The entities a scheduler needs:
- Master data:
Customer,Item(Inventory, NonInventory, Service),Employee,Vendor. - Demand:
Estimate(TxnStatus Accepted, lines,ShipDate), and for shops that bill first,InvoiceorSalesReceipt. - Supply:
PurchaseOrder(POStatus Open, lines with items and quantities),Bill. - Write-back:
Estimate,Invoice,TimeActivity,InventoryAdjustment.
Reads use the query endpoint, for example select * from Estimate where MetaData.LastUpdatedTime > '2026-10-01'. Updates can be sparse, so SkyPlanner sends only the fields it changes. There is no sales order, routing, work center or production order entity in the Accounting API.
Authentication and limits
The Accounting API uses OAuth 2.0 with the authorization code flow and the com.intuit.quickbooks.accounting scope. A QuickBooks admin signs in once and approves access. The app then holds a short-lived access token, sent as Authorization: Bearer, and a refresh token that rolls forward on each refresh. (source)
Intuit throttles calls per company, per minute and per second, and returns HTTP 429 when an app goes over. Intuit’s App Partner Program also meters some API calls per month by partner tier. Both are described on Intuit’s limits and throttles page. Webhooks, change data capture and sparse updates keep a scheduling integration well inside them.
On the SkyPlanner side, the REST API authenticates with an API token in the Authorization-Token header (SkyPlanner Settings > API) and is documented in Swagger/OpenAPI. The integration tutorial walks through the first calls.
Webhooks and change data capture
QuickBooks webhooks notify the app when data changes in a connected company. “Webhooks automatically notify you whenever data changes in your end-user’s QuickBooks Online company files.” (source) The entities that matter for scheduling:
Customer,Item,EmployeeEstimate,Invoice,SalesReceiptPurchaseOrder,BillTimeActivity
Operations include Create, Update, Delete, Merge and Void. A notification carries the entity name, ID, operation and last-updated time, not the full record. The receiver reads the record afterwards.
Change data capture (GET /cdc?entities=...&changedSince=...) returns everything that changed since a timestamp, for a recent look-back window. SkyPlanner uses it for a nightly reconciliation, so a missed webhook never leaves a stale order. TimeActivity is not covered by change data capture, so it is reconciled with a query. (source)
Data mapping
| QuickBooks Online object | SkyPlanner object | Direction | Frequency |
|---|---|---|---|
Customer | Customer (external_identifier, delivery_priority) | QuickBooks → SkyPlanner | Initial load, then on webhook |
Item (Inventory, NonInventory, Service) with QtyOnHand | Products and materials, stock | QuickBooks → SkyPlanner | Initial load, then on webhook |
Estimate (Accepted), lines, ShipDate | Order (external_order_number, delivery_date), jobs per line | QuickBooks → SkyPlanner | Real time via webhook |
Invoice or SalesReceipt (bill-first shops) | Order and jobs | QuickBooks → SkyPlanner | Real time via webhook |
PurchaseOrder (Open), lines | Incoming material (product purchase orders) | QuickBooks → SkyPlanner | Real time via webhook |
Employee | Personnel | QuickBooks → SkyPlanner | Initial load, then on webhook |
Estimate.ShipDate (sparse update) | Planned finish | SkyPlanner → QuickBooks | On schedule change |
Invoice with LinkedTxn to the Estimate | Finished order | SkyPlanner → QuickBooks | When the order is completed |
TimeActivity (EmployeeRef, CustomerRef, ItemRef, hours) | Mobile Confirmations, timelogs | SkyPlanner → QuickBooks | As work is logged |
InventoryAdjustment | Finished goods in, materials used | SkyPlanner → QuickBooks | When the order is completed |
| Not in QuickBooks | Workstations, process steps, shifts, absences, setting time matrix, tools, operator counts, alternative workstations | Maintained in SkyPlanner | Set up during onboarding |
Integration patterns
1. Initial master data load. Page through customers, items, employees and open purchase orders with the query endpoint. Create SkyPlanner customers with the QuickBooks ID as external_identifier, and products and materials with the item ID as the key. Then build what QuickBooks does not hold: workstations, process steps per product, shifts, leave and setup times. CSV or Excel import is the fastest route for process steps.
2. Order sync. Subscribe to Estimate, Invoice, Item and PurchaseOrder webhooks. When an estimate turns Accepted, SkyPlanner reads it and creates an order with the estimate number as external_order_number and the ship date as delivery_date. Each line becomes jobs through the product’s process steps. Open purchase order lines become incoming material, so jobs wait for the delivery. Nightly change data capture catches any missed event.
3. Schedule and completion write-back. Four calls put the results into QuickBooks:
- A sparse update on the
EstimatewritesShipDate, so the promised date in QuickBooks follows the plan. - When the order is completed, POST
/invoicecreates the invoice with the estimate’s lines and aLinkedTxnto the estimate. Intuit allows one invoice link per estimate, so partial deliveries are agreed in scoping. - POST
/timeactivityrecords each operator’s logged hours against the employee, the customer and a service item. Billable hours can then be added to the invoice in QuickBooks. - POST
/inventoryadjustmentraises finished goods and lowers used materials. Intuit offers this entity on QuickBooks Online Plus and Advanced in the US. (source)
4. Shop-floor confirmations. Operators log work with SkyPlanner Mobile Confirmations, Production Timer or Quick Log Mode. Progress updates the schedule at once, and Autopilot replans the rest. Hours go to QuickBooks as time activities. If a shop keeps QuickBooks Time for payroll, pick one channel for job hours in scoping.
5. Ownership and conflict rules. Write them down before go-live:
| Data | Owner |
|---|---|
| Customers, items, prices, estimates, purchase orders, invoices, accounting | QuickBooks Online |
| Workstations, process steps, shifts, absences, setting time matrix, tools, alternative resources | SkyPlanner |
| Job sequence, start and end times, workstation per job | SkyPlanner |
| Estimate ship date | SkyPlanner, written to QuickBooks |
| Invoice for finished orders, job hours, finished goods adjustment | SkyPlanner creates, QuickBooks owns after posting |
Typical project steps
Implementation is normally completed within weeks after onboarding starts. Before that, the 30-day free trial runs on your own data from a QuickBooks export of customers, products and open estimates.
The project itself contains:
- Connect. A QuickBooks admin approves SkyPlanner through Intuit’s OAuth 2.0 screen.
- Demand object. Agree whether accepted estimates, invoices or sales receipts start production.
- Mapping. Fix the mapping table, item keys, service items for labor, and the ownership rules.
- Initial load. Customers, items, employees, open purchase orders.
- Production model. Workstations, process steps per product, shifts, setting time matrix, tools and operator counts in SkyPlanner.
- Event sync. Webhooks for estimates, items and purchase orders, plus nightly change data capture.
- Write-back. Ship date first, then invoices, time activities and inventory adjustments.
- Parallel testing and go-live. Compare SkyPlanner dates with your current plan, have your accountant check the first invoices and adjustments, then switch write-back on.
What to plan for in a QuickBooks Online integration
- Sales orders stay in the QuickBooks screens. Plus and Advanced have sales orders in the app, and the integration reads accepted estimates, or invoices for bill-first shops. Agree on one trigger, so every order enters the same way.
- No routings in QuickBooks. Keep process steps per product in SkyPlanner, keyed to the QuickBooks item.
- One invoice per estimate link. Split deliveries need a rule, such as one estimate per delivery.
- Inventory adjustments by plan and region. Plus and Advanced in the US support them. Elsewhere, agree with your accountant how finished goods reach QuickBooks.
- Intuit Enterprise Suite manufacturing orders. If you use them, decide which system owns builds and component reservations.
- Bundles are read-only for the API. Group items cannot be created through the API, so keep bundles in QuickBooks.
- Refresh token rotation. Store the newest refresh token after every refresh, or the connection drops.
The QuickBooks Online integration: who configures and supports it
The work covers your items, estimates, purchase orders and how finished work reaches billing. It adds what QuickBooks does not hold: workstations, process steps, shifts, setting time matrix, tools, operator counts and alternative resources.
- The SkyPlanner team configures it during onboarding and supports it after go-live. Every shop sets up items, estimates and inventory differently in QuickBooks, and this is where that know-how goes.
- Your QuickBooks ProAdvisor or integration partner can build it. SkyPlanner provides the REST API, Swagger/OpenAPI documentation and webhooks.
- Your own developers can build on it with an API token. An API token is enough to start, and the SkyPlanner team assists when needed. Product documentation, including purchase orders and the products and materials API, is in the SkyPlanner docs.
SkyPlanner starts from 199 € per month with 5 workstations included, billed monthly. The integration is quoted up front for your process and needs, together with your plan, so you see the full cost before you start. See pricing, features and what QuickBooks covers on its own in Does QuickBooks have production scheduling? The overview is on the QuickBooks Online page, and other systems are in all integrations.
SkyPlanner reviews from manufacturers
2 hsaved every week
“SkyPlanner has taken our production planning from Excel spreadsheets to real-time production optimization.”
Kalle Kalliomäki, Supply Chain Specialist
UTU · Electrical switchboards and switchgear
Production planning saves 2 hours of working time every week, and a new work queue reaches the line in seconds.
+90%production efficiency
“Efficiency has gone up 90% in production.”
Abdul Rucyinga, Head of IT
Laboratory & Allied · Pharmaceutical manufacturing
Production efficiency is up 90%, and a three-month optimized plan across all workstations takes under 30 minutes.
100%delivery reliability since 2021
“SkyPlanner gives us visibility into capacity and makes planning predictable.”
Dan Berglund, COO/CFO
Opes Corporation · Chemical and food manufacturing
Delivery reliability has been 100% for the entire time SkyPlanner has been in use, since 2021.
1,000swork orders scheduled automatically
“Production is under control in a different way, and our understanding of capacity is on a completely different level.”
Hannu Ryynänen, CEO
Mamec · Industrial mixers, pumps and high-tech contract manufacturing
Thousands of work orders are scheduled automatically, with a real-time view of production for the whole organization.
FAQ
Does QuickBooks Online have an API for production data?
QuickBooks Online has the Accounting API, a REST API with OAuth 2.0. It covers customers, items, estimates, invoices, purchase orders, time activities and inventory adjustments. Production data such as workstations and process steps lives in SkyPlanner.
Can SkyPlanner write back to QuickBooks Online?
Yes. SkyPlanner writes the planned ship date to each estimate, creates an invoice linked to the estimate when the order is finished, posts logged hours as time activities and records finished goods and used materials as inventory adjustments on US Plus and Advanced.
Does QuickBooks Online push changes in real time?
Yes. QuickBooks webhooks cover customers, items, estimates, invoices, purchase orders and time activities. SkyPlanner reads each changed record and reconciles nightly with change data capture.
Where do routings and machines come from if QuickBooks has none?
From SkyPlanner. You set up workstations, process steps per product, shifts and setup times once, by hand or with a CSV or Excel import. Each process step links to the QuickBooks item, so new estimates schedule automatically.
Can we test SkyPlanner before building the integration?
Yes. The 30-day free trial supports up to 20 workstations with a CSV or Excel import from QuickBooks, no credit card needed. Start the trial, or talk to sales to scope the integration.