QuickBooks Online and UPS integration
QuickBooks Online holds your bills and purchase orders. UPS moves your packages. Connecting them keeps your logistics costs current and your shipping visibility inside QBO. When you create a purchase order in QBO for goods from a supplier, ml-connector can send that shipment request to UPS. When UPS updates tracking on those shipments, ml-connector pulls the data back into QBO so you can see where packages are and what they cost without leaving your accounting system.
What moves between them
Purchase orders and shipment details flow from QuickBooks Online to UPS for shipment creation and rating. Tracking updates and shipment status flow back from UPS into QuickBooks Online as expense line items or memo fields on bills, synced on a polling schedule. Shipment costs are captured from UPS rating calls and posted as line items on QBO bills or journal entries. The integration does not write billing or invoicing data to UPS, since UPS has no invoice API.
How ml-connector handles it
ml-connector handles OAuth token management on both sides: QuickBooks Online's Authorization Code flow (cached realm_id, SyncToken on updates, token refresh before expiry), and UPS's Client Credentials flow (x-merchant-id header, token refresh before the 4-hour expiry). QuickBooks requires a full object representation with SyncToken for concurrency safety, so ml-connector fetches the current record, increments the token, then posts the update. UPS Track Alert subscriptions expire after 14 days, so ml-connector renews them automatically. Because QuickBooks sends webhook payloads with only entity ID, the integration must fetch full PurchaseOrder or Bill records via GET to extract shipment details. Tracking status from UPS is mapped into QBO bill memos or expense line items via journal entries. Rate limits from UPS (250 token requests per day) are respected by batching pulls and spacing token refreshes.
A real-world example
A growing e-commerce distributor uses QuickBooks Online to manage bills from suppliers and UPS to ship orders to customers. Before the integration, the fulfillment team created shipments in UPS manually and then the accounting team looked up UPS tracking numbers and shipment costs to add to corresponding bills in QuickBooks, a process that took hours per week and was error-prone. With QuickBooks Online and UPS connected, each purchase order created in QBO flows to UPS for shipment, tracking updates sync back automatically, and shipment costs post to the bill as line items. Month-end reconciliation is faster because logistics costs are already recorded in QBO with live tracking attached.
What you can do
- Create shipments in UPS from QuickBooks Online purchase orders, with auto-rating for cost estimation.
- Push UPS tracking updates back into QuickBooks Online bills as memo fields or journal line items.
- Validate shipment addresses against UPS standards before posting back to QuickBooks Online.
- Manage UPS Track Alert subscriptions automatically, renewing 14-day subscriptions before expiry.
- Map shipment costs from UPS rating calls into QuickBooks Online expense accounts and bill line items.
Questions
- Which direction does data flow between QuickBooks Online and UPS?
- The main flow is QuickBooks Online to UPS for shipment creation and rating. Tracking updates and shipment costs flow back from UPS into QuickBooks Online as bill line items or journal entries. ml-connector does not write billing or invoice data to UPS, since UPS has no invoice API.
- How does the integration handle QuickBooks Online's webhook payloads and SyncToken requirements?
- QuickBooks Online webhook payloads contain only entity ID and operation type, so ml-connector fetches the full record via GET to extract shipment details. Every update to QuickBooks Online requires a SyncToken for concurrency control, so ml-connector reads the current record, increments the token, and posts the update to avoid conflicts.
- What about UPS Track Alert subscription expiry and token refresh limits?
- Track Alert subscriptions expire after 14 days and must be renewed; ml-connector renews them automatically before expiry. UPS enforces a limit of approximately 250 token requests per day, so ml-connector batches tracking pulls and times token refreshes to stay within the quota.
Related integrations
More QuickBooks Online integrations
Other systems that connect to UPS
Connect QuickBooks Online and UPS
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started