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 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.

Connecting Your Account

There are two ways you can connect your FedEx account to ShipEngine:

Programatically connect to FedEx

ShipEngine's API allows you to connect your FedEx accounts programmatically without having to log in to the ShipEngine API dashboard. This functionality is useful if you have wrapped a custom UI around the ShipEngine API toolset, and if you want to be able 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 in to a dashboard. Together these APIs empower you to completely white-label the ShipEngine experience for your end users.

FedEx Account Information Model

FedEx Account Information Model

PropertyDescription
nicknamestring, required
A nickname for your account in ShipEngine. Very useful if you have multiple accounts for the same carrier.
account_numberstring, required
first_namestring, required
last_namestring, required
companystring
address1string, required
address2string
citystring, required
state_provincestring, required
postal_codestring, required
country_codestring, required
emailstring, required
phonestring, required
agree_to_eulabool, required

Connect a FedEx account

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
21
POST /v1/connections/carriers/fedex HTTP/1.1
Host: api.shipengine.com
API-Key: __YOUR_API_KEY_HERE__
Content-Type: application/json
{
"nickname": "My FedEx account",
"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"
}
1
2
3
{
"carrier-id": "se-1234567"
}

Disconnect a FedEx account

DELETE /v1/connections/carriers/fedex/:ID

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

When FedEx has been successfully disconnected, you will receive a HTTP 204, No Content status.

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™)

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

ParameterDescription
smart_post_hubenumerated string
none, 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, minneapolis_mn, new_berlin_wi, northborough_ma, orlando_fl, phoneix_az, pittsburgh_pa, reno_nv, sacramento_ca, salt_lake_city_ut, seattle_wa, st_louis_mo
smart_post_endorsementenumerated string
none, return_service_requested, forwarding_service_requested, address_service_requested, change_service_requested, leave_if_no_response

Common Settings

ParameterDescription
nicknamestring
Nickname for the account that will appear on carrier calls and in the UI.
is_primary_accountbool
Whether or not the account is set to primary, this currently has no function inside of ShipEngine.
signature_imagestring
A Base 64 encoded image of the signature to be used for this account.
letterhead_imagestring
A Base 64 encoded image of the letterhead to be used for this account.

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"
}

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

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__
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"
}
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

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 indcate 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"
}
}
]
}
}

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.

Example Label

Carriers Selection Screen

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