EDI 856 ASNs and Parcel Tracking Numbers Explained
Where a parcel tracking number goes on an EDI 856 advance ship notice, how it relates to the SSCC, and what a carrier label tool does and does not do.
The parcel tracking number belongs at the shipment level of the EDI 856 advance ship notice, next to the carrier details. Your carrier label tool creates that number when it buys the label, and your EDI system is what puts it into the 856 and sends it to the buyer. The two jobs are separate, and ASN problems on parcel orders can come from the handoff between them.
What is an EDI 856, and where does it sit in the order cycle?
The 856 is the document that tells a buyer what is about to arrive before it arrives. SPS Commerce describes the EDI 856 Advance Ship Notice as a document that "provides detailed information about a pending delivery of goods" (SPS Commerce).
It is the middle document of three that trading partners commonly exchange. Per the SPS Commerce article on the 856:
| Document | What it does, per SPS Commerce | Who sends it |
|---|---|---|
| EDI 850 Purchase Order | "Used to communicate the specific items a buyer wishes to order." | Buyer |
| EDI 856 Advance Ship Notice | Describes the pending delivery, including carrier details and tracking numbers | Supplier |
| EDI 810 Invoice | "Used to replace a paper invoice" | Supplier |
The order of events matters for a parcel shipper. The 850 arrives first and gives you the purchase order number. Only after you pack and buy carrier labels do you have the facts the 856 needs: which carrier, which tracking numbers, how many cartons.
Where does the tracking number go on the 856?
It goes at the shipment level, not the order level. Per SPS Commerce, the 856 is organized in levels: the order level carries purchase order numbers and buyer information, and the shipment level carries "Carrier details, tracking numbers, shipment identification" (source). The same article lists carrier information ("Who is shipping the order") and tracking numbers ("Helps retailers track shipments") among the elements of the document.
The carrier is identified in its own segment. SPS Commerce describes it this way: "TD503 - Identification Code: Specifies the carrier handling the shipment."
Two practical points follow:
- The carrier on the 856 has to be the carrier that is printed on the label. If your label tool rate-shops and picks a different carrier for each carton, your ASN data has to follow that choice carton by carton.
- The exact segment and qualifier a given buyer wants for the tracking number is set by that buyer's implementation guide. Read the guide, or ask your EDI provider, instead of assuming that one partner's mapping works for the next.
Is the tracking number the same thing as the SSCC?
No. They are two different identifiers issued by two different parties, and an ASN can call for both.
The tracking number is issued by the carrier when the label is bought. It identifies the parcel in the carrier's network.
The SSCC is issued by you, the shipper. GS1 US defines the Serial Shipping Container Code as "an 18-digit identifier assigned to a logistics unit, which includes any combination of trade items, such as cases, and pallets packaged together for transportation purposes," and says it "acts as a license plate to identify and track shipments through the supply chain" (GS1 US). Per GS1 US, creating SSCCs depends on licensing a GS1 Company Prefix.
GS1 US is also clear that the SSCC is a number and not a barcode: "the SSCC is a number typically encoded into a GS1-128 barcode and included on a GS1 Logistics Label, sometimes called an SSCC label."
So a carton going to a retailer that asks for both can end up carrying two labels with two purposes:
| Carrier shipping label | GS1 Logistics Label | |
|---|---|---|
| Identifier | Carrier tracking number | SSCC |
| Issued by | The carrier | The shipper, under its GS1 Company Prefix |
| Used for | Moving and tracking the parcel in the carrier network | Identifying the logistic unit to the trading partner |
| Produced by | Carrier label software | EDI or compliance labeling software |
Whether a particular buyer requires SSCC labels on small parcel shipments is a question for that buyer's requirements.
Why do ASNs go wrong on parcel orders?
They go wrong when the data in the document does not match the cartons on the dock, or when the document is late. A retailer's routing guide may treat either as a compliance failure. SPS Commerce notes that routing guides contain a chargeback schedule, and that "a missing or incorrectly formatted segment in any document can trigger a failed data chargeback even if the shipment is physically perfect" (SPS Commerce on routing guides).
The same article warns about carrier choice: "Using your favorite carrier because they give you a better rate can be a mistake if that carrier isn't on the retailer's approved roster for that specific region." For a team that rate-shops parcels, that is the rule to remember. On a retailer order, the routing guide decides the carrier, and the rate comparison only applies among the carriers the guide allows.
Operational causes on parcel orders can include:
- Tracking numbers typed or pasted by hand from a label screen into the EDI portal.
- A label voided and rebought after the ASN was already sent, so the 856 carries a dead tracking number.
- A multi-carton order where only the first carton's tracking number made it into the document.
- A carrier switched at the pack station without anyone updating the carrier code.
How do you get tracking numbers from the label tool into the ASN?
You carry the purchase order number through the label purchase as a reference, then pull the tracking numbers back out keyed by that reference. A checklist that works with any label tool and any EDI system:
- Put the PO number from the 850 in the label's reference field for every carton on the order.
- If the buyer needs carton-level detail, add a carton sequence to the reference (for example PO number plus "-1", "-2") or keep a carton ID column in your own export.
- Confirm the allowed carriers and services for this buyer before buying the label, and restrict the rate choice to those.
- Buy the labels, then export or receive the results: reference, carrier, service, tracking number, one row per carton.
- Load those rows into your EDI system by PO number. Do not retype them.
- Send the 856 only after the final labels exist. If a label is voided and replaced, update the ASN data before it goes out, or send a corrected document as the buyer's guide allows.
- Keep the export file with the order record so a dispute can be answered with the original data.
A worked example (hypothetical)
This example is invented to show the mechanics. A distributor receives an 850 with PO number 4500012345 for 36 units that pack into three cartons. The pack station buys three labels, each with reference 4500012345 and a carton suffix.
| Reference | Carrier | Tracking number (made up) |
|---|---|---|
| 4500012345-1 | UPS | 1ZEXAMPLE0000000001 |
| 4500012345-2 | UPS | 1ZEXAMPLE0000000002 |
| 4500012345-3 | UPS | 1ZEXAMPLE0000000003 |
The EDI system builds one 856. The order level carries PO 4500012345. The shipment level carries the carrier identification and the three tracking numbers. If this buyer also requires SSCCs, the EDI or labeling system assigns one per carton and prints the GS1 Logistics Labels; the tracking numbers above do not replace them.
Who should own each piece?
Give each system the job it is built for, and make the handoff a file or an API call, not a person. The EDI provider or ERP module owns the 850, 856, and 810, the partner mappings, and any GS1 labels. The carrier label tool owns rates, labels, tracking numbers, and the cost record. The warehouse owns the physical match between cartons and data.
If your orders originate in an ERP or WMS, the same reference discipline applies. Our pages on ERP shipping integration and WMS shipping integration cover the export and return paths, and EDI shipping labels covers where carrier labels sit in an EDI workflow.
Where GoatLabels fits
GoatLabels handles the carrier label side only. It rate-shops USPS, UPS, FedEx, and DHL from one account and prints the carrier label. One order can produce several labels, and each is a dated ledger line carrying the same reference, so a PO number entered once follows every carton. You can load orders with a bulk CSV import of up to 500 rows per file, or use the REST API, which has an Idempotency-Key and signed, replayable webhooks that can deliver tracking numbers to a script you run.
The limits are just as relevant here. GoatLabels does not send or receive EDI documents, so it will not create your 856. It does not print GS1-128 retailer compliance labels or assign SSCCs. It has no native EDI, ERP, or WMS connectors, and it does not write tracking back into an ERP automatically; that step is a CSV export or an API integration you build. It does not support bring-your-own carrier accounts, so if a routing guide requires shipping on the retailer's carrier account or a specific negotiated account, this is not the right tool for that order. It also does not handle LTL or freight.
For B2B parcel orders where you choose the carrier and your EDI system needs clean tracking data keyed by PO, it covers the label, the reference, and the cost record. See B2B shipping software for the wider picture.