---
title: "Update a carrier account"
method: PUT
path: "/carrier_accounts/{CarrierAccountId}"
tags: ["Carrier Accounts"]
---

# Update a carrier account

`PUT /carrier_accounts/{CarrierAccountId}`

Updates an existing carrier account object. The account_id and carrier can't be updated. This is because they form the unique identifier together.

## Path parameters

- `CarrierAccountId` string, required

## Headers

- `SHIPPO-API-VERSION` string

## Request body

- CarrierAccountUpdateRequest
  - `account_id` string, required — Unique identifier of the account. Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) page for the `account_id` per carrier. 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 [Carriers](/shippoapi/public-api/carriers) Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) 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 [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) page for the parameters per carrier. 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

## Response `200`

Carrier account

- CarrierAccount
  - `account_id` string, required — Unique identifier of the account. Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) page for the `account_id` per carrier. 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 [Carriers](/shippoapi/public-api/carriers) Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) 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 [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) page for the parameters per carrier. 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 [Carriers](/shippoapi/public-api/carriers)
  - `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. See [Service Levels](/shippoapi/public-api/service-levels).
    - `token` string — Service level token, e.g. `usps_priority` or `fedex_ground`. See [Service Levels](/shippoapi/public-api/service-levels).
    - `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-address-api.md) · [All operations](https://skmtc.net/goshippo/apis/shippo-address-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/goshippo/shippo-address-api/versions/26fcc6af452a/schema)
