Install
Install

UPS WorldShip Export – Configuration

The UPS WorldShip Export in the Matrixify app produces an XML file with your store’s Orders data that imports directly into UPS
WorldShip. Its behavior can be adjusted with a per-store set of technical configuration parameters listed below.

Copy the full UPS WorldShip configuration example JSON, fill in your values, remove attributes you do not wish to set or configure, and send the configuration JSON to the Matrixify Support – we will apply it to your store. You do not need to use/set all configuration attributes – the Matrixify app will default to standard values/behviour if an attribute is not specifically configured.

Prefer not to edit JSON? Ask our AI Agent Maibo to prepare it from a plain-language description.

For instructions on how to Export Shopify Orders data to the UPS WorldShip file format using the Matrixify app, see our tutorial Export Orders from Shopify to UPS WorldShip®.

Examples of configuration JSON

Below you see examples of JSON code structure for the UPS WorldShip configuration within the Matrixify app.

You can copy the full JSON and keep only the parameters you need, replace the values with yours, and send it to Matrixify Support. All parameters are optional, and a typical store sends only a small subset.

Common minimum field configuration

{
  "DescriptionOfGoods": "Clothing",
  "Telephone": "+1 1234567890",
  "Email": "[email protected]",
  "price_includes_vat": false,
  "ShipperNumber": "A11B22"
}

Full UPS WorldShip configuration

{
  "DescriptionOfGoods": "Clothing",
  "Telephone": "+1 1234567890",
  "Email": "[email protected]",
  "price_includes_vat": true,
  "ShipperNumber": "A11B22",
  "ShipperNumberForAccessPoint": "88AA89",
  "ShipperNumberForNoAccessPoint": "86AA98",
  "xml_format": "xml_auto_import",
  "split_packages_per_unit": true,
  "package_dimensions_from_variant_metafields": {
    "Length": "custom.length",
    "Width": "custom.width",
    "Height": "custom.height"
  },
  "weight_unit": "lb",
  "PackageType": "CP",
  "fail_order_when_package_data_missing": true,
  "reference1_source": "customer_metafield:custom.customer_number",
  "reference2_source": "sku",
  "ship_to_elements_from_customer_metafields": {
    "CustomerID": "custom.customer_number",
    "LocationID": "custom.customer_number"
  },
  "ServiceType": "GND",
  "use_shipping_line_mapping": false,
  "number_of_packages_from_quantity": false,
  "ProfileName": {
    "GB": "GB_Youemp",
    "DE_FR_NL": "EU_Youemp",
    "EU": "EU_Einzelsendung",
    "WW": "WW_Youemp"
  },
  "InvoiceUnitOfMeasure": "CS",
  "BillTransportationTo": "SHP",
  "BillDutyTaxTo": "REC",
  "include_quantum_view_notify_block": true,
  "include_bill_duty_tax_to": true
  "@ProcessStatus": "0",
  "@ShipmentOption": "SC",
  "include_shipment_key": true,
  "remove_number_sign_from_shipment_key": true,
  "fallback_shipping_email": "[email protected]",
  "sanitize_phone": true,
  "remove_vat_for_GB": true,
  "ThirdPartyIntermediary": {
    "CompanyOrName": "Company Name",
    "Attention": "Contact Person",
    "Address1": "123 Main St",
    "CountryTerritory": "US",
    "PostalCode": "12345",
    "CityOrTown": "City Name",
    "StateProvinceCounty": "FL",
    "Telephone": "5551234567",
    "UpsAccountNumber": "ABC123"
  },
  "item_substitutions_by_sku": {
    "SKU_123ABC": [
      {
        "sku": "SKU_XYZ987",
        "price": 10.0,
        "quantity": 1,
        "title": "Replacement Item",
        "harmonized_system_code": "650500",
        "country_code_of_origin": "US"
      }
    ]
  }
}

Configuration field descriptions

Common information

These attributes are used by most shops and should always be included.

Field Description and allowed values
DescriptionOfGoods Text written into <DescriptionOfGoods> for the customs declaration.

Allowed Values

String.

Default

The first Line Item’s vendor.

Example
"Cans of our Beer, Clothing"
Telephone Fallback phone number used for <Telephone> when the shipping address has none.

Allowed Values

String.

Default

Absent.

Example
"+1 1234567890"
Email Access Point notification failed-email address, used when an Order routes to a UPS Access Point.

Allowed Values

Email string.

Default

Absent.

Example
"[email protected]"
price_includes_vat When enabled, prices for EU destinations are treated as VAT-inclusive, and the VAT portion is removed from the exported unit prices and freight charge. When disabled, prices are used as-is.

Allowed Values

true, false

Default

false

Example
true

XML Format

