For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Dev Portal
DocsAPI ReferenceLearnCommunityChangelog
DocsAPI ReferenceLearnCommunityChangelog
    • About Our APIs
  • REST
    • Overview
      • Overview
        • Abandoned Carts
        • Carts
        • Channels
        • Checkouts
        • Currencies
        • Customer Segmentation
        • Geography
        • Infrastructure Hosting
        • Inventory
        • Orders
        • Order Operations
        • Pickup
        • Pickup Methods
        • Pickup Options
        • Pricing
        • Price Lists
        • Promotions
        • Promotion Settings
        • Redirects
        • Scripts
        • Settings
        • Shipping
              • GETList Shipping Methods in Zone
              • POSTCreate Shipping Method
              • GETGet Shipping Method
              • PUTUpdate Shipping Method
              • DELDelete Shipping Method
        • Sites
        • Subscribers
        • System Logs
        • Tax
        • Wishlists
      • Payments
  • GraphQL
    • Overview
  • MCP
    • Overview
Dev Portal
LogoLogo
RESTAdminManagementShippingV2Shipping Method

Update Shipping Method

PUT
https://api.bigcommerce.com/stores/:store_hash/v2/shipping/zones/:zone_id/methods/:method_id
PUT
/stores/:store_hash/v2/shipping/zones/:zone_id/methods/:method_id
$curl -X PUT https://api.bigcommerce.com/stores/store_hash/v2/shipping/zones/1/methods/1 \
> -H "Accept: application/json" \
> -H "X-Auth-Token: <apiKey>" \
> -H "Content-Type: application/json" \
> -d '{
> "settings": {},
> "handling_fees": {
> "fixed_surcharge": 2
> },
> "channel_ids": [
> 1
> ]
>}'
200Update a flat-rate shipping method
1{
2 "channel_ids": [
3 1
4 ],
5 "enabled": true,
6 "handling_fees": {
7 "fixed_surcharge": 2
8 },
9 "id": 8176684,
10 "is_fallback": false,
11 "name": "Endicia Priority Shipping",
12 "settings": {},
13 "type": "endicia"
14}
Updates a *Shipping Method* in a zone. Real Time Carrier Connections are also supported by this endpoint. **Read Only Fields** * id ### Settings Objects A shipping methodʼs `type` and `settings` properties can match one of the following models: #### perorder Object – Properties Object model for flat-rate shipping quotes per order. | Property | Type | Description | | - | - | - | | rate | number | Flat rate per order. | Example response: ```json { "name": "Flat Rate per Order", "type": "perorder", "settings": { "rate": 7 } }, ``` #### peritem Object – Properties Object model for flat-rate shipping quotes per item ordered. | Property | Type | Description | | - | - | - | | rate | number | Flat rate per item. | Example response: ```json { "name": "Flat Rate per Item", "type": "peritem", "settings": { "rate": 8 } }, ``` #### weight Object – Properties Object model for shipping quotes by weight. | Property | Type | Description | | - | - | - | | default_cost | number &#124; null | Default shipping cost, applied either as a percentage of the orderʼs total value or as a fixed amount. If default cost is not required, you can supply a value of null. | | default_cost_type | string | How the default shipping cost is calculated; either `percentage_of_total` or `fixed_amount`. | | range | number | Array of [range](#range-object--properties) objects. The units for these ranges' `lower_limit` and `upper_limit` properties depend on the default units set in the storeʼs control panel. | Example response: ```json { "name": "Rate per Weight", "type": "weight", "settings": { "default_cost": 12, "default_cost_type": "fixed_amount", "range": [ { "lower_limit": 0, "upper_limit": 20, "shipping_cost": 8 }, { "lower_limit": 20, "upper_limit": 40, "shipping_cost": 12 } ] } } ``` #### total Object – Properties Object model for shipping quotes by orderʼs total value. | Property | Type | Description | | - | - | - | | default_cost | number &#124; null | Default shipping cost, applied either as a percentage of the orderʼs total value or as a fixed amount. If default cost is not required, you can supply a value of null. | | default_cost_type | string | How the default shipping cost is calculated; either `percentage_of_total` or `fixed_amount`. | | range | number | Array of [range](#range-object--properties) objects. The units for these ranges' `lower_limit` and `upper_limit` properties are values in the storeʼs currency. | Example response: This example sets free shipping above a certain order total: ```json { "name": "Per Total or Free", "type": "total", "settings": { "default_cost": 12, "default_cost_type": "fixed_amount", "range": [ { "lower_limit": 0, "upper_limit": 5, "shipping_cost": 5 }, { "lower_limit": 5, "upper_limit": 10, "shipping_cost": 8 }, { "lower_limit": 10, "upper_limit": 20, "shipping_cost": 10 }, { "lower_limit": 20, "upper_limit": 49.99, "shipping_cost": 15 }, { "lower_limit": 50, "upper_limit": 100000, "shipping_cost": 0 } ] } } ``` #### Range Object – Properties Object model to define ranges for shipping quotes. Units are defined in the parent object. | Property | Type | Description | | - | - | - | | lower_limit | number | Lower limit for order total. | | upper_limit | number | Upper limit for order total. | | shipping_cost | number | Shipping cost for orders whose total falls between the lower and upper limits. | Example response: ```json { "lower_limit": 0, "upper_limit": 20, "shipping_cost": 8 } ``` ### Channels Example request body: ```json { "name": "Method associated to channels 1, 3", "type": "peritem", "settings": { "rate": 5 }, "channel_ids": [1, 3] } ``` | Property | Type | Description | | - | - | - | | channel_ids | array | Channels associated with the method as an array of integers. |
Was this page helpful?
Previous

