Programmatically Connect Carrier Accounts

The ShipEngine Connect Carrier APIs allow you to connect existing carrier accounts to your ShipEngine API account(s) programmatically via the API without having to log in to the ShipEngine API dashboard. This is a useful functionality if you have wrapped a custom UI around the ShipEngine API toolset, and want to be able to add or disconnect existing carrier accounts without exposing your end users to the API dashboard.

These APIs can be used in parallel with the ShipEngine Partner APIs to programmatically create new ShipEngine users, and then connect existing carrier accounts all via the API without logging into a dashboard. Together these APIs empower you to completely white label the ShipEngine experience for your end user.

To learn more about the ShipEngine Partner APIs, please reach out to your ShipEngine Account Manager

APC

APC Account Information Model

Property Description
nickname string, required
username string, required
password string, required

Connect an APC Account

POST /v1/connections/carriers/apc

curl -iX POST https://api.shipengine.com/v1/connections/carriers/apc \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "my apc account",
  "username": "usernameapc",
  "password": "pa55word"
}'
{
  "carrier-id": "se-1234567"
}

Disconnect an APC Account

DELETE v1/connections/carriers/apc/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/apc/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

Asendia

Asendia Account Information Model

Property Description
nickname string, required
ftp_username string, required
ftp_password string, required
account_number int, required

Connect an Asendia Account

POST /v1/connections/carriers/asendia

curl -iX POST https://api.shipengine.com/v1/connections/carriers/asendia \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "my asendia account",
  "ftp_username": "userasendia",
  "ftp_password": "pa55word",
  "account_number": 1234
}'
{
  "carrier-id": "se-1234567"
}

Disconnect an Asendia Account

DELETE /v1/connections/carriers/asendia/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/asendia/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

Australia Post

Australia Post Account Information Model

Property Description
nickname string, required
account_number string, required
api_key string, required
api_secret string, required

Connect an Australia Post Account

POST /v1/connections/carriers/australia_post

curl -iX POST https://api.shipengine.com/v1/connections/carriers/australia_post \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "my australia post account",
  "account_number": "123456789",
  "api_key": "your_api_key_here",
  "api_secret": "your_api_secret_here"
}'
{
  "carrier-id": "se-1234567"
}

Disconnect an Australia Post Account

DELETE /v1/connections/carriers/australia_post/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/australia_post/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

DHL E-Commerce

info

Important info about rates

DHL E-commerce supports rating but only if you have DHL eCommerce API Credentials. Please contact your DHL account representative for more information.

DHL E-Commerce Account Information Model

Property Description
nickname string, required
client_id string, required
username string, required
password string, required
pickup_number string, required
distribution_center string, required
api_key string
api_secret string

Connect a DHL E-Commerce account

POST /v1/connections/carriers/dhl_ecommerce

curl -iX POST https://api.shipengine.com/v1/connections/carriers/dhl_ecommerce \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "Test DHL E-Commerce Account",
  "client_id": "123456",
  "username": "your_username_here",
  "password": "your_password_here"
  "pickup_number" : "123456789",
  "distribution_center" : "USDFW1",
  "api_key" : "your_api_key_here",
  "api_secret" : "your_api_secret_here"
}'
{
  "carrier-id": "se-1234567"
}

Disconnect a DHL E-Commerce account

DELETE /v1/connections/carriers/dhl_ecommerce/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/dhl_ecommerce/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

DHL and DHL E-Commerce service marks are owned by Deutsche Post DHL Group and used with permission.

DHL Express AU

DHL Express AU Account Information Model

Property Description
nickname string, required
account_number string, required

Connect DHL Express AU

POST /v1/connections/carriers/dhl_express_au

curl -iX POST https://api.shipengine.com/v1/connections/carriers/dhl_express_au \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "my dhl account",
  "account_number": "123456789"
}'
{
  "carrier-id": "se-1234567"
}

Disconnect DHL Express AU

DELETE v1/connections/carriers/dhl_express_au/:id

curl -iX POST https://api.shipengine.com/v1/connections/carriers/dhl_express_au \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "my dhl account",
  "account_number": "123456789"
}'

DHL and DHL Express AU service marks are owned by Deutsche Post DHL Group and used with permission.

DHL Express CA

DHL Express CA Account Information Model

Property Description
nickname string, required
account_number string, required

Connect a DHL Express CA account

POST /v1/connections/carriers/dhl_express_ca

curl -iX POST https://api.shipengine.com/v1/connections/carriers/dhl_express_ca \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "my dhl account",
  "account_number": "123456789"
}'
{
  "carrier-id": "se-1234567"
}

