openapi: 3.1.0
info:
  title: 'Admin Management: Checkouts'
  version: 1.0.0
paths:
  /stores/{store_hash}/v3/checkouts/{checkoutId}:
    get:
      operationId: getCheckout
      summary: Get Checkout
      description: |-
        Returns a *Checkout*.

        **Notes**

        The cart ID and checkout ID are the same.
      tags:
        - checkout
      parameters:
        - name: checkoutId
          in: path
          description: ID of the checkout; the same as the cart ID.
          required: true
          schema:
            type: string
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include
          in: query
          description: |-
            * `cart.line_items.physical_items.options` - physical options
            * `cart.line_items.digital_items.options` - digital options
            * `consignments.available_shipping_options` - shipping options
            * `promotions.banners` - promotion options
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CheckoutsCheckoutIdGetParametersIncludeSchemaItems'
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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/Checkout_getCheckout_Response_200'
        '404':
          description: Error code that is displayed when a given checkout ID is not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCheckoutRequestNotFoundError'
    put:
      operationId: updateCheckout
      summary: Update Customer Messages
      description: |-
        Change customer message pertaining to an existing *Checkout*.

        **Limits:**
        * 2000 characters for customer message
      tags:
        - checkout
      parameters:
        - name: checkoutId
          in: path
          description: ID of the checkout; the same as the cart ID.
          required: true
          schema:
            type: string
        - 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 |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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/Checkout_updateCheckout_Response_200'
        '409':
          description: Cart conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateCheckoutRequestConflictError'
      requestBody:
        description: '`customer_message` is required (maximum length is 2000).'
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Checkout_Put'
  /stores/{store_hash}/v3/checkouts/{checkoutId}/billing-address:
    post:
      operationId: addCheckoutBillingAddress
      summary: Add Checkout Billing Address
      description: >-
        Adds a billing address to an existing checkout.


        **Required Fields**

        * email

        * country_code


        To prevent lost updates due to concurrent requests overriding changes made by others, it is recommended to
        enable optimistic concurrency control by including the `version` field in the request payload. If the provided
        version does not match the version on the server, a conflict error will be returned, which the client can handle
        accordingly.
      tags:
        - billingAddress
      parameters:
        - name: checkoutId
          in: path
          description: ID of the checkout; the same as the cart ID.
          required: true
          schema:
            type: string
        - 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 |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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/Billing Address_addCheckoutBillingAddress_Response_200'
        '409':
          description: Cart conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddCheckoutBillingAddressRequestConflictError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddressProperties'
  /stores/{store_hash}/v3/checkouts/{checkoutId}/billing-address/{addressId}:
    put:
      operationId: updateCheckoutBillingAddress
      summary: Update Checkout Billing Address
      description: >-
        Updates an existing billing address on a checkout.


        To prevent lost updates due to concurrent requests overriding changes made by others, it is recommended to
        enable optimistic concurrency control by including the `version` field in the request payload. If the provided
        version does not match the version on the server, a conflict error will be returned, which the client can handle
        accordingly.
      tags:
        - billingAddress
      parameters:
        - name: checkoutId
          in: path
          description: ID of the checkout; the same as the cart ID.
          required: true
          schema:
            type: string
        - name: addressId
          in: path
          required: true
          schema:
            type: string
        - 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 |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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/Billing Address_updateCheckoutBillingAddress_Response_200'
        '409':
          description: Cart conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateCheckoutBillingAddressRequestConflictError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddressProperties'
  /stores/{store_hash}/v3/checkouts/{checkoutId}/consignments:
    post:
      operationId: addCheckoutConsignment
      summary: Add Consignment to Checkout
      description: >-
        Adds a new consignment to a checkout.



        To prevent lost updates due to concurrent requests overriding changes made by others, it is recommended to
        enable optimistic concurrency control by including the `version` field in the request payload. If the provided
        version does not match the version on the server, a conflict error will be returned, which the client can handle
        accordingly.


        For more information about working with consignments, see [Checkout
        consignment](/developer/docs/admin/checkout-and-cart/custom-checkouts/consignments).  


        Though the only required `address` properties to create a consignment are `email` and `country_code`, to
        successfully [create an order](/developer/api-reference/rest/admin/management/checkouts/orders/create-order) the
        `address` requires the following properties:

        * `first_name`

        * `last_name`

        * `address1`

        * `city`

        * `country`

        * `email`

        * `country_code`


        Depending on the country, the following `address` properties may also be required:


        * `postal_code`

        * `state_or_province`
      tags:
        - consignments
      parameters:
        - name: checkoutId
          in: path
          description: ID of the checkout; the same as the cart ID.
          required: true
          schema:
            type: string
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include
          in: query
          description: Include the shipping options available to this checkout.
          required: false
          schema:
            $ref: '#/components/schemas/CheckoutsCheckoutIdConsignmentsPostParametersInclude'
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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/Consignments_addCheckoutConsignment_Response_200'
        '409':
          description: Cart conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddCheckoutConsignmentRequestConflictError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateConsignmentRequest'
  /stores/{store_hash}/v3/checkouts/{checkoutId}/consignments/{consignmentId}:
    put:
      operationId: updateCheckoutConsignment
      summary: Update Checkout Consignment
      description: >-
        Updates an existing consignment. The address, line item IDs, and shipping option ID can be updated using this
        endpoint.


        Use a separate `PUT` request to update the shipping option IDs if you also want to update the address and line
        item IDs.  


        To add new shipping options, complete the following steps: 

        * Use the [Add Consignment to
        Checkout](/developer/api-reference/rest/admin/management/checkouts/consignments/add-checkout-consignment)
        endpoint to add a new [consignment] to a checkout. 

        * Assign a shipping option to the new consignment by sending a `PUT` request to update the consignment's
        `shipping_option_id` with a returned value from `data.consignments[N].available_shipping_option[N].id` obtained
        in the [Add Consignment to
        Checkout](/developer/api-reference/rest/admin/management/checkouts/consignments/add-checkout-consignment)
        endpoint. 


        To update an existing address and line item IDs, assign a new address and line item IDs by sending a `PUT`
        request.


        To prevent lost updates due to concurrent requests overriding changes made by others, it is recommended to
        enable optimistic concurrency control by including the `version` field in the request payload. If the provided
        version does not match the version on the server, a conflict error will be returned, which the client can handle
        accordingly.



        2. Assign a shipping option to the new consignment by sending a `PUT` request to update the consignment's
        `shipping_option_id` with a returned value from `data.consignments[N].available_shipping_option[N].id` obtained
        in Step One. 
      tags:
        - consignments
      parameters:
        - name: checkoutId
          in: path
          description: ID of the checkout; the same as the cart ID.
          required: true
          schema:
            type: string
        - name: consignmentId
          in: path
          required: true
          schema:
            type: string
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include
          in: query
          description: Include the shipping options available to this checkout.
          required: false
          schema:
            $ref: '#/components/schemas/CheckoutsCheckoutIdConsignmentsConsignmentIdPutParametersInclude'
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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/Consignments_updateCheckoutConsignment_Response_200'
        '409':
          description: Cart conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateCheckoutConsignmentRequestConflictError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateConsignmentRequest'
    delete:
      operationId: deleteCheckoutConsignment
      summary: Delete Checkout Consignment
      description: >-
        Removes an existing consignment from a checkout.


        To prevent lost updates due to concurrent requests overriding changes made by others, it is recommended to
        enable optimistic concurrency control by including the `version` field in the request payload. If the provided
        version does not match the version on the server, a conflict error will be returned, which the client can handle
        accordingly.
      tags:
        - consignments
      parameters:
        - name: checkoutId
          in: path
          description: ID of the checkout; the same as the cart ID.
          required: true
          schema:
            type: string
        - name: consignmentId
          in: path
          required: true
          schema:
            type: string
        - 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 |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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/Consignments_deleteCheckoutConsignment_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteConsignmentRequest'
  /stores/{store_hash}/v3/checkouts/{checkoutId}/coupons:
    post:
      operationId: addCheckoutCoupon
      summary: Add Coupon to Checkout
      description: >-
        Adds a coupon code to a checkout. 


        You can use multiple coupons by using this endpoint to apply one coupon at a time on your storefront. Ensure you
        enable the [Promotion
        Settings](https://support.bigcommerce.com/s/article/Store-Settings?language=en_US#promotion) in your control
        panel to allow for multiple coupons per order.


        You cannot add a coupon when an item-level manual discount is already applied. The API returns a `422` response
        with the message "Coupon `{coupon_code}` cannot be applied in combination with item level manual discount."


        **Required Fields**

        * coupon_code


        **Limits**

        * Coupon codes have a 50-character limit.


        To prevent lost updates due to concurrent requests overriding changes made by others, it is recommended to
        enable optimistic concurrency control by including the `version` field in the request payload. If the provided
        version does not match the version on the server, a conflict error will be returned, which the client can handle
        accordingly.
      tags:
        - coupons
      parameters:
        - name: checkoutId
          in: path
          description: ID of the checkout; the same as the cart ID.
          required: true
          schema:
            type: string
        - 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 |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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/Coupons_addCheckoutCoupon_Response_200'
        '409':
          description: Cart conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddCheckoutCouponRequestConflictError'
        '422':
          description: The coupon cannot be combined with an existing item-level manual discount.
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CouponCodeRequest'
  /stores/{store_hash}/v3/checkouts/{checkoutId}/coupons/{couponCode}:
    delete:
      operationId: deleteCheckoutCoupon
      summary: Delete Checkout Coupon
      description: >-
        Deletes a coupon code from a checkout.


        To prevent lost updates due to concurrent requests overriding changes made by others, it is recommended to
        enable optimistic concurrency control by including the `version` field in the request payload. If the provided
        version does not match the version on the server, a conflict error will be returned, which the client can handle
        accordingly.
      tags:
        - coupons
      parameters:
        - name: checkoutId
          in: path
          description: ID of the checkout; the same as the cart ID.
          required: true
          schema:
            type: string
        - name: couponCode
          in: path
          description: The actual coupon code value, not the coupon ID.
          required: true
          schema:
            type: string
        - 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 |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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/Coupons_deleteCheckoutCoupon_Response_200'
        '409':
          description: Cart conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteCheckoutCouponRequestConflictError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteCouponCodeRequest'
  /stores/{store_hash}/v3/checkouts/{checkoutId}/discounts:
    post:
      operationId: addCheckoutDiscount
      summary: Add Discount to Checkout
      description: >-
        Adds or replaces manual discounts on an existing checkout.


        Each request sets the checkout's complete manual-discount state. The request is not additive: manual discounts
        from an earlier request that you omit from the new payload are removed. This endpoint does not remove coupons or
        automatic promotions.


        Use the request body to apply:

        * An order-level manual discount with `cart.discounts[].discounted_amount`. BigCommerce distributes the discount
        across line items based on each item's value.

        * An item-level manual discount with `cart.line_items[].id` and `cart.line_items[].discounted_amount`.

        * Order-level and item-level manual discounts together by including both arrays in the same request.


        Manual discounts interact with coupons and automatic promotions as follows:


        | Manual discount level | Coupon or automatic promotion level | Behavior |

        | --- | --- | --- |

        | Order | Order or item | The discounts stack. The result is fully additive and does not depend on which
        discount is applied first. |

        | Item | Order or item | The discounts are mutually exclusive, and the first-applied discount remains. A
        conflicting manual-discount request is rejected, a coupon request returns a `422` response, and an automatic
        promotion does not apply. |


        If an item-level manual discount is already applied, adding a coupon returns a `422` response with the message
        "Coupon `{coupon_code}` cannot be applied in combination with item level manual discount." An eligible automatic
        promotion does not apply while an item-level manual discount exists.


        The required field is `discounted_amount` at the order level, item level, or both.


        To prevent lost updates from concurrent requests, include the optional `version` field in the request payload.
        If the provided version does not match the server's cart version, the API returns a conflict error.
      tags:
        - discounts
      parameters:
        - name: checkoutId
          in: path
          description: ID of the checkout; the same as the cart ID.
          required: true
          schema:
            type: string
        - 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 |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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/Discounts_addCheckoutDiscount_Response_200'
        '409':
          description: Cart conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddCheckoutDiscountRequestConflictError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                cart:
                  $ref: '#/components/schemas/CheckoutsCheckoutIdDiscountsPostRequestBodyContentApplicationJsonSchemaCart'
                  description: The complete manual-discount state to apply to the checkout.
  /stores/{store_hash}/v3/checkouts/{checkoutId}/fees:
    post:
      operationId: CheckoutsFeesByCheckoutIdPost
      summary: Add Order Level Fees to Checkout
      description: |-
        Adds order level fees to a checkout. 

        Limits: 
          - Maximum of 5 fees per checkout.
      tags:
        - fees
      parameters:
        - name: checkoutId
          in: path
          description: ID of the checkout; the same as the cart ID.
          required: true
          schema:
            type: string
        - 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 |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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/Fees_CheckoutsFeesByCheckoutIdPost_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddFeesRequest'
    put:
      operationId: CheckoutsFeesByCheckoutIdPut
      summary: Update Order Level Fees in Checkout
      description: |-
        Updates order level fees in a checkout.
        > We do not support partial updates, so please send the total entity values for each fee to be updated.
      tags:
        - fees
      parameters:
        - name: checkoutId
          in: path
          description: ID of the checkout; the same as the cart ID.
          required: true
          schema:
            type: string
        - 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 |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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/Fees_CheckoutsFeesByCheckoutIdPut_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFeesRequest'
    delete:
      operationId: CheckoutsFeesByCheckoutIdDelete
      summary: Delete Order Level Fees from Checkout
      description: |
        Delete fees from a checkout.

        > #### Note 
        > * The `Try It` feature is not currently supported for this endpoint.  
      tags:
        - fees
      parameters:
        - name: checkoutId
          in: path
          description: ID of the checkout; the same as the cart ID.
          required: true
          schema:
            type: string
        - 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 |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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/Fees_CheckoutsFeesByCheckoutIdDelete_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteFeesRequest'
  /stores/{store_hash}/v3/checkouts/{checkoutId}/orders:
    post:
      operationId: createOrder
      summary: Create Order
      description: >-
        Creates an order.


        ## Usage notes

        * Orders created will be set to incomplete order status.

        * You can create as many orders from the same order (cart) as you want.

        * Order duplication copies the existing order, assigns a new order number, and sets the new order status to
        `incomplete`.

        * Once the order is paid, the cart is deleted.

        * Cart deletion occurs if you are using BigCommerce to accept payments on orders.
      tags:
        - orders
      parameters:
        - name: checkoutId
          in: path
          description: ID of the checkout; the same as the cart ID.
          required: true
          schema:
            type: string
        - 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 |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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/Orders_createOrder_Response_200'
  /stores/{store_hash}/v3/checkouts/settings:
    get:
      operationId: getCheckoutSettings
      summary: Get Checkout Settings
      description: Get checkout settings
      tags:
        - settings
      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 |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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/Settings_getCheckoutSettings_Response_200'
    put:
      operationId: updateCheckoutSettings
      summary: Update Checkout Settings
      description: Update checkout settings
      tags:
        - settings
      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 |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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/Settings_updateCheckoutSettings_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckoutsSettingsRequest'
  /stores/{store_hash}/v3/checkouts/settings/channels/{channelId}:
    get:
      operationId: get-channel-checkout-settings
      summary: Get Channel-Specific Checkout Settings
      description: Returns the checkout settings for a given channel (storefront) by channelId.
      tags:
        - settings
      parameters:
        - name: channelId
          in: path
          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 |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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
      responses:
        '200':
          description: Channel checkout settings retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Settings_get-channel-checkout-settings_Response_200'
        '422':
          description: Invalid channelId or invalid request
          content:
            application/json:
              schema:
                description: Any type
    put:
      operationId: put-channel-checkout-settings
      summary: Update Channel-Specific Checkout Settings
      description: >-
        Updates the checkout settings for a given channel (storefront) by channelId.


        This endpoint will update all settings included in the request body. Any settings excluded will remain
        unchanged. All non-boolean 
      tags:
        - settings
      parameters:
        - name: channelId
          in: path
          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 |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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
      responses:
        '200':
          description: Channel checkout settings updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Settings_put-channel-checkout-settings_Response_200'
        '422':
          description: Invalid channelId or invalid request
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelCheckoutsSettings'
  /stores/{store_hash}/v3/checkouts/{checkoutId}/token:
    post:
      operationId: createCheckoutToken
      summary: Create Checkout Token
      description: >-
        Use the checkout token to display a confirmation page for a guest shopper.

        **Usage Notes** * The response from performing this POST request is a checkout token. * The checkout token is a
        single-use token that is not order-dependent. You cannot create this token after finalizing an order. * After
        completing the order, you can redirect the shopper to /order-confirmation/{orderId}?t={checkoutToken}. * After
        token validation, the /order-confirmation/{orderId} page displays. * The `ORDER_TOKEN` should match the order or
        the logged-in customer can access the order.
      tags:
        - token
      parameters:
        - name: checkoutId
          in: path
          description: ID of the checkout; the same as the cart ID.
          required: true
          schema:
            type: string
        - 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 |

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

            |  Checkouts | modify | `store_checkouts` |

            |  Checkouts | read-only | `store_checkouts_read_only` |

            |  Checkout Content | modify | `store_checkout_content` |

            |  Checkout Content | read-only | `store_checkout_content_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: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Token_createCheckoutToken_Response_200'
        '401':
          description: Unauthorized - the v3 Auth client ID or token in the request are not a valid combination for this store.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCheckoutTokenRequestUnauthorizedError'
        '422':
          description: Invalid JSON request body - missing or invalid data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCheckoutTokenRequestUnprocessableEntityError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                maxUses:
                  type: number
                  format: double
                ttl:
                  type: number
                  format: double
                  description: Time-to-live (TTL) is the number of seconds the token is set to exist before being discarded.
servers:
  - url: https://api.bigcommerce.com
    description: https://api.bigcommerce.com
components:
  schemas:
    CheckoutsCheckoutIdGetParametersIncludeSchemaItems:
      type: string
      enum:
        - cart.line_items.physical_items.options
        - cart.line_items.digital_items.options
        - consignments.available_shipping_options
        - promotions.banners
      title: CheckoutsCheckoutIdGetParametersIncludeSchemaItems
    CheckoutCartCurrency:
      type: object
      properties:
        code:
          type: string
          description: 'ISO-4217 currency code. (See: https://www.iso.org/iso-4217-currency-codes.html.)'
      title: CheckoutCartCurrency
    CheckoutCartCouponsItems:
      type: object
      properties:
        code:
          type: string
          description: The coupon code.
        id:
          type: integer
          description: The coupon ID.
        coupon_type:
          type: string
          description: Key name to identify the type of coupon.
        discounted_amount:
          type: string
          title: float
          description: The discounted amount applied within a given context.
        display_name:
          type: string
          description: The display name of the coupon.
      required:
        - code
      title: CheckoutCartCouponsItems
    CheckoutCartDiscountsItems:
      type: object
      properties:
        id:
          type: string
          description: ID of the applied discount.
        discounted_amount:
          type: number
          format: double
          description: The discounted amount applied within a given context.
      title: CheckoutCartDiscountsItems
    CheckoutCartLineItemsPhysicalItemsItemsDiscountsItemsId:
      oneOf:
        - type: string
        - type: integer
      description: The string value is always equal to "manual-discount" regardless of the input.
      title: CheckoutCartLineItemsPhysicalItemsItemsDiscountsItemsId
    CheckoutCartLineItemsPhysicalItemsItemsDiscountsItems:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/CheckoutCartLineItemsPhysicalItemsItemsDiscountsItemsId'
          description: The string value is always equal to "manual-discount" regardless of the input.
        discounted_amount:
          type: number
          format: double
          description: The discounted amount applied within a given context.
      title: CheckoutCartLineItemsPhysicalItemsItemsDiscountsItems
    CheckoutCartLineItemsPhysicalItemsItemsGiftWrapping:
      type: object
      properties:
        name:
          type: string
        message:
          type: string
        amount:
          type: number
          format: double
        amount_as_integer:
          type: number
          format: double
      title: CheckoutCartLineItemsPhysicalItemsItemsGiftWrapping
    CheckoutCartLineItemsPhysicalItemsItems:
      type: object
      properties:
        quantity:
          type: number
          format: double
        id:
          type: string
          description: The line-item ID.
        variant_id:
          type: number
          format: double
        product_id:
          type: number
          format: double
        sku:
          type: string
        name:
          type: string
          description: The product name of the item.
        url:
          type: string
          description: The product URL.
        is_taxable:
          type: boolean
        image_url:
          type: string
        discounts:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutCartLineItemsPhysicalItemsItemsDiscountsItems'
        discount_amount:
          type: number
          format: double
          description: The total value of all discounts applied to this item.
        coupon_amount:
          type: number
          format: double
          description: The total value of all coupons applied to this item.
        original_price:
          type: number
          format: double
          description: An item’s original price is the same as the default price of the product configured in the admin panel.
        list_price:
          type: number
          format: double
          description: >-
            The net item price before discounts and coupons are applied. BigCommerce derives an item’s list price from
            the product default price or, if applicable, the sale price configured in the admin panel.
        sale_price:
          type: number
          format: double
          description: Price of the item after all discounts are applied. (The final price before tax calculation.)
        extended_list_price:
          type: number
          format: double
          description: List price of the item multiplied by the quantity.
        extended_sale_price:
          type: number
          format: double
          description: Sale price of the item multiplied by the quantity.
        comparison_price:
          type: number
          format: double
          description: The price of a single product used for strike-through.
        extended_comparison_price:
          type: number
          format: double
          description: The price of a line item (product * quantity) used for strike-through.
        is_require_shipping:
          type: boolean
        is_mutable:
          type: boolean
        added_by_promotion:
          type: boolean
          description: Whether or not a promotion added an additional item.
        parent_id:
          type:
            - number
            - 'null'
          format: double
        gift_wrapping:
          oneOf:
            - $ref: '#/components/schemas/CheckoutCartLineItemsPhysicalItemsItemsGiftWrapping'
            - type: 'null'
      required:
        - quantity
      title: CheckoutCartLineItemsPhysicalItemsItems
    CheckoutCartLineItemsDigitalItemsItemsDiscountsItems:
      type: object
      properties:
        id:
          type: string
          format: double
          description: ID of the applied discount.
        discounted_amount:
          type: number
          format: double
          description: The discounted amount applied within a given context.
      title: CheckoutCartLineItemsDigitalItemsItemsDiscountsItems
    CheckoutCartLineItemsDigitalItemsItems:
      type: object
      properties:
        quantity:
          type: number
          format: double
        id:
          type: string
          description: The line-item ID.
        variant_id:
          type: number
          format: double
        parent_id:
          type:
            - number
            - 'null'
          format: double
        product_id:
          type: number
          format: double
        sku:
          type: string
        name:
          type: string
          description: The product name of the item.
        url:
          type: string
          description: The product URL.
        is_mutable:
          type: boolean
        is_require_shipping:
          type: boolean
        added_by_promotion:
          type: boolean
          description: Whether or not a promotion added an additional item.
        is_taxable:
          type: boolean
        image_url:
          type: string
        discounts:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutCartLineItemsDigitalItemsItemsDiscountsItems'
        discount_amount:
          type: number
          format: double
          description: The total value of all discounts applied to this item.
        coupon_amount:
          type: number
          format: double
          description: The total value of all coupons applied to this item.
        original_price:
          type: number
          format: double
          description: An item’s original price is the same as the product default price in the admin panel.
        list_price:
          type: number
          format: double
          description: >-
            The net item price before discounts and coupons are applied. BigCommerce derives an item’s list price from
            the product default price or, if applicable, the sale price configured in the admin panel.
        sale_price:
          type: number
          format: double
          description: Price of the item after all discounts are applied. (The final price before tax calculation.)
        extended_list_price:
          type: number
          format: double
          description: List price of the item multiplied by the quantity.
        extended_sale_price:
          type: number
          format: double
          description: Sale price of the item multiplied by the quantity.
        comparison_price:
          type: number
          format: double
          description: The price of a single product used for strike-through.
        extended_comparison_price:
          type: number
          format: double
          description: The price of a line item (product * quantity) used for strike-through.
      required:
        - quantity
      title: CheckoutCartLineItemsDigitalItemsItems
    CheckoutCartLineItemsGiftCertificatesItemsSender:
      type: object
      properties:
        name:
          type: string
        email:
          type: string
      title: CheckoutCartLineItemsGiftCertificatesItemsSender
    CheckoutCartLineItemsGiftCertificatesItemsRecipient:
      type: object
      properties:
        name:
          type: string
        email:
          type: string
      title: CheckoutCartLineItemsGiftCertificatesItemsRecipient
    CheckoutCartLineItemsGiftCertificatesItems:
      type: object
      properties:
        theme:
          type: string
          description: Currently supports `Birthday`, `Boy`, `Celebration`, `Christmas`, `General`, and `Girl`.
        amount:
          type: number
          format: double
          description: Value must be between 1.00 and 1,000.00 in the store’s default currency.
        sender:
          $ref: '#/components/schemas/CheckoutCartLineItemsGiftCertificatesItemsSender'
        recipient:
          $ref: '#/components/schemas/CheckoutCartLineItemsGiftCertificatesItemsRecipient'
        id:
          type: string
        name:
          type: string
          description: GiftCertificate-provided name that will appear in the control panel.
        taxable:
          type: boolean
        message:
          type: string
          description: Limited to 200 characters.
      required:
        - theme
        - amount
        - sender
        - recipient
      title: CheckoutCartLineItemsGiftCertificatesItems
    CheckoutCartLineItemsCustomItemsItems:
      type: object
      properties:
        quantity:
          type: number
          format: double
        id:
          type: string
        extended_list_price:
          type: number
          format: double
        list_price:
          type: number
          format: double
        sku:
          type: string
        name:
          type: string
        image_url:
          type: string
      required:
        - quantity
      title: CheckoutCartLineItemsCustomItemsItems
    CheckoutCartLineItems:
      type: object
      properties:
        physical_items:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutCartLineItemsPhysicalItemsItems'
        digital_items:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutCartLineItemsDigitalItemsItems'
        gift_certificates:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutCartLineItemsGiftCertificatesItems'
        custom_items:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutCartLineItemsCustomItemsItems'
      required:
        - physical_items
        - digital_items
        - gift_certificates
      title: CheckoutCartLineItems
    CheckoutCart:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Cart ID, provided after creating a cart with a POST request.
        customer_id:
          type: integer
          description: ID of the customer to which the cart belongs.
        email:
          type: string
          description: The email address of the cart. This is the same email address that is used in the billing address.
        currency:
          $ref: '#/components/schemas/CheckoutCartCurrency'
        tax_included:
          type: boolean
          description: Indicates whether product prices are shown inclusive of sales tax.
        base_amount:
          type: number
          format: double
          description: Sum of cart line-item amounts before cart-level discounts, coupons, or taxes are applied.
        channel_id:
          type: number
          format: double
          description: ID of channel
        discount_amount:
          type: number
          format: double
          description: >-
            The amount includes order-level automatic promotions plus manual discounts and excludes coupon and
            product-based discounts.
        cart_amount_inc_tax:
          type: number
          format: double
          description: Sum of cart line-item amounts minus cart-level discounts and coupons including tax.
        cart_amount_ex_tax:
          type: number
          format: double
          description: Sum of cart line-item amounts minus cart-level discounts and coupons excluding tax.
        coupons:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutCartCouponsItems'
        discounts:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutCartDiscountsItems'
        line_items:
          $ref: '#/components/schemas/CheckoutCartLineItems'
        created_time:
          type: string
          description: Time when the cart was created.
        updated_time:
          type: string
          description: Time when the cart was last updated.
      title: CheckoutCart
    CheckoutBillingAddressCustomFieldsItems:
      type: object
      properties:
        field_id:
          type: string
        field_value:
          type: string
          description: This can also be an array for fields that need to support a list of values (e.g., a set of check boxes.)
      title: CheckoutBillingAddressCustomFieldsItems
    CheckoutBillingAddress:
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
        company:
          type: string
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        state_or_province:
          type: string
          description: Represents state or province.
        state_or_province_code:
          type: string
        country_code:
          type: string
        postal_code:
          type: string
        phone:
          type: string
        custom_fields:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutBillingAddressCustomFieldsItems'
        id:
          type: string
      title: CheckoutBillingAddress
    CheckoutConsignmentsItemsShippingAddress:
      type: object
      properties: {}
      title: CheckoutConsignmentsItemsShippingAddress
    CheckoutConsignmentsItemsAddressCustomFieldsItems:
      type: object
      properties:
        field_id:
          type: string
        field_value:
          type: string
          description: This can also be an array for fields that need to support a list of values (e.g., a set of check boxes.)
      title: CheckoutConsignmentsItemsAddressCustomFieldsItems
    CheckoutConsignmentsItemsAddress:
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
        company:
          type: string
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        state_or_province:
          type: string
          description: Represents state or province.
        state_or_province_code:
          type: string
        country_code:
          type: string
        postal_code:
          type: string
        phone:
          type: string
        custom_fields:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutConsignmentsItemsAddressCustomFieldsItems'
        id:
          type: string
      required:
        - email
        - country_code
      title: CheckoutConsignmentsItemsAddress
    CheckoutConsignmentsItemsAvailableShippingOptionsItems:
      type: object
      properties:
        description:
          type: string
        id:
          type: string
        type:
          type: string
          description: Specifies the type of shipping option, such as flat rate, UPS, etc.
        image_url:
          type: string
        cost:
          type: number
          format: double
        transit_time:
          type: string
          description: An estimate of the arrival time.
        additional_description:
          type: string
          description: Read-only field that is used for the Shipping Provider API.
      title: CheckoutConsignmentsItemsAvailableShippingOptionsItems
    CheckoutConsignmentsItemsSelectedShippingOption:
      type: object
      properties:
        description:
          type: string
        id:
          type: string
        type:
          type: string
          description: Specifies the type of shipping option, such as flat rate, UPS, etc.
        image_url:
          type: string
        cost:
          type: number
          format: double
        transit_time:
          type: string
          description: An estimate of the arrival time.
        additional_description:
          type: string
          description: Read-only field that is used for the Shipping Provider API.
      title: CheckoutConsignmentsItemsSelectedShippingOption
    CheckoutConsignmentsItemsCouponDiscountsItems:
      type: object
      properties:
        code:
          type: string
          description: Coupon code through which this discount was applied.
        amount:
          type: number
          format: double
      title: CheckoutConsignmentsItemsCouponDiscountsItems
    CheckoutConsignmentsItemsDiscountsItems:
      type: object
      properties:
        id:
          type: integer
          description: Discount rule ID that applied this discount.
      title: CheckoutConsignmentsItemsDiscountsItems
    PickupOption:
      type: object
      properties:
        pickup_method_id:
          type: integer
      title: PickupOption
    CheckoutConsignmentsItems:
      type: object
      properties:
        id:
          type: string
        shippingAddress:
          $ref: '#/components/schemas/CheckoutConsignmentsItemsShippingAddress'
        address:
          $ref: '#/components/schemas/CheckoutConsignmentsItemsAddress'
        available_shipping_options:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutConsignmentsItemsAvailableShippingOptionsItems'
          description: This is available only when "include=consignments.available_shipping_options" is presented in the URL.
        selected_shipping_option:
          $ref: '#/components/schemas/CheckoutConsignmentsItemsSelectedShippingOption'
        coupon_discounts:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutConsignmentsItemsCouponDiscountsItems'
          description: List of consignment discounts applied through coupons.
        discounts:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutConsignmentsItemsDiscountsItems'
          description: List of consignment discounts applied through cart-level discounts.
        shipping_cost_inc_tax:
          type: number
          format: double
          description: The shipping cost for this consignment including tax.
        shipping_cost_ex_tax:
          type: number
          format: double
          description: The shipping cost for this consignment excluding tax.
        handling_cost_inc_tax:
          type: number
          format: double
          description: The handling cost of shipping for this consignment including tax.
        handling_cost_ex_tax:
          type: number
          format: double
          description: The handling cost of shipping for this consignment excluding tax.
        line_item_ids:
          type: array
          items:
            type: string
          description: >-
            Array lists only one line item. To display multiple `line_item_ids`, perform a `POST` request to add
            consignments to the checkout using the same address.
        selected_pickup_option:
          $ref: '#/components/schemas/PickupOption'
      description: >-
        This allows the use of multiple addresses. When there is only one address, this array will contain only one
        value, with all the items.
      title: CheckoutConsignmentsItems
    CheckoutTaxesItems:
      type: object
      properties:
        name:
          type: string
          description: Name of the tax.
        amount:
          type: number
          format: double
      title: CheckoutTaxesItems
    AppliedCoupon:
      type: object
      properties:
        code:
          type: string
          description: The coupon code.
        id:
          type: integer
          description: The coupon ID.
        coupon_type:
          type: string
          description: Key name to identify the type of coupon.
        display_name:
          type: string
          description: The display name of the coupon.
        discounted_amount:
          type: string
          title: float
          description: The discounted amount applied within a given context.
      required:
        - code
      title: AppliedCoupon
    CheckoutFeeType:
      type: string
      enum:
        - custom_fee
      description: The type of the fee.
      title: CheckoutFeeType
    CheckoutFee:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The fee ID.
        type:
          $ref: '#/components/schemas/CheckoutFeeType'
          description: The type of the fee.
        name:
          type: string
          description: Name of the fee.
        display_name:
          type: string
          description: Display name of the fee targeting customers/shoppers.
        cost_inc_tax:
          type: number
          format: double
          description: Cost of the fee including tax.
        cost_ex_tax:
          type: number
          format: double
          description: Cost of the fee excluding tax.
        source:
          type: string
          description: The source of the request.
        tax_class_id:
          type:
            - integer
            - 'null'
          description: The tax class ID.
      title: CheckoutFee
    CheckoutPromotionsItemsBannersItems:
      type: object
      properties:
        id:
          type: string
          description: ID of the promotion.
        type:
          type: string
          description: Type of the banner.
        page:
          type: array
          items:
            type: string
          description: An array of the locations where the banner will display.
        text:
          type: string
          description: Text of the banner.
      title: CheckoutPromotionsItemsBannersItems
    CheckoutPromotionsItems:
      type: object
      properties:
        banners:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutPromotionsItemsBannersItems'
      title: CheckoutPromotionsItems
    Checkout:
      type: object
      properties:
        id:
          type: string
          format: uuid
        cart:
          $ref: '#/components/schemas/CheckoutCart'
        billing_address:
          $ref: '#/components/schemas/CheckoutBillingAddress'
        consignments:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutConsignmentsItems'
        taxes:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutTaxesItems'
        coupons:
          type: array
          items:
            $ref: '#/components/schemas/AppliedCoupon'
          description: Coupons applied at checkout level.
        fees:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutFee'
          description: Fees applied at the checkout level.
        order_id:
          type:
            - string
            - 'null'
        shipping_cost_total_inc_tax:
          type: number
          format: double
          description: Shipping cost before any discounts are applied including tax.
        shipping_cost_total_ex_tax:
          type: number
          format: double
          description: Shipping cost before any discounts are applied excluding tax.
        handling_cost_total_inc_tax:
          type: number
          format: double
          description: Handling cost for all consignments including tax.
        handling_cost_total_ex_tax:
          type: number
          format: double
          description: Handling cost for all consignments excluding tax.
        tax_total:
          type: number
          format: double
        subtotal_inc_tax:
          type: number
          format: double
          description: Subtotal of the checkout before applying item-level discounts including tax.
        subtotal_ex_tax:
          type: number
          format: double
          description: Subtotal of the checkout before applying item-level discounts excluding tax.
        grand_total:
          type: number
          format: double
          description: The total payable amount, before applying any store credit or a gift certificate.
        created_time:
          type: string
          description: Time when the cart was created.
        updated_time:
          type: string
          description: Time when the cart was last updated.
        customer_message:
          type: string
          description: Shopper's message provided as details for the order to be created from this checkout.
        promotions:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutPromotionsItems'
        version:
          type: integer
          description: >-
            The current version of the checkout increments with each successful update. You can use it to enable
            optimistic concurrency control for subsequent updates.
      title: Checkout
    MetaOpen:
      type: object
      properties: {}
      description: Response metadata.
      title: MetaOpen
    Checkout_getCheckout_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Checkout'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Checkout_getCheckout_Response_200
    CheckoutsCheckoutIdGetResponsesContentApplicationJsonSchemaErrorsItems:
      type: object
      properties:
        status:
          type: integer
        title:
          type: string
        type:
          type: string
        detail:
          type: string
      title: CheckoutsCheckoutIdGetResponsesContentApplicationJsonSchemaErrorsItems
    GetCheckoutRequestNotFoundError:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutsCheckoutIdGetResponsesContentApplicationJsonSchemaErrorsItems'
      title: GetCheckoutRequestNotFoundError
    Checkout_Put:
      type: object
      properties:
        customer_message:
          type: string
        version:
          type: integer
          description: >-
            The cart version that you expect to apply the updates. If the provided version doesn't match the current
            cart version, you will receive a conflict error. This field is optional; if not provided, optimistic
            concurrency control will not apply.
      required:
        - customer_message
      title: Checkout_Put
    Checkout_updateCheckout_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Checkout'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Checkout_updateCheckout_Response_200
    UpdateCheckoutRequestConflictError:
      type: object
      properties:
        status:
          type: integer
        title:
          type: string
        type:
          type: string
      title: UpdateCheckoutRequestConflictError
    AddressPropertiesCustomFieldsItems:
      type: object
      properties:
        field_id:
          type: string
        field_value:
          type: string
          description: This can also be an array for fields that need to support a list of values (e.g., a set of check boxes.)
      title: AddressPropertiesCustomFieldsItems
    AddressProperties:
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
        company:
          type: string
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        state_or_province:
          type: string
          description: Represents state or province.
        state_or_province_code:
          type: string
        country_code:
          type: string
        postal_code:
          type: string
        phone:
          type: string
        custom_fields:
          type: array
          items:
            $ref: '#/components/schemas/AddressPropertiesCustomFieldsItems'
          description: >-
            You can retrieve custom fields from the [Get Form
            Fields](/developer/api-reference/rest/storefront/form-fields/get-form-fields) endpoint.
        version:
          type: integer
          description: >-
            The cart version that you expect to apply the updates. If the provided version doesn't match the current
            cart version, you will receive a conflict error. This field is optional; if not provided, optimistic
            concurrency control will not apply.
      required:
        - email
        - country_code
      title: AddressProperties
    Billing Address_addCheckoutBillingAddress_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Checkout'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Billing Address_addCheckoutBillingAddress_Response_200
    AddCheckoutBillingAddressRequestConflictError:
      type: object
      properties:
        status:
          type: integer
        title:
          type: string
        type:
          type: string
      title: AddCheckoutBillingAddressRequestConflictError
    Billing Address_updateCheckoutBillingAddress_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Checkout'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Billing Address_updateCheckoutBillingAddress_Response_200
    UpdateCheckoutBillingAddressRequestConflictError:
      type: object
      properties:
        status:
          type: integer
        title:
          type: string
        type:
          type: string
      title: UpdateCheckoutBillingAddressRequestConflictError
    CheckoutsCheckoutIdConsignmentsPostParametersInclude:
      type: string
      enum:
        - consignments.available_shipping_options
      title: CheckoutsCheckoutIdConsignmentsPostParametersInclude
    CreateConsignmentRequestItemsAddressCustomFieldsItems:
      type: object
      properties:
        field_id:
          type: string
          description: You must provide the form field ID value as the `field_id`.
        field_value:
          type: string
          description: This can also be an array for fields that need to support a list of values (e.g., a set of check boxes.)
      required:
        - field_id
      title: CreateConsignmentRequestItemsAddressCustomFieldsItems
    CreateConsignmentRequestItemsAddress:
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
        company:
          type: string
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        state_or_province:
          type: string
          description: Represents state or province.
        state_or_province_code:
          type: string
        country_code:
          type: string
        postal_code:
          type: string
        phone:
          type: string
        custom_fields:
          type: array
          items:
            $ref: '#/components/schemas/CreateConsignmentRequestItemsAddressCustomFieldsItems'
          description: >-
            You can retrieve custom fields from the [Get Form
            Fields](/developer/api-reference/rest/storefront/form-fields/get-form-fields) endpoint.
      required:
        - email
        - state_or_province
        - country_code
        - postal_code
      title: CreateConsignmentRequestItemsAddress
    CreateConsignmentRequestItemsLineItemsItems:
      type: object
      properties:
        item_id:
          type: string
          description: Corresponds to `line_items.physical_items[N].id` value from `GET`checkout response.
        quantity:
          type: integer
      required:
        - item_id
        - quantity
      title: CreateConsignmentRequestItemsLineItemsItems
    CreateConsignmentRequestItemsPickupOption:
      type: object
      properties:
        pickup_method_id:
          type: integer
      description: 'Assigns a pickup consignment. Note: You cannot assign a shipping method with a pickup consignment.'
      title: CreateConsignmentRequestItemsPickupOption
    CreateConsignmentRequestItems:
      type: object
      properties:
        address:
          $ref: '#/components/schemas/CreateConsignmentRequestItemsAddress'
        line_items:
          type: array
          items:
            $ref: '#/components/schemas/CreateConsignmentRequestItemsLineItemsItems'
        pickup_option:
          $ref: '#/components/schemas/CreateConsignmentRequestItemsPickupOption'
          description: 'Assigns a pickup consignment. Note: You cannot assign a shipping method with a pickup consignment.'
        version:
          type: integer
          description: >-
            The cart version that you expect to apply the updates. If the provided version doesn't match the current
            cart version, you will receive a conflict error. This field is optional; if not provided, optimistic
            concurrency control will not apply.
      title: CreateConsignmentRequestItems
    CreateConsignmentRequest:
      type: array
      items:
        $ref: '#/components/schemas/CreateConsignmentRequestItems'
      title: CreateConsignmentRequest
    Consignments_addCheckoutConsignment_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Checkout'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Consignments_addCheckoutConsignment_Response_200
    AddCheckoutConsignmentRequestConflictError:
      type: object
      properties:
        status:
          type: integer
        title:
          type: string
        type:
          type: string
      title: AddCheckoutConsignmentRequestConflictError
    CheckoutsCheckoutIdConsignmentsConsignmentIdPutParametersInclude:
      type: string
      enum:
        - consignments.available_shipping_options
      title: CheckoutsCheckoutIdConsignmentsConsignmentIdPutParametersInclude
    UpdateConsignmentRequestAddressCustomFieldsItems:
      type: object
      properties:
        field_id:
          type: string
        field_value:
          type: string
          description: This can also be an array for fields that need to support a list of values (e.g., a set of check boxes.)
      title: UpdateConsignmentRequestAddressCustomFieldsItems
    UpdateConsignmentRequestAddress:
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
        company:
          type: string
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        state_or_province:
          type: string
          description: Represents state or province.
        state_or_province_code:
          type: string
        country_code:
          type: string
        postal_code:
          type: string
        phone:
          type: string
        custom_fields:
          type: array
          items:
            $ref: '#/components/schemas/UpdateConsignmentRequestAddressCustomFieldsItems'
      required:
        - email
        - country_code
      title: UpdateConsignmentRequestAddress
    UpdateConsignmentRequestLineItemsItems:
      type: object
      properties:
        item_id:
          type: string
          description: Corresponds to `line_items.physical_items[N].id` value from `GET`checkout response.
        quantity:
          type: integer
      required:
        - item_id
        - quantity
      title: UpdateConsignmentRequestLineItemsItems
    UpdateConsignmentRequestPickupOption:
      type: object
      properties:
        pickup_method_id:
          type: integer
      title: UpdateConsignmentRequestPickupOption
    UpdateConsignmentRequestCustomShipping:
      type: object
      properties:
        price:
          type: number
          format: double
        description:
          type: string
      title: UpdateConsignmentRequestCustomShipping
    UpdateConsignmentRequest:
      type: object
      properties:
        address:
          $ref: '#/components/schemas/UpdateConsignmentRequestAddress'
        line_items:
          type: array
          items:
            $ref: '#/components/schemas/UpdateConsignmentRequestLineItemsItems'
        shipping_option_id:
          type: string
        pickup_option:
          $ref: '#/components/schemas/UpdateConsignmentRequestPickupOption'
        custom_shipping:
          $ref: '#/components/schemas/UpdateConsignmentRequestCustomShipping'
        version:
          type: integer
          description: >-
            The cart version that you expect to apply the updates. If the provided version doesn't match the current
            cart version, you will receive a conflict error. This field is optional; if not provided, optimistic
            concurrency control will not apply.
      description: >-
        One or more of these three fields are mandatory. `address` and `line_items` can be updated in one request.
        `shipping_option_id` has to be updated in a separate request because changing the address or line items can
        invalidate the previously available shipping options.
      title: UpdateConsignmentRequest
    Consignments_updateCheckoutConsignment_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Checkout'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Consignments_updateCheckoutConsignment_Response_200
    UpdateCheckoutConsignmentRequestConflictError:
      type: object
      properties:
        status:
          type: integer
        title:
          type: string
        type:
          type: string
      title: UpdateCheckoutConsignmentRequestConflictError
    DeleteConsignmentRequest:
      type: object
      properties:
        version:
          type: integer
          description: >-
            The cart version that you expect to apply the updates. If the provided version doesn't match the current
            cart version, you will receive a conflict error. This field is optional; if not provided, optimistic
            concurrency control will not apply.
      title: DeleteConsignmentRequest
    Consignments_deleteCheckoutConsignment_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Checkout'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Consignments_deleteCheckoutConsignment_Response_200
    CouponCodeRequest:
      type: object
      properties:
        coupon_code:
          type: string
          description: Coupon codes have a 50-character limit.
        version:
          type: integer
          description: >-
            The cart version that you expect to apply the updates. If the provided version doesn't match the current
            cart version, you will receive a conflict error. This field is optional; if not provided, optimistic
            concurrency control will not apply.
      title: CouponCodeRequest
    Coupons_addCheckoutCoupon_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Checkout'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Coupons_addCheckoutCoupon_Response_200
    AddCheckoutCouponRequestConflictError:
      type: object
      properties:
        status:
          type: integer
        title:
          type: string
        type:
          type: string
      title: AddCheckoutCouponRequestConflictError
    DeleteCouponCodeRequest:
      type: object
      properties:
        version:
          type: integer
          description: >-
            The cart version that you expect to apply the updates. If the provided version doesn't match the current
            cart version, you will receive a conflict error. This field is optional; if not provided, optimistic
            concurrency control will not apply.
      title: DeleteCouponCodeRequest
    Coupons_deleteCheckoutCoupon_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Checkout'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Coupons_deleteCheckoutCoupon_Response_200
    DeleteCheckoutCouponRequestConflictError:
      type: object
      properties:
        status:
          type: integer
        title:
          type: string
        type:
          type: string
      title: DeleteCheckoutCouponRequestConflictError
    CheckoutsCheckoutIdDiscountsPostRequestBodyContentApplicationJsonSchemaCartDiscountsItems:
      type: object
      properties:
        discounted_amount:
          type: number
          format: double
      required:
        - discounted_amount
      title: CheckoutsCheckoutIdDiscountsPostRequestBodyContentApplicationJsonSchemaCartDiscountsItems
    CheckoutsCheckoutIdDiscountsPostRequestBodyContentApplicationJsonSchemaCartLineItemsItems:
      type: object
      properties:
        id:
          type: string
        discounted_amount:
          type: number
          format: double
      title: CheckoutsCheckoutIdDiscountsPostRequestBodyContentApplicationJsonSchemaCartLineItemsItems
    CheckoutsCheckoutIdDiscountsPostRequestBodyContentApplicationJsonSchemaCart:
      type: object
      properties:
        discounts:
          type: array
          items:
            $ref: >-
              #/components/schemas/CheckoutsCheckoutIdDiscountsPostRequestBodyContentApplicationJsonSchemaCartDiscountsItems
          description: Order-level manual discounts. Any previously applied manual discounts omitted from this request are removed.
        line_items:
          type: array
          items:
            $ref: >-
              #/components/schemas/CheckoutsCheckoutIdDiscountsPostRequestBodyContentApplicationJsonSchemaCartLineItemsItems
          description: Item-level manual discounts. Any previously applied manual discounts omitted from this request are removed.
        version:
          type: integer
          description: >-
            The cart version that you expect to apply the updates. If the provided version doesn't match the current
            cart version, you will receive a conflict error. This field is optional; if not provided, optimistic
            concurrency control will not apply.
      description: The complete manual-discount state to apply to the checkout.
      title: CheckoutsCheckoutIdDiscountsPostRequestBodyContentApplicationJsonSchemaCart
    Discounts_addCheckoutDiscount_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Checkout'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Discounts_addCheckoutDiscount_Response_200
    AddCheckoutDiscountRequestConflictError:
      type: object
      properties:
        status:
          type: integer
        title:
          type: string
        type:
          type: string
      title: AddCheckoutDiscountRequestConflictError
    BaseFeeType:
      type: string
      enum:
        - custom_fee
      description: The type of the fee.
      title: BaseFeeType
    BaseFee:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/BaseFeeType'
          description: The type of the fee.
        name:
          type: string
          description: The name of the fee.
        display_name:
          type: string
          description: The display name of the fee targeting customers/shoppers.
        cost:
          type: number
          format: double
          description: The cost of the fee.
        source:
          type: string
          description: The source of the request.
        tax_class_id:
          type: integer
          description: >-
            The tax class ID applied to this fee (you can retrieve the tax class ID from our management API -
            v2/tax_classes). If the tax class is not provided or is null, the tax class set in the control panel is
            applied.
      required:
        - type
        - name
        - display_name
        - cost
        - source
      title: BaseFee
    AddFeesRequest:
      type: object
      properties:
        fees:
          type: array
          items:
            $ref: '#/components/schemas/BaseFee'
          description: The fees to be added to a checkout.
      required:
        - fees
      title: AddFeesRequest
    Fees_CheckoutsFeesByCheckoutIdPost_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Checkout'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Fees_CheckoutsFeesByCheckoutIdPost_Response_200
    FeeWithIdType:
      type: string
      enum:
        - custom_fee
      description: The type of the fee.
      title: FeeWithIdType
    FeeWithId:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/FeeWithIdType'
          description: The type of the fee.
        name:
          type: string
          description: The name of the fee.
        display_name:
          type: string
          description: The display name of the fee targeting customers/shoppers.
        cost:
          type: number
          format: double
          description: The cost of the fee.
        source:
          type: string
          description: The source of the request.
        tax_class_id:
          type: integer
          description: >-
            The tax class ID applied to this fee (you can retrieve the tax class ID from our management API -
            v2/tax_classes). If the tax class is not provided or is null, the tax class set in the control panel is
            applied.
        id:
          type: string
          description: ID of the fee.
      required:
        - type
        - name
        - display_name
        - cost
        - source
        - id
      title: FeeWithId
    UpdateFeesRequest:
      type: object
      properties:
        fees:
          type: array
          items:
            $ref: '#/components/schemas/FeeWithId'
          description: The fees to be updated in a checkout.
      required:
        - fees
      title: UpdateFeesRequest
    Fees_CheckoutsFeesByCheckoutIdPut_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Checkout'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Fees_CheckoutsFeesByCheckoutIdPut_Response_200
    DeleteFeesRequest:
      type: object
      properties:
        ids:
          type: array
          items:
            type: string
          description: The IDs of the fees to be deleted from a checkout.
      required:
        - ids
      title: DeleteFeesRequest
    Fees_CheckoutsFeesByCheckoutIdDelete_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Checkout'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Fees_CheckoutsFeesByCheckoutIdDelete_Response_200
    Order:
      type: object
      properties:
        id:
          type: integer
          description: The order ID.
      title: Order
    Orders_createOrder_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Order'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Orders_createOrder_Response_200
    CheckoutsSettings:
      type: object
      properties:
        custom_checkout_script_url:
          type: string
        order_confirmation_use_custom_checkout_script:
          type: boolean
        custom_order_confirmation_script_url:
          type: string
        custom_checkout_supports_uco_settings:
          type: boolean
        custom_checkout_sri_hash:
          type: string
        custom_order_confirmation_sri_hash:
          type: string
      title: CheckoutsSettings
    Settings_getCheckoutSettings_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CheckoutsSettings'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Settings_getCheckoutSettings_Response_200
    CheckoutsSettingsRequest:
      type: object
      properties:
        custom_checkout_script_url:
          type: string
          description: >-
            Custom checkout script URL to replace our default checkout. To reset a store to optimized one-page checkout,
            pass an empty string for `custom_checkout_script_url` and `custom_order_confirmation_script_url`.
        order_confirmation_use_custom_checkout_script:
          type: boolean
          description: >-
            When order_confirmation_use_custom_checkout_script=true, the default custom_order_confirmation_script_url
            defaults to an empty string.
        custom_order_confirmation_script_url:
          type: string
          description: >-
            Custom order confirmation script URL to replace the default order confirmation. To reset a store to
            optimized one-page checkout, pass an empty string for `custom_checkout_script_url` and
            `custom_order_confirmation_script_url`.
        custom_checkout_supports_uco_settings:
          type: boolean
          description: Boolean value that specifies whether this checkout supports Optimized One-Page Checkout settings.
        custom_checkout_sri_hash:
          type: string
          description: The Subresource Integrity (SRI) hash for the custom checkout script URL.
        custom_order_confirmation_sri_hash:
          type: string
          description: The Subresource Integrity (SRI) hash for the custom order confirmation script URL.
      title: CheckoutsSettingsRequest
    Settings_updateCheckoutSettings_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CheckoutsSettings'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Settings_updateCheckoutSettings_Response_200
    ChannelCheckoutsSettings:
      type: object
      properties:
        checkout_type:
          type: string
        guest_checkout_type:
          type: string
        guest_checkout_for_existing_accounts:
          type: string
        policy_consent:
          type: string
        order_confirmation_contact_email:
          type: string
        is_order_terms_and_conditions_enabled:
          type: boolean
        order_terms_and_conditions_type:
          type: string
        order_terms_and_conditions_link:
          type: string
        order_terms_and_conditions_textarea:
          type: string
        should_redirect_to_storefront_for_auth:
          type: boolean
        custom_checkout_script_url:
          type: string
        order_confirmation_use_custom_checkout_script:
          type: boolean
        custom_order_confirmation_script_url:
          type: string
        custom_checkout_supports_uco_settings:
          type: boolean
        custom_checkout_sri_hash:
          type: string
        custom_order_confirmation_sri_hash:
          type: string
      title: ChannelCheckoutsSettings
    Settings_get-channel-checkout-settings_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ChannelCheckoutsSettings'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Settings_get-channel-checkout-settings_Response_200
    Settings_put-channel-checkout-settings_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ChannelCheckoutsSettings'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Settings_put-channel-checkout-settings_Response_200
    Token_createCheckoutToken_Response_200:
      type: object
      properties:
        checkoutToken:
          type: string
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Token_createCheckoutToken_Response_200
    CheckoutsCheckoutIdTokenPostResponsesContentApplicationJsonSchemaErrors:
      type: object
      properties: {}
      title: CheckoutsCheckoutIdTokenPostResponsesContentApplicationJsonSchemaErrors
    CreateCheckoutTokenRequestUnauthorizedError:
      type: object
      properties:
        status:
          type: integer
          description: The HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
          description: |
            A link to a list of BigCommerce API status codes.
        errors:
          $ref: '#/components/schemas/CheckoutsCheckoutIdTokenPostResponsesContentApplicationJsonSchemaErrors'
      title: CreateCheckoutTokenRequestUnauthorizedError
    CreateCheckoutTokenRequestUnprocessableEntityError:
      type: object
      properties:
        status:
          type: string
          format: int32
          description: The HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
          description: A link to a list of BigCommerce API status codes.
      title: CreateCheckoutTokenRequestUnprocessableEntityError
  securitySchemes:
    X-Auth-Token:
      type: apiKey
      in: header
      name: X-Auth-Token
      description: >-
        ### OAuth scopes


        | UI Name | Permission | Parameter |

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

        |  Checkouts | modify | `store_checkouts` |

        |  Checkouts | read-only | `store_checkouts_read_only` |

        |  Checkout Content | modify | `store_checkout_content` |

        |  Checkout Content | read-only | `store_checkout_content_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).