Get Shipping Method

Next

Delete Shipping Method

Built with

Updates a Shipping Method in a zone. Real Time Carrier Connections are also supported by this endpoint.

Read Only Fields

  • id

Settings Objects

A shipping methodʼs type and settings properties can match one of the following models:

perorder Object – Properties

Object model for flat-rate shipping quotes per order.

PropertyTypeDescription
ratenumberFlat rate per order.

Example response:

1{
2 "name": "Flat Rate per Order",
3 "type": "perorder",
4 "settings": {
5 "rate": 7
6 }
7},

peritem Object – Properties

Object model for flat-rate shipping quotes per item ordered.

PropertyTypeDescription
ratenumberFlat rate per item.

Example response:

1{
2 "name": "Flat Rate per Item",
3 "type": "peritem",
4 "settings": {
5 "rate": 8
6 }
7},

weight Object – Properties

Object model for shipping quotes by weight.

PropertyTypeDescription
default_costnumber | nullDefault shipping cost, applied either as a percentage of the orderʼs total value or as a fixed amount. If default cost is not required, you can supply a value of null.
default_cost_typestringHow the default shipping cost is calculated; either percentage_of_total or fixed_amount.
rangenumberArray of range objects. The units for these ranges’ lower_limit and upper_limit properties depend on the default units set in the storeʼs control panel.

Example response:

1{
2 "name": "Rate per Weight",
3 "type": "weight",
4 "settings": {
5 "default_cost": 12,
6 "default_cost_type": "fixed_amount",
7 "range": [
8 {
9 "lower_limit": 0,
10 "upper_limit": 20,
11 "shipping_cost": 8
12 },
13 {
14 "lower_limit": 20,
15 "upper_limit": 40,
16 "shipping_cost": 12
17 }
18 ]
19 }
20}

total Object – Properties

Object model for shipping quotes by orderʼs total value.

PropertyTypeDescription
default_costnumber | nullDefault shipping cost, applied either as a percentage of the orderʼs total value or as a fixed amount. If default cost is not required, you can supply a value of null.
default_cost_typestringHow the default shipping cost is calculated; either percentage_of_total or fixed_amount.
rangenumberArray of range objects. The units for these ranges’ lower_limit and upper_limit properties are values in the storeʼs currency.

Example response:

