ml-connector
DeltekFedEx

Deltek and FedEx integration

Deltek Vantagepoint runs projects, clients, vendors, and project accounting. FedEx moves the physical shipments those projects depend on. Connecting the two lets a shipment be created in FedEx straight from a Deltek project or AP invoice, with the Deltek document number carried on the label so the package can always be traced back. Delivery and in-transit events then return to Deltek as activity records on the right project. ml-connector handles the very different APIs on each side and moves the data on the cadence you choose.

How Deltek works

Deltek Vantagepoint exposes firms (clients and vendors), contacts, employees, and projects through REST hub APIs, plus accounting transactions such as AP invoices, AR invoices, journal entries, and vendor payments through its accounting transaction APIs, all on a tenant-specific deltekfirst.com base URL. Authentication is OAuth2 using the password grant, which must be explicitly enabled in the instance, and every request carries a bearer token scoped by the API user's role. Vantagepoint webhooks are workflow-driven, fire on record-save events, and carry no HMAC signature, so finance reads are done by polling. There is no documented REST endpoint for purchase orders and no native idempotency key.

How FedEx works

FedEx is a logistics carrier API, not an ERP, so it has no vendor master, GL account, AP invoice, or purchase order object. It exposes shipments and labels through the Ship API, package status through the Track API, freight through the Freight LTL API, and rate quotes through the Rate API, all REST with a JSON body and an OAuth2 client credentials bearer token. To tie a shipment back to an ERP, FedEx accepts a customerReferences array with types such as INVOICE_NUMBER and P_O_NUMBER, and the Track API can then look shipments up by those values. Near real-time push is available through Advanced Integrated Visibility webhooks, a paid subscription that signs each POST with an HMAC-SHA256 fdx-signature header.

What moves between them

Shipment creation flows from Deltek into FedEx. ml-connector reads project, firm, and AP invoice data from Deltek Vantagepoint and creates FedEx shipments, populating the recipient from the firm address and stamping the Deltek project or AP invoice number into the FedEx customerReferences as INVOICE_NUMBER and P_O_NUMBER. Tracking flows the other direction: FedEx delivery and scan events return and are written into Deltek as activity records against the originating project. Deltek finance records are read on a schedule because Vantagepoint has no signed webhook, while FedEx events arrive by webhook where Advanced Integrated Visibility is subscribed, with a scheduled Track poll as a backstop. FedEx holds no financial entries, so ml-connector never posts ledger data into it.

How ml-connector handles it

ml-connector stores both credential sets encrypted. On the FedEx side it requests a client credentials token and caches it for its full one-hour life, because FedEx throttles token generation at the IP level and returns a 403 for ten minutes if that limit is crossed. On the Deltek side it accepts the full tenant URL per customer, since Vantagepoint publishes no shared hostname, uses the password grant, and refreshes the bearer token when a call returns 401. Firm addresses are mapped to FedEx shipper and recipient fields, and each shipment carries the Deltek project or AP invoice number in customerReferences so it can be found again by reference type. Because Vantagepoint has no purchase order REST endpoint, shipments are driven from projects and AP invoices instead, and because its webhooks are unsigned, finance reads are polled rather than trusted from a push. FedEx Advanced Integrated Visibility events are verified against the HMAC-SHA256 fdx-signature header before processing, and the returned masterTrackingNumber is stored and checked so a retried Ship call does not create a duplicate label. FedEx rate limiting returns 429, so calls back off and retry, and every record carries a full audit trail and can be replayed if a Deltek write fails.

A real-world example

A mid-sized architecture and engineering firm with about 250 staff runs Deltek Vantagepoint for projects, clients, and project accounting, and ships printed drawing sets, samples, and survey equipment to job sites through FedEx. Before the integration, a project coordinator re-keyed each recipient address from Deltek into the FedEx site by hand, wrote the tracking number on a spreadsheet, and fielded calls from project managers asking whether a package had landed. With Deltek and FedEx connected, a shipment is created from the project with the address already filled in and the project number stamped on the label, and delivery scans post back to the project in Deltek. The coordinator stops re-typing addresses and managers see delivery status without leaving the ERP.

What you can do

  • Create FedEx shipments and labels directly from Deltek Vantagepoint projects, firms, and AP invoices.
  • Stamp the Deltek project or AP invoice number onto each shipment as a FedEx INVOICE_NUMBER and P_O_NUMBER reference.
  • Return FedEx delivery and tracking scan events to Deltek as activity records on the matching project.
  • Bridge the FedEx client credentials token, cached for its full hour, with the Deltek tenant password grant.
  • Verify FedEx Advanced Integrated Visibility webhooks by their fdx-signature, with retries and a full audit trail on every record.

Questions

Which direction does data move between Deltek and FedEx?
Shipment creation moves from Deltek into FedEx, and tracking moves back. ml-connector reads project, firm, and AP invoice data from Deltek to create FedEx shipments, then writes FedEx delivery and scan events into Deltek as project activities. FedEx has no financial records, so ml-connector never posts ledger data into it.
Can FedEx receive AP invoices or purchase orders from Deltek?
Not as managed objects, because FedEx is a carrier API with no vendor, invoice, or purchase order entity. What it does accept is a customerReferences array on each shipment, so ml-connector stamps the Deltek AP invoice or project number there as INVOICE_NUMBER and P_O_NUMBER. The Track API can then look the shipment up by those reference values.
How does the integration handle FedEx token limits and Deltek's lack of signed webhooks?
FedEx throttles token generation at the IP level, so ml-connector requests one client credentials token and reuses it for its full one-hour life rather than re-authenticating per call. Deltek Vantagepoint webhooks fire on record save but carry no HMAC signature, so ml-connector polls Deltek finance data on a schedule instead of trusting an unsigned push, while FedEx events arrive on its signed Advanced Integrated Visibility webhook.

Related integrations

Connect Deltek and FedEx

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

Get started