The shipping carrier interface Dynamics in AX 2009 and AX 2012

If you’re working at the cutting edge of Dynamics AX implementations, you can stop reading now. The Shipping carrier interface appeared in AX 2009 and has flowered briefly, but its time in the sun is now past. It’s not available in Microsoft Dynamics AX 365 for Operations / AX 7. There’s a good white paper explanation available at which although refers to AX 2009 is equally applicable to AX 2012.

As usual I’m working in the demo Hyper-V image and there is a little bit of setup to get this working. First enable one or more interfaces. Inventory management > Setup > Shipping carrier > Carrier interface:

There are three built-in formats/options. I’m not entirely certain what the differences are. So in this example I’ve enabled just one, the UPS WorldShip format. But as they say on the BBC “other formats are available”. Nothing happens if you don’t have an interface enabled, so make sure you tick ‘Enabled”.

Next, a Carrier company. I’m calling my demo company ‘UPS’ but the interface works regardless of the name here, so you can use your local carrier company (or companies). Inventory management > Setup > Shipping carrier > Carrier company:

You need to enter a miscellaneous charge code and add an account code (which in real life would be your account code with your carrier).

The third bit of setup is a Carrier ID. This links your Carrier company to the Interface. Inventory management > Setup > Shipping carrier > Carrier IDs:

Four. Setup a Mode of delivery. Sales and marketing > Setup > Distribution > Modes of delivery:

You need to set the ‘Service’ to ‘Ground’ or ‘Air’ before you can enter the all important Carrier ID.

Incidentally, once the Shipping carrier interface is enabled the Mode of delivery is required on all sales orders, so you’ll want to set a default Mode of delivery on all of your customers, if you haven’t done that already.

And we’re nearly done. The last thing to do is to setup a Terms of delivery. Sales and marketing > Setup > Distribution > Terms of delivery:

The Freight charge terms define which carrier charges are added to the sales order as miscellaneous charges – a bit more on that later. And we’re done with the setup.

Create a sales order and set the Mode of delivery as above:

Notice that I’ve also filled in the Customer reference and Customer requisition fields.

Click OK to create your sales order, add a line, and post a sales order packing slip / delivery note. Take a note of your packing slip number:

Then navigate to Inventory management > Inquiries > Carrier transaction information:

And there is it. You’re looking at a table called ShipCarrierShippingRequest. Your carrier’s system can read it using your packing slip id and company, but it’s best to setup your number sequences so the packing slip id is unique by company.

Notice that the Customer reference field is populated in the Shipping carrier request table, but the Customer requisition field (which we normally use to hold the customers purchase order number) isn’t.

The other table used by the Shipping carrier interface – in this simplest of examples – is the ShipCarrierStaging table. Your carrier’s software writes back into this table, and it has to write back both the packing slip id and your sales order number. Then it can add a tracking number and charges. If you want to see that working you can add a record to ShipCarrierStaging using the table browser, or you can set your interface to ‘Test’ mode:

With that enabled, when you post the sales order packing slip a pop-up form lets you populate ShipCarrierStaging:

You can see this information on the Order tracking tab of your packing slip journal:

And on the Shipping charges and Tracking tabs of the Carrier transaction information form:

We’ve implemented the Shipping carrier interface a few times. Sometimes this is all we do. Sometimes we go to the next step, which is that, depending on the Terms of delivery, the shipping charges can be added to the sales order invoice as miscellaneous charges.

Unfortunately, you can’t see these charges before you post the invoice. At the moment my invoice is showing a total cost of $1.00:

But after posting I see the added freight charges:

And back on the Carrier tracking information I can see that the charges have been transferred to a sales order invoice:

There are more options in the Carrier tracking interface – check out the documentation referred to right at the start of this post – but this is as far as my experience goes.

Oh, and a late-breaking update, there’s a useful inquiry at Inventory management > Inquires > Carrier issues:


This inquiry shows all of the Carrier shipping requests that don’t have a matching records in the staging table (so sent, but no answer-back received).