Skip to content
Shipment ASN

Shipment ASN

This webhook is triggered when the “Submit ASN” button is clicked during step 3 (Shipping and Packing Labels) of the Wholesale Order processing flow. This does not apply to SPS Commerce orders.

The packing_layout field in the webhook body contains the full container hierarchy for the order. For a detailed explanation of the packing layout structure, container types, and field definitions, see Export Packing Layout.

The webhook requires:

  • A Shipment ASN webhook configured on the account
  • The wholesale order must have a packing configuration
  • The webhook’s shop_name must match the order’s trading_partner_name, or be set to * to match all trading partners

Note

The webhook can fire before a shipment exists. When no shipment is available, shipment_identification and ship_date will be null.

The payload varies depending on whether the order ships via Freight or Courier.

Freight Orders

In addition to the common fields, freight orders include scac, bill_of_lading, pro_number, and trailer_number in the shipping details. The carrier and shipping_method are sourced from the shipping details, falling back to the order’s carrier and shipping_method if not set.

{
    "account_id": 8444,
    "order_id": 666678858,
    "shipment_identification": "666678858",
    "webhook_type": "Shipment ASN",
    "shipping_details": {
        "scac": "OTH",
        "carrier": "Trucking Co",
        "shipping_method": "Freight",
        "bill_of_lading": "bolnumber01",
        "pro_number": "0123456789",
        "trailer_number": "trailer-number0123",
        "shipment_id": null,
        "ship_date": null,
        "requested_delivery_date": "2025-11-15T00:00:00",
        "ship_not_before_date": "2025-11-01T00:00:00",
        "ship_no_later_than_date": "2025-11-10T00:00:00",
        "trading_partner_id": "TP-001",
        "trading_partner_name": "some-retailer"
    },
    "packing_layout": {
        "created_at": "2025-09-03T16:51:54",
        "updated_at": "2025-09-03T16:51:54",
        "containers": [
            {
                "type": "Pallet",
                "details": {
                    "height": 60,
                    "length": 48,
                    "width": 40,
                    "weight_in_oz": 448,
                    "barcode": null,
                    "shipping_box_id": "custom-46376",
                    "container_number": 1
                },
                "containers": [
                    {
                        "type": "Box",
                        "details": {
                            "height": 12,
                            "length": 12,
                            "width": 12,
                            "weight_in_oz": 192,
                            "barcode": null,
                            "shipping_box_id": "custom-9247",
                            "container_number": 1
                        },
                        "line_items": [
                            {
                                "order_line_item_id": 1631737888,
                                "partner_line_item_id": "MO44-472777084",
                                "sku": "coca-lata",
                                "name": "coca-lata",
                                "quantity": 3
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Courier Orders

Courier orders do not include freight-specific fields (scac, bill_of_lading, pro_number, trailer_number). The carrier and shipping_method are sourced directly from the order.

{
    "account_id": 8444,
    "order_id": 666678859,
    "shipment_identification": "666678859",
    "webhook_type": "Shipment ASN",
    "shipping_details": {
        "carrier": "ups",
        "shipping_method": "Ground",
        "shipment_id": "315518042",
        "ship_date": "2025-10-02",
        "requested_delivery_date": "2025-12-01T00:00:00",
        "ship_not_before_date": "2025-11-20T00:00:00",
        "ship_no_later_than_date": "2025-11-28T00:00:00",
        "trading_partner_id": "TP-002",
        "trading_partner_name": "some-retailer"
    },
    "packing_layout": {
        "created_at": "2025-09-03T16:51:54",
        "updated_at": "2025-09-03T16:51:54",
        "containers": [
            {
                "type": "Box",
                "details": {
                    "height": 12,
                    "length": 12,
                    "width": 12,
                    "weight_in_oz": 192,
                    "barcode": null,
                    "shipping_box_id": "custom-9247",
                    "container_number": 1
                },
                "line_items": [
                    {
                        "order_line_item_id": 1631737888,
                        "partner_line_item_id": "MO44-472777084",
                        "sku": "coca-lata",
                        "name": "coca-lata",
                        "quantity": 3
                    }
                ]
            }
        ]
    }
}

Shipment Identification Field

A string identifier that represents a portion of the order that will ship together. Currently, orders ship as a single unit, so this defaults to the order ID.

It is provided as a string to accommodate future formats.

Contrary to the shipment_id his field is always present, even before a shipment exists, since it is determined at the order level rather than at fulfillment time.

Shipping Details Fields

FieldFreightCourierDescription
scacStandard Carrier Alpha Code. null if not set.
carrierShipping carrier. Freight: from shipping details, falls back to order. Courier: from order.
shipping_methodShipping method. Same fallback logic as carrier.
bill_of_ladingBill of lading number. null if not set.
pro_numberPRO tracking number. null if not set.
trailer_numberTrailer number. null if not set.
shipment_idInternal identifier for the shipment, null if no shipment exists yet.
ship_dateShipment creation date (ISO format, date only). null if no shipment exists yet.
requested_delivery_dateRequested delivery date. null if not set.
ship_not_before_dateEarliest allowed ship date. null if not set.
ship_no_later_than_dateLatest allowed ship date. null if not set.
trading_partner_idTrading partner identifier. null if not set.
trading_partner_nameTrading partner name. null if not set.

Webhook Matching

The webhook uses shop_name to determine which configured endpoint receives the payload:

  • If the webhook’s shop_name matches the order’s trading_partner_name, the webhook fires.
  • If the webhook’s shop_name is set to *, it matches all trading partners.

This allows configuring a single webhook endpoint for all trading partners, or separate endpoints per trading partner.