Other Shipping Options

Updated 3 months ago by Colin Mollenhour

There are many advanced cases for shipping options that ShipStream supports. Some of these may be graduated to separate fields in the future but the Other Shipping Options field for Orders offers a way to support these fields now.

The field called "Other Shipping Options" may be used when the order is created and also afterward by clicking "Edit" on the Shipping & Handling Information section. This field is also available to use in Imports, API integrations and Scripts.

The Other Shipping Options field must be specified as valid JSON-encoded object or in the context of a script as an "object" (which will automatically be converted into JSON).

The features which may be used with Other Shipping Options are described below.

Multiple Fields

Multiple options may be combined by merging them into one object. For example to specify both "packaging" and "amazon_order_id" the JSON object may be specified like so:


External Shipping Methods

All "Other Shipping Options" data will also be passed through to the External Shipping Methods API Endpoint URL verbatim and it is up to the custom endpoint to implement these features for them to be supported.

Packaging Features

You may attach Packaging Features to an order using the packaging key. See Attaching Packaging Features to Orders for more detailed information.


The value must be an array of objects and each element should conform to the following format:

  • Either the sku or product_id of the Packaging Feature
  • And if the Packaging Feature should apply to specific order items, and array of the SKUs of the items to which it should apply.


"packaging": [
{ "product_id": 62},
{ "sku": "TapeLid"},
{ "sku": "BubbleWrap", "items": ["34-737-8757", "29-329-5002"]}

Amazon Merchant Fulfillment

Advanced options for Amazon Merchant Fulfillment may be specified using the following keys:


The "Site ID" of the Amazon Marketplace which the order belongs to. This is a country code and if not specified will default to the US marketplace. This field should not be specified if amazon_marketplace_id is also specified.



The "Marketplace ID" of the Amazon Marketplace which the order belongs to. This is a 13-14 character string which starts with "A". For example, the Marketplace ID for the Mexican Amazon Marketplace is "A1AM78C64UM0Y8". This field should not be specified if amazon_site is also specified.



By default ShipStream will look for an Amazon order ID in the Order # or Order Ref # fields. If for some reason you cannot place the Amazon order ID in one of these fields you can use this key in the Other Shipping Options to set the Amazon order ID.



Amazon Merchant Fulfillment works by returning multiple "eligible" services on a per-order basis. You can restrict which ones ShipStream may choose through the configuration (see Amazon Merchant Fulfillment). Additionally, you can exclude specific services on a per-order basis using this key.

The value must be an array and each element of the array must be a string which is either an exact match for a "ShippingServiceId" (see the full list), or if the string begins with "/" the value must be a valid regular expression matching a "ShippingServiceId". All services that match the regular expressions or exact strings will be excluded from the service selection process. If no eligible services are allowed an error will be thrown.



Reference Numbers

See Reference Numbers for more detailed information on using custom reference numbers.


The value must be an object with one or more keys:

  • default (value: null to disable the default ShipStream-generated number or a string to override)
  • invoice (value: string)
  • purchase_order (value: string)
  • rma (value: string)
  • {carrier_code} (e.g. "ups" or "fedex" - value: an object with carrier-specific reference number codes and strings as values)


"reference_numbers": {
"default": "995-9253-451551",
"invoice": "I-430001"

Shipping Accounts

You may override the Default Shipping Account Group configuration for an order using the shipping_account_group_id key. See Shipping Account Groups for more information on managing Shipping Account Groups.


The value of this key must be an integer representing the Group ID of a valid Shipping Account Group.



Duties Payor

The default International Duties and Taxes Payor may be configured for some carriers but you may also override the configuration for a given order using the duties_payor key.


The value of this key is one of the string values for shipper or recipient.



Carbon Neutral

Currently only supported for UPS, you can set the carbon_neutral key to request UPS Carbon Neutral shipping.


The value of this key is a boolean (true or false).



Consignee Billing

Currently only supported for UPS, you can set the consignee_billing key to take advantage of UPS Consignee Billing.


The value of this key is a boolean (true or false).



Delivery Instructions

The instructions key may be used to specify delivery instructions, if supported by the carrier. Currently only supported for FedEx.


The value of this key is a string. The maximum length is unknown.


{"instructions":"Please leave at side door"}

Export Compliance

If your shipment does not meet the requirements for the default EEI filing exemption (this is usually "30.37(a)") you may need to specify a custom Federal Trade Regulations (FTR) Exemption or Automated Export System (AES) Internal Transaction Number (ITN). You may use the export_compliance key to specify this information. This feature is currently only supported for FedEx and UPS and in both cases the shipper must either file the EEI electronically pre-departure or provide an FTR exemption.

See FedEx Electronic Export Information and UPS Electronic Export Information


The value of this field is an object with one of the keys: ftr_exemption or aes_itn and the value being a string containing the appropriate data.

Example for FTR Exemption


See FedEx FTR Exemption Chart

Example for AES ITN


Custom Data

You can add custom data into Other Shipping Options, but unless it is documented here it may not have any effect. It is recommended to use a safe "namespace" to avoid conflicts with future officially supported features. For example, prefix the keys or use a single key with a nested object to store your custom data. All "Other Shipping Options" data including the custom data will be passed through to the External Shipping Methods API Endpoint URL verbatim.


"acme": {
"option1": true

How did we do?