Disconnect a DHL Express CA account

DELETE /v1/connections/carriers/dhl_express_ca/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/dhl_express_ca/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

DHL and DHL Express CA service marks are owned by Deutsche Post DHL Group and used with permission.

DHL Express UK

DHL Express UK Account Information Model

Property Description
nickname string, required
account_number string, required
site_id string, required
password string, required

Connect a DHL Express UK Account

POST /v1/connections/carriers/dhl_express_uk

curl -iX POST https://api.shipengine.com/v1/connections/carriers/dhl_express_uk \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "my dhl account",
  "account_number": "123456789",
  "site_id": "ExampleId",
  "password": "password123"
}'
{
  "carrier-id": "se-1234567"
}

Disconnect a DHL Express UK Account

DELETE /v1/connections/carriers/dhl_express_uk/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/dhl_express_uk/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

DHL and DHL Express UK service marks are owned by Deutsche Post DHL Group and used with permission.

DHL Express Account

DHL Express Account Information Model

Property Description
nickname string, required
account_number string, required

Connect a DHL Express account

POST /v1/connections/carriers/dhl_express

curl -iX POST https://api.shipengine.com/v1/connections/carriers/dhl_express \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "my dhl account",
  "account_number": "123456789"
}'
{
  "carrier-id": "se-1234567"
}

Modify DHL Express Settings

Hide Account Number in Archive Document

Parameter Description
should_hide_account_number_on_archive_doc boolean

PUT /v1/connections/carriers/dhl_express/:dhl_id/settings

curl -iX PUT https://api.shipengine.com/v1/connections/carriers/ups/se-123/settings \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
    "should_hide_account_number_on_archive_doc": true
}'

GET /v1/connections/carriers/dhl_express/:dhl_id/settings

curl -iX GET https://api.shipengine.com/v1/connections/carriers/ups/se-123/settings \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
{
  "nickname": "my dhl_express account",
  "should_hide_account_number_on_archive_doc": false,
  "is_primary_account": true
}

Disconnect a DHL Express account

DELETE /v1/connections/carriers/dhl_express/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/dhl_express/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

DHL and DHL Express service marks are owned by Deutsche Post DHL Group and used with permission.

DPD

DPD Account Information Model

Property Description
nickname string, required
account_number string, required
password string

Connect a DPD account

POST /v1/connections/carriers/dpd

curl -iX POST https://api.shipengine.com/v1/connections/carriers/dpd \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "my DPD account",
  "account_number": "123456789",
  "password": "password123"
}'
{
  "carrier-id": "se-1234567"
}

Disconnect a DPD account

DELETE /v1/connections/carriers/dpd/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/dpd/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

Endicia

Endicia Account Information Model

Property Description
nickname string, required
account string, required
passphrase string, required

Connect an Endicia Account

POST /v1/connections/carriers/endicia

curl -iX POST https://api.shipengine.com/v1/connections/carriers/endicia \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "my endicia account",
  "account": "shippy",
  "passphrase": "ShipOn!"
}'
{
  "carrier-id": "se-1234567"
}

Disconnect an Endicia Account

DELETE /v1/connections/carriers/endicia/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/endicia/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

FedEx UK

info

Terms of Service

By connecting a FedEx UK account, you and your users agree to the FedEx EULA.

FedEx UK Account Information Model

Property Description
nickname string, required
A nickname for your account in ShipEngine. Very useful if you have multiple accounts for the same carrier.
account_number string, required
first_name string, required
last_name string, required
company string
address1 string, required
address2 string
city string, required
state_province string, required
postal_code string, required
country_code string, required
email string, required
phone string, required
agree_to_eula bool, required

Connect a Fedex account

POST /v1/connections/carriers/fedex_uk

curl -iX POST https://api.shipengine.com/v1/connections/carriers/fedex_uk \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
    "nickname": "my fedex_uk account",
    "account_number": "123456789",
    "first_name": "Dade",
    "last_name": "Murphy",
    "phone": "20 5555 5555",
    "address1": "77 Netherpark Crescent",
    "address2": "Suite 100",
    "city": "London",
    "company": "Zero Cool",
    "country_code": "GB",
    "postal_code": "ABC 123",
    "state_province": "N/A",
    "email": "[email protected]",
    "agree_to_eula": "true"
}'
{
  "carrier-id": "se-1234567"
}

Disconnect a Fedex account

DELETE /v1/connections/carriers/fedex_uk/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/fedex_uk/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

FedEx service marks are owned by Federal Express Corporation and used with permission.

FedEx US and CA

info

Terms of Service

By connecting a FedEx US or CA account, you and your users agree to the FedEx EULA.

