Configuring FedEx API

FedEx

The FedEx integration is one of the most advanced integrations in UltraCart.  By configuring your FedEx API information, UltraCart will not only be able to estimate rates using the discounts that you have with FedEx, but also print domestic shipping labels directly to PDF. 

If you do not have complete product FedEx web service credentials on file, then UltraCart will only be able to obtain estimates limited to standard list rates for shipments originating in the US or destined for the US only.

FEDEX Credentials

There are two sets of API credentials required for the FEDEX API integration:

  1. "Sandbox " Test Credentials (Used to complete the Label Certification)
  2. Production Credentials 

The 4 API credentials are:

  1. Account Number (found on fedex.com in your account settings)
  2. Meter Number (found on fedex.com in your account settings)
  3. API Key (aka Client ID)
  4. Secret Key (aka Client Secret)

Obtaining Your Sandbox Test Credentials

Your test credentials are required to complete the Label printing certification step. 


To obtain your FEDEX Test API credentials:

  1. Register for a FedEx developer account if you do not already have one.
  2. Click on the "My Projects" link in the left menu.
  3. Click on the large orange "Create API Project" button.
  4. When the "Tell us about your API needs" popup displays, choose the option "I work for a company that Ships with FedEx and needs to integrate FedEx APIs into their system".
  5. On the Step 1 - Select API(s) for your project screen, select "Ship, Rate & Other APIs".
  6. Scrolling down on that same screen is a list of all APIs.  Check the "Rates and Transit Times API" and optionally (Ship API) if you will be printing labels as well.
  7. On the Step 2 - Configure project screen, give your project a name (does not matter to UltraCart) and select your country.  There are two options as well:
    1. Do you plan on shipping using FedEx SmartPost Returns - UltraCart does not support processing returns through the FedEx API.
    2. Do you plan on shipping using FedEx Freight LTL - select Yes or No depending on your need.
  8. On the Step 3 - Confirm details screen, check both boxes.
  9. When finished, you will be redirected to your Project screen where you will find your development API Key, Secret Key, and Account Number.   Record those values.

Obtaining Your Production API Credentials

  1. Visit the FedEx Developer Portal, then navigate:
    Menu → My Projects → Click on your project (create one if you do not have one)   Production Key tab ( this is at the top of the screen below "API Project overview")
  2. On the Configure Project screen, provide a Key name (UltraCart does not care about this name) and choose your Account Number to associated with the project.
  3. The next screen titled Production keys will display your API key and Secret key.   Record those safely, as you will not see the secret again.  You should also have your Shipping Account which is easily viewed from your project page at any time.

Now that we have our Test and Production API credentials, we can configure them within UltraCart.

Log into your UltraCart account, then navigate:

Navigation

Main Menu → Configuration → (middle menu) Checkout → Shipping → (Middle Menu) Under "Carriers", click "FedEx"

The FedEx configuration shown below. Fill in your Test and Production Credentials:


Now that you have your Test and Production credentials saved, you'll need to complete the rest of the UltraCart FEDEX Configuration form.

  • For Rating you'll choose between "List" (retail pricing) or "Discounted" (your negotiated rates)
  • Enter your Sender Address details
  • For Ground Economy (formerly SmartPost) Hub, enter your Hub ID.
  • Ground Economy (SmartPost) Rate < 1 LB (Checkbox field) select if you wish to apply SmartPost rate for packages that weight less than one pound.
  • Ground Economy (SmartPost) Ship > $100 (Fedex will only insure up to $100 with Ground Economy) (Checkbox field)
  • Ground Economy (SmartPost) Minimum Weight ____LB (Allows you to specify the minimum weight that Ground Economy Rate will be used for estimates.)

General Settings

There are 5 general settings for the API:

  1. Web Service Environment (Choose either: Test or Production)
    *Select test during the Label Certification then switch to Production after the Label Certification step is completed.
  2. Sender Label Type: Choose "4x6" or "Half Sheet" and also optional setting "( packing slip with 4x6 label)"

    There are two types of labels that FedEx can print (half sheet and 4x6).  Most merchants get a Zebra LP2844 label printer and print the 4x6 labels.  The signature type option allows you to control how the customer will be required to sign for the package.  The label reference allows you to print custom fields 1-5 on the label.

  3. Signature Type: Choose "Indirect", "Direct", or "Adult"
  4. Include Clearance Entry Fee (Checkbox field)

Customs

FieldDescription
Include Clearance Entry FeeSelect this checkbox to include Clearance Entry Fee in the shipping cost presented to the customer during checkout.
Merchant Paid DutiesSelect this checkbox to designate duties to be paid by merchant.
Electronic Trade Docs (ETD)Select this checkbox to instruct FedEx to submit customs documents electronically. See ITN and the notes on screen for more details.
Hard CopySelect checkbox if using ETD, but still wish provide local copy of customs for printing.
LetterheadUpload your letterhead in either *.gif or *.png (Attention: Max Size for image 700x50 pixels.)
SignatureUpload your digital signature in either *.gif or *.png (Attention: Max Size for image 240x25 pixels.)

Completing the FedEx Label Certification Step

IMPORTANT NOTE ABOUT LABEL CERTIFICATION

When submitting the label certification: It's important to state that you print PDF and make sure to send in the PDF bundle.

Failure to submit as printing PDF's will cause a certification to be rejected.


Most likely you'll want to take advantage of FedEx label printing directly within the UltraCart Shipping department.  This requires label certification from FedEx.

Direct your web browser to https://developer.fedex.com/api/en-us/certification.html

