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
Property | Type | Description |
---|---|---|
account_number | string | required |
first_name | string | required |
last_name | string | required |
company | string | optional |
address1 | string | required |
address2 | string | optional |
city | string | required |
state_province | string | required |
postal_code | string | required |
country_code | string | required |
email | string | required |
phone | string | required |
agree_to_eula | bool | required |
Example POST Call
POST /v1/connections/carriers/fedex
Example Response
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
Parameter | Type | Description |
---|---|---|
pickup_type | enumerated string | Determines 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.
Parameter | Type | Description |
---|---|---|
smart_post_hub | enumerated 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 , 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_endorsement | enumerated string | none , 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
Parameter | Type | Description |
---|---|---|
nickname | string | Nickname for the account that will appear on carrier calls and in the UI. |
is_primary_account | bool | Whether or not the account is set to primary, this currently has no function inside of ShipEngine. |
signature_image | string | A Base 64 encoded image of the signature to be used for this account. |
letterhead_image | string | A Base 64 encoded image of the letterhead to be used for this account. |
Example PUT Request
PUT /v1/connections/carriers/fedex/:carrier_id/settings
Example Response
On a successful response, you will receive an HTTP status 204.
Example GET Request
GET /v1/connections/carriers/fedex/:carrier_id/settings
Example Response
FedEx Service Details
Service | Transit Time | Combined Length and Girth (L+2W+2H) | Max Weight | Service Codes |
---|---|---|---|---|
FedEx Ground® | 1-5 days (May vary depending on location) | 165” (419cm) | 150 lbs | fedex_ground |
FedEx Home Delivery® | 1-5 Business Days | 165” (419cm) | 70 lbs | fedex_home_delivery |
FedEx Express Saver® | 3 Business Days | 165” (419cm) | 150 lbs | fedex_express_saver |
FedEx 2Day® | 2 Business Days | 165” (419cm) | 150 lbs | fedex_2day |
FedEx 2Day AM® | 2 Business Days (before noon) | 165” (419cm) | 150 lbs | fedex_2day_am |
FedEx Standard Overnight® | 1 Business Day | 165” (419cm) | 150 lbs | fedex_standard_overnight |
FedEx Priority Overnight® | 1 Business Day (2 Business Days when shipping to HI & AK) | 165” (419cm) | 150 lbs | fedex_priority_overnight |
FedEx First Overnight | 1 Business Day (AM Delivery) | 165” (419cm) | 150 lbs | fedex_first_overnight |
FedEx International Ground® | Delivery times can vary depending on location | 165” (419cm) | 150 lbs | fedex_ground_international |
FedEx International Economy® | Delivery times can vary depending on location | 165” (419cm) | 150 lbs | fedex_international_economy |
FedEx International Priority | 1-3 Business Days | 165” (419cm) | 150 lbs | fedex_international_priority |
FedEx International First® | 1-3 Business Days | 165” (419cm) | 150 lbs | fedex_international_first |
FedEx International Priority Express® | 1-3 Business Days | 165” (419cm) | 150 lbs | fedex_international_priority_express |
FedEx Europe First® | 1 Business Day (AM Delivery) | 130" (330cm) | 150 lbs | fedex_europe_first |
FedEx International Connect Plus® | Delivery times can vary depending on location | 130" (330cm) | 150 lbs | fedex_international_connect_plus |
FedEx Freight Service Levels
Service | Transit Time | Min Weight | Max Weight (skid) | Max LxWxH | Service Codes |
---|---|---|---|---|---|
FedEx First Overnight® Freight | 1 Business Day (AM Delivery) | 151 lbs | 2,200 lbs | 119"x70"x80" | fedex_first_overnight_freight |
FedEx 1Day® Freight | 1 Business Day | 151 lbs | 2,200 lbs | 119"x70"x80" | fedex_1_day_freight |
FedEx 2Day® Freight | 2 Business Days | 151 lbs | 2,200 lbs | 119"x70"x80" | fedex_2_day_freight |
FedEx 3Day® Freight | 3 Business Days | 151 lbs | 2,200 lbs | 119"x70"x80" | fedex_3_day_freight |
FedEx Freight® Priority | 1-3 Business Days | Unlimited | 3,150 lbs | 20'x100"x93" | fedex_freight_priority |
FedEx International Economy® Freight | Delivery times can vary depending on location | 151 lbs | 2,200 lbs | 119"x70"x80" | fedex_international_economy_freight |
FedEx International Priority® Freight | 1-3 Business Days | 151 lbs | 2,200 lbs | 119"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:
Option | Description |
---|---|
Manifests / End of Day (EOD) forms | Shipping amount shown on manifests or EODs for FedEx does not include any insurance costs. |
No Signature and $500 or more in insurance | If 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 rate | The 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.
Option | Name | Default Value | Description |
---|---|---|---|
Bill To Party | bill_to_party | null | Determines 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 Account | bill_to_account | null | The account number that will be charged shipping costs when bill_to_party is third_party |
Bill To Postal Code | bill_to_postal_code | null | The Postal Code associated with the bill_to_account . This will be validated by FedEx. |
Bill To Country Code | bill_to_country_code | null | The two-letter country code associated with the bill_to_account as it corresponds to ISO 3166-1 alpha-2. |
Collect on Delivery | collect_on_delivery | null | Object 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 Alcohol | contains_alcohol | false | Indicates that the shipment contains alcohol. |
Delivered Duty Paid | delivered_duty_paid | false | Indicates that the shipper is paying the international delivery duties for this shipment. |
Dry Ice | dry_ice | false | Indicates if the shipment contains dry ice |
Dry Ice Weight | dry_ice_weight | 0 | Object 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 Freight | fedex_freight | null | Object 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 Machinable | non_machinable | false | Indicates that the package cannot be processed through FedEx sorting machines. |
Saturday Delivery | saturday_delivery | false | Add On to deliver on Saturday for services that do not otherwise include Saturday Delivery |
Third Party Consignee | third-party-consignee | null | Hides 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
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.
You are now ready to create shipments using FedEx via ShipEngine! FedEx service marks are owned by Federal Express Corporation and used with permission.