FedEx Shipping Method is a premium shipping method that allows you to pull shipping rates via the FedEx API. It requires your store to use US or Canadian Dollars as its currency. FedEx works with a base country of United States or Canada and can calculate quotes for domestic and international parcels. The extension primarily works with in (inches) and lbs (pounds), but other units can be converted automatically.
You can purchase shipping labels directly from FedEx or use a label printing extension to handle that.
Before you start:
Add weights and dimensions to the products you intend to ship. The API and box packer need these measurements.
Installation
↑ Back to topTo start using a product from WooCommerce.com, you can use the โAdd to storeโ functionality on the order confirmation page or the My subscriptions section in your account.
- Navigate to My subscriptions.
- Find the Add to store button next to the product youโre planning to install.
- Follow the instructions on the screen, and the product will be automatically added to your store.
Alternative options and more information at:
Managing WooCommerce.com subscriptions.
Connect your FedEx account
↑ Back to topGo to WooCommerce > Settings > Shipping > FedEx. Parcel shipping and FedEx Freight LTL use separate API credentials. Set up each connection you plan to use.
Set up parcel API access
↑ Back to topUse the FedEx Developer Portal getting-started guide to create your organization and project, link your shipping account, and obtain your API key and secret. Enable Rates and Transit Times API for rate quotes and Address Validation API if you use address validation. For live checkout rates, use production credentials associated with your shipping account.
FedEx Freight LTL has its own portal and credentials. Enabling the older Freight LTL API on your parcel project does not replace the separate Freight setup below.
Enter parcel connection settings
↑ Back to top- Shipping Account Number: Enter your FedEx shipping account number. You can find it in FedEx Account Management.
- REST API Key and REST API Secret: Enter the credentials from your parcel project.
- Production Key: Select This is a production key for production credentials. Leave it unselected for test credentials. The setting must match the environment your credentials were issued for.
- Select Save changes, then check REST API Status. A successful connection displays Authenticated. If authentication fails, check the key, secret, and production setting.
Set up FedEx Freight LTL
↑ Back to topExisting Freight users:
Since version 4.8.0, FedEx Freight LTL rates for deliveries to the United States, Canada, or Puerto Rico require separate Freight API credentials. Your parcel API key and secret do not provide this access. Add the new credentials even if Freight rates worked before the update.
- In the FedEx Freight Developer Portal, create an integration and obtain the Client ID and Secret for the environment you intend to use. Your integration needs access to LTL rates. FedEx also provides a Freight API migration guide.
- Return to WooCommerce > Settings > Shipping > FedEx. Under LTL Freight, select Enable Freight.
- Enter the Freight Client ID in FedEx Freight API key and the Secret in FedEx Freight API secret.
- For live rates, use production credentials and select This is a production key under Freight production key. For sandbox credentials, leave it unselected. This setting is independent of the parcel Production Key setting.
- Enter your Freight Account Number. If left blank, it defaults to your main Shipping Account Number. The Freight account must match the account associated with your Freight API credentials.
- Complete the billing and shipper addresses, including city, state or province code, postcode, and country code. Select the residential shipper option when applicable and choose your Default Freight Class.
- Select Save changes. Check that FedEx Freight API status displays Authenticated. If it does not, check the Freight key, secret, and environment before testing rates.
- In each relevant shipping zone, edit its FedEx shipping method and enable the Freight services you offer under Services. Save the zone settings.
- Test checkout with products that have accurate weights and dimensions and a complete destination address, including the customerโs city. Confirm that an eligible Freight service and rate appear. Authentication confirms that the credentials work; it does not guarantee a rate for every shipment.
International air freight services for destinations outside the United States, Canada, and Puerto Rico use the parcel connection. The separate Freight credentials above apply to the LTL connection.
Previous SOAP connections
↑ Back to topVersion 4.7.0 removed SOAP support. Stores previously using SOAP now use REST and need REST API credentials. Meter numbers and Web Services keys or passwords from the old SOAP connection cannot replace the REST key and secret.
Configuration
↑ Back to topNote:
This shipping method has to be added to a Shipping zone. If you haven’t configured your Shipping zones yet, please check our Setting up Shipping Zones guide before proceeding.
- Go to WooCommerce > Settings > Shipping > Shipping zones.
2. Click the Edit button on the shipping zone where you want to offer this method.

3. Inside the shipping zone, click the Add shipping method button.

4. Then, select the shipping method and click the Continue button.