Field Description and allowed values
xml_format UPS WorldShip can import shipment XML in two official formats, and this parameter selects which one the Export produces.
Choose it by how your WorldShip consumes the file.xml_auto_import – the UPS XML Auto Import format (<OpenShipments>). WorldShip watches a folder and processes new files hands-off, printing labels automatically. This is the default, and the format the Export has always produced.

xml_batch_import – the UPS XML Batch Import format (<Shipments>). For bringing shipments in through the WorldShip Import-Export tab – imported as a batch, or recalled one at a time with Keyed Import. This format writes a <Good> for every Line Item of the Order and wraps the references in <ReferenceNumbers>. Enable include_shipment_key together with it so each shipment can be recalled by the Order name.

If WorldShip prints labels by itself from a watched folder, keep the default. If you open WorldShip and import shipments from the Import-Export tab, you need xml_batch_import.

Allowed Values

xml_auto_import, xml_batch_import

Default

xml_auto_import

Example
xml_batch_import

Shipper Number (one of these patterns is required)

Use either ShipperNumber alone, or both ShipperNumberForAccessPoint and ShipperNumberForNoAccessPoint together. If both patterns are present, the Access Point/No Access Point pair takes priority.

Field Description and allowed values
ShipperNumber Your UPS shipper account number is written into <ShipperNumber>. Used for Orders that do not route to a UPS Access Point (when set), and as the single account for all shipments when you do not configure separate Access-Point accounts. See the selection order note below the table.

Allowed Values

String.

Default

Absent.

Example
"A11B22"
ShipperNumberForAccessPoint UPS account number used when the Order routes to a UPS Access Point.

Allowed Values

String.

Default

Absent.

Example
"88AE89"
ShipperNumberForNoAccessPoint UPS account number used when the Order does not route to a UPS Access Point and ShipperNumber is not set.

Allowed Values

String.

Default

Absent.

Example
"86E898"

Package splitting and per-package data

Field Description and allowed values
split_packages_per_unit When enabled, every fulfillable unit of every shippable Line Item becomes its own <Package> element – one UPS label per unit. For example, SKU A quantity 2 + SKU B quantity 3 produces 5 packages in one shipment. <NumberOfPackages> becomes the package count and <ShipmentActualWeight> becomes the sum of the package weights. Only shippable units are counted; on partially fulfilled Orders, only the still-fulfillable quantity is split. When disabled, no <Package> elements are written (legacy shape).

Allowed Values

true, false

Default

false

Example
true
package_dimensions_from_variant_metafields Maps each WorldShip package dimension element name to the Variant Metafield that holds its value. The object key is the XML element name written into each <Package>; the value is the namespace.key of the Variant Metafield to read. Supports Shopify dimension-type Metafields ({"value":20.0,"unit":"INCHES"}) and plain numeric Metafields. Any stored unit (inches, feet, yards, millimeters, centimeters, meters) is converted to inches. Whole numbers are written without a trailing .0 (20.0 becomes 20); real decimals are preserved (17.5). A dimension whose Metafield is empty is omitted from that package. Used only when split_packages_per_unit is true.

Allowed Values

Object of ElementName: "namespace.key" pairs. Typical element names: Length, Width, Height.

Default

Absent – no dimensions written.

Example
{
  "Length": "custom.length",
  "Width": "custom.width",
  "Height": "custom.height"
}
weight_unit Unit for the per-package <Weight> and for the summed <ShipmentActualWeight>, converted from the Line Item weight. Whole numbers drop the trailing .0; decimals are preserved with no rounding. Affects output only when split_packages_per_unit is true; without splitting, <ShipmentActualWeight> stays in kilograms regardless.

Allowed Values

"kg", "lb"

Default

"kg"

Example
"lb"
PackageType Package-type code used for the shipment-level <PackageType> and each package’s <PackageType>.

Allowed Values

Any UPS WorldShip package-type code (string), for example "CP" (customer packaging).

Default

"CP"

Example
"CP"
fail_order_when_package_data_missing When enabled together with splitting, an Order whose purchased Variant is missing any configured dimension or has no weight is excluded from the Export and reported as a failed item, naming the Order and the offending SKU and fields. Other Orders in the same Export continue. Prevents printing labels with missing or default box sizes – fix the product data and re-export. When disabled, missing dimensions are simply omitted from the package.

Allowed Values

true, false

Default

false

Example
true

References and ship-to linkage

Field Description and allowed values
reference1_source Chooses what Shopify data field fills <Reference1>, applied to both <ShipmentInformation> and each <Package>.

Allowed Values

