QAD and FedEx integration
QAD Adaptive ERP runs manufacturing, procurement, and finance, while FedEx handles parcel and freight transportation. This connection creates FedEx shipments directly from QAD shipping and purchase order records, and stamps each FedEx label with the matching QAD PO or invoice number so the package can be traced back to its source document. FedEx tracking events then flow into QAD so order and goods receipt records show real pickup, in-transit, and delivery status without manual lookups on the FedEx site. ml-connector handles the very different APIs on each side and runs the sync on the schedule you set, with near-real-time delivery events where the FedEx webhook subscription is enabled.
What moves between them
The outbound flow runs from QAD into FedEx. When a QAD shipment or purchase order is ready to move, ml-connector creates the FedEx shipment, generates the label, and writes the QAD PO or invoice number into the FedEx customerReferences array using the INVOICE_NUMBER and P_O_NUMBER reference types. The return flow runs from FedEx into QAD: tracking scan events, estimated delivery windows, and final delivery details flow back so the originating QAD order or goods receipt shows current transport status. FedEx exposes no AP invoice, GL, or purchase order objects, so ml-connector never writes finance records into FedEx and never expects them back; freight charges return as rate and shipment totals only.
How ml-connector handles it
ml-connector stores both credential sets encrypted and accepts the full QAD tenant URL per customer, since QAD cloud publishes no shared base address, validating entity paths against that instance. On the FedEx side it requests a bearer token with the client_credentials grant and the customer API key, secret, and account number, then caches that token for its full one-hour life because FedEx returns 403 for ten minutes if auth requests cross the burst or average IP threshold. QAD cloud is pull-only, so QAD purchase orders and shipment records are read by polling on your schedule. For status coming back, ml-connector reads the FedEx Track API by tracking number or by PO and invoice reference, and where the Advanced Integrated Visibility subscription is active it receives pushed events and verifies each one by recomputing the HMAC-SHA256 of the body against the fdx-signature header before trusting it. The QAD document number is mapped to customerReferences so every package traces back to its order. Shipment creation has no idempotency-key header, so ml-connector records the returned masterTrackingNumber and checks it before any resubmit, backs off and retries on a 429, and keeps a full audit trail that can be replayed if a downstream call fails.
A real-world example
A mid-sized industrial parts distributor with about 250 employees runs QAD Adaptive ERP for procurement, inventory, and order fulfillment, and ships customer and inbound supplier orders through FedEx parcel and freight. Before the integration, warehouse staff re-keyed each QAD order into FedEx Ship Manager by hand, then later searched the FedEx website to find out whether inbound purchase order shipments had arrived, with no PO number attached to the FedEx record. With QAD and FedEx connected, FedEx shipments are created straight from QAD orders with the PO number stamped on every label, and tracking events flow back so buyers and customer service see live delivery status on the QAD order itself. The double entry is gone and a late or missed delivery is caught from inside QAD rather than discovered when a customer calls.
What you can do
- Create FedEx shipments and labels directly from QAD shipping and purchase order records, with no re-keying in FedEx Ship Manager.
- Stamp the QAD PO or invoice number onto every FedEx label through the customerReferences array for end-to-end traceability.
- Pull FedEx Track events and delivery details back into QAD so orders and goods receipts show live transport status.
- Authenticate FedEx with the OAuth 2.0 client_credentials grant and cache the one-hour token to avoid IP-level auth throttling.
- Verify every Advanced Integrated Visibility webhook against its fdx-signature HMAC, with retries and a full audit trail on each record.
Questions
- Which direction does data move between QAD and FedEx?
- Shipment and purchase order data moves from QAD into FedEx to create labels, and tracking status flows from FedEx back into QAD. FedEx is a carrier platform, so it has no AP invoices, GL accounts, or purchase order objects to send. ml-connector never writes finance records into FedEx and shapes the integration around shipping and tracking instead.
- How does the integration link a FedEx package back to its QAD order?
- On shipment creation ml-connector writes the QAD PO or invoice number into the FedEx customerReferences array using the INVOICE_NUMBER and P_O_NUMBER reference types. Tracking lookups can then query the FedEx Track API by those same reference values. This is how a FedEx package is matched to the QAD document it came from.
- Does ml-connector need the paid FedEx webhook to get tracking updates?
- No. Basic tracking through the FedEx Track API is pull-based and free, and ml-connector can poll it on your schedule by tracking number or reference. The paid Advanced Integrated Visibility subscription adds near-real-time push of pickup, in-transit, and delivery events to a callback URL. When that subscription is enabled, ml-connector verifies each pushed event against its fdx-signature HMAC before applying it to QAD.
Related integrations
More QAD integrations
Other systems that connect to FedEx
Connect QAD and FedEx
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started