This example sets free shipping above a certain order total:

1{
2 "name": "Per Total or Free",
3 "type": "total",
4 "settings": {
5 "default_cost": 12,
6 "default_cost_type": "fixed_amount",
7 "range": [
8 {
9 "lower_limit": 0,
10 "upper_limit": 5,
11 "shipping_cost": 5
12 },
13 {
14 "lower_limit": 5,
15 "upper_limit": 10,
16 "shipping_cost": 8
17 },
18 {
19 "lower_limit": 10,
20 "upper_limit": 20,
21 "shipping_cost": 10
22 },
23 {
24 "lower_limit": 20,
25 "upper_limit": 49.99,
26 "shipping_cost": 15
27 },
28 {
29 "lower_limit": 50,
30 "upper_limit": 100000,
31 "shipping_cost": 0
32 }
33 ]
34 }
35}

Range Object – Properties

Object model to define ranges for shipping quotes. Units are defined in the parent object.

PropertyTypeDescription
lower_limitnumberLower limit for order total.
upper_limitnumberUpper limit for order total.
shipping_costnumberShipping cost for orders whose total falls between the lower and upper limits.

Example response:

1{
2 "lower_limit": 0,
3 "upper_limit": 20,
4 "shipping_cost": 8
5}

Channels

Example request body:

1{
2 "name": "Method associated to channels 1, 3",
3 "type": "peritem",
4 "settings": {
5 "rate": 5
6 },
7 "channel_ids": [1, 3]
8}
PropertyTypeDescription
channel_idsarrayChannels associated with the method as an array of integers.

Authentication

X-Auth-Tokenstring
### OAuth scopes | UI Name | Permission | Parameter | |:--------|:-----------|:----------| | Information & Settings | modify | `store_v2_information` | | Information & Settings | read-only | `store_v2_information_read_only` | ### Authentication header | Header | Argument | Description | | - | - | - | | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). | ### Further reading For example requests and more information about authenticating BigCommerce APIs, see [Authentication and Example Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests). For more about BigCommerce OAuth scopes, see our [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes). For a list of API status codes, see [API Status Codes](/developer/api-reference/rest/overview#rest-http-status-codes).

Path parameters

zone_idintegerRequired
ID of the shipping zone.
method_idintegerRequired
ID of the shipping method within the shipping zone.
store_hashstringRequired
Permanent ID of the BigCommerce store.

Headers

AcceptstringRequiredDefaults to application/json
The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response body.

Request

This endpoint expects an object.
namestringOptional
Display name for shipping method.
typeenumOptional
settingsobjectOptional

Depends on the shipping method type. See the supported settings object.

enabledbooleanOptional
Whether or not this shipping zone method is enabled.
handling_feesobjectOptional
is_fallbackbooleanOptional
Whether or not this shipping method is a fallback method used when advanced shipping rules are unavailable.
channel_idslist of integersOptional

List of channels associated to a method. When creating a new method, all available channels are associated by default. (Optional)

Response

channel_idslist of integers

List of channels associated to a method. When creating a new method, all available channels are associated by default. (Optional)

enabledboolean
Whether or not this shipping zone method is enabled.
handling_feesobject
idintegerRead-only

Shipping method ID. Read-only.

is_fallbackboolean
Whether or not this shipping method is a fallback method used when advanced shipping rules are unavailable.
namestring
Display name for shipping method.
settingsobject

Depends on the shipping method type. See the supported settings object.

typeenum

OAuth scopes

UI NamePermissionParameter
Information & Settingsmodifystore_v2_information
Information & Settingsread-onlystore_v2_information_read_only

Authentication header

HeaderArgumentDescription
X-Auth-Tokenaccess_tokenFor more about API accounts that generate access_tokens, see our Guide to API Accounts.

Further reading

For example requests and more information about authenticating BigCommerce APIs, see Authentication and Example Requests.

For more about BigCommerce OAuth scopes, see our Guide to API Accounts.

For a list of API status codes, see API Status Codes.

The MIME type of the response body.