Site Logo

🎉 ShipEngine is becoming ShipStation API 🎉

Over the next few months you'll notice the ShipEngine website, documentation portal, and dashboard being rebranded as ShipStation API. For our ShipEngine customers, you don't need to take any action or change any of your integrations in any way. All endpoints will remain the same and continue to function as they always have.

To learn more about what's coming, review our New ShipStation API page.

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

PropertyTypeRequired?
account_numberstringrequired
first_namestringrequired
last_namestringrequired
companystringoptional
address1stringrequired
address2stringoptional
citystringrequired
state_provincestringrequired
postal_codestringrequired
country_codestringrequired
emailstringrequired
phonestringrequired
agree_to_eulabooleanrequired

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

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

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

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.

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

For further details, check the FedEx documentation for Ground Economy™.

Common Settings

ParameterTypeDescription
nicknamestringNickname for the account that will appear on carrier calls and in the UI.
is_primary_accountbooleanWhether or not the account is set to primary, this currently has no function in ShipStation API.
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.

Sample update request:

PUT /v1/connections/carriers/:carrier_name/: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"
}

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

ServiceTransit TimeService CodeOrigin Countries
FedEx Ground®1-5 days (May vary depending on location)fedex_groundUS, CA
FedEx Home Delivery®1-5 Business Daysfedex_home_deliveryUS
FedEx Express Saver®3 Business Daysfedex_express_saverUS, CA
FedEx 2Day®2 Business Daysfedex_2dayUS, CA
FedEx 2Day AM®2 Business Days (before noon)fedex_2day_amUS
FedEx Standard Overnight®1 Business Dayfedex_standard_overnightUS, CA
FedEx Priority Overnight®1 Business Day (2 Business Days when shipping to HI & AK)fedex_priority_overnightUS, CA, AT, BE, CZ, DK, FI, FR, DE, HU, IT, LU, PL, ES, SE, NL
FedEx First Overnight1 Business Day (AM Delivery)fedex_first_overnightUS, CA

Freight Service Levels

ServiceTransit TimeMin WeightMax Weight (skid)Max LxWxHService Code
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

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

ServiceTransit TimeService CodeOrigin Countries
FedEx International Ground®Delivery times can vary depending on locationfedex_ground_internationalUS, CA
FedEx International Economy®Delivery times can vary depending on locationfedex_international_economyUS, 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 Priority1-3 Business Daysfedex_international_priorityUS, 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 Daysfedex_international_firstUS, 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 Daysfedex_international_priority_expressUS, CA, AU
FedEx Europe First®1 Business Day (AM Delivery)fedex_europe_firstAT, 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 locationfedex_international_connect_plusUS, 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 or Merchandise 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 the ukims 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:

NameAPI CodePackage Attributes
FedEx® Boxfedex_boxInternational, Domestic
FedEx® Envelopefedex_envelopeInternational, Domestic
FedEx® Pakfedex_pakInternational, Domestic
FedEx® Tubefedex_tubeInternational, Domestic
FedEx® 10kg Boxfedex_10kg_boxInternational
FedEx® 25kg Boxfedex_25kg_boxInternational
FedEx One Rate® Small Boxfedex_small_box_onerateDomestic
FedEx One Rate® Medium Boxfedex_medium_box_onerateDomestic
FedEx One Rate® Large Boxfedex_large_box_onerateDomestic
FedEx One Rate® Extra Large Boxfedex_extra_large_box_onerateDomestic
FedEx One Rate® Envelopefedex_envelope_onerateDomestic
FedEx One Rate® Pakfedex_pak_onerateDomestic
FedEx One Rate® Tubefedex_tube_onerateDomestic
FedEx® Small Boxfedex_small_boxDomestic
FedEx® Medium Boxfedex_medium_boxDomestic
FedEx® Large Boxfedex_large_boxDomestic
FedEx® Extra Large Boxfedex_extra_large_boxDomestic

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:

OptionDescription
ManifestsShipping amount shown on manifests for FedEx does not include any insurance costs.
No Signature and $500 or more in insuranceIf 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 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 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 TypeAPI CodeDescription
No signature requirednoneNo confirmation requested.
Indirect signature requiredsignatureSignature 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 requiredadult_signatureAn adult signature is required for the shipment to be delivered.
Direct signature requireddirect_signatureA 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.

PropertyTypeDefault ValueDescription
bill_to_partyennumerated stringnullDetermines 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_accountstringnullThe account number that will be charged shipping costs when bill_to_party is set to third_party.
bill_to_postal_codestringnullThe postal code associated with the bill_to_account. FedEx validates this value.
bill_to_country_codestringnullThe two-letter ISO 3166-1 alpha-2 country code associated with the bill_to_account.
collect_on_deliveryobjectnullObject 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_alcoholbooleanfalseIndicates that the shipment contains alcohol. Your FedEx account must be enrolled in the FedEx alcohol shipping program to use this property.
delivered_duty_paidbooleanfalseIndicates that the shipper is paying the international delivery duties for this shipment. Also called "DDP".
dry_icebooleanfalseIndicates if the shipment contains dry ice.
dry_ice_weightobject0Object 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_freightobjectnullObject 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_machinablebooleanfalseIndicates that the package cannot be processed through FedEx sorting machines.
saturday_deliverybooleanfalseIndicated delivery on Saturday for services that do not otherwise include Saturday delivery.
third-party-consigneebooleannullHides 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:

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

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.