Site Logo

FedEx Carrier Guide

FedEx is a multi-national, courier service that offers domestic and international shipping solutions. FedEx offers a wide range of services and package delivery solutions.

This guide provides developers an overview of shipping services that FedEx offers and the service codes that you will use to create FedEx shipments.

Whether you need to create a new FedEx account or are ready to connect an existing one to ShipEngine, the setup guides below can help you get started.

Connect Your Account

ShipEngine API allows you to connect your FedEx accounts programmatically without logging in to the ShipEngine API dashboard. This is useful if you have wrapped a custom UI around the ShipEngine API toolset and want to add or disconnect existing carrier accounts without exposing your end users to the API dashboard.

These APIs can be used in parallel with the ShipEngine Partner APIs to programmatically create new ShipEngine users, and then connect existing FedEx accounts all via the API without logging into a dashboard. Together these APIs empower you to completely white-label the ShipEngine experience for your end users.

Continue below for instructions on how to programatically connect FedEx using the ShipEngine API.

For instructions on connecting FedEx via the ShipEngine dashboard, go to our FedEx help article.

FedEx Account Information Model

PropertyTypeDescription
account_numberstringrequired
first_namestringrequired
last_namestringrequired
companystringoptional
address1stringrequired
address2stringoptional
citystringrequired
state_provincestringrequired
postal_codestringrequired
country_codestringrequired
emailstringrequired
phonestringrequired
agree_to_eulaboolrequired

Example POST Call

POST /v1/connections/carriers/fedex

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
POST /v1/connections/carriers/fedex HTTP/1.1
Host: api.shipengine.com
API-Key: __YOUR_API_KEY_HERE__
Content-Type: application/json
{
"account_number": "123456789",
"company": "Example Corp.",
"first_name": "John",
"last_name": "Doe",
"phone": "111-111-1111",
"address1": "4009 Marathon Blvd.",
"address2": "Suite 300",
"city": "Austin",
"state": "TX",
"postal_code": "78756",
"country_code": "US",
"email": "[email protected]",
"agree_to_eula": "true"
}

Example Response

1
2
3
{
"carrier-id": "se-1234567"
}

Modify FedEx Settings

ShipEngine takes advantage of some of FedEx's advanced functionality but does not enable it by default. You can update these settings in the Dashboard or via the API.

Pickup Type

ParameterTypeDescription
pickup_typeenumerated stringDetermines how FedEx will pickup your packages.
none - Not specified
regular_pickup - You already have a daily pickup scheduled with FedEx.
request_courier - You will call FedEx to request a courier.
drop_box - You will drop-off packages in a FedEx drop box.
business_service_center - You will drop-off packages at an authorized FedEx business service center.
station - You will drop-off the package at a FedEx Station.

FedEx Ground Economy™ (formerly SmartPost™)

To enable Ground Economy™ both of the properties below are required and must be valid. As of 03/07/2023, the parameter names remain as listed here.

ParameterTypeDescription
smart_post_hubenumerated stringnone, allentown_pa, atlanta_ga, charlotte_nc, chino_ca, dallas_tx, denver_co, detroit_mi, edison_nj, grove_city_oh, groveport_oh, houston_tx, indianapolis_in, kansas_city_ks, los_angeles_ca, martinsburg_wv, memphis_tn, middletown_ct, minneapolis_mn, new_berlin_wi, northborough_ma, orlando_fl, phoenix_az, pittsburgh_pa, portland_or, reno_nv, sacramento_ca, salt_lake_city_ut, seattle_wa, st_louis_mo
smart_post_endorsementenumerated stringnone, return_service_requested, forwarding_service_requested, address_service_requested, change_service_requested, leave_if_no_response

FedEx makes documentation available here for Ground Economy™ (formerly SmartPost™).

Common Settings

ParameterTypeDescription
nicknamestringNickname for the account that will appear on carrier calls and in the UI.
is_primary_accountboolWhether or not the account is set to primary, this currently has no function inside of ShipEngine.
signature_imagestringA Base 64 encoded image of the signature to be used for this account.
letterhead_imagestringA Base 64 encoded image of the letterhead to be used for this account.

Example PUT Request

PUT /v1/connections/carriers/fedex/:carrier_id/settings

1
2
3
4
5
6
7
8
9
10
11
12
13
14
PUT /v1/connections/carriers/fedex/se-108252/settings HTTP/1.1
Host: api.shipengine.com
API-Key: __YOUR_API_KEY_HERE__
Content-Type: application/json
{
"nickname": "my fedex account",
"pickup_type": "regular_pickup",
"smart_post_hub": "dallas_tx",
"smart_post_endorsement": "address_service_requested",
"is_primary_account": "false",
"signature_image" : "base64string",
"letterhead_image" : "base64string"
}

