Site Logo

🎉 ShipEngine is becoming ShipStation API 🎉

Over the next few months you'll notice the ShipEngine website, documentation portal, and dashboard being rebranded as ShipStation API. For our ShipEngine customers, you don't need to take any action or change any of your integrations in any way. All endpoints will remain the same and continue to function as they always have.

To learn more about what's coming, review our New ShipStation API page.

UPS

United Parcel Service, Inc. (UPS) is the world's largest domestic and international package delivery company and a fully integrated partner with ShipStation API.

In addition to domestic and international services, ShipStation API accounts in the United States can also leverage UPS Mail Innovations® consolidation services via ShipStation API, if available to your UPS account.

This guide provides developers with the details necessary to build the UPS shipping capabilities from your own UPS account into your ShipStation API workflows.

If you are using or plan to use the UPS services included with ShipStation API, rather than connecting your own UPS account, see our UPS from ShipStation guide.

Requirements

PropertyDescriptionTypeRequired?
nicknameThis is a nickname for you to identify the carrier account in ShipStation API.stringrequired
account_numberAccount Numberstringrequired
account_postal_codeAccount Postal CodestringNo
account_country_codeCountry your UPS account is based instringNo

Connect Account

You can connect a UPS account using the POST method to the /v1/connections/carriers/ endpoint, or via the ShipStation API Dashboard.

For instructions on connecting UPS via the ShipStation API dashboard, go to our UPS help article.

Connect via Endpoint

carrier_name: ups

POST /v1/connections/carriers/:carrier_name

Sample request:

1
2
3
4
5
6
7
8
9
10
11
POST /v1/connections/carriers/ups HTTP/1.1
Host: api.shipengine.com
API-Key: __YOUR_API_KEY_HERE__
Content-Type: application/json
{
"nickname": "My UPS account",
"account_number": "123456789",
"account_postal_code": "10001",
"account_country_code": "US"
}

Example Response

You will receive a 302 response with a Location header. You must redirect your user to the URL from this header, which will land on a UPS sign-in screen.

1
"Location": "https://authbridge.auctane.com/authflow/ups/shipengine/initiate?callbackUrl=https..."

We advise redirecting your user to this location URL in a pop-up window. When the user has signed in, they will land on a page that will direct them to close the window. At this point, your application should make a list carrier call to retrieve the new list of connected carrier accounts.

Reconnecting a UPS Account

In some cases, you may need to reconnect a UPS account to ShipStation API. Reconnection can take place in the ShipStation API dashboard or via API. Using the Reconnect method will allow you to keep the same carrier_id and connection contract.

The following scenarios will require you to reconnect your UPS account to ShipStation API:

  • If you change your UPS account password, use the reconnect option to reauthorize the connection.
  • If your UPS account refresh token times out, use the reconnect option to resolve this issue and maintain your carrier_id. This issue is somewhat rare but can occur on some accounts.
  • If your UPS account was connected before June 3, 2024, you'll need to reconnect to re-establish a connection with the UPS oAuth API. Review our How To Reauthorize Your UPS Account help article for details.

Example Reconnect Call

PUT /v1/connections/carriers/:carrier_name/:carrier_id

1
2
3
4
5
6
7
8
9
10
11
PUT /v1/connections/carriers/ups/se-12345 HTTP/1.1
Host: api.shipengine.com
API-Key: __YOUR_API_KEY_HERE__
Content-Type: application/json
{
"nickname": "My UPS account",
"account_number": "123456789",
"account_postal_code": "10001",
"account_country_code": "US"
}

Modify Carrier Settings

ShipStation API takes advantage of some of UPS's advanced functionality but does not enable it by default. If you need to modify the properties of your UPS account connection or enable some of the carrier's advanced functionality not enabled by default, you can update these settings in your ShipStation API account dashboard or via API using the PUT method with the /v1/connections/carriers/ endpoint.

Additional Properties

