FedEx
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 with the details needed to build FedEx shipping capabilities into your ShipStation API workflows.
Requirements
Property | Type | Required? |
---|---|---|
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 | boolean | required |
Connection Requirements
By connecting a FedEx US or FedEx CA account, you and your users agree to the FedEx EULA.
Connect Account
You can connect a FedEx account using the POST method to the /v1/connections/carriers/
endpoint, or via the ShipStation API Dashboard.
For instructions on connecting FedEx via the dashboard, go to our FedEx help article.
Connect via Endpoint
carrier_name
: fedex
POST /v1/connections/carriers/:carrier_name
A successful connection will return a response with the carrier_id
, which you'll use for any requests for this account going forward.
Modify Carrier Settings
If you need to modify the properties of your FedEx account connection or enable some of the carrier's advanced functionality not enabled by default, you can update these settings in your account dashboard or via API using the PUT method with the /v1/connections/carriers/
endpoint.
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.
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 |
For further details, check the FedEx documentation for Ground Economy™.
Common Settings
Parameter | Type | Description |
---|---|---|
nickname | string | Nickname for the account that will appear on carrier calls and in the UI. |
is_primary_account | boolean | Whether or not the account is set to primary, this currently has no function in ShipStation API. |
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. |
Sample update request:
PUT /v1/connections/carriers/:carrier_name/:carrier_id/settings
A successful request will receive an HTTP status 204 response.
Rates
FedEx supports rate shopping with ShipStation API unless using the FedEx Ground Economy service, which does not currently return rates.
Please note, FedEx will always show negotiated rates: false
in a rate response, even when using negotiated rates.
Service Details
Available FedEx services are provided below. Please note that carriers may update their available services at any time. To ensure you are always using valid services, you can use the list carrier services endpoint at any time.
Domestic Services
All domestic services have a max weight of 150 lbs, except FedEx Home Delivery, which has a max weight of 70 lbs. The combined length and girth (L+2W+2H) for all domestic services is 165" (419cm).
Service | Transit Time | Service Code | Origin Countries |
---|---|---|---|
FedEx Ground® | 1-5 days (May vary depending on location) | fedex_ground | US, CA |
FedEx Home Delivery® | 1-5 Business Days | fedex_home_delivery | US |
FedEx Express Saver® | 3 Business Days | fedex_express_saver | US, CA |
FedEx 2Day® | 2 Business Days | fedex_2day | US, CA |
FedEx 2Day AM® | 2 Business Days (before noon) | fedex_2day_am | US |
FedEx Standard Overnight® | 1 Business Day | fedex_standard_overnight | US, CA |
FedEx Priority Overnight® | 1 Business Day (2 Business Days when shipping to HI & AK) | fedex_priority_overnight | US, CA, AT, BE, CZ, DK, FI, FR, DE, HU, IT, LU, PL, ES, SE, NL |
FedEx First Overnight | 1 Business Day (AM Delivery) | fedex_first_overnight | US, CA |
Freight Service Levels
Service | Transit Time | Min Weight | Max Weight (skid) | Max LxWxH | Service Code |
---|---|---|---|---|---|
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 |
International Services
All international services have a max weight of 150 lbs. The combined length and girth (L+2W+2H) for all international services is 165" (419cm), except FedEx Europe First and International Connect Plus, which is 130" (330cm).
Service | Transit Time | Service Code | Origin Countries |
---|---|---|---|
FedEx International Ground® | Delivery times can vary depending on location | fedex_ground_international | US, CA |
FedEx International Economy® | Delivery times can vary depending on location | fedex_international_economy | US, CA, AU, NZ, AT, BE, CZ, DK, EE, FI, FR, DE, HU, IE, IT, LV, LT, LU, MT, NL, PL, PT, RO, SK, SI, ES, SE |
FedEx International Priority | 1-3 Business Days | fedex_international_priority | US, CA, AU, NZ, AT, BE, BG, HR, CY, CZ, DK, EE, FI, FR, DE, GR, HU, IE, IT, LV, LT, LU, MT, NL, PL, PT, RO, SK, SI, ES, SE |
FedEx International First® | 1-3 Business Days | fedex_international_first | US, CA, AT, AU, BE, BG, HR, CY, CZ, DK, EE, FI, FR, DE, GR, HU, IE, IT, LV, LT, LU, MT, NL, PL, PT, RO, SK, SI, ES, SE |
FedEx International Priority Express® | 1-3 Business Days | fedex_international_priority_express | US, CA, AU |
FedEx Europe First® | 1 Business Day (AM Delivery) | fedex_europe_first | AT, BE, CZ, DK, FI, FR, DE, GR, HU, IE, IT, LU, NL, PL, PT, ES, SE |
FedEx International Connect Plus® | Delivery times can vary depending on location | fedex_international_connect_plus | US, GB, DE, CA, AU |
Shipping from Great Britain to Northern Ireland
FedEx will support all movement types (b2b
, b2c
, c2c
, c2b
) for shipping from Great Britain to Northern Ireland, in accordance with the Windsor Framework. The following data requirements will go into effect on 31 May 2025.
All shipments to Northern Ireland must include the existing properties dedicated for international traffic:
products.description
: The description must be detailed and must describe the content accurately (Gift
orMerchandise
values are not sufficient).products.quantity
products.value
value.amount
value.currency
products.harmonized_tariff_code
products.country_of_origin
If you know the UKIMS number, it can be declared and printed on the commercial invoice for the B2B shipments. The following properties are capable of capturing these in the tax_identifiers
array in both ship_to
and ship_from
objects:
id
type
(use theukims
enumeration value)
Since Electronic Trade Documents (ETD) are not supported when shipping to NI, from March 2025 you will be required to print the commercial invoice and include with all NI shipments. All the above information will be included on the generated document if provided.
FedEx will identify whether the consignment is B2C or B2B and will contact the recipient to obtain information regarding the risk indicator. Therefore, you do not have to declare the not_at_risk
property when creating a label. UKIMS numbers will also be collected by FedEx if not provided.
Return Services
FedEx supports creating return labels for US, Canada, Germany, and France-based accounts, using any of their domestic services. Please note that shipments using FedEx One Rate packaging are not eligible for returns.
Review the Return Shipping Labels page for details on creating return labels with ShipStation API.
Packages
The following carrier package types are available for FedEx services:
Name | API Code | Package Attributes |
---|---|---|
FedEx® Box | fedex_box | International, Domestic |
FedEx® Envelope | fedex_envelope | International, Domestic |
FedEx® Pak | fedex_pak | International, Domestic |
FedEx® Tube | fedex_tube | International, Domestic |
FedEx® 10kg Box | fedex_10kg_box | International |
FedEx® 25kg Box | fedex_25kg_box | International |
FedEx One Rate® Small Box | fedex_small_box_onerate | Domestic |
FedEx One Rate® Medium Box | fedex_medium_box_onerate | Domestic |
FedEx One Rate® Large Box | fedex_large_box_onerate | Domestic |
FedEx One Rate® Extra Large Box | fedex_extra_large_box_onerate | Domestic |
FedEx One Rate® Envelope | fedex_envelope_onerate | Domestic |
FedEx One Rate® Pak | fedex_pak_onerate | Domestic |
FedEx One Rate® Tube | fedex_tube_onerate | Domestic |
FedEx® Small Box | fedex_small_box | Domestic |
FedEx® Medium Box | fedex_medium_box | Domestic |
FedEx® Large Box | fedex_large_box | Domestic |
FedEx® Extra Large Box | fedex_extra_large_box | Domestic |
Adding Shipment Insurance
FedEx supports adding insurance to your shipments. Review the Parcel Insurance page for details on adding shipment insurance with ShipStation API.
There are a few things to know about adding insurance to FedEx shipments:
Option | Description |
---|---|
Manifests | Shipping amount shown on manifests for FedEx does not include any insurance costs. |
No Signature and $500 or more in insurance | If you indicate 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 ShipStation API 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 ShipStation API, our rate will be higher. |
Label Support
- Label sizes: 4" x 6"
- Label formats: PDF, PNG, ZPL
Label Reference Fields
FedEx UK supports adding custom label messages.
- Label Message 1 = Reference Number
- Label Message 2 = Invoice Number
- Label Message 3 = PO Number
To use Label Message 3, you must also use Label Message 1 and 2.
Multi-Package Labels
FedEx supports multi-package shipments with most services, but is not available when using One Rate packaging. FedEx multi-package shipping has a 100 package maximum.
Label Branding
FedEx supports label branding.
Voiding Labels
FedEx supports voiding labels with ShipStation API. Return labels cannot be voided.
Paperless Labels
FedEx does not support paperless labels.
Customs Declarations
Customs declarations are sent electronically. For electronic document submissions, FedEx requires you to include the signature_iamge
and letterhead_image
properties for your account connection.
Delivery Confirmation
Confirmation Type | API Code | Description |
---|---|---|
No signature required | none | No confirmation requested. |
Indirect signature required | signature | Signature is required for the shipment to be delivered. This signature may be a neighbor, building manager, or the recipient can authorize the release of the package (without being present). |
Adult signature required | adult_signature | An adult signature is required for the shipment to be delivered. |
Direct signature required | direct_signature | A signature of somebody at the address is required. |
See our Delivery Confirmation page for more details about using the confirmation
property.
Advanced Options
FedEx supports certain advanced options, which you can add to the shipment
object when creating a shipment or label.
Property | Type | Default Value | Description |
---|---|---|---|
bill_to_party | ennumerated string | 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 ShipStation API. When billing to a third party, you may not see rates returned from ShipStation API. This field must be used in conjunction with the bill_to_country_code , bill_to_postal_code , and bill_to_account properties. |
bill_to_account | string | null | The account number that will be charged shipping costs when bill_to_party is set to third_party . |
bill_to_postal_code | string | null | The postal code associated with the bill_to_account . FedEx validates this value. |
bill_to_country_code | string | null | The two-letter ISO 3166-1 alpha-2 country code associated with the bill_to_account . |
collect_on_delivery | object | null | Object used to indicate that the shipping cost should be collected by FedEx upon delivery of the package (only valid for certain FedEx services). For more information, see our Collect on Delivery guide. |
contains_alcohol | boolean | false | Indicates that the shipment contains alcohol. Your FedEx account must be enrolled in the FedEx alcohol shipping program to use this property. |
delivered_duty_paid | boolean | false | Indicates that the shipper is paying the international delivery duties for this shipment. Also called "DDP". |
dry_ice | boolean | false | Indicates if the shipment contains dry ice. |
dry_ice_weight | object | 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 | object | 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 | boolean | false | Indicates that the package cannot be processed through FedEx sorting machines. |
saturday_delivery | boolean | false | Indicated delivery on Saturday for services that do not otherwise include Saturday delivery. |
third-party-consignee | boolean | null | Hides consignee-specific information on the commercial invoice for international shipments. |
To ensure you always have the most up-to-date information about a carrier's advanced options, use the list carrier options call.
FedEx Ground Collect
FedEx Ground Collect is a program that allows a recipient at a commercial address 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 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 the bill_to_party
property 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.
Sample request:
Manifests
FedEx does not require manifesting your shipments. However, FedEx Ground shipments can be manifested for shipments originating from the US and Canada. You cannot generate manifests for shipments with a ship date in the past.
If you generate a manifest:
- Only FedEx Ground and Home Delivery (domestic) will be included on the manifest. Ground Economy (SmartPost) is included.
- Shipping amount shown on manifests for FedEx does not include any insurance costs.
- Only shipments that meet one of these criteria will appear on the hardcopy of the manifest:
- FedEx Ground or Home Delivery (domestic)
- COD Amount
- Declared Value greater than $100 USD
- 84" Oversize
- Additional Handling
- Acknowledgment of Delivery (A.O.D)
- Residential
Scheduling Pickups
FedEx UK does not support the scheduling a pickup endpoint. Instead, your pickup_type
account settings determine how your shipments are handed over to FedEx.
Service Points (PUDO)
ShipStation API 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.
See our Intro to Service Points for more details about how to use service points with ShipStation API.
Tracking
ShipStation API's integration with FedEx supports receiving tracking updates. Review our Track a Package guides for details on tracking with the ShipStation API.
Disconnecting Your FedEx Account
See the Disconnect section in our Delete a Carrier page for the process of deleting or disconnecting a carrier from ShipStation API.