# FedEx Guide

  **IMPORTANT:** Starting March 1, 2026, all FedEx Bring Your Own Carrier Account (BYOCA) accounts must be REST-enabled
  through the Multi-Factor Authentication (MFA) process. Refer to the
  FedEx Multi-Factor Authentication support article
  for additional details.

FedEx's extensive fleet includes over 650 aircraft and 49,000 trucks, ensuring timely delivery of packages, envelopes, and parcels across the globe. Daily, FedEx processes over 14 million packages worldwide. EasyPost integrates with FedEx's complete range of services, as well as offering support for over 100 additional carriers.

This guide includes detailed information on utilizing FedEx for shipping with the EasyPost API, focusing on account setup, rate retrieval, service levels, label generation, tracking, and more.

---

## Carrier Account Setup

### Account Registration

Sign up for an EasyPost account to obtain a **Test** and **Production** API
key. See Authentication and Key Management for more information.

> Note: Negotiated rates are only available in Production mode.

Please review the Getting Started Guide for more information.

### FedEx Shipping Account Registration

Upon sign-up with EasyPost, users gain immediate access to Wallet Carrier Accounts, which can be enabled directly from the Dashboard. For additional carriers, EasyPost supports a Bring Your Own Carrier Account (BYOCA) option. This requires users to register directly with the respective carrier.

#### Create a FedEx Wallet Carrier Account

1. Log in to EasyPost and navigate to **Account Settings**.
2. Select the **Carriers** tab.
3. Select the **EasyPost Wallet Carriers** tab.
4. Find **FedEx Wallet Account** in the list of carriers and select **Create Account** to complete the account creation process.