ParameterTypeDescription
nicknamestringThe display name assigned to the account.
is_primary_accountbooleanIndicates the account is or is not the default account.
pickup_typeenumerated stringdaily_pickup, occasional_pickup, customer_counter
See our Intro to Pickup Dropoff apge to learn more.
use_carbon_neutral_shipping_programbooleanAdds a fee to the shipment to purchase carbon offset credits.
use_ground_freight_pricingbooleanAn advanced option available for certain UPS services. See our UPS Ground Freight page for more details.
use_consolidation_servicesbooleanEnable the use of UPS consolidation services like UPS Mail Innovations® or UPS Ground Saver.
use_order_number_on_mail_innovations_labelsboolean
mail_innocations_endorsementenumerated stringreturn_service_requested forwarding_service_requested address_service_requested change_service_requested leave_if_no_response
mail_innovations_cost_centerstring
use_negotiated_ratesbooleanIf your account has been approved for negotiated rates, you can enable this option to use those rates. Once enabled, negotiated rates cannot be disabled.
account_postal_codestringRequired Postal code for the account.
invoicestring
mail_innovations_customer_idstringRequired to get rates for MI services. Also known as UPS MI account number.
mail_innovations_customer_guidstringRequired to get rates for MI services. Also known as a rate key.
account_country_codestringRequired 2-character country code associated with the account.
account_numberstringThe UPS account number.

Sample update request:

PUT /v1/connections/carriers/:carrier_name/:carrier_id/settings

1
2
3
4
5
6
7
8
9
10
11
PUT /v1/connections/carriers/ups/se-108252/settings HTTP/1.1
Host: api.shipengine.com
API-Key: __YOUR_API_KEY_HERE__
Content-Type: application/json
{
"nickname": "my very cool UPS account",
"pickup_type": "daily_pickup",
"is_primary_account": "true",
"use_negotiated_rates": "true"
}

A successful request will receive an HTTP status 204 response.

Rates

UPS supports sending estimated rates (including your contracted negotiated rates) to ShipStation API.

Service Details

Available UPS services are provided below. Please note that carriers may update their available services at any time. To ensure you are always using valid services, you can use the list carrier services endpoint at any time.

For most services, the max weight is 150 lbs and the max combined length and girth (2Wx2H) is 165" (419cm).

Domestic Services

ServiceTransit TimeService Codes
UPS® Ground1-5 Business daysups_ground
UPS 3 Day Select®3 Business daysups_3_day_select
UPS 2nd Day Air®2 Business daysups_2nd_day_air
UPS 2nd Day Air AM®2 Business days (before noon)ups_2nd_day_air_am
UPS Next Day Air Saver®1 Business day (End of day)ups_next_day_air_saver
UPS Next Day Air®1 Business dayups_next_day_air
UPS Next Day Air® Early1 Business day (delivery between 8:00 am-10:00 am)ups_next_day_air_early_am

Ground Saver Services

On April 2nd, 2025, UPS replaced SurePost services with UPS Ground Saver®. This domestic service is available to US-based accounts and has a delivery time of Ground+1 day. While the name of the service has been updated, the Service Codes you use in your requests remain the same.

ServiceService Codes
UPS Ground Saver® Less than 1 lbups_surepost_less_than_1_lb
UPS Ground Saver® 1 lb or Greaterups_surepost_1_lb_or_greater
UPS Ground Saver® BPMups_surepost_bpm
UPS Ground Saver® Mediaups_surepost_media

International Services

ServiceTransit TimeService Codes
UPS® Standard (International)Varies by locationups_standard_international
UPS® Ground (International)Varies by locationups_ground_international
UPS WorldWide Expedited®2-5 Business days, can vary by locationups_worldwide_expedited
UPS WorldWide Saver®1-3 Business days, can vary by locationups_worldwide_saver
UPS WorldWide Express®1-3 Business days, can vary by locationups_worldwide_express
UPS WorldWide Express Plus®1-3 Business days, can vary by locationups_worldwide_express_plus
UPS Next Day Air® (International)Next dayups_next_day_air_international
UPS 2nd Day Air® (International)1-2 Business days, can vary by locationups_2nd_day_air_international

Mail Innovations Services

US-based accounts that have Mail Innovations service enabled, also have access to these services:

Service NameService CodeDescription
Expedited Mail Innovationsexpedited_mail_innovationsDomestic service, rates will be returned if they are loaded into your UPS account.
Priority Mail Innovationspriority_mail_innovationsInternational service, rates not available.
Economy Mail Innovationseconomy_mail_innovationsInternational service, rates not available.

