Skip to main content
Version: 1.28 (Current)

Get Fedex Tracking Info

Audience: Low-code Engineers

Skill Prerequisites: Actions, Tokens, Connectors, FedEx Web Services account

Gets the tracking status of a FedEx shipment. You give it a tracking number or another package identifier. It sends a tracking request to FedEx and returns the whole reply as tokens.

The action uses a Fedex connector for your FedEx keys and passwords. Create it on the Connectors page before you add the action.

note

This action is part of the FedEx Tracking add-on (DnnSharp.FedexTracking). The add-on is installed separately and is licensed with the FDEXTRK feature, but the action doesn't check the license when it runs. If you don't see the Fedex Tracking action group, the add-on isn't installed. See FedEx Tracking.

caution

The action uses the FedEx Web Services (SOAP) API, Track Service version 18. FedEx is retiring the SOAP Web Services and moving customers to its REST APIs. When FedEx turns off the SOAP Track Service for your account, this action stops working. For new work, call the FedEx Track REST API with Server Request instead.

Typical Use Cases​

  • Show the current status of a shipment on an order page
  • Save the latest status of an order's shipment in the database from a scheduled job
  • Check whether a package was delivered before you send a follow-up email

Don't use it to​

  • Create shipments or print labels. The action only reads tracking data.
  • Track many packages at once. Each run sends one package identifier.
  • Track shipments of other carriers.
Action NameDescription
Parse JSON into TokensReads the lists in the reply, such as the track details and the scan events.
Create List from JSONLoads a list from the reply, for example all scan events, to loop through it.
Add ConnectorCreates a Fedex connector from an action.
Update ConnectorChanges the details of a Fedex connector from an action.
Server RequestCalls the FedEx REST APIs, which this action doesn't support.

Input Parameter Reference​

ParameterDescriptionSupports TokensDefaultRequired
Test ModeWhen checked, the request goes to the FedEx test server, https://wsbeta.fedex.com:443/web-services/track. When unchecked, it goes to the live server, https://ws.fedex.com:443/web-services/track. Use the test keys with the test server.NoUncheckedNo
ConnectorThe Fedex connector with your keys and passwords. When using an expression, the value must be the connector ID. If no connector is found, the action fails with Credentials not set.YesnoneYes
Account NumberYour FedEx account number.Yesempty stringYes
Meter NumberThe meter number of your FedEx account, up to 9 characters.Yesempty stringYes
Customer Transaction IdYour own ID for the request, up to 40 characters. FedEx returns it in the reply, so you can match replies to requests.Yesempty stringNo
Package Identifier TypeWhat Package Identifier holds. The list has the FedEx identifier types, for example Tracking number or doortag, Bill of lading, Customer reference, Invoice, Purchase order and Shipper reference.NoTracking number or doortagNo
Package IdentifierThe value to track, for example a tracking number such as [TrackingNumber].Yesempty stringYes
Include Detailed Scanstrue to get every scan event of the package. false, or empty, to get a summary with the current status.Yesempty stringNo

The action doesn't check the required values itself. It sends the request, and FedEx returns an error in the reply. See Check the reply for errors.

Output Parameters Reference​

ParameterDescription
Output Base Token NameThe base name of the output tokens, for example Tracking. Always set it.

The action creates these tokens from the FedEx reply:

TokenDescription
[<Output Base Token Name>]The whole FedEx reply as JSON.
[<Output Base Token Name>:<property>]Each value at the top of the reply, for example [Tracking:HighestSeverity].
[<Output Base Token Name>:<property>.<subproperty>]Each value inside an object of the reply, for example [Tracking:TransactionDetail.CustomerTransactionId].

Property names use the FedEx Web Services names and capitals, for example HighestSeverity, Notifications and CompletedTrackDetails.

Read the reply​

Lists aren't expanded. A property that holds a list, such as Notifications or CompletedTrackDetails, becomes a single token with the list as JSON. To read the items, use Parse JSON into Tokens on that token. Lists inside the items are again single tokens, so you need one more parse for each level.

The shipment status is three levels down. For a base name of Tracking:

  1. Parse [Tracking:CompletedTrackDetails] with base name Completed. This gives [Completed:0.TrackDetails].
  2. Parse [Completed:0.TrackDetails] with base name Package. This gives [Package:0.TrackingNumber], [Package:0.StatusDetail.Code] and [Package:0.StatusDetail.Description], for example Delivered.

