Frequently Asked Questions
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
Stay Informed
Get the latest news and alerts from the FedEx Developer Resource Center.