QuickBooks Online and FedEx integration
QuickBooks Online tracks your accounting and vendor relationships. FedEx moves your goods. Connecting the two keeps your shipping costs and delivery status in sync with your financial records. New shipments in FedEx flow into QuickBooks Online as expenses and invoice line items, matched to the purchase order and vendor. Rate quotes and tracking events update the same records so you see delivery milestones and final costs in the same place you manage your books.
What moves between them
Shipments and tracking events flow primarily from FedEx into QuickBooks Online. When a shipment is created in FedEx, ml-connector captures the shipment details, pickup address, and delivery address, then creates or updates a corresponding PurchaseOrder or Invoice line item in QuickBooks Online with the FedEx tracking number and current status. Rate quotes from FedEx are synced as expense records in QuickBooks Online, allocated to the vendor and expense account. Tracking events (pickup, in-transit, delivery) update the same QuickBooks Online records so the financial entry and the logistics status stay aligned. The sync runs on demand or on a schedule.
How ml-connector handles it
ml-connector caches FedEx OAuth tokens (with 1-hour TTL) to avoid hitting the IP-level auth rate limit (3 tokens per 5 seconds). It stores both FedEx API credentials (Key and Secret) and QuickBooks Online OAuth tokens (including the realm_id, which identifies the customer's QuickBooks Online company) encrypted. On the QuickBooks Online side, it monitors the refresh token rotation (every 24-26 hours) and automatically re-authenticates if a token expires. Every shipment record read from FedEx is matched to an existing Purchase Order in QuickBooks Online by PO number or vendor name and date range. Tracking events from FedEx are logged as notes or line-item status updates on the matching QuickBooks Online invoice or expense record. Because FedEx provides no server-side idempotency for tracking calls, ml-connector uses the transactionId field to deduplicate shipment creates and prevent double-booking of freight charges. All records carry a full audit trail showing when the shipment was created, when it was last updated in FedEx, and when the sync occurred.
A real-world example
A small-to-mid-market distributor uses QuickBooks Online for accounting and vendor management, and ships customer orders via FedEx daily. Before the integration, the warehouse team printed FedEx labels and entered tracking numbers manually into the shipping list, then the accounting team opened each FedEx tracking page to extract the final shipping cost and manually added it as a line item to the corresponding QuickBooks Online invoice days later, when the shipment was delivered and the charges settled. With QuickBooks Online and FedEx connected, each label creation in FedEx flows directly into QuickBooks Online as a pending expense, tracking events update the status in real time, and the final cost populates automatically when FedEx settles the charge. Month-end close no longer requires hunting for missing shipment costs, and the team can see the exact expense impact of each delivery in the books the same day the shipment ships.
What you can do
- Sync FedEx shipment tracking numbers, addresses, and status into QuickBooks Online purchase orders and invoices.
- Capture FedEx rate quotes and shipping costs as expense records in QuickBooks Online matched to the correct vendor and account.
- Update QuickBooks Online line items with FedEx tracking events (pickup, in-transit, delivery) so the financial status and logistics status stay in sync.
- Authenticate with FedEx OAuth Client Credentials (with token caching to avoid rate limits) and QuickBooks Online OAuth with automatic refresh token rotation handling.
- Deduplicate shipments via FedEx transactionId and enforce SyncToken concurrency control on all QuickBooks Online writes to prevent conflicts.
Questions
- Which direction does data flow between QuickBooks Online and FedEx?
- The main flow is FedEx to QuickBooks Online. Shipment details, tracking numbers, and status events flow from FedEx into QuickBooks Online as invoice line items and expense records. Rate quotes and final shipping costs also flow to QuickBooks Online. QuickBooks Online does not push data back to FedEx; the integration is read-only on the FedEx side.
- How does ml-connector handle the OAuth token rotation for both systems?
- FedEx tokens are cached with a 1-hour TTL to stay under the IP-level auth rate limit (3 tokens per 5 seconds). QuickBooks Online refresh tokens rotate every 24-26 hours, and ml-connector monitors expiry to automatically re-authenticate before a token stale error occurs. Both token sets are stored encrypted in the cell.
- Can ml-connector match shipments to the right purchase order in QuickBooks Online?
- Yes. ml-connector matches FedEx shipments to QuickBooks Online purchase orders by PO number or by vendor name and shipment date range. Once matched, the tracking number and status are attached to the corresponding invoice or expense record. If no match is found, the shipment is logged as an unmatched record for manual review.
Related integrations
More QuickBooks Online integrations
Other systems that connect to FedEx
Connect QuickBooks Online and FedEx
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started