To configure your account for shipping with Mail Innovations services, you will need to modify your UPS carrier settings and update the following UPS-specific properties:

  • Set use_consolidation_services to true
  • Populate the mail_innovations_endorsement, mail_innovations_cost_center, mail_innovations_customer_id, and mail_innovations_customer_guid properties with their corresponding values, which your UPS account rep can provide you.

Shipping from Great Britain to Northern Ireland

At this time, UPS has not provided any details about required changes when creating labels for shipment from Great Britain to Northern Ireland as related to the Windsor Framework.

We will provide details about using UPS to ship to Northern Ireland as soon as they are available.

Return Services

UPS supports returns for all domestic services except for SuerPost and Mail Innovations®.

Although UPS Mail Innovations® does offer a return service option, we do not currently support it in ShipStation API. If you attempt to create a return label using UPS Mail Innovations®, you will see an Object reference not set to an instance of an object error message.

Packages

Package NamePackage CodeDimensions
UPS Letterups_letter12.5-15in x 9.5in
UPS 10 KG Box®ups_10_kg_box16.5in x 13.25in x 10.75in
UPS 25 KG Box®ups_25_kg_box19.75in x 17.75in x 13.25in
UPS Tubeups_tube Triangular tube for rolled papers
38in x 6in x 6in
UPS Express® Pakups_express_pak16in x 12.75 in
UPS Express® Boxups_express_box12.5in x 3.75in x 18in
UPS Express® Box - Smallups_express_box_small13in x 11in x 2in
UPS Express® Box - Mediumups_express_box_medium16in x 11in x 3in
UPS Express® Box - Largeups__express_box_large18in x 13in x 3in

UPS has 10 predefined package types for use with MI services:

Predefined Package NamePackage CodeMin/Max Weight
MI - BPM Flatmi_bpm_flat0.1 lb. - 15 lbs.
MI - BPM Parcelmi_bpm_parcel0.1 lb. - 15 lbs.
MI - First Classmi_first_class0.1 lb. - 13 lbs.
MI - Irregularsmi_irregulars1 oz. - 16 oz.
MI - Machinablesmi_machinables6 oz. - 16 oz.
MI - Media Mailmi_media_mail0.1 lb. - 70 lbs.
MI - Parcel Postmi_parcel_post0.1 lb. - 70 lbs.
MI - Prioritymi_priority0.9 lb. - 70 lbs.
MI - Standard Flatmi_standard_flat0.1 oz. - 16 oz.
MI Intl - BPMmi_intl_bpm0.1 lb. - 15 lbs.
MI Intl - Flatsmi_intl_flats0.1 oz. - 16 oz.
MI Intl - Parcelsmi_intl_parcels0.1 lb. - 15 lbs.

Adding Shipment Insurance

UPS supports adding insurance to your shipments. Review the Parcel Insurance page for details on adding shipment insurance with ShipStation API.

A few notes about adding insurance to UPS shipments:

  • UPS covers the first $100 by default.
  • Insurance >$100-$300 is an additional flat fee of $2.70.
  • For each additional $100, it's $0.90 per $100.
    To prevent insurance claims for a higher value than a product is worth, UPS requires multiple forms of documentation and may contact you for confirmation.
  • The claims process begins when you report loss or damage to UPS, and then UPS will send you documentation and move on from there.
    In the event of a high-value shipment, UPS will want to inspect it if declared as damaged and may take other measures.

Label Support

  • Label sizes: 4" x 6:
  • Label formats: PDF, PNG, ZPL

Label Reference Fields

UPS supports adding custom label messages. UPS labels include two reference fields, each with a 35-character max length. If the text in a reference field exceeds 35 characters, the text will be truncated on the label.

  • Label message 1 maps to the first label reference field.
  • Both label message 2 and message 3 map to the second label reference field. If both label message 2 and message 3 are used, they will be combined into the second label reference field.
  • Label messages are not supported on return labels.
  • For international shipments, the label messages will appear on the UPS commercial invoice.
  • For MI services, Order # and MI Cost Center values are mapped by default to the Ref1 and Ref2 fields, so they cannot be customized.

Multi-Package Labels

UPS supports ulti-package shipping for most service classes. The maximum number of labels for a multi-package shipment is 20.

UPS returns individual labels per package for multi-package shipments (one main label file and then individual files in the response).

Label Branding

UPS supports label branding.

Voiding Labels

You can void a UPS label using ShipStation API up to 24 hours after label creation. If you need to void a label after the 24 hour period, you may still be able to do so using your UPS account portal.

