ml-connector
SYSPROFedEx

SYSPRO and FedEx integration

SYSPRO runs your manufacturing and distribution operations. FedEx carries your packages and freight worldwide. Connecting the two turns a SYSPRO purchase order into a FedEx shipment label without re-entry, tracks packages in real time, and captures freight costs back into SYSPRO's general ledger so accounting never falls behind shipping. ml-connector bridges SYSPRO's session-token auth and REST/OData APIs with FedEx's OAuth2 credentials and handles the logistics complexity on both sides.

How SYSPRO works

SYSPRO Adaptive ERP exposes suppliers, purchase orders, invoices, GL accounts, inventory, and shipments through e.net Business Objects (REST+SOAP, read+write) and OData (REST GET read-only). Authentication uses a session token obtained by logging in to the Utilities/Logon endpoint (supplies a UserId GUID for all downstream calls) or HTTP Basic Auth with operator credentials for OData. SYSPRO has no outbound webhook system, so shipping and purchasing data must be polled. The customer provides their own SYSPRO server URL and credentials; there is no shared multi-tenant base URL.

How FedEx works

FedEx exposes shipments, rate quotes, freight LTL shipments, tracking events, and pickup requests through a REST API authenticated with OAuth2 client credentials (client_id and client_secret from the FedEx Developer Portal). FedEx offers paid webhook service (Advanced Integrated Visibility) for tracking events but does not webhook rates, label creation, or billing. The Track API (free) supports polling for in-transit tracking and historical events, and accepts up to 30 tracking numbers per request. FedEx enforces rate limits at the IP level (3 tokens per second; 403 for 10 minutes if exceeded) and per project (1400 transactions per 10 seconds).

What moves between them

The main flow runs from SYSPRO into FedEx and back. ml-connector reads purchase orders and shipment requests from SYSPRO OData on a 5- to 15-minute poll interval, maps them to FedEx Shipment records, and creates carrier labels and rate quotes. It polls FedEx Track API to retrieve tracking events for in-transit packages and updates SYSPRO shipment records with the latest status. Freight costs are read from FedEx and matched back to SYSPRO PurchaseOrderDetail line items via order number and line number so accounting GL postings are accurate.

How ml-connector handles it

ml-connector stores SYSPRO and FedEx credentials encrypted. For SYSPRO, it logs in via e.net Utilities/Logon to obtain a session token, passes the UserId on every OData query, and refreshes the token if a 401 response indicates expiry. For FedEx, it exchanges client credentials for an OAuth2 bearer token and caches it for the 1-hour TTL, avoiding the IP-level rate limit that triggers a 10-minute block if 3 token calls exceed 5 seconds. It detects FedEx account-number requirements and validates shipper addresses against FedEx address validation rules. Because SYSPRO is poll-only and FedEx offers both webhooks and polling, ml-connector defaults to polling both sides on a schedule you set (aligned to your shipping hours or batch windows), avoiding the cost of the FedEx webhook subscription. Rate quotes are matched to SYSPRO ShipmentLine records via order number and line, and the winning carrier and cost are written back via e.net Business Objects. Tracking events are deduplicated by tracking number and update timestamp so re-polling does not create duplicate shipment status changes. Every record carries a full audit trail.

A real-world example

A mid-sized consumer goods distributor runs SYSPRO ERP for inventory, purchasing, and order fulfillment. Before integration, the warehouse team printed packing slips from SYSPRO, manually entered purchase order and shipment details into FedEx's web portal to create labels and get rates, then periodically logged into FedEx to check tracking and emailed updates to the accounting team. The accounting team manually matched freight charges from FedEx invoices to SYSPRO PO lines to record costs. With SYSPRO and FedEx connected, each PO automatically moves to a FedEx label, tracking pulls back into SYSPRO in real time, and freight costs post into the GL automatically. The warehouse prints labels directly from SYSPRO, accounting sees actual vs quoted freight spend in the GL, and the manual steps are gone.

What you can do

  • Create FedEx shipment labels and rate quotes from SYSPRO purchase orders and shipment requests without manual re-entry.
  • Poll FedEx tracking events and update SYSPRO shipment records with real-time package status.
  • Map SYSPRO GL dimensions and cost centers to FedEx freight charges so accounting GL postings are accurate.
  • Handle SYSPRO session token refresh and FedEx OAuth2 token caching to avoid rate limit outages.
  • Deduplicate tracking events, validate shipper addresses, and manage polling intervals tuned to your shipping cadence.

Questions

Which direction does data move between SYSPRO and FedEx?
The main flow is SYSPRO into FedEx for label creation and rate quoting. Tracking events and freight costs flow back into SYSPRO so shipment status and GL costs stay current. Address data and freight charges are aligned in both directions. SYSPRO write access uses e.net Business Objects; OData is read-only.
How does ml-connector handle SYSPRO and FedEx rate limits?
SYSPRO session tokens expire and are refreshed on logout or timeout; ml-connector logs in via e.net Utilities/Logon and re-authenticates if a 401 is returned. FedEx enforces a 3-tokens-per-5-seconds IP limit that blocks for 10 minutes if exceeded; ml-connector caches the OAuth2 bearer token for the full 1-hour TTL and never requests a fresh token unnecessarily. Both sides are polled on a schedule you set.
Can ml-connector create FedEx labels from SYSPRO POs automatically?
Yes. ml-connector reads purchase orders and shipment requests from SYSPRO OData via polling, maps them to FedEx Shipment records with the shipper address and carrier selection, creates labels, and retrieves rate quotes. It also handles FedEx account numbers and address validation to avoid label creation errors. The labels print directly from SYSPRO once created.

Related integrations

Connect SYSPRO and FedEx

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started