openapi: 3.1.0
info:
  title: 'Admin Management: Shipping V2'
  version: 1.0.0
paths:
  /stores/{store_hash}/v2/shipping/carrier/connection:
    post:
      operationId: createCarrierConnection
      summary: Create Carrier Connection
      description: >-
        Creates a *Carrier Connection*. 


        Carrier connections refer to specific settings required to connect to a specific shipping carrier. Each carrier
        requires your app to supply a unique set of properties/fields to establish a connection with that carrier.


        *Notes:*


        - There is no `GET` with this resource. It has `PUT`, `POST` and `DELETE`.
            * `PUT` is used to update. The connection can be updated by API.

        - Connections created here do not enable the shipping method. To enable the carrier for a shipping zone, use the
        Shipping Methods API. 


        - The Carrier Connection resource returns a 204 for both successful and unsuccessful attempts to connect. If a
        field is missing, it will return a 400.


        ### Australia Post


        PUT or POST example request:


        ```json

        {
          "carrier_id" : "auspost",
          "connection" : {
            "auth_key" : "yourAusPostAuthKey",
            "test_mode" : false
          }
        }

        ```


        DELETE example request:


        ```json

        {
          "carrier_id" : "auspost"
        }

        ```


        #### Australia Post Connection Object – Properties


        Australia Post `PUT` or `POST` requests require all of the following properties. (These requests won’t be
        fulfilled unless these properties are valid.) `DELETE` requests require only a `carrier_id`.



        | Property | Type | Description |

        | - | - | - |

        | auth_key | string | Australia Post authorization key. |

        | test_mode | boolean | Whether or not to use Australia Post test-mode settings. Acceptable values are `true` or
        `false`. |



        ### Endicia

        USPS is connected through Endicia.


        PUT or POST example request:


        ```json

        {  "carrier_id" : "endicia",
          "connection": {
            "account_id" : "yourEndiciaAccountId",
            "pass_phrase" : "yourEndiciaPassphrase"
          }
        }

        ```


        DELETE example request:


        ```json

        {
          "carrier_id" : "endicia"
        }

        ```


        #### Endicia Connection Object – Properties


        Endicia `PUT` or `POST` requests require all of the following properties. (These requests won’t be fulfilled
        unless these properties are valid.) `DELETE` requests require only a `carrier_id`.



        | Property | Type | Description |

        | - | - | - |

        | account_id | string | Endicia account ID. |

        | passphrase | string | Endicia passphrase. |



        ### FedEx


        PUT or POST example request:


        ```json

        {
          "carrier_id" : "fedex",
          "connection" : {
            "key" : "yourFedexKey",
            "password" : "yourFedexPassword",
            "account_number" : "yourFedexAccountNumber",
            "meter_number" : "yourFedexMeterNumber"
          }
        }

        ```


        DELETE example request:


        ```json

        {
          "carrier_id" : "fedex"
        }

        ```


        #### FedEx Connection Object – Properties


        FedEx `PUT` or `POST` requests require all of the following properties. (These requests won’t be fulfilled
        unless these properties are valid.) `DELETE` requests require only a `carrier_id`.



        | Property | Type | Description |

        | - | - | - |

        | key | string | FedEx account ID. | 

        | password | string | FedEx passphrase. |

        | account_number | string | FedEx account number. |

        | meter_number | string | FedEx meter number. |


        ### Royal Mail


        PUT or POST example request:


        ```json

        {
            "carrier_id" : "royalmail",
            "connection" : {

            }
        }

        ```


        DELETE example request:


        ```json

        {
            "carrier_id" : "royalmail"
        }

        ```


        #### Royal Mail Connection Object - Properties


        Royal Mail has no connection object properties.


        ### Shipping Provider API


        Please note that this endpoint is not intended for adding connection settings. 


        Its purpose is solely to establish a connection between your BigCommerce store and the carrier. If the carrier
        has no connection settings configured, please leave the connection property empty. However, if the carrier
        already has connection settings configured, you can utilize this endpoint to establish the connection using the
        existing connection properties.


        PUT or POST example request when your carrier is not configured with any connection settings:


        ```json filename="No connection settings configured" showLineNumbers copy

        {
          "carrier_id" : "carrier_{your_carrier_id}",
          "connection" : {}
        }

        ```


        PUT or POST example request when your carrier is configured with connection settings:


        ```json filename="Connection settings configured" showLineNumbers copy

        {
          "carrier_id" : "carrier_{your_carrier_id}",
          "connection" : {
            "your_configured_key_1": "value_1",
            "your_configured_key_2": "value_2
          }
        }

        ```


        ### Zoom2U


        PUT or POST example request:


        ```json

        {
          "carrier_id" : "zoom2u",
          "connection" : {
            "auth_key" : "yourZoom2uAuthKey",
            "test_mode" : false
          }
        }

        ```


        DELETE example request:


        ```json

        {
          "carrier_id" : "zoom2u"
        }

        ```


        #### Zoom2U Connection Object – Properties


        Zoom2U `PUT` or `POST` requests require all of the following properties. (These requests won’t be fulfilled
        unless these properties are valid.) `DELETE` requests require only a `carrier_id`.



        | Property | Type | Description |

        | - | - | - |

        | auth_key | string | Zoom2U authorization key. |

        | test_mode | boolean | Whether or not to use Zoom2U test-mode settings. Acceptable values are `true` or
        `false`. |
      tags:
        - shippingCarrier
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### 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).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: Returns if request was successful.
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '400':
          description: |
            Invalid requests will return a 400 response.

                [
                  {
                    "status": 400,
                    "message": "The field 'id' cannot be written to. Please remove it from your request before trying again."
                  }
                ]

            If a required field is not provided, the request will return a 400 response.

                [
                  {
                    "status": 400,
                    "message": "Required fields missing [key]"
                  }
                ]
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/carrierConnection'
    put:
      operationId: updateCarrierConnection
      summary: Update Carrier Connection
      description: >-
        Updates a *Carrier Connection*.


        Updating the carrier connection is done using the same information as creating the connection. This endpoint can
        be used to update credentials.
      tags:
        - shippingCarrier
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### 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).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: Returns if request was successful.
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '400':
          description: |-
            If a required field is not provided, the request will return a 400 response.

            [
                {
                    "status": 400,
                    "message": "Required fields missing [key]"
                }
            ]
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        description: >-
          The request body will vary by carrier. See [Create a Carrier
          Connection](/developer/api-reference/rest/admin/management/shipping/v2/shipping-carrier/create-carrier-connection).
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/carrierConnection'
    delete:
      operationId: deleteCarrierConnection
      summary: Delete Carrier Connection
      description: |-
        Deletes a *Carrier Connection*.

        **Required Fields**
        * carrier_id
      tags:
        - shippingCarrier
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### 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).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: Returns if request was successful.
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '400':
          description: |-
            If a required field is not provided, the request will return a 400 response.

            [
                {
                    "status": 400,
                    "message": "Required fields missing [key]"
                }
            ]
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                carrier_id:
                  type: string
  /stores/{store_hash}/v2/shipping/zones/{zone_id}/methods:
    get:
      operationId: getShippingZoneMethods
      summary: List Shipping Methods in Zone
      description: >-
        Returns a list of *Shipping Methods* in a zone. Default sorting is by shipping method ID, from lowest to
        highest.
      tags:
        - shippingMethod
      parameters:
        - name: zone_id
          in: path
          description: ID of the shipping zone.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### 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).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/shippingMethod_Full'
    post:
      operationId: createShippingMethod
      summary: Create Shipping Method
      description: >-
        Creates a *Shipping Method* within a shipping zone. Real Time Carrier Connections are also supported by this
        endpoint. 


        ## Carrier Configurations – Current


        This section provides a sample request and a carrier-specific object/property model, for each supported carrier.


        ### USPS by Endicia


        Example request body:


        ```json

        {
            "name": "USPS by Endicia",
            "type": "endicia",
            "settings": {
                "carrier_options": {
                    "delivery_services" : ["PriorityExpress","Priority", "PriorityMailExpressInternational"],
                    "packaging_type" : "LargeFlatRateBox",
                    "show_transit_time" : true
                }
            },
            "enabled": true
        }

        ```


        #### USPS by Endicia Object Properties


        | Property | Type | Values |

        | - | - | - |

        | delivery_services | array | PriorityExpress, PriorityMailExpressInternational,
        FirstClassPackageInternationalService, Priority, PriorityMailInternational, First, ParcelSelect, MediaMail |

        | packaging_type | array | FlatRateLegalEnvelope, FlatRatePaddedEnvelope, Parcel, SmallFlatRateBox,
        MediumFlatRateBox, LargeFlatRateBox, FlatRateEnvelope, RegionalRateBoxA, RegionalRateBoxB |

        |show_transit_time | boolean | true, false |


        ### FedEx


        Example request body:


        ```json

        {
            "name": "FEDEX",
            "type": "fedex",
            "settings": {
                "carrier_options": {
                    "delivery_services": [
                        "PRIORITY_OVERNIGHT",
                        "FEDEX_2_DAY"
                    ],
                    "dropoff_type": "REGULAR_PICKUP",
                    "packaging_type": "FEDEX_ENVELOPE",
                    "packing_method": "SEPARATE",
                    "rate_type": "NONE",
                    "include_package_value": true,
                    "destination_type": "residential"
                }
            },
            "enabled": true
        }


        ```


        #### FedEx Object Properties


        | Property | Type | Values |

        | - | - | - |

        | delivery_services | array | PRIORITY_OVERNIGHT, STANDARD_OVERNIGHT, FIRST_OVERNIGHT, FEDEX_2_DAY,
        FEDEX_EXPRESS_SAVER, INTERNATIONAL_PRIORITY, INTERNATIONAL_ECONOMY, INTERNATIONAL_FIRST, FEDEX_1_DAY_FREIGHT,
        FEDEX_2_DAY_FREIGHT, FEDEX_3_DAY_FREIGHT, FEDEX_GROUND, GROUND_HOME_DELIVERY, INTERNATIONAL_PRIORITY_FREIGHT,
        INTERNATIONAL_ECONOMY_FREIGHT, EUROPE_FIRST_INTERNATIONAL_PRIORITY |

        | dropoff_type | string | REGULAR_PICKUP, REQUEST_COURIER, DROP_BOX, BUSINESS_SERVICE_CENTER, STATION |

        | packaging_type | string | FEDEX_ENVELOPE,  FEDEX_PAK, FEDEX_BOX, FEDEX_TUBE, FEDEX_10KG_BOX, FEDEX_25KG_BOX,
        YOUR_PACKAGING |

        | packing_method | string | SEPARATE, COMBINED |

        | rate_type | string | NONE, LIST |

        | include_package_value | boolean | true, false |

        | destination_type | string | residential, business |



        ### UPS Ready


        Example request body:


        ```json

        {
            "name": "UPS ready",
            "type": "upsready",
            "settings": {
                "carrier_options": {
                    "delivery_services": [
                        "2nd_Day_Air","Standard"
                    ],
                    "packaging_type": "21",
                    "packing_method": "separate",
                    "include_package_value": true,
                    "destination_type": "residential",
                    "show_transit_time" : true
                }
            },
            "enabled": true
        }


        ```


        #### UPS Ready Object Properties


        | Property | Type | Values |

        | - | - | - |

        | delivery_services | array | 2nd_Day_Air, 2nd_Day_Air_AM, 3_Day_Select, Expedited, Express, Express_Plus,
        Express_Saver, Express_Early_AM, Ground, Next_Day_Air, Next_Day_Air_Early_AM, Next_Day_Air_Saver, Saver,
        Standard, Today_Dedicated_Courier, Today_Express, Today_Express_Saver, Today_Intercity, Today_Standard,
        Worldwide_Expedited, Worldwide_Express, Worldwide_Express_Plus, Worldwide_Express_Saver, Worldwide_Saver |

        | destination_type | string | residential, business |

        | packing_method | string | separate, combined |

        | packaging_type | string (only codes allowed) | See the following table |

        | include_package_value | boolean | true, false |

        | show_transit_time | boolean | true, false |


        UPS `packaging_type` values include:


        | Code | Description |

        |:----:|:------------|

        | 21 | UPS® Express Box |

        | 24 | UPS® 25 KG Box |

        | 25 | UPS® 10 KG Box |

        | 30 | Pallet |

        | 01 | UPS® Letter |

        | 02 | Customer Supplied Package |

        | 03 | Tube |

        | 04 | PAK |

        | 2a | Small Express Box |

        | 2b | Medium Express Box |

        | 2c | Large Express Box |



        ### Canada Post


        Example request body:


        ```json

        {
            "name": "Canada Post",
            "type": "canadapost",
            "settings": {
                "carrier_options": {
                    "delivery_services": [
                        "DOM.RP","DOM.EP"
                    ]
                }
            },
            "enabled": true
        }


        ```


        #### Canada Post Object Properties


        | Property | Type | Values |

        | - | - | - |

        | delivery_services | array | DOM.RP, DOM.EP, DOM.XP, DOM.XP.CERT, DOM.PC DOM.LIB, USA.EP, USA.PW.ENV,
        USA.PW.PAK, USA.PW.PARCEL, USA.SP.AIR, USA.TP, USA.TP.LVM, USA.XP, INT.XP, INT.IP.AIR, INT.IP.SURF, INT.PW.ENV,
        INT.PW.PAK, INT.PW.PARCEL, INT.SP.AIR, INT.SP.SURF, INT.TP |


        ### Australia Post


        Example request body:


        ```json

        {
            "name": "Australia Post",
            "type": "auspost",
            "settings": {
                "carrier_options": {
                    "delivery_services": [
                        "AUS_PARCEL_REGULAR",
                "AUS_PARCEL_EXPRESS"
                    ]
                }
            },
            "enabled": true
        }


        ```


        #### Australia Post Object Properties


        | Property | Type | Values |

        | - | - | - |

        | delivery_services | array | AUS_LETTER_REGULAR_SMALL, AUS_LETTER_REGULAR_Large, AUS_LETTER_EXPRESS_SMALL,
        AUS_LETTER_EXPRESS_MEDIUM, AUS_LETTER_EXPRESS_LARGE, AUS_PARCEL_REGULAR, AUS_PARCEL_REGULAR_SATCHEL_500G,
        AUS_PARCEL_REGULAR_SATCHEL_3KG, AUS_PARCEL_REGULAR_SATCHEL_5KG, AUS_PARCEL_EXPRESS,
        AUS_PARCEL_EXPRESS_SATCHEL_500G, AUS_PARCEL_EXPRESS_SATCHEL_3KG, AUS_PARCEL_EXPRESS_SATCHEL_5KG,
        AUS_PARCEL_COURIER, AUS_PARCEL_COURIER_SATCHEL_MEDIUM, INT_PARCEL_COR_OWN_PACKAGING,
        INT_PARCEL_EXP_OWN_PACKAGING, INT_PARCEL_STD_OWN_PACKAGING, INT_PARCEL_AIR_OWN_PACKAGING,
        INT_PARCEL_SEA_OWN_PACKAGING |


        ### Royal Mail


        Example request body:


        ```json

        {
            "name": "Royal Mail",
            "type": "royalmail",
            "settings": {
                "carrier_options": {
                    "delivery_services": [
                        "StandardFirstClass",
                        "StandardSecondClass"
                    ]
                }
            },
            "enabled": true
        }

        ```


        #### Royal Mail Object Properties


        | Property | Type | Values |

        | - | - | - |

        | delivery_services | array | SpecialDelivery1pm, SpecialDelivery9am, SpecialDelivery1pmSaturday,
        SpecialDelivery9amSaturday, SignedForFirstClass, SignedForSecondClass, Express9, Express10, ExpressAM,
        Express24, Express48, StandardFirstClass, StandardSecondClass, InternationalStandard, InternationalTracked,
        InternationalEconomy |


        ### Zoom2U


        Example request body:


        ```json

        {
            "name": "Zoom2U",
            "type": "zoom2u",
            "settings": {
                "carrier_options": {
                    "delivery_services": [
                        "3_hour",
                "Same_day",
                "VIP"
                    ]
                }
            },
            "enabled": true
        }

        ```


        #### Zoom2U Object Properties


        | Property | Type | Values |

        | - | - | - |

        | delivery_services | array | 3_hour, Same_day, VIP|


        ### 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 request body: 


        ```json

        {
          "name": "Flat Rate per Order",
          "type": "perorder",
          "settings": {
            "rate": 7
          }
        }

        ```


        #### peritem Object – Properties 


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


        | Name | Type | Description |

        |:-----|:-----|:------------|

        | rate | number | Flat rate per item. |


        Example request body:


        ```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 request body:


        ```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 request body:


        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 request body: 


        ```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. |
      tags:
        - shippingMethod
      parameters:
        - name: zone_id
          in: path
          description: ID of the shipping zone.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### 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).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shippingMethod_Full'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/shippingMethod_Base'
  /stores/{store_hash}/v2/shipping/zones/{zone_id}/methods/{method_id}:
    get:
      operationId: getShippingMethod
      summary: Get Shipping Method
      description: >-
        Returns a single *Shipping Method* in a zone. Real Time Carrier Connections are also supported by this endpoint.


        ### 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.


        | Name | Type | Description |

        | - | - | - |

        | rate | number | Flat rate per order. |


        #### JSON Example


        ```json

        {
            "name": "Flat Rate per Order",
            "type": "perorder",
            "settings": {
                "rate": 7
            },
            "channel_ids": [1]
        },

        ```


        ### peritem Object – Properties


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


        | Name | Type | Description |

        | - | - | - |

        | rate | number | Flat rate per item. |


        #### JSON Example


        ```json

        {
            "name": "Flat Rate per Item",
            "type": "peritem",
            "settings": {
                "rate": 8
            },
            "channel_ids": [1]
        },

        ```


        ### weight Object – Properties


        Object model for shipping quotes by weight.


        | Name | 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. |



        #### JSON Example

        ```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
                    }
                ]
            },
            "channel_ids": [1]
        }

        ```


        ### total Object – Properties


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


        | Name | 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. |


        #### JSON Example


        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
                    }
                ]
            },
            "channel_ids": [1]
        }

        ```


        ### 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. |


        #### JSON Example


        ```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. |
      tags:
        - shippingMethod
      parameters:
        - name: zone_id
          in: path
          description: ID of the shipping zone.
          required: true
          schema:
            type: integer
        - name: method_id
          in: path
          description: ID of the shipping method within the shipping zone.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### 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).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Shipping Method_getShippingMethod_Response_200'
    put:
      operationId: updateShippingMethod
      summary: Update Shipping Method
      description: >-
        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. |
      tags:
        - shippingMethod
      parameters:
        - name: zone_id
          in: path
          description: ID of the shipping zone.
          required: true
          schema:
            type: integer
        - name: method_id
          in: path
          description: ID of the shipping method within the shipping zone.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### 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).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shippingMethod_Full'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/shippingMethod_Base'
    delete:
      operationId: deleteShippingMethod
      summary: Delete Shipping Method
      description: Deletes an *Shipping Method*. Real Time Carrier Connections can also be deleted.
      tags:
        - shippingMethod
      parameters:
        - name: zone_id
          in: path
          description: ID of the shipping zone.
          required: true
          schema:
            type: integer
        - name: method_id
          in: path
          description: ID of the shipping method within the shipping zone.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### 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).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /stores/{store_hash}/v2/shipping/zones:
    get:
      operationId: getShippingZones
      summary: List Shipping Zones
      description: Returns a list of all *Shipping Zones*.
      tags:
        - shippingZones
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### 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).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ShippingZonesGetResponsesContentApplicationJsonSchemaItems'
    post:
      operationId: createShippingZones
      summary: Create Shipping Zone
      description: Creates a *Shipping Zone*.
      tags:
        - shippingZones
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### 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).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Shipping Zones_createShippingZones_Response_201'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Zone name. Required for PUT requests.
                type:
                  $ref: '#/components/schemas/ShippingZonesPostRequestBodyContentApplicationJsonSchemaType'
                locations:
                  type: array
                  items:
                    $ref: '#/components/schemas/ShippingZonesPostRequestBodyContentApplicationJsonSchemaLocationsItems'
                  description: Array of zone locations. BigCommerce has a platform limit of 40000 `zip` type locations.
                free_shipping:
                  $ref: '#/components/schemas/ShippingZonesPostRequestBodyContentApplicationJsonSchemaFreeShipping'
                handling_fees:
                  $ref: '#/components/schemas/ShippingZonesPostRequestBodyContentApplicationJsonSchemaHandlingFees'
                enabled:
                  type: boolean
                  description: Whether this shipping zone is enabled.
              required:
                - name
                - type
  /stores/{store_hash}/v2/shipping/zones/{id}:
    get:
      operationId: getShippingZone
      summary: Get Shipping Zone
      description: Returns a single *Shipping Zone*.
      tags:
        - shippingZones
      parameters:
        - name: id
          in: path
          description: ID of the shipping zone.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### 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).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Shipping Zones_getShippingZone_Response_200'
    put:
      operationId: updateShippingZone
      summary: Update Shipping Zone
      description: |-
        Updates a *Shipping Zone*.

        **Required Fields**
        * name

        **Read Only Fields**
        * id
      tags:
        - shippingZones
      parameters:
        - name: id
          in: path
          description: ID of the shipping zone.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### 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).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Shipping Zones_updateShippingZone_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  description: Zone ID. Read-only.
                name:
                  type: string
                  description: Zone name. Required for PUT requests.
                type:
                  $ref: '#/components/schemas/ShippingZonesIdPutRequestBodyContentApplicationJsonSchemaType'
                locations:
                  type: array
                  items:
                    $ref: '#/components/schemas/ShippingZonesIdPutRequestBodyContentApplicationJsonSchemaLocationsItems'
                  description: Array of zone locations. BigCommerce has a platform limit of 40000 `zip` type locations.
                free_shipping:
                  $ref: '#/components/schemas/ShippingZonesIdPutRequestBodyContentApplicationJsonSchemaFreeShipping'
                handling_fees:
                  $ref: '#/components/schemas/ShippingZonesIdPutRequestBodyContentApplicationJsonSchemaHandlingFees'
                enabled:
                  type: boolean
                  description: Whether this shipping zone is enabled.
              required:
                - name
    delete:
      operationId: deleteShippingZone
      summary: Delete Shipping Zone
      description: Deletes a *Shipping Zone*.
      tags:
        - shippingZones
      parameters:
        - name: id
          in: path
          description: ID of the shipping zone.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### 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).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
servers:
  - url: https://api.bigcommerce.com
    description: https://api.bigcommerce.com
components:
  schemas:
    CarrierConnectionConnection:
      type: object
      properties: {}
      description: The `connection` object varies by carrier.
      title: CarrierConnectionConnection
    carrierConnection:
      type: object
      properties:
        carrier_id:
          type: string
        connection:
          $ref: '#/components/schemas/CarrierConnectionConnection'
          description: The `connection` object varies by carrier.
      title: carrierConnection
    ShippingMethodType:
      type: string
      enum:
        - perorder
        - peritem
        - weight
        - total
        - auspost
        - canadapost
        - endicia
        - usps
        - fedex
        - royalmail
        - upsready
        - freeshipping
      title: ShippingMethodType
    ShippingMethodBaseSettings:
      type: object
      properties:
        rate:
          type: number
          format: double
          description: Flat rate per order.
      description: Depends on the shipping method type. See the [supported settings object](#settings-objects).
      title: ShippingMethodBaseSettings
    ShippingMethodBaseHandlingFees0:
      type: object
      properties:
        fixed_surcharge:
          type: number
          format: double
          description: Flat-rate handling fee applied to shipping cost.
      title: ShippingMethodBaseHandlingFees0
    ShippingMethodBaseHandlingFees1:
      type: object
      properties:
        percentage_surcharge:
          type: number
          format: double
          description: Percentage handling fee applied to shipping cost.
      title: ShippingMethodBaseHandlingFees1
    ShippingMethodBaseHandlingFees:
      oneOf:
        - $ref: '#/components/schemas/ShippingMethodBaseHandlingFees0'
        - $ref: '#/components/schemas/ShippingMethodBaseHandlingFees1'
      title: ShippingMethodBaseHandlingFees
    shippingMethod_Full:
      type: object
      properties:
        name:
          type: string
          description: Display name for shipping method.
        type:
          $ref: '#/components/schemas/ShippingMethodType'
        settings:
          $ref: '#/components/schemas/ShippingMethodBaseSettings'
          description: Depends on the shipping method type. See the [supported settings object](#settings-objects).
        enabled:
          type: boolean
          description: Whether or not this shipping zone method is enabled.
        handling_fees:
          $ref: '#/components/schemas/ShippingMethodBaseHandlingFees'
        is_fallback:
          type: boolean
          description: Whether or not this shipping method is a fallback method used when advanced shipping rules are unavailable.
        channel_ids:
          type: array
          items:
            type: integer
          description: >-
            List of channels associated to a method. When creating a new method, all available channels are associated
            by default. (Optional)
        id:
          type: integer
          description: Shipping method ID. Read-only.
      title: shippingMethod_Full
    shippingMethod_Base:
      type: object
      properties:
        name:
          type: string
          description: Display name for shipping method.
        type:
          $ref: '#/components/schemas/ShippingMethodType'
        settings:
          $ref: '#/components/schemas/ShippingMethodBaseSettings'
          description: Depends on the shipping method type. See the [supported settings object](#settings-objects).
        enabled:
          type: boolean
          description: Whether or not this shipping zone method is enabled.
        handling_fees:
          $ref: '#/components/schemas/ShippingMethodBaseHandlingFees'
        is_fallback:
          type: boolean
          description: Whether or not this shipping method is a fallback method used when advanced shipping rules are unavailable.
        channel_ids:
          type: array
          items:
            type: integer
          description: >-
            List of channels associated to a method. When creating a new method, all available channels are associated
            by default. (Optional)
      title: shippingMethod_Base
    ShippingZonesZoneIdMethodsMethodIdGetResponsesContentApplicationJsonSchemaSettings:
      type: object
      properties: {}
      description: Depends on the shipping method type. See the [supported settings object](#settings-objects).
      title: ShippingZonesZoneIdMethodsMethodIdGetResponsesContentApplicationJsonSchemaSettings
    ShippingZonesZoneIdMethodsMethodIdGetResponsesContentApplicationJsonSchemaHandlingFees0:
      type: object
      properties:
        fixed_surcharge:
          type: number
          format: double
          description: Flat-rate handling fee applied to shipping cost.
      title: ShippingZonesZoneIdMethodsMethodIdGetResponsesContentApplicationJsonSchemaHandlingFees0
    ShippingZonesZoneIdMethodsMethodIdGetResponsesContentApplicationJsonSchemaHandlingFees1:
      type: object
      properties:
        percentage_surcharge:
          type: number
          format: double
          description: Percentage handling fee applied to shipping cost.
      title: ShippingZonesZoneIdMethodsMethodIdGetResponsesContentApplicationJsonSchemaHandlingFees1
    ShippingZonesZoneIdMethodsMethodIdGetResponsesContentApplicationJsonSchemaHandlingFees:
      oneOf:
        - $ref: '#/components/schemas/ShippingZonesZoneIdMethodsMethodIdGetResponsesContentApplicationJsonSchemaHandlingFees0'
        - $ref: '#/components/schemas/ShippingZonesZoneIdMethodsMethodIdGetResponsesContentApplicationJsonSchemaHandlingFees1'
      title: ShippingZonesZoneIdMethodsMethodIdGetResponsesContentApplicationJsonSchemaHandlingFees
    Shipping Method_getShippingMethod_Response_200:
      type: object
      properties:
        id:
          type: integer
          description: Shipping method ID. Read-only.
        name:
          type: string
          description: Display name for shipping method.
        type:
          $ref: '#/components/schemas/ShippingMethodType'
        settings:
          $ref: '#/components/schemas/ShippingZonesZoneIdMethodsMethodIdGetResponsesContentApplicationJsonSchemaSettings'
          description: Depends on the shipping method type. See the [supported settings object](#settings-objects).
        enabled:
          type: boolean
          description: Whether or not this shipping zone method is enabled.
        handling_fees:
          $ref: '#/components/schemas/ShippingZonesZoneIdMethodsMethodIdGetResponsesContentApplicationJsonSchemaHandlingFees'
        is_fallback:
          type: boolean
          description: Whether or not this shipping zone is the fallback if all others are not valid for the order.
        channel_ids:
          type: array
          items:
            type: integer
          description: >-
            List of channels associated to a method. When creating a new method, all available channels are associated
            by default. (Optional)
      title: Shipping Method_getShippingMethod_Response_200
    ShippingZonesGetResponsesContentApplicationJsonSchemaItemsType:
      type: string
      enum:
        - zip
        - country
        - state
        - global
      title: ShippingZonesGetResponsesContentApplicationJsonSchemaItemsType
    ShippingZonesGetResponsesContentApplicationJsonSchemaItemsLocationsItems:
      type: object
      properties:
        id:
          type: integer
          description: Location’s ID.
        zip:
          type: string
          description: Location’s ZIP/postal code.
        country_iso2:
          type: string
          description: 2-letter ISO Alpha-2 code for the country.
        state_iso2:
          type: string
          description: ISO Alpha-2 code for the state.
      title: ShippingZonesGetResponsesContentApplicationJsonSchemaItemsLocationsItems
    ShippingZonesGetResponsesContentApplicationJsonSchemaItemsFreeShipping:
      type: object
      properties:
        enabled:
          type: boolean
        minimum_sub_total:
          type: string
          description: (Float, Float-As-String, Integer)
        exclude_fixed_shipping_products:
          type: boolean
      title: ShippingZonesGetResponsesContentApplicationJsonSchemaItemsFreeShipping
    ShippingZonesGetResponsesContentApplicationJsonSchemaItemsHandlingFees0:
      type: object
      properties:
        fixed_surcharge:
          type: string
          description: Flat-rate handling fee applied to shipping cost.
        display_separately:
          type: boolean
          description: Indicates whether store displays handling fee separately at checkout.
      title: ShippingZonesGetResponsesContentApplicationJsonSchemaItemsHandlingFees0
    ShippingZonesGetResponsesContentApplicationJsonSchemaItemsHandlingFees1:
      type: object
      properties:
        percentage_surcharge:
          type: string
          description: Percentage handling fee applied to shipping cost.
        display_separately:
          type: boolean
          description: Indicates whether store displays handling fee separately at checkout.
      title: ShippingZonesGetResponsesContentApplicationJsonSchemaItemsHandlingFees1
    ShippingZonesGetResponsesContentApplicationJsonSchemaItemsHandlingFees:
      oneOf:
        - $ref: '#/components/schemas/ShippingZonesGetResponsesContentApplicationJsonSchemaItemsHandlingFees0'
        - $ref: '#/components/schemas/ShippingZonesGetResponsesContentApplicationJsonSchemaItemsHandlingFees1'
      title: ShippingZonesGetResponsesContentApplicationJsonSchemaItemsHandlingFees
    ShippingZonesGetResponsesContentApplicationJsonSchemaItems:
      type: object
      properties:
        id:
          type: integer
          description: Zone ID
        name:
          type: string
          description: Zone name. Required for PUT requests.
        type:
          $ref: '#/components/schemas/ShippingZonesGetResponsesContentApplicationJsonSchemaItemsType'
        locations:
          type: array
          items:
            $ref: '#/components/schemas/ShippingZonesGetResponsesContentApplicationJsonSchemaItemsLocationsItems'
          description: Array of zone locations.
        free_shipping:
          $ref: '#/components/schemas/ShippingZonesGetResponsesContentApplicationJsonSchemaItemsFreeShipping'
        handling_fees:
          $ref: '#/components/schemas/ShippingZonesGetResponsesContentApplicationJsonSchemaItemsHandlingFees'
        enabled:
          type: boolean
          description: Whether this shipping zone is enabled.
      title: ShippingZonesGetResponsesContentApplicationJsonSchemaItems
    ShippingZonesPostRequestBodyContentApplicationJsonSchemaType:
      type: string
      enum:
        - zip
        - country
        - state
        - global
      title: ShippingZonesPostRequestBodyContentApplicationJsonSchemaType
    ShippingZonesPostRequestBodyContentApplicationJsonSchemaLocationsItems:
      type: object
      properties:
        id:
          type: integer
          description: Location’s ID.
        zip:
          type: string
          description: Location’s ZIP/postal code.
        country_iso2:
          type: string
          description: 2-letter ISO Alpha-2 code for the country.
        state_iso2:
          type: string
          description: ISO Alpha-2 code for the state.
      title: ShippingZonesPostRequestBodyContentApplicationJsonSchemaLocationsItems
    ShippingZonesPostRequestBodyContentApplicationJsonSchemaFreeShipping:
      type: object
      properties:
        enabled:
          type: boolean
        minimum_sub_total:
          type: string
          description: (Float, Float-As-String, Integer)
        exclude_fixed_shipping_products:
          type: boolean
      title: ShippingZonesPostRequestBodyContentApplicationJsonSchemaFreeShipping
    ShippingZonesPostRequestBodyContentApplicationJsonSchemaHandlingFees0:
      type: object
      properties:
        fixed_surcharge:
          type: string
          description: Flat-rate handling fee applied to shipping cost.
        display_separately:
          type: boolean
          description: Indicates whether store displays handling fee separately at checkout.
      title: ShippingZonesPostRequestBodyContentApplicationJsonSchemaHandlingFees0
    ShippingZonesPostRequestBodyContentApplicationJsonSchemaHandlingFees1:
      type: object
      properties:
        percentage_surcharge:
          type: string
          description: Percentage handling fee applied to shipping cost.
        display_separately:
          type: boolean
          description: Indicates whether store displays handling fee separately at checkout.
      title: ShippingZonesPostRequestBodyContentApplicationJsonSchemaHandlingFees1
    ShippingZonesPostRequestBodyContentApplicationJsonSchemaHandlingFees:
      oneOf:
        - $ref: '#/components/schemas/ShippingZonesPostRequestBodyContentApplicationJsonSchemaHandlingFees0'
        - $ref: '#/components/schemas/ShippingZonesPostRequestBodyContentApplicationJsonSchemaHandlingFees1'
      title: ShippingZonesPostRequestBodyContentApplicationJsonSchemaHandlingFees
    ShippingZonesPostResponsesContentApplicationJsonSchemaType:
      type: string
      enum:
        - zip
        - country
        - state
        - global
      title: ShippingZonesPostResponsesContentApplicationJsonSchemaType
    ShippingZonesPostResponsesContentApplicationJsonSchemaLocationsItems:
      type: object
      properties:
        id:
          type: integer
          description: Location ID.
        zip:
          type: string
          description: Location’s ZIP/postal code.
        country_iso2:
          type: string
          description: 2-letter ISO Alpha-2 code for the country.
        state_iso2:
          type: string
          description: ISO Alpha-2 code for the state.
      title: ShippingZonesPostResponsesContentApplicationJsonSchemaLocationsItems
    ShippingZonesPostResponsesContentApplicationJsonSchemaFreeShipping:
      type: object
      properties:
        enabled:
          type: boolean
        minimum_sub_total:
          type: string
          description: (Float, Float-As-String, Integer)
        exclude_fixed_shipping_products:
          type: boolean
      title: ShippingZonesPostResponsesContentApplicationJsonSchemaFreeShipping
    ShippingZonesPostResponsesContentApplicationJsonSchemaHandlingFees0:
      type: object
      properties:
        fixed_surcharge:
          type: string
          description: Flat-rate handling fee applied to shipping cost.
        display_separately:
          type: boolean
          description: Indicates whether store displays handling fee separately at checkout.
      title: ShippingZonesPostResponsesContentApplicationJsonSchemaHandlingFees0
    ShippingZonesPostResponsesContentApplicationJsonSchemaHandlingFees1:
      type: object
      properties:
        percentage_surcharge:
          type: string
          description: Percentage handling fee applied to shipping cost.
        display_separately:
          type: boolean
          description: Indicates whether store displays handling fee separately at checkout.
      title: ShippingZonesPostResponsesContentApplicationJsonSchemaHandlingFees1
    ShippingZonesPostResponsesContentApplicationJsonSchemaHandlingFees:
      oneOf:
        - $ref: '#/components/schemas/ShippingZonesPostResponsesContentApplicationJsonSchemaHandlingFees0'
        - $ref: '#/components/schemas/ShippingZonesPostResponsesContentApplicationJsonSchemaHandlingFees1'
      title: ShippingZonesPostResponsesContentApplicationJsonSchemaHandlingFees
    Shipping Zones_createShippingZones_Response_201:
      type: object
      properties:
        id:
          type: integer
          description: Zone ID.
        name:
          type: string
          description: Zone name.
        type:
          $ref: '#/components/schemas/ShippingZonesPostResponsesContentApplicationJsonSchemaType'
        locations:
          type: array
          items:
            $ref: '#/components/schemas/ShippingZonesPostResponsesContentApplicationJsonSchemaLocationsItems'
          description: Array of zone locations.
        free_shipping:
          $ref: '#/components/schemas/ShippingZonesPostResponsesContentApplicationJsonSchemaFreeShipping'
        handling_fees:
          $ref: '#/components/schemas/ShippingZonesPostResponsesContentApplicationJsonSchemaHandlingFees'
        enabled:
          type: boolean
          description: Whether this shipping zone is enabled.
      title: Shipping Zones_createShippingZones_Response_201
    ShippingZonesIdGetResponsesContentApplicationJsonSchemaType:
      type: string
      enum:
        - zip
        - country
        - state
        - global
      title: ShippingZonesIdGetResponsesContentApplicationJsonSchemaType
    ShippingZonesIdGetResponsesContentApplicationJsonSchemaLocationsItems:
      type: object
      properties:
        id:
          type: integer
          description: Location’s ID.
        zip:
          type: string
          description: Location’s ZIP/postal code.
        country_iso2:
          type: string
          description: 2-letter ISO Alpha-2 code for the country.
        state_iso2:
          type: string
          description: ISO Alpha-2 code for the state.
      title: ShippingZonesIdGetResponsesContentApplicationJsonSchemaLocationsItems
    ShippingZonesIdGetResponsesContentApplicationJsonSchemaFreeShipping:
      type: object
      properties:
        enabled:
          type: boolean
        minimum_sub_total:
          type: string
          description: (Float, Float-As-String, Integer)
        exclude_fixed_shipping_products:
          type: boolean
      title: ShippingZonesIdGetResponsesContentApplicationJsonSchemaFreeShipping
    ShippingZonesIdGetResponsesContentApplicationJsonSchemaHandlingFees0:
      type: object
      properties:
        fixed_surcharge:
          type: string
          description: Flat-rate handling fee applied to shipping cost.
        display_separately:
          type: boolean
          description: Indicates whether store displays handling fee separately at checkout.
      title: ShippingZonesIdGetResponsesContentApplicationJsonSchemaHandlingFees0
    ShippingZonesIdGetResponsesContentApplicationJsonSchemaHandlingFees1:
      type: object
      properties:
        percentage_surcharge:
          type: string
          description: Percentage handling fee applied to shipping cost.
        display_separately:
          type: boolean
          description: Indicates whether store displays handling fee separately at checkout.
      title: ShippingZonesIdGetResponsesContentApplicationJsonSchemaHandlingFees1
    ShippingZonesIdGetResponsesContentApplicationJsonSchemaHandlingFees:
      oneOf:
        - $ref: '#/components/schemas/ShippingZonesIdGetResponsesContentApplicationJsonSchemaHandlingFees0'
        - $ref: '#/components/schemas/ShippingZonesIdGetResponsesContentApplicationJsonSchemaHandlingFees1'
      title: ShippingZonesIdGetResponsesContentApplicationJsonSchemaHandlingFees
    Shipping Zones_getShippingZone_Response_200:
      type: object
      properties:
        id:
          type: integer
          description: Zone ID
        name:
          type: string
          description: Zone name.
        type:
          $ref: '#/components/schemas/ShippingZonesIdGetResponsesContentApplicationJsonSchemaType'
        locations:
          type: array
          items:
            $ref: '#/components/schemas/ShippingZonesIdGetResponsesContentApplicationJsonSchemaLocationsItems'
          description: Array of zone locations.
        free_shipping:
          $ref: '#/components/schemas/ShippingZonesIdGetResponsesContentApplicationJsonSchemaFreeShipping'
        handling_fees:
          $ref: '#/components/schemas/ShippingZonesIdGetResponsesContentApplicationJsonSchemaHandlingFees'
        enabled:
          type: boolean
          description: Whether this shipping zone is enabled.
      title: Shipping Zones_getShippingZone_Response_200
    ShippingZonesIdPutRequestBodyContentApplicationJsonSchemaType:
      type: string
      enum:
        - zip
        - country
        - state
        - global
      title: ShippingZonesIdPutRequestBodyContentApplicationJsonSchemaType
    ShippingZonesIdPutRequestBodyContentApplicationJsonSchemaLocationsItems:
      type: object
      properties:
        id:
          type: integer
          description: Location’s ID.
        zip:
          type: string
          description: Location’s ZIP/postal code.
        country_iso2:
          type: string
          description: 2-letter ISO Alpha-2 code for the country.
        state_iso2:
          type: string
          description: ISO Alpha-2 code for the state.
      title: ShippingZonesIdPutRequestBodyContentApplicationJsonSchemaLocationsItems
    ShippingZonesIdPutRequestBodyContentApplicationJsonSchemaFreeShipping:
      type: object
      properties:
        enabled:
          type: boolean
        minimum_sub_total:
          type: string
          description: (Float, Float-As-String, Integer)
        exclude_fixed_shipping_products:
          type: boolean
      title: ShippingZonesIdPutRequestBodyContentApplicationJsonSchemaFreeShipping
    ShippingZonesIdPutRequestBodyContentApplicationJsonSchemaHandlingFees0:
      type: object
      properties:
        fixed_surcharge:
          type: string
          description: Flat-rate handling fee applied to shipping cost.
        display_separately:
          type: boolean
          description: Indicates whether store displays handling fee separately at checkout.
      title: ShippingZonesIdPutRequestBodyContentApplicationJsonSchemaHandlingFees0
    ShippingZonesIdPutRequestBodyContentApplicationJsonSchemaHandlingFees1:
      type: object
      properties:
        percentage_surcharge:
          type: string
          description: Percentage handling fee applied to shipping cost.
        display_separately:
          type: boolean
          description: Indicates whether store displays handling fee separately at checkout.
      title: ShippingZonesIdPutRequestBodyContentApplicationJsonSchemaHandlingFees1
    ShippingZonesIdPutRequestBodyContentApplicationJsonSchemaHandlingFees:
      oneOf:
        - $ref: '#/components/schemas/ShippingZonesIdPutRequestBodyContentApplicationJsonSchemaHandlingFees0'
        - $ref: '#/components/schemas/ShippingZonesIdPutRequestBodyContentApplicationJsonSchemaHandlingFees1'
      title: ShippingZonesIdPutRequestBodyContentApplicationJsonSchemaHandlingFees
    ShippingZonesIdPutResponsesContentApplicationJsonSchemaType:
      type: string
      enum:
        - zip
        - country
        - state
        - global
      title: ShippingZonesIdPutResponsesContentApplicationJsonSchemaType
    ShippingZonesIdPutResponsesContentApplicationJsonSchemaLocationsItems:
      type: object
      properties:
        id:
          type: integer
          description: Location’s ID.
        zip:
          type: string
          description: Location’s ZIP/postal code.
        country_iso2:
          type: string
          description: 2-letter ISO Alpha-2 code for the country.
        state_iso2:
          type: string
          description: ISO Alpha-2 code for the state.
      title: ShippingZonesIdPutResponsesContentApplicationJsonSchemaLocationsItems
    ShippingZonesIdPutResponsesContentApplicationJsonSchemaFreeShipping:
      type: object
      properties:
        enabled:
          type: boolean
        minimum_sub_total:
          type: string
          description: (Float, Float-As-String, Integer)
        exclude_fixed_shipping_products:
          type: boolean
      title: ShippingZonesIdPutResponsesContentApplicationJsonSchemaFreeShipping
    ShippingZonesIdPutResponsesContentApplicationJsonSchemaHandlingFees0:
      type: object
      properties:
        fixed_surcharge:
          type: string
          description: Flat-rate handling fee applied to shipping cost.
        display_separately:
          type: boolean
          description: Indicates whether store displays handling fee separately at checkout.
      title: ShippingZonesIdPutResponsesContentApplicationJsonSchemaHandlingFees0
    ShippingZonesIdPutResponsesContentApplicationJsonSchemaHandlingFees1:
      type: object
      properties:
        percentage_surcharge:
          type: string
          description: Percentage handling fee applied to shipping cost.
        display_separately:
          type: boolean
          description: Indicates whether store displays handling fee separately at checkout.
      title: ShippingZonesIdPutResponsesContentApplicationJsonSchemaHandlingFees1
    ShippingZonesIdPutResponsesContentApplicationJsonSchemaHandlingFees:
      oneOf:
        - $ref: '#/components/schemas/ShippingZonesIdPutResponsesContentApplicationJsonSchemaHandlingFees0'
        - $ref: '#/components/schemas/ShippingZonesIdPutResponsesContentApplicationJsonSchemaHandlingFees1'
      title: ShippingZonesIdPutResponsesContentApplicationJsonSchemaHandlingFees
    Shipping Zones_updateShippingZone_Response_200:
      type: object
      properties:
        id:
          type: integer
          description: Zone ID. Read-only.
        name:
          type: string
          description: Zone name. Required for PUT requests.
        type:
          $ref: '#/components/schemas/ShippingZonesIdPutResponsesContentApplicationJsonSchemaType'
        locations:
          type: array
          items:
            $ref: '#/components/schemas/ShippingZonesIdPutResponsesContentApplicationJsonSchemaLocationsItems'
          description: Array of zone locations.
        free_shipping:
          $ref: '#/components/schemas/ShippingZonesIdPutResponsesContentApplicationJsonSchemaFreeShipping'
        handling_fees:
          $ref: '#/components/schemas/ShippingZonesIdPutResponsesContentApplicationJsonSchemaHandlingFees'
        enabled:
          type: boolean
          description: Whether this shipping zone is enabled.
      required:
        - name
      title: Shipping Zones_updateShippingZone_Response_200
  securitySchemes:
    X-Auth-Token:
      type: apiKey
      in: header
      name: X-Auth-Token
      description: >-
        ### 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).