Paperless Labels

UPS services support creating paperless labels with ShipStation API.

Customs Declarations

Most UPS accounts are configured to submit customs forms electronically via the UPS EDI system. Check with your UPS account representative if you are unsure if your account is EDI enabled.

If your account is not EDI enabled or you are shipping to a country that does not support electronic submission, you will need to include three copies of the printed commercial invoice (downloadable from the form_downloads object) in your international shipments. These can be in the box itself or in the plastic sleeve outside the box.

When the declared value of a shipment is $1k or higher, UPS will automatically return a high-value report to ShipStation API titled “UPS Control Log” which you can download from the form_downloads object. You must print two copies and retain one that is signed by the UPS employee who accepts the package. The signed report will serve as part of your documentation should the high-value shipment become lost or damaged.

Delivery Confirmation

UPS supports the following delivery confirmation options (options other than online may incur an additional fee from UPS).

Confirmation TypeAPI CodeDescription
OnlineonlineThis is the default option if no confirmation type is specified.
DeliverydeliveryDelivery confirmation requested.
SignaturesignatureSignature confirmation requested.
Adult signatureadult_signatureAdult signature confirmation requested. This confirmation type is required if shipping alcohol.
VerbalverbalVerbal confirmation requested.

See our Delivery Confirmation page for more details about using the confirmation property.

Shipping Alcohol

To ship alcohol with your UPS account, you must be authorized by UPS to do so and have it included in your UPS contract.

Additionally, you must:

  • Put “Contains alcohol” stickers on the shipment and must follow all the UPS requirements for alcohol shipments.
  • Include the adult_signature confirmation type when creating the label using ShipStation API.

Review UPS’s How To Ship Special-Care or Regulated Items page for details.

Advanced Options

UPS supports certain advanced options, which you can add to the shipment object when creating a shipment or label.

OptionTypeDefault ValueDescription
additional_handlingbooleannullIndicate the shipment requires special handling.
bill_to_partyenumerated stringnullDetermines which party is paying for shipping costs. This field must be used in conjunction with the bill_to_country_code, bill_to_postal_code, and bill_to_account fields.
Available values:
recipient - Required for FedEx Ground Collect.
third_party - Bill to an account that is not connected to ShipStation API.
If null, shipping costs will be billed to the connected carrier account.
See our Bill to a Third Part page for more details.
collect_on_deliveryobjectnullDefers payment to recipient when package is delivered. Requires the following properties: payment_type, amount, currency. See our Collect on Delivery page for details on using this advanced option.
delivered_duty_paidbooleanfalseIndicates the shipment is DDP (that is, the shipper is paying the duties/taxes for the shipment rather than the recipient).
dry_icebooleanfalseIndicates the shipment includes dry ice. Used in conjunction with the dry_ice_weight object.
freight_classstringnullThe NMFC freight class, used specifically for UPS Ground Freight pricing and in conjunction with use_ups_ground_freight_pricing property.
non_machinablebooleanfalseIndicates that the package cannot be processed through sorting machines.
saturday_deliverybooleanfalseIndicates that the carrier should charge for delivery on Saturday for services that do not otherwise include Saturday delivery.
use_ups_ground_freight_pricingbooleannullDetermines if UPS Ground Freight pricing will be used. Must use in conjunction with freight_class property.

To ensure you always have the most up-to-date information about a carrier's advanced options, use the list carrier options call.

Manifests

UPS does not support creating printable manifests. All shipment data is submitted electronically to UPS at the time of label creation, so UPS will have the shipment data in their system.

Scheduling Pickups

UPS supports scheduling pickups using ShipStation API. Set the pickup_type property for your account settings to the option indicated by your UPS account representative.

  • daily_pickup - only use this option if your UPS account is enabled for it.
  • occasional_pickup
  • customer_counter

UPS pickup times can vary depending on service and pickup location. Please contact your UPS account representative to get information specific to your account.

Service Points (PUDO)

UPS does not support shipping to service points.

Tracking

ShipStation API's integration with UPS supports receiving tracking updates. Review our ​Track a Package guides​​ for details on tracking with the ShipStation API.

Disconnecting Your UPS Account

See the Disconnect section in our Delete a Carrier page for the process of deleting or disconnecting a carrier from ShipStation API.