
Frequently Asked Questions
FedEx Developer Resource Center
Get the answers you need to integrate FedEx® solutions into your business.
Yes. All future features and enhancements will be added to the FedEx RESTful APIs. For more information on how to integrate please visit Getting Started | FedEx Developer Portal
Yes. For more information on how to integrate please visit Getting Started | FedEx Developer Portal
The customer’s applications communicate to the FedEx processing systems by passing real-time information over the internet.
FedEx Web Services contains functionality that can assist in order entry, customer service, reverse logistics, and billing, as well as shipping operations. As an example affecting “Order Entry,” the address verification transaction can be used within a shopping cart or by phone-based personnel to verify the “Ship-To Address” in order to avoid address correction charges. This capability is completely separate from the act of shipping.
Additionally, FedEx Web Services for Office and Print is now available. These services enhance business processes by enabling easy access to FedEx Office document print and finishing services.
It depends on multiple factors, such as: How many functionalities will be implemented? How many programmers are assigned? Where does the FedEx Web Services project fall on your priority list? Are your programmers already fluent in implementing FedEx Web Services? It can take as little as a few weeks to several months, depending on the factors above.
No, FedEx Web Services is a set of technical schematics provided to a customer, from which the customer’s IT resources can incorporate numerous FedEx functionalities into their internal systems.
Unfortunately, not. Since the programming is being done on a customer's internal systems and not FedEx provided hardware, programming support is not an option. FedEx can provide assistance in the understanding of the FedEx Web Service WSDLs, error messages, etc.
No. Since this solution is simply a set of technical schematics, there are no revenue requirements.
FedEx Web Services for Shipping is a collection of FedEx Web Services used for shipping-centric implementations designed to rate, ship, track and return packages. FedEx Web Services for Office and Print is the collection of FedEx Web Services used for document-centric implementations designed to create, configure and submit FedEx Office digital print orders.
Yes.
Yes. All that is necessary for the implementation of FedEx Web Services is a connection to the Internet and programming resources. The existence of a web site or shopping cart is not mandatory.
Many of the functionalities within FedEx Web Services do not require certification such as rating, tracking. For those activities that generate a shipping label (ship, call tag, email return label), the customer will be required to submit labels for evaluation by the FedEx Label Certification teams. Completion of a FedEx End User License Agreement is also required.
Yes. FedEx Web Services is a global solution that works well outside of the United States. For availability in your region please check Web Services Documentation.
There are two levels of assistance available. General support is available via the FedEx Help Desk at 1.877.339.2774. If you would like assistance in your implementation effort, a FedEx Customer Technology consultant may be able to assist you upon request.
The label buffer is returned encoded because the Zebra or Eltron Printer Language contains symbols that are illegal in XML. If the buffer is not encoded the XML message would fail.
PHP, VB.net and C# (to name a few) provide a decoder object. The easiest approach is to assign a variable the printer buffer, decode it and assign the decoded printer buffer to another variable. Here’s an example in PHP:
$LB = $_POST['LB'];
$pbuffer = base64_decode($LB);
In this example we have a variable, $LB, that is assigned the encoded label buffer which it got from a web form.
A second variable, $pbuffer, is assigned the decoded label buffer that was assigned to the variable, $LB.
Decoding was accomplished by simply calling base64_decode() and passing it the variable, $LB, as a single parameter.
The easiest way to print a label buffer is to share the printer. This way you can use a simple DOS Copy command to send the buffer to that printer.
First, share the label printer. In this example, the share name will be: \\\\JOHN-PC\\ZebraLP2844.
Now, the rest is simply the following lines of code:
$file = "c:\labelbuffer.txt";
$handle = fopen($file, 'w');
fwrite($handle, $pbuffer);
fclose($handle);
$CopyCmd = "copy ".$file." "."\\\\JOHN-PC\\ZebraLP2844";
$PrintResult = shell_exec($CopyCmd);
print $PrintResult;
$KillFile = unlink($file);
In the code we first focus on some simple file operations.
First, we assign a file path to the variable, $file: $file = "c:\labelbuffer.txt";
This file will contain the contents of the decoded print buffer.
Next we assign a file handle to the variable, $handle: $handle = fopen($file, 'w');
The handle will take care of the file operations such as Open, Write and Close.
After that we write the contents to the file: fwrite($handle, $pbuffer);
Lastly, we close the file: fclose($handle);
Next, we focus on the actual printing of the label buffer.
As previously mentioned, we will use the DOS Copy command to accomplish this:
$CopyCmd = "copy ".$file." "."\\\\JOHN-PC\\ZebraLP2844";
The first thing we did is assign the command line to a variable, $CopyCmd.
Next, we will execute the command in a shell and assign the results to the variable, $PrintResult:
$PrintResult = shell_exec($CopyCmd);
To determine if the operation was successful we use the print command to display the results on the screen: print $PrintResult;
Finally, we simply perform some housecleaning by deleting the label buffer file: $KillFile = unlink($file);
Although deleting the label buffer file is not required, it is a good idea to do this to avoid read/write issues with a DOS session.
Yes. The following steps outline how to use a command prompt to print a thermal label to a USB port.
- First you must share your USB printer. It helps to give it a very simple name. In this example it is called Zebra.
- Then save a label file to the root of your pc. A shorter path is easier to type correctly into the command line. In this example the file is called test.txt and contains the ZPL (or EPL) value.
- In Windows go to "start menu" and select "run". Then type in "cmd"
- Once at the command prompt type in: copy c:\\file name \\computer_name\printer_share_name
For this example the proper syntax is: copy c:\\test.txt \\mycomputername\Zebra
(be sure to have a space between the file name and the printer path) - A label should be produced from your printer.
This can also be accomplished if your unshared printer is on an LPT or com port. In this example the label file is named test.txt and it's on the root of the pc.
If the printer is on lpt1, at the command prompt type: copy c:\\test.txt lpt1
If the printer is on a com port, at the command prompt type: copy c:\\test.txt com1
Unfortunately, no. The quality of a faxed label is below the acceptable evaluation standards performed by FedEx. It is critical that all labels are on paper on the thermal labels that they will be printed. Faxed labels will not be evaluated for approval.
No, you do not need to purchase a SSL certificate to use the HTTPS POST
In those and possibly other programming languages you must refresh the reference in your project. That ensures that the correct URL is referenced when sending your requests.
No. Each package requires a ship transaction. However you are able to tie packages together with a master tracking number.
Yes. You can track up to 30 shipments in a single transaction by using batch tracking.
Yes, with the current Web Services you can now rate an MPS domestic and International package in a single transaction.
This is not currently supported via FedEx, however a custom Java applet can be created to handle that process.
This is a customized solution that can be accomplished by using the PAPER_4x6 png or the PAPER_7x4.75 label stock types. That format can be printed on an 8.5x11 piece of paper. It only uses a portion of that sheet. The rest can be used for whatever purpose you desire.
Yes. Use the CustomerSpecifiedDetails elements in the WSDL. Using those you can place custom graphics And text on your label. This does not apply to the 4x6 thermal label stock types.
There are four reference fields available. Reference, Invoice, Dept, and PO Number. On the test server FedEx reserves the right to return a fixed value in the reference field to reduce attempts to use the label for shipping. The other three reference fields are available for testing your values.
The sample code was written using Visual Studio 2005. It will automatically be converted when it is opened in a newer version of Visual Studio. The error appears at this point due to the way WSDL.exe handles certain type of nodes in the WSDL file. For more information see http://support.microsoft.com/kb/891386.
To resolve the error if using VB.net:
After the conversion completes, use Ctrl-H to open the Find/Replace dialog box. Search for a double set of parentheses and replace them with a single set.
Find: ()()
Replace with: ()
Look in: Entire Project or Current Solution
To resolve the error if using C#:
After the conversion completes, use Ctrl-H to open the Find/Replace dialog box. Search for a double set of brackets and replace them with a single set.
Find: [][]
Replace with: []
Look in: Entire Project or Current Solution
FedEx Ship Manager Server (FSMS) is a hardware and software solution for high-volume shippers, giving customers the speed and convenience of a dedicated shipping solution for FedEx. While shipment transactions are processed locally on the server using FedEx Ship Manager Server, an internet connection is required to transmit shipment data to FedEx. FedEx Ship Manager Server will run on a variety of hardware configurations and several different versions of Microsoft Windows. Please refer to the Technical System Requirements for more information.
Use of FedEx Ship Manager Server is free to high-volume FedEx customers. To find out if your organization qualifies, contact your FedEx Account Executive directly or e-mail us to request an appointment.
While there is no limit to the amount of accounts that can be set up one server, we do notice a decrease in performance based on how many meters/accounts a system has configured. We recommend no more than 50 meters. If you have a large number of locations all sending transactions to one FedEx Ship Manager Server, you should stagger the close transactions and use a backup server.
Yes, but you should still download tracking numbers to the server. You should then send a transaction to the server to get the next tracking number. Actual package tracking is not available.
Using TCP/IP and a dedicated connection between your location(s) and FedEx operations, it bypasses the internet and its real-world traffic jams completely. The speed for each customer will depend on network speed, network load, network message priorities, desired response time, security and client code.
You have a couple options in regards to your shipping label. You can create, format and print a FedEx-certified custom label and add custom fields, if needed. Or, you can use a label transfer option, allowing you to print labels to a FedEx thermal printer attached to your network.
Yes. You will need to work with your Customer Integration Consultant (CIC) to implement a custom label solution.
Yes. For example, you can print the courier report in the shipping area and print the invoice report on the accounting department printer.
No. FedEx recommends that each meter be used only one server at a time. You can have many meters per account, and FedEx recommends that you request a new meter instead of adding the same meter to more than one server running FSMS.
You should have a backup server or a disaster recovery plan if the availability of the FedEx Ship Manager Server is considered mission critical to your fulfillment process. You will need to coordinate with your Customer Integration Consultant (CIC) regarding the implementation of a viable failover solution or a backup and recovery plan in case of an outage.
FedEx has developed the Software Support Lifecycle model to align with industry standards and best practices, in addition to staying current with Windows® operating system migration plans.
The model is designed to ensure customers upgrade to the most current version of FedEx Ship Manager Server software while ending support for legacy software versions.
- Enhanced security
- Accurate rating
- Access to new features and services
- Adoption of industry standards and best practices
When customers reach EOS, they will no longer receive any support from Customer Technologies or Help Desk. Customers MUST upgrade to the current version of FSMS software.
When customers reach EOL, they will not be able to communicate, connect or ship through FedEx. Customers MUST upgrade to the current version of FSMS software.
Upgrading to the current version ensures that the customers have the best safety features, improved efficiency and better customer experience. Customers who do not upgrade may face issues that have been addressed in newer versions.
By not upgrading by the designated deadlines, customers forfeit support and may experience shipping delays or complete loss of shipping status.
Customers should contact their account executive for any available funding options.
The calendar below shows the retirement schedules for older versions of FedEx Ship Manager Server software.

Please consult with your Customer Technology representative for your specific integration needs.
FSMS Software Support Lifecycle is a continuous process. As new versions are released, legacy software versions will reach end of support and end of life status.
Upgrading to the current version available allows the customer to utilize new features and services that FedEx offers while keeping their transactions secure.
Stay Informed
Get the latest news and alerts from the FedEx Developer Resource Center.