Example Response

On a successful response, you will receive an HTTP status 204.

Example GET Request

GET /v1/connections/carriers/fedex/:carrier_id/settings

1
2
3
GET /v1/connections/carriers/fedex/se-108252/settings HTTP/1.1
Host: api.shipengine.com
API-Key: __YOUR_API_KEY_HERE__

Example Response

1
2
3
4
5
6
7
8
9
{
"nickname": "my fedex account",
"pickup_type": "none",
"smart_post_hub": "none",
"smart_post_endorsement": "none",
"is_primary_account": true,
"signature_image" : "base64string",
"letterhead_image" : "base64string"
}

FedEx Service Details

ServiceTransit TimeCombined Length and Girth (L+2W+2H)Max WeightService Codes
FedEx Ground®1-5 days (May vary depending on location)165” (419cm)150 lbsfedex_ground
FedEx Home Delivery®1-5 Business Days165” (419cm)70 lbsfedex_home_delivery
FedEx Express Saver®3 Business Days165” (419cm)150 lbsfedex_express_saver
FedEx 2Day®2 Business Days165” (419cm)150 lbsfedex_2day
FedEx 2Day AM®2 Business Days (before noon)165” (419cm)150 lbsfedex_2day_am
FedEx Standard Overnight®1 Business Day165” (419cm)150 lbsfedex_standard_overnight
FedEx Priority Overnight®1 Business Day (2 Business Days when shipping to HI & AK)165” (419cm)150 lbsfedex_priority_overnight
FedEx First Overnight1 Business Day (AM Delivery)165” (419cm)150 lbsfedex_first_overnight
FedEx International Ground®Delivery times can vary depending on location165” (419cm)150 lbsfedex_ground_international
FedEx International Economy®Delivery times can vary depending on location165” (419cm)150 lbsfedex_international_economy
FedEx International Priority1-3 Business Days165” (419cm)150 lbsfedex_international_priority
FedEx International First®1-3 Business Days165” (419cm)150 lbsfedex_international_first
FedEx International Priority Express®1-3 Business Days165” (419cm)150 lbsfedex_international_priority_express
FedEx Europe First®1 Business Day (AM Delivery)130" (330cm)150 lbsfedex_europe_first
FedEx International Connect Plus®Delivery times can vary depending on location130" (330cm)150 lbsfedex_international_connect_plus

FedEx Freight Service Levels

ServiceTransit TimeMin WeightMax Weight (skid)Max LxWxHService Codes
FedEx First Overnight® Freight1 Business Day (AM Delivery)151 lbs2,200 lbs119"x70"x80"fedex_first_overnight_freight
FedEx 1Day® Freight1 Business Day151 lbs2,200 lbs119"x70"x80"fedex_1_day_freight
FedEx 2Day® Freight2 Business Days151 lbs2,200 lbs119"x70"x80"fedex_2_day_freight
FedEx 3Day® Freight3 Business Days151 lbs2,200 lbs119"x70"x80"fedex_3_day_freight
FedEx Freight® Priority1-3 Business DaysUnlimited3,150 lbs20'x100"x93"fedex_freight_priority
FedEx International Economy® FreightDelivery times can vary depending on location151 lbs2,200 lbs119"x70"x80"fedex_international_economy_freight
FedEx International Priority® Freight1-3 Business Days151 lbs2,200 lbs119"x70"x80"fedex_international_priority_freight

Adding Shipment Insurance

FedEx supports adding insurance to your shipments. Review the Parcel Insurance page for details on adding shipment insurance with ShipEngine.

There are a few things to know about adding insurance to FedEx shipments:

OptionDescription
Manifests / End of Day (EOD) formsShipping amount shown on manifests or EODs for FedEx does not include any insurance costs.
No Signature and $500 or more in insuranceIf you select No Signature and try to include $500 or more in insurance, it will override the signature requirement to become Direct Signature Required.
From FedEx Service Guide T&C (PDF): "Shipments with a declared value of less than US$500 may be delivered and released without obtaining a signature when the sender has authorized a release or, at our sole option, upon oral or written instruction from the sender or recipient.”
The label will have the letters “DSR” to indicate Direct Signature Required.
Discrepancy between FedEx rate calculator and ShipEngine rateThe Declared Value in FedEx's rate calculator is not insurance. This value indicates the max FedEx could be held accountable for. So, if you compare this declared value in FedEx to the rate with insurance in ShipEngine, our rate will be higher.

FedEx Advanced Options

Advanced Options are a property of the shipment that are used to communicate carrier add-ons used to get rates and create labels, such as "Saturday Delivery". Carrier Options are available dynamically at the List Carriers endpoint.