FedEx Account Information Model

Property Description
nickname string, required
A nickname for your account in ShipEngine. Very useful if you have multiple accounts for the same carrier.
account_number string, required
first_name string, required
last_name string, required
company string
address1 string, required
address2 string
city string, required
state_province string, required
postal_code string, required
country_code string, required
email string, required
phone string, required
agree_to_eula bool, required

Connect a Fedex US and CA account

POST /v1/connections/carriers/fedex

curl -iX POST https://api.shipengine.com/v1/connections/carriers/fedex \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
    "nickname": "my fedex_uk account",
    "account_number": "123456789",
    "first_name": "Dade",
    "last_name": "Murphy",
    "phone": "20 5555 5555",
    "address1": "77 Netherpark Crescent",
    "address2": "Suite 100",
    "city": "London",
    "company": "Zero Cool",
    "country_code": "GB",
    "postal_code": "ABC 123",
    "state_province": "N/A",
    "email": "[email protected]",
    "agree_to_eula": "true"
}'
{
  "carrier-id": "se-1234567"
}

Modify FedEx Settings

ShipEngine takes advantage of some of FedEx's advanced functionality but does not enable it by default.

Pickup Type

Parameter Description
pickup_type enumerated string
none, regular_pickup, request_courier, drop_box, business_service_center, station

FedEx SmartPost™

FedEx makes documentation available for SmartPost™ here.

Info

Enabling SmartPost™

To enable SmartPost™ both of the properties below are required and must be valid.

Parameter Description
smart_post_hub enumerated string
none, allentown_pa, atlanta_ga, charlotte_nc, chino_ca, dallas_tx, denver_co, detroit_mi, edison_nj, grove_city_oh, groveport_oh, houston_tx, indianapolis_in, kansas_city_ks, los_angeles_ca, martinsburg_wv, memphis_tn, minneapolis_mn, new_berlin_wi, northborough_ma, orlando_fl, phoneix_az, pittsburgh_pa, reno_nv, sacramento_ca, salt_lake_city_ut, seattle_wa, st_louis_mo
smart_post_endorsement enumerated string
none, return_service_requested, forwarding_service_requested, address_service_requested, change_service_requested, leave_if_no_response

Common Settings

Parameter Description
nickname string
Nickname for the account that will appear on carrier calls and in the UI.
is_primary_account bool
Whether or not the account is set to primary, this currently has no function inside of ShipEngine.

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

curl -iX PUT https://api.shipengine.com/v1/connections/carriers/fedex/se-123/settings \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
    "nickname": "my fedex account",
    "pickup_type": "regular_pickup",
    "smart_post_hub": "dallas_tx",
    "smart_post_endorsement": "address_service_requested",
    "is_primary_account": "false"
}'

On a successful response, you will receive an HTTP status 204.

GET /v1/connections/carriers/fedex/:carrier_id/settings

curl -iX GET https://api.shipengine.com/v1/connections/carriers/fedex/se-123/settings \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
{
  "nickname": "my fedex account",
  "pickup_type": "none",
  "smart_post_hub": "none",
  "smart_post_endorsement": "none",
  "is_primary_account": true
}

Disconnect a Fedex US and CA account

DELETE /v1/connections/carriers/fedex/:ID

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/fedex/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

When FedEx has been successfully disconnected, you will receive a HTTP 204, No Content status.

FedEx service marks are owned by Federal Express Corporation and used with permission.

First Mile

First Mile Account Information Model

Property Description
nickname string, required
mailer_id string, required
password string, required

Connect a First Mile account

POST /v1/connections/carriers/firstmile

curl -iX POST https://api.shipengine.com/v1/connections/carriers/firstmile \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "my firstmile account",
  "mailer_id": "1234",
  "password": "pa55word"
}'
{
  "carrier-id": "se-1234567"
}

Disconnect a First Mile account

DELETE /v1/connections/carriers/firstmile/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/firstmile/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

Globegistics

Globegistics Account Information Model

Property Description
nickname string, required
username string, required
password string, required

Connect a Globegistics Account

POST /v1/connections/carriers/globegistics

curl -iX POST https://api.shipengine.com/v1/connections/carriers/globegistics \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "my globegistics account",
  "username": "userglobe",
  "password": "pa55word"
}'
{
  "carrier-id": "se-1234567"
}

Disconnect a Globegistics Account

DELETE /v1/connections/carriers/globegistics/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/globegistics/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

Newgistics

Newgistics Account Information Model

Property Description
nickname string, required
merchant_id numeric, required
mailer_id string, required
induction_site string, required

Connect a Newgistics Account

POST /v1/connections/carriers/newgistics

