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 ValuesString. DefaultThe 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 ValuesString. DefaultAbsent. Example"+1 1234567890" |
Access Point notification failed-email address, used when an Order routes to a UPS Access Point.
Allowed ValuesEmail string. DefaultAbsent. 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
Default
Exampletrue |
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.
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
Default
Examplexml_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 ValuesString. DefaultAbsent. Example"A11B22" |
| ShipperNumberForAccessPoint | UPS account number used when the Order routes to a UPS Access Point.
Allowed ValuesString. DefaultAbsent. Example"88AE89" |
| ShipperNumberForNoAccessPoint | UPS account number used when the Order does not route to a UPS Access Point and ShipperNumber is not set.
Allowed ValuesString. DefaultAbsent. 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
Default
Exampletrue |
| 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 ValuesObject of DefaultAbsent – 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
Default
Example"lb" |
| PackageType | Package-type code used for the shipment-level <PackageType> and each package’s <PackageType>.
Allowed ValuesAny UPS WorldShip package-type code (string), for example Default
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
Default
Exampletrue |
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
DefaultOrder 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
DefaultOrder 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 ValuesObject of DefaultAbsent – 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. Allowed ValuesAny 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. DefaultDerived 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 ValuesRegion object with string values for keys DefaultAbsent – 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
Default
Examplefalse |
| 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
Default
Exampletrue |
| InvoiceUnitOfMeasure | Written into each <Goods> block’s <InvoiceUnitOfMeasure>.
Allowed ValuesUPS unit-of-measure code (string), for example Default
Example"CS" |
| BillTransportationTo | Who pays for transportation, written into <BillTransportationTo>.
Allowed Values
Default
Example"TP" |
| BillDutyTaxTo | Who pays duty and tax, written into <BillDutyTaxTo>. Forced to "SHP" when the derived profile is EU_Einzelsendung.
Allowed Values
Default
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
Default
Exampletrue |
| include_bill_duty_tax_to | When disabled, will remove the BillDutyTaxTo attribute from the Shipment Information.
Allowed Values
Default
Examplefalse |
| @ProcessStatus | Value of the ProcessStatus attribute on the OpenShipment element.
Allowed ValuesString, typically Default
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 ValuesString (for example Default
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
Default
Exampletrue |
| 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 Ordernumber. Allowed Values
Default
Exampletrue |
| fallback_shipping_email | Fallback email used for <EmailAddress> when the Order has no contact, customer, or order email.
Allowed ValuesAny email string. DefaultAbsent. 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
Default
Exampletrue |
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
Default
Exampletrue |
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 ValuesObject; see the sub-fields table. DefaultAbsent. 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 ValuesObject mapping DefaultAbsent. 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.
- 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.