![Steps to create a FedEx Wallet Account in the EasyPost web UI](https://docs.easypost.com/images/guides/fedex/fedex-create-account-web-ui.png)

#### Bring Your Own Carrier Account (BYOCA) to EasyPost

1. Register for a FedEx account.
2. Contact a FedEx representative to discuss volume rate discounts.
3. Obtain the following account credentials from FedEx:
   1. FedEx Account Number
4. Input carrier-specific credentials within the
   EasyPost Carrier Account Dashboard for comprehensive rate access.

#### FedEx Account via API

The API structure specified by EasyPost can also be used to add a FedEx carrier account.

**FedEx REST Enabled Accounts**

Starting March 1, 2026, all FedEx accounts must be created using the FedEx Multi-Factor Authentication (MFA) API flow.

Documentation for the MFA flow is available in the FedEx Multi-Factor Authentication support article.

**FedEx Legacy WebServices (SOAP) Accounts [Deprecated]**

The WebServices (SOAP) carrier account integration is **no longer available** and has been replaced by the REST Multifactor Authentication flow.

Documentation for the MFA flow is available in the FedEx Multifactor Authentication support article.

### Software Requirements

Download an EasyPost Client Library or utilize the REST API with cURL.

### Documentation Review

- Examine the EasyPost Objects section to understand the API's structure, which is critical for constructing requests and interpreting responses.
- Download the FedEx API documentation on the FedEx website. The documentation includes additional information about various fields and formats they accept.

> Note: The FedEx API interface may differ from the EasyPost API, which is standardized to provide a consistent
  experience across various shipping carriers.

Related:

- [Getting Started Guide](https://docs.easypost.com/guides/getting-started)
- [FedEx Account Sign-Up](https://www.fedex.com/fcl/web/jsp/contactInfo1.jsp?appName=oadr&locale=us_en&step3URL=https%3A%2F%2Fwww.fedex.com%2Ffcl%2FExistingAccountFclStep3&afterwardsURL=https%3A%2F%2Fwww.fedex.com%2Ffcl%2Foptionhome&programIndicator=ss90705920)
- [FedEx Developer Kit](https://developer.fedex.com/api/en-us/home.html)

---

## Rates

EasyPost offers all users a FedEx Wallet Account with pre-negotiated rates. Simply create an EasyPost account, add **FedEx Wallet Account** to the carrier lineup, and start shipping.

### BYOCA Account Rates

Custom rates apply for BYOCA FedEx accounts linked to EasyPost. The negotiated rates will appear in the rate requests from EasyPost.

### Surcharges

Rate responses include itemized surcharges when applicable. These may include `fuel`, `dangerous_goods`, `address_correction`, or other fees. Each surcharge
is returned in a `surcharges` array within the `rate` and `shipment` objects and includes:

- `type`: Carrier-specific surcharge code.
- `category`: Standardized surcharge category used across all participating carriers.
- `amount`: Fee amount.
- `currency`: ISO 4217 format (e.g., `USD`).

For a full list of surcharge categories and descriptions, see the Surcharge Details in the Rate Response documentation.

Related:

- [FedEx Retail Rate Calculator](https://www.fedex.com/ratetools/RateToolsMain.do?link=2)
- [FedEx Platform Account Rate Charts](https://www.easypost.com/fedex-platform-account-rate-chart)

---

## FedEx One Rate

FedEx One Rate offers flat-rate pricing for shipments sent in eligible FedEx One
Rate packaging represented by a supported `predefined_package` value. EasyPost may return FedEx One Rate rates and request
One Rate on eligible label purchases. To opt out of this behavior, set the `exclude_fedex_one_rate` carrier option to `true`
when creating a shipment.

For more information on FedEx One Rate, see the FedEx One Rate support article.

> Note: `exclude_fedex_one_rate` is supported for both FedEx Wallet (Default) and Bring Your Own Carrier Account
  (BYOCA) accounts, on both the REST and legacy SOAP integrations.

When `exclude_fedex_one_rate` is set to `true`:

- **Rating:** EasyPost requests FedEx exclude One Rate rates, regardless of the predefined package or service level in the request.
- **Label purchase:** EasyPost no longer requests One Rate from FedEx on one-call buys.

Omit the option or set it to `false` (the default) to leave existing One Rate behavior unchanged.

Set the option under `options.carrier_options.fedex` on the shipment:

[Content omitted: interactive code examples. Review the rendered documentation for request and response examples.]

> Note: In rare cases, FedEx may ignore the exclude request and return a One Rate rate anyway. If that rate is
  selected, EasyPost purchases One Rate to honor the rate FedEx returned.

Related:

- [FedEx One Rate](https://support.easypost.com/hc/en-us/articles/360041592051-FedEx-One-Rate)

---

## Service Levels

FedEx has several service levels supported by EasyPost, each with specific transit times and conditions.

> Note: FedEx UK outbound service levels differ from FedEx US outbound service levels. Review the
  docs for each carrier's Service Levels.

> Note: When using the FedEx `SMART_POST` service, only `NO_SIGNATURE`, `null`, or `SERVICE_DEFAULT` values are
  supported for the `delivery_confirmation` option. Other values are not compatible and will cause an error when
  purchasing a shipment.

Service levels are generated from live carrier metadata and are not included in this file. Retrieve them from the Carrier Metadata endpoint: https://docs.easypost.com/docs/carrier-metadata. Use `carrier=fedex`.

---

## Predefined Packages

FedEx has several predefined packages supported by EasyPost. Predefined packages are an easy way to classify and price a package.

When using the EasyPost API, users should select a predefined package that matches the shipment's criteria and, if necessary, add weight to the request to obtain rates. The predefined package documentation provides detailed sample requests.

Predefined packages are generated from live carrier metadata and are not included in this file. Retrieve them from the Carrier Metadata endpoint: https://docs.easypost.com/docs/carrier-metadata. Use `carrier=fedex`.

---

## Generating Shipping Labels

With EasyPost, the process for generating shipping labels for FedEx is the same as generating them for any other carrier.

Review the Getting Started Guide for help generating a shipping label.

### Label formats

FedEx labels are available in PNG, PDF, EPL2, and ZPL formats.

### Label Size Options

Possible values for FedEx shipping label sizes:

- 4x6 (default)
- 8.5x11
- 4x8
- 4x9
- 7x4.75
- 8.5x11_BOTTOM_HALF_LABEL
- 8.5x11_TOP_HALF_LABEL

### Custom Text Label Options

Shipments can have a variety of additional
  options
 that can be specified when creating a shipment. These options include custom messages that can be printed on labels.
See Options for more details.

The custom text will appear on the FedEx label beneath the address:

![Example FedEx Label with Custom Text](https://docs.easypost.com/images/guides/fedex/fedex-custom-label-text.png)

Related:

- [Shipment Documentation](https://docs.easypost.com/docs/shipments)
- [Shipment Options Documentation](https://docs.easypost.com/docs/shipments/options)

---

## Hazardous Materials (HAZMAT)

When shipping hazardous materials or dangerous goods via FedEx, it is crucial to adhere to specific regulations and guidelines to ensure safety and compliance.

### Dangerous Goods (lithium batteries)

EasyPost's FedEx integration supports **International Air Transport Association (IATA) Section II exempt lithium-ion and lithium-metal batteries.** Both modern IATA Packing Instruction (PI) codes and legacy hazmat terms are accepted.
The PI codes listed below are the recommended standard.

#### Supported HazMat Codes

[Content omitted: table content. Review the rendered documentation for complete tabular data.]

To learn more please visit FedEx Dangerous Goods & Lithium Batteries in the Help Center or the FedEx's Learn How to Ship Dangerous Goods and Hazardous Materials.

Related:

- [FedEx Dangerous Goods & Lithium Batteries](https://support.easypost.com/hc/en-us/articles/41267578640269-FedEx-Dangerous-Goods-Lithium-Batteries)
- [FedEx - Learn How to Ship Dangerous Goods and Hazardous Materials](https://www.fedex.com/en-us/service-guide/dangerous-goods-hazardous-materials.html)

---

## Pickups

FedEx pickup requests can be made via the EasyPost API. Review the Pickups API documentation for details.

> Note: Pickups incur charges; users should consult their FedEx account representative for pricing details.

Related:

- [Pickups Documentation](https://docs.easypost.com/docs/pickups)

---

## Tracking

EasyPost simplifies package tracking by offering two methods:

- Tracking with an existing number and carrier.
- Using a Tracker included with an EasyPost-purchased shipping label.

The service integrates webhooks for timely shipment updates. For detailed information on tracking methods, visit the Tracking Guide.

Related:

- [Trackers Documentation](https://docs.easypost.com/docs/trackers)
- [Trackers Guide](https://docs.easypost.com/guides/tracking-guide)

---

## Additional Resources

### Carrier Metadata

The Carrier Metadata endpoint can programmatically return information about service levels, predefined packages, supported features, and shipment options.

Use this information to quickly integrate and make educated decisions about the mix of carriers for shipping needs. Additionally, the Carrier Metadata endpoint is available to retrieve comprehensive information about all carriers on the EasyPost platform, enhancing decision-making for carrier services.

### Support and Troubleshooting

In addition to the guidance provided in our Carrier Guides, EasyPost offers support to assist with FAQs, troubleshooting issues, and inquiries related to the EasyPost platform.

Please visit the Help Center for more information.

Related:

- [Carrier Metadata](https://docs.easypost.com/docs/carrier-metadata)
- [Help Center](https://support.easypost.com/hc/en-us)

---

## Talk to a Shipping Expert

For questions about getting started with the EasyPost API please talk to a Shipping Expert or Contact Support.

Related:

- [Talk to a Shipping Expert](https://www.easypost.com/talk-to-easypost)
- [Contact Support](https://support.easypost.com/hc/requests/new)