---
title: "Create a new carrier account"
method: POST
path: "/carrier_accounts"
tags: ["Carrier Accounts"]
---

# Create a new carrier account

`POST /carrier_accounts`

Creates a new carrier account or connects an existing carrier account to the Shippo account.

## Headers

- `SHIPPO-API-VERSION` string

## Request body

- ConnectExistingOwnAccountRequest
  - `account_id` string, required
  - `active` boolean
  - `carrier` string, required
  - `metadata` string
  - `parameters` union, required
    - unknown
    - FedExConnectExistingOwnAccountParameters — In the case of masked fields, they should be handled carefully. Fields also must consider: - Not providing a *fields* in parameters will not result in a change to any configured value - Providing a value in a *masked field* with ****** (exactly 6 asterisks) will not change the configured value - Providing *field* with null will clear the configured value - Providing *field* with any other value will change the configured value and may affect the behavior of the account.
      - `first_name` string, required — First name of the account holder
      - `last_name` string, required — Last name of the account holder
      - `phone_number` string, required — Phone number of the account holder
      - `from_address_st` string, required — Street address of the account holder
      - `from_address_city` string, required — City of the account holder
      - `from_address_state` string, required — State of the account holder
      - `from_address_zip` string, required — Zip code of the account holder
      - `from_address_country_iso2` string, iso-3166-1-alpha-2, required — Country of the account holder
      - `use_multi_factor_registration` boolean, required — Must be true. FedEx accounts are registered using the multi-factor registration workflow.
      - `verification_option` 'SMS' | 'EMAIL' | 'CALL' | 'INVOICE', required — Determines the verification option to use for the account registration (Enum: SMS, EMAIL, CALL, INVOICE).
      - `verification_pin` string — (optional) The PIN to verify the account.
      - `verification_invoice_number` string — (optional) The invoice number to verify the account.
      - `verification_invoice_amount` string, decimal — (optional) The invoice amount to verify the account.
      - `verification_invoice_date` string, date — (optional) The invoice date to verify the account. In the format `YYYY-MM-DD`.
      - `verification_invoice_currency` string, iso-4217 — (optional) The invoice currency to verify the account.
    - UPSConnectExistingOwnAccountParameters — An array of additional parameters for the account, such as e.g. password or token. Please check the <a href="https://docs.goshippo.com/docs/carriers/carrieraccounts/">carrier accounts tutorial</a> page for the parameters per carrier.<br> To protect account information, this field will be masked in any API response. In the case of masked fields, they should be handled carefully. Fields also must consider: - Not providing a *fields* in parameters will not result in a change to any configured value - Providing a value in a *masked field* with ****** (exactly 6 asterisks) will not change the configured value - Providing *field* with null will clear the configured value - Providing *field* with any other value will change the configured value and may affect the behavior of the account.
      - `account_number` string, required — The UPS account number
      - `aia_country_iso2` string — Only required if has_invoice is true. Country associated with the account that issued the invoice
      - `billing_address_city` string, required
      - `billing_address_country_iso2` string, required
      - `billing_address_state` string, required
      - `billing_address_street1` string, required
      - `billing_address_street2` string — Empty string acceptable for billing_address_street2
      - `billing_address_zip` string, required
      - `collec_country_iso2` string, required
      - `collec_zip` string, required — Zip code of the collection/pickup address
      - `company` string, required — Company name. Full name is acceptable in this field if the user has no company name
      - `currency_code` string — Only required if has_invoice is true. 3-letter currency code associated with invoice_value
      - `email` string, required
      - `full_name` string, required
      - `has_invoice` boolean, required — true if user has been issued a UPS invoice within the past 90 days for the US or Canada; and 45 days for any other countries. User can use data from any of the last 3 invoices
      - `invoice_controlid` string — Only required if aia_country_iso2 is US and has_invoice is true.
      - `invoice_date` string — Only required if has_invoice is true. Date the invoice was issued. yyyymmdd format
      - `invoice_number` string
      - `invoice_value` string — Only required if has_invoice is true. Max 16 digits before decimal and 2 digits after decimal
      - `phone` string, required
      - `title` string, required — User's title, e.g. including but not limited to Manager, Doctor, Artist, Engineer, Mr, Ms, Mrs, Mx
      - `ups_agreements` boolean, required — Whether the user agrees to the UPS terms and conditions or not. Error 400 will be returned if passed in as false
  - `test` boolean

## Response `201`

Carrier account