OptionNameDefault ValueDescription
Bill To Partybill_to_partynullDetermines which party is paying for shipping costs. If null, shipping costs will be billed to the connected FedEx account.
recipient - Required for FedEx Ground Collect.
third_party - Bill to an account that is not connected to ShipEngine. When billing to a third party, you may not see rates returned from ShipEngine API. This field must be used in conjunction with the bill_to_country_code, bill_to_postal_code, and bill_to_account fields.
Bill To Accountbill_to_accountnullThe account number that will be charged shipping costs when bill_to_party is third_party
Bill To Postal Codebill_to_postal_codenullThe Postal Code associated with the bill_to_account. This will be validated by FedEx.
Bill To Country Codebill_to_country_codenullThe two-letter country code associated with the bill_to_account as it corresponds to ISO 3166-1 alpha-2.
Collect on Deliverycollect_on_deliverynullObject used to indicate that the shipping cost should be collected by FedEx on delivery of the package. For more information, check our Collect on Delivery Guide.
Contains Alcoholcontains_alcoholfalseIndicates that the shipment contains alcohol.
Delivered Duty Paiddelivered_duty_paidfalseIndicates that the shipper is paying the international delivery duties for this shipment.
Dry Icedry_icefalseIndicates if the shipment contains dry ice
Dry Ice Weightdry_ice_weight0Object used to identify the weight of the dry ice in the shipment.
value - Numeric value for weight
unit - Unit of measurement for weight. Accepts ounce, pound, gram and kilogram.
FedEx Freightfedex_freightnullObject to provide details for FedEx Freight services.
shipper_load_and_count - String required by FedEx for Freight shipments.
booking_confirmation - String required by FedEx for Freight shipments.
Non Machinablenon_machinablefalseIndicates that the package cannot be processed through FedEx sorting machines.
Saturday Deliverysaturday_deliveryfalseAdd On to deliver on Saturday for services that do not otherwise include Saturday Delivery
Third Party Consigneethird-party-consigneenullHides Consignee-specific information on the commercial invoice for international shipments.

FedEx Ground Collect

FedEx Ground Collect is a program that allows a recipient to use their own FedEx account when receiving shipments. Note that this is different from Collect on Delivery (COD) where the shipping charges are collected directly from the recipient when the package is delivered.

With FedEx Ground Collect, the recipient displays a placard for the FedEx courier to scan when they deliver the package. Once it is scanned, the recipient's FedEx account is invoiced for the shipping charges.

To use this option, you must set your service_code to fedex_ground and supply a bill_to_party in the advanced_options when you create a shipping label, as indicated in the example below.

You'll notice that bill_to_party is set to recipient and there is no bill_to_account set in the payload. This differs from billing a third party, which also uses the bill_to_party property.

Example Request

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
POST /v1/labels HTTP/1.1
Host: api.shipengine.com
API-Key: __YOUR_API_KEY_HERE__
Content-Type: application/json
{
"shipment": {
"service_code": "fedex_ground",
"advanced_options": {
"bill_to_party": "recipient"
},
"ship_to": {
"name": "Amanda Miller",
"phone": "7147814565",
"company_name": "Test Co",
"address_line1": "500 South Buena Vista Street",
"city_locality": "Burbank",
"state_province": "CA",
"postal_code": "91521",
"country_code": "US",
"address_residential_indicator": "No"
},
"ship_from": {
"name": "John Doe",
"phone": "555-555-5555",
"company_name": "Example Corp",
"address_line1": "4009 Marathon Blvd",
"city_locality": "Austin",
"state_province": "TX",
"postal_code": "78756",
"country_code": "US",
"address_residential_indicator": "No"
},
"packages": [
{
"weight": {
"value": 1.0,
"unit": "ounce"
}
}
]
}
}

To ensure you always have the most up-to-date information, use the List Carrier Advanced Options call.

FedEx Hold at Location (HAL)

ShipEngine supports the FedEx Hold at Location (HAL) feature, which ships the package to a designated location - like a FedEx store - instead of the recipient's home or business address. The recipient then picks up the package from the location by presenting an ID that matches the recipient name or documentation with the shipment's tracking number.

To create a label using FedEx Hold at Location, you must add the ship_to_service_point_id property to your Purchase Label call with the desired service point ID as its value. Review the Find Service Points page to learn how to find a service point.

The ship_to object should always be the recipient's actual address, not the service point address.

The resulting label will include a HAL indicator with the service point postal code.

Example Label

This is an example of a label using FedEx Ground Collect. You'll notice that COLLECT is printed to the right of the tracking number.

Carriers Selection Screen

You are now ready to create shipments using FedEx via ShipEngine! FedEx service marks are owned by Federal Express Corporation and used with permission.