This "How to" should provide you with the necessary steps to implement a working integration with XPO from scratch using Babelway.


Preferred Protocols and Message Formats. When integrating with XPO, you will be expected to send X12 (version 4010) messages through FTP, AS2, SMTP, or VAN (additional fees involved).

Contact and Resource information. 


Setting up your connection

You can set up a number of connections with XPO since they support FTP, AS2, SMTP and VAN. We discourage the use of VAN as it involves additional costs and is the least straightforward setup. We will describe the setup using an FTP connection but we have running implementations using both FTP and AS2 and both of them are simple to set up with them. Your channel will look something like this:


For FTP, create an "FTP Client" gateway IN as follows. Note that XPO needs to share with you the information required to complete the highlighted section.



In order to send content to XPO, you will need to complete the matching FTP client outgoing gateway:



Once again, you will need XPO to share the highlighted information with you. Most likely, only the directory will differ between the two gateways and you will use the same credentials to log in to their FTP server.

Whether you begin with the incoming or outgoing flow, you can test your connection by creating a dummy channel using your newly created gateway, "Not defined" message definitions and a "no transform" transformation to just ensure that you can exchange content with XPO correctly. Next, you will want to validate that you can correctly convert your format to theirs in a way that matches their requirements.

Configuring your messages

You can find all the specifications for their messages in the resources bundle.

XPO doesn't seem adamant that you use 997 functional acknowledgments when exchanging content with them. However, if you wish to correlate the acknowledgments they send you, or if you decide to send acknowledgments yourself, you can have a look at Babelway's 997 implementation:


This documentation is based on our integration projects but we'd love to enhance and update it with your own feedback and experience:

Last update: Jan 10 2018