- CarrierAccount
  - `account_id` string, required — Unique identifier of the account. Please check the <a href="https://docs.goshippo.com/docs/carriers/carrieraccounts/">carrier accounts tutorial</a> page for the `account_id` per carrier.<br> To protect account information, this field will be masked in any API response.
  - `active` boolean — Determines whether the account is active. When creating a shipment, if no `carrier_accounts` are explicitly passed Shippo will query all carrier accounts that have this field set. By default, this is set to True.
  - `carrier` string, required — Carrier token, see <a href="/shippoapi/public-api/carriers">Carriers</a><br> Please check the <a href="https://docs.goshippo.com/docs/carriers/carrieraccounts/">carrier accounts tutorial</a> page for all supported carriers.
  - `parameters` union
    - unknown
    - FedExConnectExistingOwnAccountParameters — In the case of masked fields, they should be handled carefully. Fields also must consider: - Not providing a *fields* in parameters will not result in a change to any configured value - Providing a value in a *masked field* with ****** (exactly 6 asterisks) will not change the configured value - Providing *field* with null will clear the configured value - Providing *field* with any other value will change the configured value and may affect the behavior of the account.
      - `first_name` string, required — First name of the account holder
      - `last_name` string, required — Last name of the account holder
      - `phone_number` string, required — Phone number of the account holder
      - `from_address_st` string, required — Street address of the account holder
      - `from_address_city` string, required — City of the account holder
      - `from_address_state` string, required — State of the account holder
      - `from_address_zip` string, required — Zip code of the account holder
      - `from_address_country_iso2` string, iso-3166-1-alpha-2, required — Country of the account holder
      - `use_multi_factor_registration` boolean, required — Must be true. FedEx accounts are registered using the multi-factor registration workflow.
      - `verification_option` 'SMS' | 'EMAIL' | 'CALL' | 'INVOICE', required — Determines the verification option to use for the account registration (Enum: SMS, EMAIL, CALL, INVOICE).
      - `verification_pin` string — (optional) The PIN to verify the account.
      - `verification_invoice_number` string — (optional) The invoice number to verify the account.
      - `verification_invoice_amount` string, decimal — (optional) The invoice amount to verify the account.
      - `verification_invoice_date` string, date — (optional) The invoice date to verify the account. In the format `YYYY-MM-DD`.
      - `verification_invoice_currency` string, iso-4217 — (optional) The invoice currency to verify the account.
    - UPSConnectExistingOwnAccountParameters — An array of additional parameters for the account, such as e.g. password or token. Please check the <a href="https://docs.goshippo.com/docs/carriers/carrieraccounts/">carrier accounts tutorial</a> page for the parameters per carrier.<br> To protect account information, this field will be masked in any API response. In the case of masked fields, they should be handled carefully. Fields also must consider: - Not providing a *fields* in parameters will not result in a change to any configured value - Providing a value in a *masked field* with ****** (exactly 6 asterisks) will not change the configured value - Providing *field* with null will clear the configured value - Providing *field* with any other value will change the configured value and may affect the behavior of the account.
      - `account_number` string, required — The UPS account number
      - `aia_country_iso2` string — Only required if has_invoice is true. Country associated with the account that issued the invoice
      - `billing_address_city` string, required
      - `billing_address_country_iso2` string, required
      - `billing_address_state` string, required
      - `billing_address_street1` string, required
      - `billing_address_street2` string — Empty string acceptable for billing_address_street2
      - `billing_address_zip` string, required
      - `collec_country_iso2` string, required
      - `collec_zip` string, required — Zip code of the collection/pickup address
      - `company` string, required — Company name. Full name is acceptable in this field if the user has no company name
      - `currency_code` string — Only required if has_invoice is true. 3-letter currency code associated with invoice_value
      - `email` string, required
      - `full_name` string, required
      - `has_invoice` boolean, required — true if user has been issued a UPS invoice within the past 90 days for the US or Canada; and 45 days for any other countries. User can use data from any of the last 3 invoices
      - `invoice_controlid` string — Only required if aia_country_iso2 is US and has_invoice is true.
      - `invoice_date` string — Only required if has_invoice is true. Date the invoice was issued. yyyymmdd format
      - `invoice_number` string
      - `invoice_value` string — Only required if has_invoice is true. Max 16 digits before decimal and 2 digits after decimal
      - `phone` string, required
      - `title` string, required — User's title, e.g. including but not limited to Manager, Doctor, Artist, Engineer, Mr, Ms, Mrs, Mx
      - `ups_agreements` boolean, required — Whether the user agrees to the UPS terms and conditions or not. Error 400 will be returned if passed in as false
  - `carrier_name` string — Carrier name, see <a href="/shippoapi/public-api/carriers">Carriers</a><br>
  - `is_shippo_account` boolean
  - `metadata` string
  - `object_id` string — Unique identifier of the carrier account object.
  - `object_owner` string — Username of the user who created the carrier account object.
  - `service_levels` CarrierAccountServiceLevel[]
    - `name` string — Service level name, e.g. `Priority Mail` or `FedEx Ground®`. A service level commonly defines the transit time of a Shipment (e.g., Express vs. Standard), along with other properties. These names vary depending on the provider.<br> See <a href="/shippoapi/public-api/service-levels">Service Levels</a>.
    - `token` string — Service level token, e.g. `usps_priority` or `fedex_ground`.<br> See <a href="/shippoapi/public-api/service-levels">Service Levels</a>.
    - `supports_return_labels` boolean — Whether or not the service level supports return labels.
  - `test` boolean — Indicates whether the object has been created in test mode.

## Other responses

- `400` — Bad request

---

[API](https://skmtc.net/goshippo/apis/shippo-external-api.md) · [All operations](https://skmtc.net/goshippo/apis/shippo-external-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/goshippo/shippo-external-api/revisions/7e1ec201b515/schema)