- Select the Edit button on the right side of the Shipping methods table to configure the settings:
- Method Title – Name the shipping method. This is visible to customers.
- Origin Postcode – Post/zip code from where you ship. Sent to the FedEx API.
- Packages
- Parcel Packing Method – Choose to pack items individually or pack into boxes using weight/dimensions (see more below)
- Rates and Services – Control the services and rates you offer customers.
- Residential – Enables the residential flag. If your account has Address Validation enabled, this will be turned off/on automatically. (more details about Address Validation can be obtained from FedEx directly.)
- Insurance – Tick the box to get rates and insurance. Untick if using Smart Post.
- FedEx One Rate – Choose whether to enable FedEx One (flat) rates. More info at: FedEx One Rate.
- Request Type – Choose Account (get rates for your account) or List (get standard FedEx rates).
- FedEx Ground Economy Hub – If using Smart Post, define your ID. Ensure that ‘Enable Insurance’ is unticked.
- Offer Rates – Choose to return all rates (allowing your customer to select) or return a single rate anonymously.
- Services – Here you can rename and change the order of FedEx shipping rates, enable methods you wish to offer, and add price adjustments. More below.
- Save Changes.
* Required fields
Parcel Packing Method
↑ Back to topThere are two packing methods with FedEx, and each affects the parcels you send to the API.
Per-Item (Default: Pack items individually)
↑ Back to topEach item in your cart (non-virtual) will be sent to the FedEx API. Quotes for all items will be combined to calculate the final cost.
Pack into Boxes (Recommended: Pack into boxes with weights and dimensions)
↑ Back to topItems will be packed into pre-defined boxes and sent to the API. We recommend this option. See Box Packing below for more information.
Box Packing
↑ Back to topIf you choose “Pack into boxes” as a parcel packing method, the area to set up box sizes will appear.
The box packer included with this shipping method lets you group items into packages for which you define height, width, length, weight, and max-weight. The packing is mainly volume-based, but also considers item size.
Note:
Packing calculations estimate how products fit in boxes. Check the configured boxes against how you pack orders, and compare checkout quotes with FedEx quotes before using them for live orders.
Setting up box sizes
↑ Back to top- Under Parcel Packing Method, select ‘Recommended: Pack into boxes with weight and dimensions’ to set up the boxes specifications.
- Select ‘Add box’ to add your own.
Save your settings once you’ve added any custom boxes needed.
Dimensions are used for parcel dimensions and passed to the API, and are also used for packing.
Box weight is the weight of the box itself and added to the weight of contents.
Max weight is the maximum weight your box can hold. This includes the weight of contents and the box. (Note: This value should never be set to 0 , as that will result in that box not being used due to the Max Weight limitation being met before any items are packed inside.)
Enabled can be turned on and off, depending on whether you want to use the box.
You’ll notice that boxes are pre-filled with FedEx standard boxes. You can disable if you want custom box sizes.
Rearrange Shipping Options
↑ Back to topIn the shipping zoneโs FedEx settings, drag a service by its handle to change the order of the services.
Note:
You may also add a positive or negative price adjustment (by amount $ or percentage %) to any service using the price adjustment columns.
For example, if you want to discount the ground shipping method by 10%, you would add -10 to the Price Adjustment % column for the ground option.
Note that these price adjustments apply to all shoppers who are offered the service, so use negative adjustments thoughtfully to avoid losses.
How the calculation works
↑ Back to topThe box packer:
- Finds boxes that fit items being packed (uses H x W x D).
- Packs all items into boxes (using volume).
- Uses the smallest box fitting 100% of items *or* uses the highest % packed box, and then passes unpacked items back (and repeats the process)
- Packs unpackable items alone, using item dimensions.
- Returns all packed boxes.
Handling Fees
↑ Back to topTo add handling fees to shipping calculations, you can use a Price Adjustment column in the Services section. Each FedEx service can be increased separately using the price adjustment columns in the row.
Use the Price Adjustment ($) column to add a flat amount to the shipping quote.
Use the Price Adjustment (%) to increase the shipping quote by a percentage. For example, enter 1 to increase that serviceโs quote by 1%.
LiftGate Service
↑ Back to topLiftgate service is an additional service offered by FedEx when picking up or delivering freight. It requires the use of a hydraulic lift (called a liftgate) installed on the back of the truck. The liftgate is used to raise material from ground level to the level of the truck bed and vice versa.
Liftgate pickup and delivery are additional services for FedEx LTL Freight. Enable the options needed for the product; they are included in Freight rate requests, not parcel rate requests. Setting liftgate service for variable product on product level is equal to enabling liftgate service for each variation.