With Include Detailed Scans set to true, the scan events are in [Package:0.Events]. Load them with Create List from JSON to list them.

Severities are numbers. Values that are FedEx code lists, such as HighestSeverity and the Severity of each notification, are numbers, not names:

ValueSeverity
0ERROR
1FAILURE
2NOTE
3SUCCESS
4WARNING

Other code lists in the reply work the same way.

Dates are in ISO 8601 format.

Check the reply for errors​

The action only fails when the request can't be sent or FedEx returns a SOAP fault, for example when the server can't be reached. When FedEx answers with an error, such as wrong keys, a missing account number or an unknown tracking number, the action succeeds and the error is in the reply.

So check the reply after the action:

  • [Tracking:HighestSeverity] is 0 (ERROR) or 1 (FAILURE) when the request failed. In a condition, use [Tracking:HighestSeverity] < 2.
  • Parse [Tracking:Notifications] to read [<base>:0.Code] and [<base>:0.Message].
  • FedEx can also report a problem with one package, such as an unknown tracking number, in that package's notification. After step 2 above, read it in [Package:0.Notification.Message].

Considerations​

  • Connector values. The Fedex connector holds the WebAuthenticationDetail values of the FedEx Web Services. Application Key and Application Password are always sent. Account Key and Account Password are only sent when Account Key has a value. See the FedEx documentation for how to get them.
  • No connection test. Test Connector doesn't support Fedex connectors. Run this action in Test Mode to check them.
  • Large replies. The action uses the default size limit of the .NET SOAP client, 64 KB. A reply with detailed scans for a shipment with many packages can go over it, and then the action fails.
  • Set the base name. If Output Base Token Name is empty, the tokens start with : and are hard to use.
  • The reply is saved as tokens only. To keep the status, save it to the database yourself, for example with Run SQL Query.

Examples​

tip

To understand how to use the below examples, please see Running Examples.

1. Get the status of a tracking number​

These actions track the number in the TrackingNumber token on the live server, using the connector whose ID is in FedexConnectorId. They then read the status of the first package into [Package:0.StatusDetail.Description].

[
{
"Title": "Get Fedex Tracking Info",
"ActionType": "FedexTracking.TrackFedexShipping",
"Description": "Track the shipment",
"Parameters": {
"TestMode": false,
"Credentials": {
"IsExpression": true,
"Entry": "[FedexConnectorId]"
},
"AccountNumber": "[FedexAccountNumber]",
"MeterNumber": "[FedexMeterNumber]",
"CustomerTransactionId": "Order [OrderId]",
"PackageIdentifierType": "TRACKING_NUMBER_OR_DOORTAG",
"PackageIdentifier": "[TrackingNumber]",
"IncludeDetailedScans": "false",
"OutputBaseTokenName": "Tracking"
}
},
{
"Title": "Parse JSON Into Tokens",
"ActionType": "ParseJsonIntoTokens",
"Description": "Read the track details",
"Parameters": {
"JsonString": "[Tracking:CompletedTrackDetails]",
"BaseTokenName": "Completed"
}
},
{
"Title": "Parse JSON Into Tokens",
"ActionType": "ParseJsonIntoTokens",
"Description": "Read the first package",
"Parameters": {
"JsonString": "[Completed:0.TrackDetails]",
"BaseTokenName": "Package"
}
}
]

2. Show an error when FedEx rejects the request​

Add these actions after the actions in example 1. When the highest severity is 0 (ERROR) or 1 (FAILURE), they parse the notifications and show the first message.

[
{
"Title": "Parse JSON Into Tokens",
"ActionType": "ParseJsonIntoTokens",
"Description": "Read the FedEx notifications",
"Condition": "[Tracking:HighestSeverity] < 2",
"Parameters": {
"JsonString": "[Tracking:Notifications]",
"BaseTokenName": "Notice"
}
},
{
"Title": "Display Error Message",
"ActionType": "ShowError",
"Description": "Show the FedEx error",
"Condition": "[Tracking:HighestSeverity] < 2",
"Parameters": {
"Message": "<p>FedEx couldn't track this shipment: [Notice:0.Message] ([Notice:0.Code])</p>"
}
}
]

Revised 10/03/2026