curl -iX POST https://api.shipengine.com/v1/connections/carriers/newgistics \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "my newgistics account",
  "merchant_id": "123",
  "mailer_id" : "345",
  "induction_site" : "site"
}'
{
  "carrier-id": "se-1234567"
}

Disconnect a Newgistics Account

DELETE /v1/connections/carriers/newgistics/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/newgistics/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

OnTrac

OnTrac Information Model

Property Description
nickname string, required
account_number int, required
password string, required

Connect an OnTrac Account

POST /v1/connections/carriers/ontrac

curl -iX POST https://api.shipengine.com/v1/connections/carriers/ontrac \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "my ontrac account",
  "account_number": 1234,
  "password": "pa55word"
}'
{
  "carrier-id": "se-1234567"
}

Disconnect an OnTrac Account

DELETE /v1/connections/carriers/ontrac/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/ontrac/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

Purolator Canada

Purolator Canada Account Information Model

Property Description
nickname string, required
account_number string, required
activation_key string, required

Connect a Purolator Canada Account

POST /v1/connections/carriers/purolator_canada

curl -iX POST https://api.shipengine.com/v1/connections/carriers/purolator_canada \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "Test Purolator Canada Account",
  "account_number": "1234567890",
  "activation_key" : "abcdefgh-1234-ijkl-5678-mnopqrstuvwx",

}'
{
  "carrier-id": "se-1234567"
}

Disconnect a Purolator Canada Account

DELETE /v1/connections/carriers/purolator_canada/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/purolator_canada/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

Royal Mail

info

Royal Mail

The Royal Mail connection process involves several manual steps. This connection request notifies both ShipEngine and Royal Mail. Your Royal Mail account will remain in an inactive pending state until Royal Mail sends ShipEngine your validated OBA Credentials.

Once ShipEngine has received your OBA Credentials from Royal Mail, your account will be configured. If you have services that use personalized tracking numbers, a request will be put in to Royal Mail to obtain tracking number ranges for your account. If you do not have personalized tracking ranges, you will be notified and your account will be activated. If a tracking range had to be requested, your account will be activated when Royal Mail sends back the valid ranges.

The credential verification process and the tracking range request process may take up to 5 business days each

When your Royal Mail carrier connection is fully activated and verified you will receive an email notification, a notification in the ShipEngine dashboard, and if you are subscribed, the API_CARRIER_CONNECTED webhook.

Royal Mail Account Information Model

Property Description
nickname string, required
account_number string, required
oba_email string, required
contact_name string, required
email string, required
street_line1 string, required
street_line2 string
city string, required
postal_code string, required
phone string, required

Connect a Royal Mail Account

POST /v1/connections/carriers/royal_mail

curl -iX POST https://api.shipengine.com/v1/connections/carriers/royal_mail \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "account_number":  "123456789",
  "oba_email" : "[email protected]",
  "contact_name": "Dade Murphy",
  "email": "[email protected]",
  "company_name": "Zero Cool",
  "street_line1": "77 Netherpark Crescent",
  "street_line2": "",
  "city": "STIRKOKE HOUSE",
  "postal_code": "KW1 6LZ",
  "phone": "215-555-5555",
  "nickname": "royal mail account"
}
{
  "carrier-id": "se-1234567"
}

Disconnect a Royal Mail Account

DELETE /v1/connections/carriers/royal_mail/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/royal_mail/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

RR Donnelley

RR Donnelley Account Information Model

Property Description
nickname string, required
username string, required
password string, required

Connect a RR Donnelley Account

POST /v1/connections/carriers/rr_donnelley

curl -iX POST https://api.shipengine.com/v1/connections/carriers/rr_donnelley \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "my rr donnelley account",
  "username": "donnelleyaccount",
  "password": "pa55word"
}'
{
  "carrier-id": "se-1234567"
}

Disconnect a RR Donnelley Account

DELETE /v1/connections/carriers/rr_donnelley/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/rr_donnelley/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

Stamps.com

Stamps.com Account Information Model

Property Description
nickname string, required
username string, required
password string, required

Connect a Stamps.com account

POST /v1/connections/carriers/stamps_com

curl -iX POST https://api.shipengine.com/v1/connections/carriers/stamps_com \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "my stamps.com account",
  "username": "shippy",
  "password": "ShipOn!"
}'
{
  "carrier-id": "se-1234567"
}

Disconnect a Stamps.com account

DELETE /v1/connections/carriers/stamps_com/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/stamps_com/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

UPS (Worldwide)

info

UPS Technology Agreement

By connecting a FedEx UK account, you and your users agree to the FedEx EULA.