Work through the steps listed.  Step 1 and Step 2 will be completed during your rate estimation setup.

  • Step 3: Fill out the Label Cover Sheet:  https://developer.fedex.com/api/content/dam/fedex-com/irc/common/Label-Cover-Sheet-form.pdf
    • Your Fedex Production Authentication Key is your production "REST API Key" in the UltraCart configuration.   It's also displayed on your FedEx developer project (https://developer.fedex.com/api/en-us/project.html#/myprojects) as the "API KEY".
    • Are you using Third Party Solution?  NO.  UltraCart is not a third party solution.
    • Third Party Solution Name: <leave this blank>
    • The remaining fields are your own company's fields.
  • Step 4: Generate and submit test labels to the Label Analysis Group
    • Navigate to the FedEx configuration tab:  Main Menu → Configuration → (middle menu) Checkout → Shipping → (Middle Menu) Under "Carriers", click "FedEx"
    • Scroll down the Test credentials column, to the blue button titled "Generate certification labels in test environment", then click the button.
    • Next, click the "Generate labels".
    • Generate test labels within the FedEx test environment associated with the application and
      then submit the test labels to the FedEx label evaluation team(s) for approval.

      Note: The Bar Code Analysis group requires a three-business-day turnaround time for label evaluation.

      To avoid processing delays, follow the below best practices:
      Labels must be printed on the model printer that will be used in production. These labels
      must be scanned at a minimum resolution of 600 DPI to ensure clear images are available
      for the certification process. DO NOT SEND WEB SERVICES GENERATED FILES.
      • For thermal printers, the label image type must be requested in accordance with the
      printer model. Example: ZPLII for Zebra printers
      • Use the sender shipper/recipient address information when creating sample labels for
      evaluation. Only create sample labels for the specific services that are being applied for.
      • FedEx®
      Collect on Delivery (C.O.D.) label must also include the corresponding C.O.D.
      Return label.
      • FedEx International Express®
      shipments must also include the auxiliary/secondary Air
      Waybill (AWB) label.
      • Multi-piece shipments (MPS) must include one label for each package in the shipment.
      • Certain customized FedEx Ground Economy (formerly SmartPost®) labels require up to 72 hours for evaluation.
      • FedEx Freight® labels do not require evaluation.
      • Email the PDF and Label Cover sheet to: label@fedex.com

      Physical labels may be sent to:
      FedEx Services
      WTC – Business Solutions Testing
      10 FedEx Parkway
      2nd Floor Horizontal
      Collierville, TN 38017

      Note: If the scanned labels are without visible defects (such as lines going through the
      barcode, spots in the ink, or physical damage), then they may pass inspection and approval will
      be granted. However, if there are defects, physical copies will be requested.
      If sending physical labels, pay attention to print quality and accidental enlargement/shrinkage
      of labels (i.e. scaling). These are the top two reasons why labels do not pass the label evaluation
      process.
      Step 5. Label Evaluation
      The Bar Code Analysis group will evaluate the submitted test labels and approve or reject the
      labels. The Bar Code Analysis group will contact you regarding the approval or rejection of the
      submitted labels. If the labels are approved, continue to the next step. If the labels are rejected,
      correct the labels as instructed and resubmit them for approval.


FedEx Freight

The new FedEx Freight configuration area will now allow your UltraCart account to pull rates directly from FedEx Freight. Theses settings will be different from the regular FedEx account. Please make sure you are not using the same credentials in both sections.

All Address fields must be provided for FedEx Freight. They will not estimate properly if all fields are not provided.


Once you have completed the setting for FedEx Freight you will still need to add the shipping methods for FedEx Freight within the Shipping Method configuration section.

Configure FedEx One Rate

To configure FedEx One Rate you need to take the following steps:

  1. Navigate to Main Menu > Configuration > Checkout > Shipping > Packages. From you you need to add in the FedEx One Rate Packages. You can do this one at a time or by clicking on the "Add FedEx One Rate Packages". This will add all the packages at once.

FEDEX API Troubleshooting

FedEx API Errors

Frequently Asked Questions

Q: We have configured the FEDEX API and we can print labels for domestic orders, but when we try printing the FEDEX labels for orders shipping via Fedex: Ground to Canada an error is "No domestic fedex orders were selected.", why is that?
 

A: The Fedex API integration Web Service Version 10 will only print orders shipping within the United States. For international delivery labels, change the Web Service Version to "26".   Note: As of June 1st, all web services will be retired.  So if you receive this error after that time and are using the latest FedEx REST API, please contact UltraCart Support.

Q: I have had my FEDEX credentials configured for a long time, but I am now getting an error when attempting to print a FEDEX label that I need to configure the FEDEX credentials, why am I suddenly encountering this error?
    

A: The UltraCart-FedEx  integration recently was updated to support FedEx One Rate. In this update, UltraCart made a change to the Label printing service so that the from address is calculated against the address configured within the shipping Distribution Center, instead of from the FedEx Sender Address details listed in the FEDEX API section. This change was made to prevent scenarios where the FedEx API Sender Address was configured differently than the DC address, which would potentially cause the printed labels to be generated from a different "from" address than the address used in the Shipping estimate the customer received during the checkout process.

To resolve this error, navigate to the shipping Distribution Center and update the address details in the top section of the DC editor to match the address configured in the FedEx API Sender Address:


      and 


Related Documents

https://www.fedex.com/us/developer/downloads/pdf/CertificationGuidelines.pdf

FedEx API Error Codes:
https://www.fedex.com/templates/components/apps/wpor/secure/fsms/pdf/100/FSMS_1061_TCR_Aug2010.pdf