Customer Usage
↑ Back to topCustomers can get quotes based on the address entered from two places:
- Cart page – by using the shipping calculator
- Checkout page – by filling in shipping and billing forms
Customers select one of the available rates.
Troubleshooting
↑ Back to topNo rates returned/no rates available
↑ Back to top- Go to WooCommerce > Settings > Shipping > FedEx, enable Debug Mode, and save your changes. Add a product to the cart and enter a shipping address to reproduce the problem. Check the FedEx entries in WooCommerce > Status > Logs. After troubleshooting, disable Debug Mode and save your changes.
- Check that the products have sizes and weights set. Without this, the calculation cannot be performed.
- Go to WooCommerce > Settings > General and verify that your store’s base country is the United States or Canada and the currency is set to US Dollars or Canadian Dollars, respectively.
- Confirm that REST API Status is Authenticated for parcel services. For LTL services, check the separate FedEx Freight API status and Freight setup. If needed, check the FedEx entries under WooCommerce > Status > Logs.
I have enabled Smart Post, but no rates are being returned
↑ Back to topFedEx SmartPost is now named FedEx Ground Economy in the extension. Confirm that your account supports the service, enable it in the matching shipping zone, and select your hub. Packages under 1 lb are supported; there is no blanket 1 lb minimum in the current extension.
FedEx Ground is available when shipping from the US to Canada, and FedEx Ground International is not.
↑ Back to topAccording to FedEx terms:
You can obtain rates for FedEx Ground shipments to destinations within the US and Canada. If you are in a FedEx discount program, contact your FedEx account executive for an exact rate quote.
If your FedEx account has “International Ground Direct Distribution” enabled, be sure to check that box in the plugin settings to get the correct rates.
I do not know my Default Freight Class
↑ Back to topFedEx has developed an LTL Freight Classification tool that can guide you through a quick two-step process to obtain the best option for you.
How do I fix a missing state or province error for Freight?
↑ Back to topCheck both the billing and shipper addresses under LTL Freight. Enter the two-letter state or province abbreviation, such as CA for California or ON for Ontario, and the country code, such as US or CA. Include the street address, city, and postcode. Check the customerโs destination address as well.
I get the error: The account number entered for FEDEX_FREIGHT could not be validated
↑ Back to topCheck Freight Account Number in the global FedEx settings. It defaults to your main Shipping Account Number when left blank. If your Freight account has a different number, enter it explicitly and confirm that it matches the account associated with your Freight credentials. Also check the billing and shipper address details and two-letter country code, such as US or CA. Contact FedEx if the account still cannot be validated.
FedEx LTL Freight does not show as an option when enabled
↑ Back to top- Check the separate Freight credentials, Enable Freight, and the Freight services enabled in the shipping zone that matches the destination.
- Enter a complete checkout destination, including the customerโs city. Confirm the products have the weights and dimensions needed for the service.
- Check the Freight account number, billing and shipper addresses, and Freight class. If authentication succeeds but no rate is returned, ask FedEx to confirm that the account and integration have LTL rates access and that the requested service supports the shipment.
If you see FedEx Freight rates have stopped, the extension has found enabled Freight services in shipping zones but missing Freight credentials. The notice lists the affected zones, and a WooCommerce Inbox note links to setup. Dismissing the notice does not restore rates; by default, it returns after 30 days if credentials are still missing.
What is the difference between GROUND_HOME_DELIVERY and FEDEX_GROUND?
↑ Back to topThe GROUND_HOME_DELIVERY service is for residential addresses while FEDEX_GROUND is for commercial addresses. The FedEx integration will automatically choose the correct service(provided it is enabled) based on the address type.
FedEx Ground / FedEx Ground Home Delivery does not show as an option when enabled
↑ Back to topYou will not be able to get the FedEx Ground Shipping Rates with the FedEx One Rate enabled, as FedEx One Rate does not support ground shipments. So make sure the FedEx One Rate option is disabled.
FedEx Ground Home Delivery will also not show unless “Default to residential delivery” is enabled:

If Home Delivery is not offered, the alternative is to also have FedEx Ground enabled.
FedEx One Rate does not show as an option when enabled
↑ Back to topFor One Rate to apply, you must have valid FedEx One Rate boxes enabled. FedEx maintains a list of compatible boxes, which can be enabled in the plugin settings. At least one of the applicable service codes (i.e., FedEx Express Saver, FedEx 2Day, FedEx 2Day A.M., FedEx Standard Overnight, FedEx Priority Overnight, FedEx First Overnight) must likewise be enabled. You should also make sure that the FedEx Express Saver service is enabled as well, to ensure the cheapest delivery rates are offered to your customers.
Require a signature option.
↑ Back to topAlthough not currently possible, feel free to add your votes to the idea on our Ideas Board.
Can this plugin print labels?
↑ Back to topNo.
Questions and support
↑ Back to topSomething missing from this documentation? Still have questions and need assistance?
- If you have a question about a specific extension or theme youโd like to purchase, contact us to get answers.
- If you already purchased this product and need some assistance, get in touch with a Happiness Engineer via our support page and select this product’s name from the Product dropdown.