UPS Account Information Model

Property Description
nickname string, required
A nickname for your account in ShipEngine. Very useful if you have multiple accounts for the same carrier.
account_number string, required
account_country_code string, required
account_postal_code string, required
title string, required
first_name string, required
last_name string, required
company string
address1 string, required
address2 string
city string, required
state string, required
postal_code string, required
country_code string, required
email string, required
phone string, required
invoice UPS Invoice Model, only required if this account has received an invoice in the last 90 days
agree_to_technology_agreement bool, required

UPS Invoice Model

Property Description
control_id string, required
invoice_number string, required
invoice_amount decimal`, required
invoice_date datetime, required

Connect a UPS Account

POST /v1/connections/carriers/ups

curl -iX POST https://api.shipengine.com/v1/connections/carriers/ups \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "my UPS account",
  "account_number": "123456789",
  "account_country_code": "US",
  "account_postal_code": "78756",
  "first_name": "Dade",
  "last_name": "Murphy",
  "company": "Zero Cool",
  "address1": "345 Chambers Street",
  "address2": "Suite 100",
  "city": "New York City",
  "state": "NY",
  "postal_code": "10282",
  "country_code": "US",
  "phone": "212-555-5555",
  "email": "[email protected]",
  "agree_to_technology_agreement": "true"
  "invoice": {
    "control_id": "10Z3"
    "invoice_number": "0000A123B4567",
    "invoice_amount": "100.98",
    "invoice_date": "2017-04-01"
  }
}'
{
  "carrier-id": "se-1234567"
}

Modify UPS Settings

ShipEngine takes advantage of some of UPS's advanced functionality but does not enable it by default.

Pickup Type

Parameter Description
pickup_type enumerated string,
daily_pickup, occasional_pickup, customer_counter

Carbon Neutral Shipping Program

Parameter Description
use_carbon_neutral_shipping_program bool

Ground Freight Pricing

Parameter Description
use_ground_freight_pricing (deprecated) bool

Negotiated Rates

Parameter Description
use_negotiated_rates bool
If your account has been approved for Negotiated Rates, you can use this option to enable this account to use those rates.
Once enabled, you cannot disable Negotiated Rates.
account_postal_code string, only required for enabling negotiated rates
invoice UPS Invoice Model, only required for enabling negotiated rates
See Connect UPS for the UPS Invoice Model.

Consolidation Service

Parameter Description
use_consolidation_services bool
use_order_number_on_mail_innovations_labels bool
mail_innovations_endorsement enumerated string
none, return_service_requested, forwarding_service_requested, address_service_requested,
change_service_requested,
leave_if_no_response
mail_innovations_cost_center string

Common Settings

Parameter Description
nickname bool
Nickname for the account that will appear on carrier calls and in the UI.
is_primary_account bool
Whether or not the account is set to primary, this currently has no function inside of ShipEngine.

PUT /v1/connections/carriers/ups/:ups_id/settings

curl -iX PUT https://api.shipengine.com/v1/connections/carriers/ups/se-123/settings \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "nickname": "my ups account",
  "is_primary_account": "true",
  "pickup_type": "daily_pickup",
  "use_carbon_neutral_shipping_program": "true",
  "use_ground_freight_pricing": "true",
  "use_negotiated_rates": "true,
  "account_postal_code": "78756",
  "invoice": {
    "control_id": "1234",
    "invoice_number": "12345",
    "invoice_amount": "1.99",
    "invoice_date": "2019-7-26"
  },
  "use_consolidation_services": "true",
  "use_order_number_on_mail_innovations_labels": "true",
  "mail_innovations_endorsement": "change_service_requested",
  "mail_innovations_cost_center": "TEST"
}'

GET /v1/connections/carriers/ups/:ups_id/settings

curl -iX GET https://api.shipengine.com/v1/connections/carriers/ups/se-123/settings \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'
{
  "nickname": "UPS-28A1R9",
  "is_primary_account": true,
  "pickup_type": "daily_pickup",
  "use_carbon_neutral_shipping_program": false,
  "use_ground_freight_pricing": false,
  "use_consolidation_services": false,
  "use_order_number_on_mail_innovations_labels": false,
  "mail_innovations_endorsement": "none",
  "mail_innovations_cost_center": null,
  "use_negotiated_rates": false,
  "account_postal_code": null,
  "invoice": null
}

Disconnect a UPS Account

DELETE /v1/connections/carriers/ups/:id

curl -iX DELETE https://api.shipengine.com/v1/connections/carriers/UPS/se-1234 \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__'

When UPS has been successfully disconnected, you will receive a HTTP 204, No Content status.