"order_name" – the Order name (for example #EZ1019).
"order_id" – the Shopify Order ID.
"sku" – the SKU; at package level the package’s own Line Item SKU, at shipment level the first Line Item’s SKU.
"customer_metafield:namespace.key" – the value of that Customer Metafield.

Default

Order name.

Example
"customer_metafield:custom.customer_number"
reference2_source Chooses what Shopify data field fills <Reference2>, applied to both <ShipmentInformation> and each <Package>.

Allowed Values

"order_name" – the Order name (for example #EZ1019).
"order_id" – the Shopify Order ID.
"sku" – the SKU; at package level the package’s own Line Item SKU, at shipment level the first Line Item’s SKU.
"customer_metafield:namespace.key" – the value of that Customer Metafield.

Default

Order ID.

Example
"sku"
ship_to_elements_from_customer_metafields Maps <ShipTo> child element names to Customer Metafield keys. Each listed element is written as the first children of <ShipTo>, taking its value from the named Customer Metafield – this attaches a shipment to an existing WorldShip customer record instead of writing a fresh address. An element is omitted when the Order has no customer or the Metafield value is empty.

Allowed Values

Object of ElementName: "namespace.key" pairs. Typical element names: CustomerID, LocationID.

Default

Absent – no CustomerID / LocationID written.

Example
{
  "CustomerID": "custom.customer_number",
  "LocationID": "custom.customer_number"
}

Shipment information

Field Description and allowed values
ServiceType Forces a specific UPS service code.

When absent, the service code is derived automatically based on the Orders Shipping Line.
When present, it overrides all automatic detection, including use_shipping_line_mapping and any region-derived service.

Allowed Values

Any UPS Service Type – see UPS Service Codes, UPS Service Codes for Freight Shipments, UPS Service Codes for UPS Mail Innovations Shipments and UPS Service Codes and Weight Limits for UPS SurePost Shipments.

Default

Derived automatically from destination and shipping line.

Example
"GND"
ProfileName Selects the WorldShip ProfileName by destination region. Regions: GB = United Kingdom, DE_FR_NL = Germany / France / Netherlands, EU = remaining EU member states, WW = everywhere else. When absent, a profile is derived only for B2C EU shipments.

Allowed Values

Region object with string values for keys GB, DE_FR_NL, EU, WW.

Default

Absent – derived for EU B2C.

Example
{
  "GB": "GB_Youemp",
  "DE_FR_NL": "EU_Youemp",
  "EU": "EU_Einzelsendung",
  "WW": "WW_Youemp"
}
use_shipping_line_mapping When enabled, the Shopify shipping line title is mapped to a UPS service code (for example, UPS Next Day Air becomes 1DA). When disabled, no mapping is attempted, and the service code falls back to the regional default. Ignored when ServiceType is set thus forcing exact service type.

Allowed Values

true, false

Default

true

Example
false
number_of_packages_from_quantity When enabled, <NumberOfPackages> is the Order’s total fulfillable quantity instead of 1. Ignored when split_packages_per_unit is on (splitting always sets <NumberOfPackages> to the actual package count).

Allowed Values

true, false

Default

false

Example
true
InvoiceUnitOfMeasure Written into each <Goods> block’s <InvoiceUnitOfMeasure>.

Allowed Values

UPS unit-of-measure code (string), for example "PC" (pieces) or "CS" (cases).

Default

"PC"

Example
"CS"
BillTransportationTo Who pays for transportation, written into <BillTransportationTo>.

Allowed Values

"SHP" (shipper), "REC" (receiver), "TP" (third party). For "TP", also set ThirdPartyIntermediary.

Default

"SHP"

Example
"TP"
BillDutyTaxTo Who pays duty and tax, written into <BillDutyTaxTo>. Forced to "SHP" when the derived profile is EU_Einzelsendung.

Allowed Values

"REC" (receiver), "SHP" (shipper), "TP" (third party).

Default

"REC"

Example
"SHP"
include_quantum_view_notify_block When enabled and the shipment has an email address, a UPS Quantum View Notify (QVN) block is added, requesting a ship notification.

Allowed Values

true, false

Default

false

Example
true
include_bill_duty_tax_to When disabled, will remove the BillDutyTaxTo attribute from the Shipment Information.

Allowed Values

true, false

Default

true

Example
false
@ProcessStatus Value of the ProcessStatus attribute on the OpenShipment element.

Allowed Values

String, typically "0" or "".

Default

"0"

Example
""
@ShipmentOption Value of the ShipmentOption attribute on OpenShipment. Either a plain string used for all destinations, or a region object chosen by destination (same regions as ProfileName). "SC" means ShipmentCharge.

Allowed Values

String (for example "", "SC"), or a region object with keys GB, DE_FR_NL, EU, WW.

Default

"SC" for B2C EU shipments, empty otherwise.

Example
{
  "GB": "",
  "DE_FR_NL": "SC",
  "EU": "",
  "WW": ""
}

Ship-to address and contact

Field Description and allowed values
include_shipment_key When enabled, a <ShipmentKey> equal to the Order name is written as the first element of each OpenShipment, so WorldShip can key its import on it.

Allowed Values

true, false

Default

false

Example
true
remove_number_sign_from_shipment_key When true, the leading # of the Order name is stripped from <ShipmentKey> (#1009 becomes 1009) – some WorldShip keyed-import setups match on the bare Order
number.

Allowed Values

true, false

Default

false

Example
true
fallback_shipping_email Fallback email used for <EmailAddress> when the Order has no contact, customer, or order email.

Allowed Values

Any email string.

Default

Absent.

Example
"[email protected]"
sanitize_phone When enabled, spaces and dashes are stripped from the Ship-to phone number (some WorldShip setups reject formatted numbers).

Allowed Values

true, false

Default

false

Example
true

Pricing and VAT

Field Description and allowed values
remove_vat_for_GB When enabled, VAT is also removed from prices for United Kingdom destinations. Relevant when price_includes_vat is true.

Allowed Values

true, false

Default

false

Example
true

International and third party

Field Description and allowed values
ThirdPartyIntermediary Third-party intermediary details. When present, the whole object is written into the <ThirdParty>, <ThirdPartyReceiver>, and <Importer> blocks – each sub-key becomes an XML element inside those blocks. Required when BillTransportationTo is "TP".

Allowed Values

Object; see the sub-fields table.

Default

Absent.

Example
{
  "CompanyOrName": "Company Name",
  "Attention": "Contact Person",
  "Address1": "123 Main St",
  "CountryTerritory": "US",
  "PostalCode": "12345",
  "CityOrTown": "City Name",
  "StateProvinceCounty": "FL",
  "Telephone": "5551234567",
  "UpsAccountNumber": "ABC123"
}
item_substitutions_by_sku Maps a purchased SKU to an array of substitute items. Each matched Line Item is replaced by the listed substitutes, with the substitute quantity multiplied by the ordered quantity. Used by stores that ship bundle components under different SKUs than the one sold.

Allowed Values

Object mapping "OriginalSKU" to an array of substitute item objects.

Default

Absent.

Example
{
  "ORIGINAL_SKU": [
    {
      "sku": "REPLACEMENT_SKU",
      "price": 10.0,
      "quantity": 1,
      "title": "Replacement Item",
      "harmonized_system_code": "650500",
      "country_code_of_origin": "US"
    }
  ]
}

Ask Maibo to prepare the configuration

You do not have to assemble the JSON by hand. Ask Maibo, our AI Agent, to guide you through a short set of questions and prepare the configuration JSON for you.
Maibo knows every parameter on this page and their allowed values.

Maibo is available in:

  • Slack
  • the in-app chat, inside the Matrixify app
  • the chat on our website

If you have connected Matrixify to your own AI Agent through the MCP connection, you can send the same prompt to your own AI Agent instead of Maibo – it produces the same configuration JSON.

Copy this prompt and send it to Maibo (or to your own AI Agent) to start:

I want to set up the "Export to UPS WorldShip" format in Matrixify for my Shopify store. Help me build the EXPORT_UPS_WORLDSHIP_SETUP configuration JSON.

Please interview me one question at a time, in plain language - do not ask me to write JSON or to know parameter names. Ask about the essentials first (my store .myshopify.com domain, description of goods for customs, a phone number and a notification email, my UPS shipper number, and whether my product prices already include VAT), then the optional features: splitting each ordered unit into its own package with dimensions and weight taken from my product metafields, what goes into the Reference 1 and Reference 2 fields, linking shipments to my existing WorldShip customer records, which UPS service to use, who pays for shipping and duties, VAT handling, notifications, bundles that ship as separate components, and any advanced options.

Skip questions that do not apply based on my earlier answers, and only include the settings I actually need - leave everything else at its default. Use the Matrixify "UPS WorldShip Export - Configuration" documentation for the available parameters and their allowed values.

When we are done, give me the configuration as a single JSON object plus a short plain-language summary of each setting so I can check it. Then I will send it to Matrixify Support to apply to my store.

Start by asking me the first question.

If you already know exactly what you want, you can skip the questions and just describe it directly, for example:

I want to set up the "Export to UPS WorldShip" format in Matrixify for my Shopify store. Help me build the EXPORT_UPS_WORLDSHIP_SETUP configuration JSON.

Split every ordered unit into its own package. Take Length, Width and Height from the Variant Metafields custom.length, custom.width and custom.height, and use pounds for the weight. 
Fail the Order if any dimension or weight is missing. 
Put my customer number Metafield custom.customer_number into Customer ID, Location ID and Reference 1, and the SKU into Reference 2. 
My UPS shipper number is R89Y57, invoice unit of measure is CS, and my prices do not include VAT.

Either way, you get back a ready configuration JSON. Review it against the tables on this page – check each key and its value against the field it maps to – and confirm it matches what you described.
Once it looks correct, send it to our Support.