openapi: 3.1.0
info:
  title: 'Admin Management: Customers V3'
  version: 1.0.0
paths:
  /stores/{store_hash}/v3/customers:
    get:
      operationId: getCustomers
      summary: List Customers
      description: |-
        Returns a list of Customers. Optional filter parameters can be passed in.

        **Notes**

        Attribute names are not available on the customer object.
      tags:
        - customers
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: >-
            Page number (`page` will be ignored if you provide `before` or `after` in the request). For example
            `page=1`.
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: Items count per page. `limit=50`
          required: false
          schema:
            type: number
            format: double
        - name: id:in
          in: query
          description: |-
            Filter items by ID.
            `id:in=4,5,6`
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: company:in
          in: query
          description: Filter items by company. `company:in=bigcommerce,commongood`
          required: false
          schema:
            type: array
            items:
              type: string
        - name: customer_group_id:in
          in: query
          description: Filter items by customer_group_id. `customer_group_id:in=5,6`
          required: false
          schema:
            type: array
            items:
              type: string
        - name: date_created
          in: query
          description: Filter items by date created, for example, `2024-05-14T09:34:00` or `2024-05-14`.
          required: false
          schema:
            type: string
            format: date-time
        - name: date_created:max
          in: query
          description: >-
            Filter items by maximum date created, for example, `2024-05-14T09:34:00` or `2024-05-14`. Returns customers
            created before this date.
          required: false
          schema:
            type: string
        - name: date_created:min
          in: query
          description: >-
            Filter items by date created for example, `2024-05-14T09:34:00` or `2024-05-14`. Returns customers created
            after this date.
          required: false
          schema:
            type: string
            format: date-time
        - name: date_modified
          in: query
          description: Filter items by date modified, for example, `2024-05-14T09:34:00` or `2024-05-14`.
          required: false
          schema:
            type: string
            format: date-time
        - name: date_modified:min
          in: query
          description: >-
            Filter items by minimum date modified, for example, `2024-05-14T09:34:00` or `2024-05-14`. Returns customers
            modified after this date.
          required: false
          schema:
            type: string
        - name: date_modified:max
          in: query
          description: >-
            Filter items by maximum date modified, for example, `2024-05-14T09:34:00` or `2024-05-14`. Returns customers
            modified before this date.
          required: false
          schema:
            type: string
            format: date-time
        - name: email:in
          in: query
          description: Filter items by email. `email:in=janedoe@example.com`
          required: false
          schema:
            type: array
            items:
              type: string
        - name: name:in
          in: query
          description: Filter items by first_name and last_name. `name=james moriarty`
          required: false
          schema:
            type: array
            items:
              type: string
        - name: name:like
          in: query
          description: |-
            Filter items by substring in first_name and last_name.
            `name:like=moriarty,sherlock`
            Concatenates the first_name and last_name fields.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: phone:in
          in: query
          description: Filter items by phone number. `phone:in=555-55-5555`
          required: false
          schema:
            type: string
        - name: registration_ip_address:in
          in: query
          description: >-
            Filter items by registration_ip_address. If the customer was created using the API, then registration
            address is blank.

            `registration_ip_address:in=12.345.6.789`
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: include
          in: query
          description: |-
            Indicates whether to include customer sub-resources:
             * `addresses` - customer addresses
             * `storecredit` - store credit
             * `attributes` - customer attributes and address attributes
             * `formfields` - customer and address form fields
             * `shopper_profile_id` - the ID of the shopper profile associated with the customer (Beta)
             * `segment_ids`- segments the customer belongs to (Beta)

             `include=addresses,storecredit,attributes,formfields,shopper_profile_id,segment_ids`
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CustomersGetParametersIncludeSchemaItems'
        - name: sort
          in: query
          description: >-
            Sort items by date_created, date_modified, or last_name:* `date_created:asc` - date created, ascending*
            `date_created:desc` - date created, descending* `last_name:asc` - last name, ascending* `last_name:desc` -
            last name, descending * `date_modified:asc` - date modified, ascending* `date_modified:desc`- date modified,
            descending  Example: `sort=last_name:asc`
          required: false
          schema:
            $ref: '#/components/schemas/CustomersGetParametersSort'
        - name: after
          in: query
          description: >-
            The cursor reference of the last entry for the previous page. Use the `end_cursor` value from the last
            response to get the next page (`end_cursor` is only returned on the first page or when the request contains
            query parameter `before` or `after`). For example `after=eyJpZCI6MjA0fQ`. 
          required: false
          schema:
            type: string
        - name: before
          in: query
          description: >-
            The cursor reference of the first entry for the next page. Use the `start_cursor` value from the last
            response to get the previous page (`start_cursor` is only returned on the first page or when the request
            contains query parameter `before` or `after`). For example `before=eyJpZCI6MjA1fQ`.
          required: false
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: Get Customer Collection Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customers_getCustomers_Response_200'
        '422':
          description: >
            The optional filter parameter was not valid. This is the result of missing required fields, or of invalid
            data. See the response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      operationId: createCustomers
      summary: Create Customers
      description: >-
        Creates Customers. Create up to 10 customers in one call.


        **Required Fields**

        * last_name

        * first_name

        * email


        **Required Fields Customer Address**

        * first_name

        * city

        * country_code

        * last_name

        * address1


        **Required Fields Attributes**

        * Attributes must be
        [created](/developer/api-reference/rest/admin/management/customers/v3/attributes/create-customers-attributes)
        **BEFORE** creating a customer.

        * attribute_id

        * attribute_value -- This is input as a string, regardless of the
        [Type](/developer/api-reference/rest/admin/management/customers/v3/attributes/create-customers-attributes).


        **Notes**


        A customer can be created with global access or channel-specific access.

        * **Global access:**
          * Make sure the channel has `allow_global_logins` enabled. This is on by default only for the default storefront. Find more info at [Customer Settings > Channel](/developer/api-reference/rest/admin/management/customers/v3/channel-settings).
          * Omit `channel_ids` field, or provide `channel_ids: null`.
        * **Channel-specific access:**
          * Provide a `channel_ids` array containing the channels accessible by the customer. This array cannot be empty.
      tags:
        - customers
      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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: Customer Collection Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customers_createCustomers_Response_200'
        '413':
          description: The request payload is too large. The maximum number of items allowed in the array is 10.
          content:
            application/json:
              schema:
                description: Any type
        '422':
          description: >-
            The *Customer* was not valid. This is the result of missing required fields or trying to edit a read only
            field. See the response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/customer_Post'
    put:
      operationId: updateCustomers
      summary: Update Customers
      description: >-
        Updates Customers. Subresource updates are not supported. 


        **Required Fields**

        * id -- ID of the *Customer* This must be included in the request body


        **Read Only Fields**

        * id

        * registration_ip_address

        * date_created

        * date_modified

        * origin_channel_id


        **Limits**

        * Limit of 10 customers per call.

        * Limit of 3 concurrent requests


        **Notes**


        * Attributes Values can not be updated using Update a Customer. Use the [Update customer attribute
        values](/developer/api-reference/rest/admin/management/customers/v3/attribute-values/upsert-customers-attribute-values)
        endpoint.

        * channel_ids -- Updating the list of channels a customer can access may create some side effects in a
        multi-storefront situation. This list determines which customer account we will use to authenticate a shopper
        given a channel.

        * origin_channel_id -- This is an immutable value set as a reference to the channel of origin when a customer is
        created.
      tags:
        - customers
      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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: Customer Collection Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customers_updateCustomers_Response_200'
        '413':
          description: The request payload is too large. The maximum number of items allowed in the array is 10.
          content:
            application/json:
              schema:
                description: Any type
        '422':
          description: >
            The `Customer` was not valid. This is the result of missing required fields, or of invalid data. See the
            response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/customer_Put'
    delete:
      operationId: deleteCustomers
      summary: Delete Customers
      description: |-
        Deletes Customers.

        **Required Query**
        * id:in -- ID of the customer

        **Notes**

        A query is required to delete customers. If not provided, a 204 is returned, with no changes to the data.
      tags:
        - customers
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: id:in
          in: query
          description: |-
            Filter items by ID.
            `id:in=4,5,6`
          required: true
          schema:
            type: array
            items:
              type: integer
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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:
        '204':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '422':
          description: >-
            The `id:in` was not valid. This is the result of missing required fields, or of invalid data. See the
            response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /stores/{store_hash}/v3/customers/addresses:
    get:
      operationId: getCustomersAddresses
      summary: List Customer Addresses
      description: Returns a list of Customer Addresses. Optional filter parameters can be passed in.
      tags:
        - addresses
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: Page number. `page=1`
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: Items count per page. `limit=50`
          required: false
          schema:
            type: number
            format: double
        - name: company:in
          in: query
          description: Filter items by company. `company:in=bigcommerce,commongood`
          required: false
          schema:
            type: array
            items:
              type: string
        - name: name:in
          in: query
          description: Filter items by first_name and last_name. `name:in=James+Moriarty`
          required: false
          schema:
            type: array
            items:
              type: string
        - name: customer_id:in
          in: query
          description: >-
            Filter by the ID of the customer. Also accepts comma-separated IDs to filter for multiple customers.
            `customer_id:in=23,24,55`
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: include
          in: query
          description: |-
            Indicates whether to include customer address sub-resources:
            * `formfields` - address form fields
            `include=formfields`
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CustomersAddressesGetParametersIncludeSchemaItems'
        - name: id:in
          in: query
          description: |-
            Filter items by ID.
            `id:in=4,5,6`
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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
          required: false
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Addresses_getCustomersAddresses_Response_200'
    post:
      operationId: createCustomersAddresses
      summary: Create Customer Address
      description: >-
        Creates a Customer Address. Multiple customer addresses can be created in one call.


        **Required Fields**

        * **customer_id**

        * **first_name**

        * **last_name**

        * **city**

        * **country_code**

        * **address1**

        * **state_or_province**

        * **postal_code**


        **Notes**

        * A unique customer address is a combination of the following core address fields:
          * **customer_id**
          * **first_name**
          * **last_name**
          * **company**
          * **phone**
          * **address_type**
          * **address1**
          * **address2**
          * **city**
          * **country_code**
          * **state_or_province**
          * **postal_code**
        * An attempt to create an address that already exists will result in no change to the address or custom form
        field values, an HTTP 200 return code, and the address will be absent from the response body.

        * The default rate limit for this endpoint is 10 concurrent requests.
      tags:
        - addresses
      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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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
          required: false
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Addresses_createCustomersAddresses_Response_200'
        '422':
          description: >
            The `Address` was not valid. This is the result of missing required fields, or of invalid data. See the
            response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/address_Post'
    put:
      operationId: updateCustomersAddresses
      summary: Update Customer Address
      description: >-
        Updates a Customer Address. Multiple customer addresses can be updated in one call.


        **Required Fields**

        * **id** -- ID of the *Customer Address*


        **Limits**

        * Limit of **3** concurrent requests.


        **Notes**

        * A unique customer address is a combination of the following core address fields:
          * **first_name**
          * **last_name**
          * **company**
          * **phone**
          * **address_type**
          * **address1**
          * **address2**
          * **city**
          * **country_code**
          * **state_or_province**
          * **postal_code**
        * An attempt to update an address such that it becomes identical to another address that already exists will
        result in no change to the target address or custom form field values. The response will have an HTTP 200 return
        code, and the address will be absent from the response body.
      tags:
        - addresses
      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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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
          required: false
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Addresses_updateCustomersAddresses_Response_200'
        '422':
          description: >
            The `Address` was not valid. This is the result of missing required fields, or of invalid data. See the
            response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/address_Put'
    delete:
      operationId: deleteCustomersAddresses
      summary: Delete Customer Address
      description: |-
        Deletes a Customer Address.

        **Required Query**
        * id:in -- ID of the *Customer Address*
      tags:
        - addresses
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: id:in
          in: query
          description: |-
            Filter items by ID.
            `id:in=4,5,6`
          required: true
          schema:
            type: array
            items:
              type: integer
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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
          required: false
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /stores/{store_hash}/v3/customers/attribute-values:
    get:
      operationId: getCustomersAttributeValues
      summary: List Customer Attribute Values
      description: Returns a list of Customer Attribute Values. Optional filter parameters can be passed in.
      tags:
        - attributeValues
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: Page number. `page=1`
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: Items count per page. `limit=50`
          required: false
          schema:
            type: number
            format: double
        - name: customer_id:in
          in: query
          description: Filter items by the customer ID. `customer_id:in=23,24,55`
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: attribute_id:in
          in: query
          description: Filter items by the attribute ID. `attribute_id:in=1,2`
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: name
          in: query
          description: Filter items by the attribute name. `name=age`
          required: false
          schema:
            type: string
        - name: date_created
          in: query
          description: Filter items by `date_created`, for example, `2024-05-14T09:34:00`, `2024-05-14T09:34:00` or `2024-05-14`.
          required: false
          schema:
            type: string
            format: date-time
        - name: date_created:max
          in: query
          description: >-
            Filter items by maximum `date_created`, for example, `2024-05-14T09:34:00`, `2024-05-14T09:34:00` or
            `2024-05-14`. ISO 8601 full-date is required, ISO 8601 full-time is not required. UNIX timestamp also
            accepted. Returns metafields created before this date.
          required: false
          schema:
            type: string
        - name: date_created:min
          in: query
          description: >-
            Filter items by minimum `date_created`, for example, `2024-05-14T09:34:00`, `2024-05-14T09:34:00` or
            `2024-05-14`. ISO 8601 full-date is required, ISO 8601 full-time is not required. UNIX timestamp also
            accepted. Returns metafields created after this date
          required: false
          schema:
            type: string
            format: date-time
        - name: date_modified
          in: query
          description: Filter items by `date_modified`, for example, `2024-05-14T09:34:00` or `2024-05-14`.
          required: false
          schema:
            type: string
            format: date-time
        - name: date_modified:max
          in: query
          description: >-
            Filter items by maximum `date_modified`, for example, `2024-05-14T09:34:00` or `2024-05-14`. ISO 8601
            full-date is required, ISO 8601 full-time is not required. UNIX timestamp also accepted. Returns metafields
            modified before this date.
          required: false
          schema:
            type: string
            format: date-time
        - name: date_modified:min
          in: query
          description: >-
            Filter items by minimum `date_modified`, for example, `2024-05-14T09:34:00` or `2024-05-14`. ISO 8601
            full-date is required, ISO 8601 full-time is not required. UNIX timestamp also accepted. Returns metafields
            modified after this date.
          required: false
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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
          required: false
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attribute Values_getCustomersAttributeValues_Response_200'
    put:
      operationId: upsertCustomersAttributeValues
      summary: Upsert Customer Attribute Values
      description: >-
        Upserts Customer Attribute Values. Updates the attribute values on the Customer. Multiple customer attribute
        values can be updated in one call.


        Upsert checks for an existing record. If there is none, it creates the record, if there is a matching record, it
        updates that record.


        **Limits**

        * Limit of 10 customers per call.

        * Limit of 3 concurrent requests.
      tags:
        - attributeValues
      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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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
          required: false
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attribute Values_upsertCustomersAttributeValues_Response_200'
        '422':
          description: >
            The `CustomerAttributeValue` was not valid. This is the result of missing required fields, or of invalid
            data. See the response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/attributeValue_Base'
    delete:
      operationId: deleteCustomersAttributeValues
      summary: Delete Customer Attribute Values
      description: |-
        Deletes Customer Attribute Values. Deletes the attribute value from the customer.

        **Required Query**
        * id:in - ID of the *Customer Attribute Value*
      tags:
        - attributeValues
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: id:in
          in: query
          description: |-
            Filter items by ID.
            `id:in=4,5,6`
          required: true
          schema:
            type: array
            items:
              type: integer
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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
          required: false
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /stores/{store_hash}/v3/customers/attributes:
    get:
      operationId: getCustomersAttributes
      summary: List Customer Attributes
      description: Returns a list of Customer Attributes. You can pass in optional filter parameters.
      tags:
        - attributes
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: Page number. `page=1`
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: Items count per page. `limit=50`
          required: false
          schema:
            type: number
            format: double
        - name: name
          in: query
          description: Filter items by customer attribute name. `name=Date+Joined`
          required: false
          schema:
            type: string
        - name: name:like
          in: query
          description: Filter items by substring in customer attribute name. `name:like=join`
          required: false
          schema:
            type: string
        - name: type
          in: query
          description: The type of the customer attribute.
          required: false
          schema:
            type: string
        - name: date_created
          in: query
          description: Filter items by `date_created`, for example, `2024-05-14T09:34:00`, `2024-05-14T09:34:00` or `2024-05-14`.
          required: false
          schema:
            type: string
            format: date-time
        - name: date_created:max
          in: query
          description: >-
            Filter items by maximum `date_created`, for example, `2024-05-14T09:34:00`, `2024-05-14T09:34:00` or
            `2024-05-14`. ISO 8601 full-date is required, ISO 8601 full-time is not required. UNIX timestamp also
            accepted. Returns metafields created before this date.
          required: false
          schema:
            type: string
            format: date-time
        - name: date_created:min
          in: query
          description: >-
            Filter items by minimum `date_created`, for example, `2024-05-14T09:34:00`, `2024-05-14T09:34:00` or
            `2024-05-14`. ISO 8601 full-date is required, ISO 8601 full-time is not required. UNIX timestamp also
            accepted. Returns metafields created after this date.
          required: false
          schema:
            type: string
            format: date-time
        - name: date_modified
          in: query
          description: Filter items by `date_modified`, for example, `2024-05-14T09:34:00` or `2024-05-14`.
          required: false
          schema:
            type: string
            format: date-time
        - name: date_modified:max
          in: query
          description: >-
            Filter items by maximum `date_modified`, for example, `2024-05-14T09:34:00` or `2024-05-14`. ISO 8601
            full-date is required, ISO 8601 full-time is not required. UNIX timestamp also accepted. Returns metafields
            modified before this date.
          required: false
          schema:
            type: string
            format: date-time
        - name: date_modified:min
          in: query
          description: >-
            Filter items by minimum `date_modified`, for example, `2024-05-14T09:34:00` or `2024-05-14`. ISO 8601
            full-date is required, ISO 8601 full-time is not required. UNIX timestamp also accepted. Returns metafields
            modified after this date.
          required: false
          schema:
            type: string
            format: date-time
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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
          required: false
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attributes_getCustomersAttributes_Response_200'
    post:
      operationId: createCustomersAttributes
      summary: Create Customer Attribute
      description: >-
        Creates a Customer Attribute. Multiple customer attributes can be created in one call.


        **Required Fields**

        * name

        * type


        **Limits**

        * Limit of 3 concurrent requests.


        **Notes**


        Once the data type is set, it cannot be changed. The attribute will need to be deleted then created again with
        the new data type. This will also delete it from the customer.


        Customer attributes are created separately from the customer. After the name and type are created, then the
        attributes can be added to the customer.


        A store cannot have more than 50 customer attributes.
      tags:
        - attributes
      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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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
          required: false
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attributes_createCustomersAttributes_Response_200'
        '422':
          description: >
            The `Attribute` was not valid. This is the result of missing required fields, or of invalid data. See the
            response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/attribute_Post'
    put:
      operationId: updateCustomersAttributes
      summary: Update Customer Attribute
      description: >-
        Updates a Customer Attribute. Multiple customer attributes can be updated in one call.


        **Required Fields**

        * id -- ID of the *Customer Attribute*


        Once the data type is set, it can not be changed. The attribute will need to be deleted then created again with
        the new data type. This will also delete it from the customer.


        **Limits**

        * Limit of 3 concurrent requests.
      tags:
        - attributes
      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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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
          required: false
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attributes_updateCustomersAttributes_Response_200'
        '422':
          description: >
            The `Attribute` was not valid. This is the result of missing required fields, or of invalid data. See the
            response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/attribute_Put'
    delete:
      operationId: deleteCustomersAttributes
      summary: Delete Customer Attributes
      description: |-
        Deletes Customer Attributes from the store.

        **Required Query**
        * id:in -- ID of the *Customer Attribute*
      tags:
        - attributes
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: id:in
          in: query
          description: Filter items by ID.
          required: true
          schema:
            type: array
            items:
              type: integer
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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
          required: false
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /stores/{store_hash}/v3/customers/settings/channels/{channel_id}:
    get:
      operationId: getCustomersSettingsChannel
      summary: Get Customer Settings per Channel
      description: |-
        Returns the customer settings per channel.

        **Notes:**

         * `null` value configuration indicates that there is no override provided for a given channel; thus, values are inherited from [Global Settings](/developer/api-reference/rest/admin/management/customers/v3/global-settings).
         
      tags:
        - channelSettings
      parameters:
        - name: channel_id
          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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: Customer settings for this channel are returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Channel Settings_getCustomersSettingsChannel_Response_200'
    put:
      operationId: updateCustomersSettingsChannel
      summary: Update Customer Settings per Channel
      description: >-
        Update the customer settings per channel


        **Required Fields**


        * `channel_id`: Provide a `channel_id` array containing one or more channel IDs. Customers will have access to
        these channels and no others. This array cannot be empty.


        **Notes**


        * Setting `null` will delete override per given channel, and values will be inherited from the global level.
        Make sure the channel has `allow_global_logins` enabled.
      tags:
        - channelSettings
      parameters:
        - name: channel_id
          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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: Customer settings are returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Channel Settings_updateCustomersSettingsChannel_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerChannelSettingsObject'
  /stores/{store_hash}/v3/customers/{customerId}/consent:
    get:
      operationId: getCustomerConsent
      summary: Get Customer Consent
      description: >-
        Gets the status of a customerʼs consent to allow data collection by cookies and scripts while shopping on a
        storefront.
      tags:
        - consent
      parameters:
        - name: customerId
          in: path
          description: The ID of the customer.
          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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/consent_Full'
        '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/ErrorResponse'
        '403':
          description: Missing scope - the v3 Auth token is valid but does not have proper permissions to access this endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Invalid JSON request body - missing or invalid data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    put:
      operationId: updateCustomerConsent
      summary: Update Customer Consent
      description: >-
        Updates the status of a customerʼs consent to allow data collection by cookies and scripts while shopping on a
        storefront.
      tags:
        - consent
      parameters:
        - name: customerId
          in: path
          description: The ID of the customer.
          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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/consent_Full'
        '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/ErrorResponse'
        '403':
          description: Missing scope - the v3 Auth token is valid but does not have proper permissions to access this endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Invalid JSON request body - missing or invalid data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeclareCustomerConsentRequest'
  /stores/{store_hash}/v3/customers/form-field-values:
    get:
      operationId: getCustomersFormFieldValues
      summary: List Customer Form Field Values
      description: >-
        Returns a list of form field values for the Customer or Customer Address object.


        To learn about adding and managing form fields, see [Adding and Editing Fields in the Account Signup
        Form](https://support.bigcommerce.com/s/article/Editing-Form-Fields).
      tags:
        - formFieldValues
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: >-
            Page number (`page` will be ignored if you provide `before` or `after` in the request). For example
            `page=1`.
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: Items count per page. `limit=50`
          required: false
          schema:
            type: number
            format: double
        - name: customer_id
          in: query
          description: Filter by the customer ID.
          required: false
          schema:
            type: integer
        - name: address_id
          in: query
          description: Filter by the ID of the customer address.
          required: false
          schema:
            type: integer
        - name: field_name
          in: query
          description: Filter by the field name.
          required: false
          schema:
            type: string
        - name: field_type
          in: query
          description: |-
            Filter by the field type.
             * `checkboxes` - checkboxes field
             * `date` - date field
             * `multiline` - multiline text field
             * `numbers` - numbers only field
             * `password` - password field
             * `radiobuttons` - radio buttons field
             * `text` - text field
             * `picklist` - pick list field
          required: false
          schema:
            $ref: '#/components/schemas/CustomersFormFieldValuesGetParametersFieldType'
        - name: after
          in: query
          description: >-
            The cursor reference of the last entry for the previous page. Use the `end_cursor` value from the last
            response to get the next page (`end_cursor` is only returned on the first page or when the request contains
            query parameter `before` or `after`). For example `after=eyJzZXNzaW9uSWQiOjM4LCJmaWVsZElkIjo0MH0`. 
          required: false
          schema:
            type: string
        - name: before
          in: query
          description: >-
            The cursor reference of the first entry for the next page. Use the `start_cursor` value from the last
            response to get the previous page (`start_cursor` is only returned on the first page or when the request
            contains query parameter `before` or `after`). For example `before=eyJzZXNzaW9uSWQiOjgsImZpZWxkSWQiOjMxfQ`.
          required: false
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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
          required: false
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Form Field Values_getCustomersFormFieldValues_Response_200'
        '422':
          description: >-
            The form field value was not valid. This is the result of missing required fields, or of invalid data. See
            the response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    put:
      operationId: updateCustomerFormFieldValues
      summary: Upsert Customer Form Field Values
      description: >-
        This endpoint is deprecated. Use [Update a Customer
        Address](/developer/api-reference/rest/admin/management/customers/v3/addresses/update-customers-addresses) and
        [Update Customers](/developer/api-reference/rest/admin/management/customers/v3/update-customers) endpoints
        instead.


        To learn more about editing form fields, see [Adding and Editing Fields in the Account Signup
        Form](https://support.bigcommerce.com/s/article/Editing-Form-Fields).


        **Limits**

        * Limit of 10 concurrent requests.
      tags:
        - formFieldValues
      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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Form Field Values_updateCustomerFormFieldValues_Response_200'
        '422':
          description: >-
            The form field value was not valid. This is the result of missing required fields, or of invalid data. See
            the response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/formFieldValue_Full'
  /stores/{store_hash}/v3/customers/settings:
    get:
      operationId: getCustomersSettings
      summary: Get Customer Settings
      description: >
        Returns the global-level customer settings.


        **Notes:**

        * Global customer settings don't apply on a channel when there are channel specific settings configured through
        [Channel Settings](/developer/api-reference/rest/admin/management/customers/v3/channel-settings).
      tags:
        - globalSettings
      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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: Returns customer settings values for global level.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Global Settings_getCustomersSettings_Response_200'
    put:
      operationId: updateCustomersSettings
      summary: Update Customer Settings
      description: Updates the customer settings on the global level.
      tags:
        - globalSettings
      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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: Customer settings are returned on a global level.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Global Settings_updateCustomersSettings_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerSettingsObject'
  /stores/{store_hash}/v3/customers/{customerId}/metafields:
    get:
      operationId: getCustomersMetafields
      summary: List Customer Metafields
      description: Gets customer metafields by passing the `customerId` in the query parameters.
      tags:
        - metafields
      parameters:
        - name: customerId
          in: path
          description: The ID of the customer.
          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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: Response payload for the BigCommerce API.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metafields_getCustomersMetafields_Response_200'
    post:
      operationId: createCustomerMetafields
      summary: Create Customer Metafields
      description: Creates Customer metafields by passing the `customerId` in the query parameters.
      tags:
        - metafields
      parameters:
        - name: customerId
          in: path
          description: The ID of the customer.
          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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: Response payload for the BigCommerce API.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionPostPutResponses'
        '400':
          description: Bad Request. Input is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCustomerMetafieldsRequestBadRequestError'
        '409':
          description: >
            The `Metafield` conflicts with another `Metafield`. This can result from duplicate unique key combinations
            of the appʼs client id, namespace, key, resource_type, and resource_id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: >-
            The `Metafield` was not valid. This is the result of missing required fields, or of invalid data. See the
            response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetafieldBase_Post'
  /stores/{store_hash}/v3/customers/{customerId}/metafields/{metafieldId}:
    get:
      operationId: getMetafieldsCustomerId
      summary: Get Customer Metafield
      description: |
        Returns a single *Customer Metafield*.
      tags:
        - metafields
      parameters:
        - name: customerId
          in: path
          description: The ID that belongs to the customer.
          required: true
          schema:
            type: integer
        - name: metafieldId
          in: path
          description: The ID that is generated for a metafield when created.
          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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metafields_getMetafieldsCustomerId_Response_200'
        '404':
          description: |
            Not found (A metafield was not found with this query).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
    put:
      operationId: updateCustomerMetafield
      summary: Update Metafield
      description: >-
        Updates customer metafields. To update the customer metafields, use 'customerId' and 'metafield' in the query
        parameters.
      tags:
        - metafields
      parameters:
        - name: metafieldId
          in: path
          description: >-
            The ID of the metafield belonging to the customer. The metafieldId is a generated response when sending a
            POST query to the Create a Customer Metafields endpoint.
          required: true
          schema:
            type: integer
        - name: customerId
          in: path
          description: The ID of the customer.
          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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: Response payload for the BigCommerce API.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionPostPutResponses'
        '400':
          description: Bad Request. Input is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateCustomerMetafieldRequestBadRequestError'
        '404':
          description: |
            Not found (A metafield was not found with this query).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              type: object
              properties:
                permission_set:
                  $ref: >-
                    #/components/schemas/CustomersCustomerIdMetafieldsMetafieldIdPutRequestBodyContentApplicationJsonSchemaPermissionSet
                  description: >
                    Determines the visibility and writeability of the field by other API consumers.


                    | Value | Description |

                    | :--- | :--- |

                    | `app_only` | Private to the app that owns the field. |

                    | `read` | Visible to other API consumers. |

                    | `write` | Open for reading and writing by other API consumers. |

                    | `read_and_sf_access` | Visible to other API consumers, including on the storefront. |

                    | `write_and_sf_access` | Open for reading and writing by other API consumers, including on the
                    storefront. |
                namespace:
                  type: string
                  description: |
                    Namespace for the metafield, for organizational purposes.
                key:
                  type: string
                  description: |
                    The name of the field, for example: `location_id`, `color`.
                value:
                  type: string
                  description: |
                    The value of the field, for example: `1`, `blue`.
                description:
                  type: string
                  description: |
                    Description for the metafields.
                id:
                  type: integer
                  description: |
                    The ID of metafield to update.
              required:
                - id
    delete:
      operationId: deleteCustomerMetafieldsId
      summary: Delete Customer Metafield
      description: >
        Deletes a customer metafield. To delete a customer metafield, use 'customerId' and 'metafieldId' in the query
        parameters.
      tags:
        - metafields
      parameters:
        - name: customerId
          in: path
          description: The ID of the customer.
          required: true
          schema:
            type: integer
        - name: metafieldId
          in: path
          description: >-
            The ID of the metafield belonging to the customer. The metafieldId is a generated response when sending a
            POST query to the Create a Customer Metafields endpoint.
          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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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:
        '204':
          description: |
            Response object for customer metafields deletion with success.
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '404':
          description: |
            Not found (A metafield was not found with this query).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
  /stores/{store_hash}/v3/customers/metafields:
    get:
      operationId: getAllCustomersMetafields
      summary: List Customer Metafields
      description: Get all customer metafields.
      tags:
        - metafieldsBatch
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: |
            Specifies the page number in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: |
            Controls the number of items per page in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
        - name: key
          in: query
          description: Filter based on a metafieldʼs key.
          required: false
          schema:
            type: string
        - name: key:in
          in: query
          description: Filter based on comma-separated metafieldʼs keys. Could be used with vanilla 'key' query parameter.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: namespace
          in: query
          description: Filter based on a metafieldʼs namespaces.
          required: false
          schema:
            type: string
        - name: namespace:in
          in: query
          description: >-
            Filter based on comma-separated metafieldʼs namespaces. Could be used with vanilla `namespace` query
            parameter.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: direction
          in: query
          description: |
            Sort direction. Acceptable values are: `asc`, `desc`.
          required: false
          schema:
            $ref: '#/components/schemas/CustomersMetafieldsGetParametersDirection'
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CustomersMetafieldsGetParametersIncludeFieldsSchemaItems'
        - name: date_modified:min
          in: query
          description: >-
            Filter items by minimum date modified. For example, `date_modified:min=`2024-05-14T09:34:00` or
            `date_modified:min=2019-09-04`. Returns metafields modified after this date.
          required: false
          schema:
            type: string
        - name: date_modified:max
          in: query
          description: >-
            Filter items by maximum date modified. For example, `date_modified:max=2019-09-04T00:00:00` or
            `date_modified:max=2019-09-04`. Returns metafields modified before this date.
          required: false
          schema:
            type: string
        - name: date_created:min
          in: query
          description: >-
            Filter items by minimum date created. For example, `date_created:min=2019-09-04T00:00:00` or
            `date_created:min=2019-09-04`. Returns metafields created after this date.
          required: false
          schema:
            type: string
        - name: date_created:max
          in: query
          description: >-
            Filter items by maximum date created. For example, `date_created:max=`2024-05-14T09:34:00` or
            `date_created:max=2019-09-04`. Returns metafields created before this date.
          required: false
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: |
            List of `Metafield` objects.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionResponse'
    post:
      operationId: createCustomersMetafields
      summary: Create Multiple Metafields
      description: Create multiple metafields.
      tags:
        - metafieldsBatch
      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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: Response payload for the BigCommerce API.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionPostPutResponses'
        '400':
          description: Bad Request. Input is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCustomersMetafieldsRequestBadRequestError'
        '422':
          description: |
            Response object for metafields creation with partial success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionResponsePartialSuccess_POST_PUT'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/CustomersMetafieldsPostRequestBodyContentApplicationJsonSchemaItems'
    put:
      operationId: updateCustomersMetafields
      summary: Update Multiple Metafields
      description: Create multiple metafields.
      tags:
        - metafieldsBatch
      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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: Response payload for the BigCommerce API.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionPostPutResponses'
        '400':
          description: Bad Request. Input is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateCustomersMetafieldsRequestBadRequestError'
        '422':
          description: |
            Response object for metafields creation with partial success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionResponsePartialSuccess_POST_PUT'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/CustomersMetafieldsPutRequestBodyContentApplicationJsonSchemaItems'
    delete:
      operationId: deleteCustomersMetafields
      summary: Delete Multiple Metafields
      description: Delete all customer metafields.
      tags:
        - metafieldsBatch
      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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: |
            Response object for metafields deletion with success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionDeleteResponseSuccess'
        '400':
          description: Bad Request. Input is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteCustomersMetafieldsRequestBadRequestError'
        '422':
          description: |
            Response object for metafields deletion with partial success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionResponsePartialSuccess_DELETE'
      requestBody:
        description: List of metafield IDs.
        content:
          application/json:
            schema:
              type: array
              items:
                type: integer
  /stores/{store_hash}/v3/customers/{customerId}/stored-instruments:
    get:
      operationId: getCustomerStoredInstruments
      summary: List Stored Instruments
      description: >-
        Lists all available stored instruments for a customer. This list will include all types of stored instruments
        namely card, account and bank_account instruments
      tags:
        - storedInstruments
      parameters:
        - name: customerId
          in: path
          description: The ID of the customer.
          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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: >-
                    #/components/schemas/CustomersCustomerIdStoredInstrumentsGetResponsesContentApplicationJsonSchemaItems
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Missing scope - the v3 Auth token is valid but does not have proper permissions to access this endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /stores/{store_hash}/v3/customers/validate-credentials:
    post:
      operationId: validateCustomerCredentials
      summary: Validate Customer Credentials
      description: Validate a customer credentials - This endpoint has special rate limiting protections to protect against abuse.
      tags:
        - validateCredentials
      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 |

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

            | Customers | modify | `store_v2_customers` |

            | Customers | read-only | `store_v2_customers_read_only` |

            | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

            | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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: Returns if the customer credentials provided are valid or not.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateCustomerCredentialsResponseObject'
        '422':
          description: This is the result of missing required fields. See the response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: |
            Allowed number of requests exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ValidateCustomerCredentialsObject'
servers:
  - url: https://api.bigcommerce.com
    description: https://api.bigcommerce.com
components:
  schemas:
    CustomersGetParametersIncludeSchemaItems:
      type: string
      enum:
        - addresses
        - storecredit
        - attributes
        - formfields
        - shopper_profile_id
        - segment_ids
      title: CustomersGetParametersIncludeSchemaItems
    CustomersGetParametersSort:
      type: string
      enum:
        - date_created:asc
        - date_created:desc
        - last_name:asc
        - last_name:desc
        - date_modified:asc
        - date_modified:desc
      title: CustomersGetParametersSort
    CustomerFullAuthentication:
      type: object
      properties:
        force_password_reset:
          type: boolean
          description: If `true`, this customer will be forced to change password on next login.
      title: CustomerFullAuthentication
    AddressFullAddressType:
      type: string
      enum:
        - residential
        - commercial
      description: The address type. Residential or Commercial.
      title: AddressFullAddressType
    FormFieldValueValue:
      oneOf:
        - type: string
        - type: number
          format: double
        - type: array
          items:
            type: string
      title: FormFieldValueValue
    formFieldValue:
      type: object
      properties:
        name:
          type: string
          description: The form field name.
        value:
          $ref: '#/components/schemas/FormFieldValueValue'
      required:
        - name
        - value
      title: formFieldValue
    address_Full:
      type: object
      properties:
        first_name:
          type: string
          description: The first name of the customer address.
        last_name:
          type: string
          description: The last name of the customer address.
        company:
          type: string
          description: The company of the customer address.
        address1:
          type: string
          description: The address 1 line.
        address2:
          type: string
          description: The address 2 line.
        city:
          type: string
          description: The city of the customer address.
        state_or_province:
          type: string
          description: The state or province name.
        postal_code:
          type: string
          description: The postal code of the customer address.
        country_code:
          type: string
          description: The country code of the customer address.
        phone:
          type: string
          description: The phone number of the customer address.
        address_type:
          $ref: '#/components/schemas/AddressFullAddressType'
          description: The address type. Residential or Commercial.
        customer_id:
          type: integer
          description: The customer ID.
        id:
          type: integer
          description: The unique numeric ID of the address.
        country:
          type: string
          description: The country name of the customer address.
        form_fields:
          type: array
          items:
            $ref: '#/components/schemas/formFieldValue'
          description: Array of form fields. Controlled by `formfields` parameter.
      required:
        - first_name
        - last_name
        - address1
        - city
        - state_or_province
        - postal_code
        - country_code
        - customer_id
        - id
      title: address_Full
    attribute_Full:
      type: object
      properties:
        attribute_id:
          type: integer
          description: Attribute ID.
        attribute_value:
          type: string
          description: Attribute value.
        customer_id:
          type: integer
          description: Customer ID.
        date_created:
          type: string
          format: date-time
          description: The date the customer attribute was created.
        date_modified:
          type: string
          format: date-time
          description: The date the customer attribute was modified.
        id:
          type: integer
          description: Attribute value ID.
      title: attribute_Full
    FormFieldValueCustomerValue:
      oneOf:
        - type: string
        - type: number
          format: double
        - type: array
          items:
            type: string
      title: FormFieldValueCustomerValue
    formFieldValue_Customer:
      type: object
      properties:
        name:
          type: string
          description: The form field name.
        value:
          $ref: '#/components/schemas/FormFieldValueCustomerValue'
        customer_id:
          type: integer
      required:
        - name
        - value
        - customer_id
      title: formFieldValue_Customer
    CustomerStoredCreditAmountsItems:
      type: object
      properties:
        amount:
          type: string
          title: float
      title: CustomerStoredCreditAmountsItems
    CustomerStoredCreditAmounts:
      type: array
      items:
        $ref: '#/components/schemas/CustomerStoredCreditAmountsItems'
      description: 'Store credit. '
      title: CustomerStoredCreditAmounts
    customerChannelIds:
      type: array
      items:
        description: Any type
      description: Array of channel ids the Customer has access to.
      title: customerChannelIds
    customer_Full:
      type: object
      properties:
        email:
          type: string
          description: The email of the customer. Must be unique.
        first_name:
          type: string
          description: The first name of the customer.
        last_name:
          type: string
          description: The last name of the customer.
        company:
          type: string
          description: The company of the customer.
        phone:
          type: string
          description: The phone number of the customer.
        registration_ip_address:
          type: string
          description: The IP address from which this customer was registered.
        notes:
          type: string
          description: The customer notes.
        tax_exempt_category:
          type: string
          description: The tax exempt category code for the customer.
        customer_group_id:
          type: integer
          description: ID of the group which this customer belongs to.
        id:
          type: integer
          description: The unique numeric ID of the customer.
        date_modified:
          type: string
          format: date-time
          description: The date on which the customer was modified.
        date_created:
          type: string
          format: date-time
          description: The date of which the customer was created.
        address_count:
          type: integer
          description: Total number of customer addresses.
        attribute_count:
          type: integer
          description: Total number of customer attributes.
        authentication:
          $ref: '#/components/schemas/CustomerFullAuthentication'
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/address_Full'
          description: Array of customer addresses. Limited to 10.
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/attribute_Full'
          description: Array of customer attributes. Limited to 10.
        form_fields:
          type: array
          items:
            $ref: '#/components/schemas/formFieldValue_Customer'
          description: Array of form fields. Controlled by `formfields` parameter.
        store_credit_amounts:
          $ref: '#/components/schemas/CustomerStoredCreditAmounts'
        accepts_product_review_abandoned_cart_emails:
          type: boolean
          description: >-
            Determines if the customer is signed up to receive either product review or abandoned cart emails or receive
            both emails.
        origin_channel_id:
          type: integer
          description: Channel ID of the customer that has created the form.
        channel_ids:
          $ref: '#/components/schemas/customerChannelIds'
      title: customer_Full
    Links:
      type: object
      properties:
        previous:
          type: string
          description: Link to the previous page returned in the response.
        current:
          type: string
          description: Link to the current page returned in the response.
        next:
          type: string
          description: Link to the next page returned in the response.
      description: Pagination links for the previous and next parts of the whole collection.
      title: Links
    Pagination:
      type: object
      properties:
        total:
          type: integer
          description: Total number of items in the result set.
        count:
          type: integer
          description: Total number of items in the collection response.
        per_page:
          type: integer
          description: The amount of items returned in the collection per page, controlled by the limit parameter.
        current_page:
          type: integer
          description: The page you are currently on within the collection.
        total_pages:
          type: integer
          description: The total number of pages in the collection.
        links:
          $ref: '#/components/schemas/Links'
      description: Data about the response, including pagination and collection totals.
      title: Pagination
    CursorPagination:
      type: object
      properties:
        count:
          type: integer
          description: Total number of items in the collection response.
        per_page:
          type: integer
          description: The amount of items returned in the collection per page, controlled by the limit parameter.
        start_cursor:
          type: string
          description: A string representing the starting point of the current page in the collection
        end_cursor:
          type: string
          description: A string representing the ending point of the current page in the collection.
        links:
          $ref: '#/components/schemas/Links'
      description: Data about cursor pagination.
      title: CursorPagination
    _metaCollectionWithCursorPagination:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        cursor_pagination:
          $ref: '#/components/schemas/CursorPagination'
      description: >-
        Data about the response, including pagination and collection totals. Both `pagination` and `cursor_pagination`
        would be returned in the first page. Only `pagination` would be returned when page is greater than 1. Only
        `cursor_pagination` would be returned when `before` or `after` is provided in the request.
      title: _metaCollectionWithCursorPagination
    Customers_getCustomers_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/customer_Full'
        meta:
          $ref: '#/components/schemas/_metaCollectionWithCursorPagination'
      title: Customers_getCustomers_Response_200
    ErrorDetail:
      type: object
      properties: {}
      description: |
        Error detail response payload for the BigCommerce API.
      title: ErrorDetail
    Error:
      type: object
      properties:
        status:
          type: integer
          description: |
            The HTTP status code for the error.
        title:
          type: string
          description: |
            The error title.
        type:
          type: string
          description: |
            The error type.
        errors:
          $ref: '#/components/schemas/ErrorDetail'
      description: |
        Error response payload for the BigCommerce API.
      title: Error
    CustomerAddressesCustomerPostAddressType:
      type: string
      enum:
        - residential
        - commercial
      description: The address type. Residential or Commercial.
      title: CustomerAddressesCustomerPostAddressType
    customerAddresses_CustomerPost:
      type: object
      properties:
        first_name:
          type: string
          description: The first name associated with the customer address.
        last_name:
          type: string
          description: The last name of the customer address.
        company:
          type: string
          description: The company of the customer address.
        address1:
          type: string
          description: The address 1 line.
        address2:
          type: string
          description: The address 2 line.
        city:
          type: string
          description: The city of the customer address.
        state_or_province:
          type: string
          description: The state or province name. Required for countries in which valid addresses must contain a state/province.
        postal_code:
          type: string
          description: >-
            The postal code of the customer address. Required for countries in which valid addresses must have postal
            codes.
        country_code:
          type: string
          description: The country code of the customer address.
        phone:
          type: string
          description: The phone number of the customer address.
        address_type:
          $ref: '#/components/schemas/CustomerAddressesCustomerPostAddressType'
          description: The address type. Residential or Commercial.
        form_fields:
          type: array
          items:
            $ref: '#/components/schemas/formFieldValue'
          description: Array of form fields. Controlled by `formfields` parameter.
      required:
        - first_name
        - last_name
        - address1
        - city
        - country_code
      description: The `address` object for the `customer` objectʼs `addresses` array.
      title: customerAddresses_CustomerPost
    customerAttributes_Base:
      type: object
      properties:
        attribute_id:
          type: integer
          description: Attribute ID.
        attribute_value:
          type: string
          description: Attribute value. This will always be a string, regardless of the attribute’s type.
      title: customerAttributes_Base
    customerAuthentication_PostPut:
      type: object
      properties:
        force_password_reset:
          type: boolean
          description: If `true`, this customer will be forced to change password on next login.
        new_password:
          type: string
          description: New password for customer. Write only field.
      title: customerAuthentication_PostPut
    customer_Post:
      type: object
      properties:
        email:
          type: string
          description: The email of the customer. Must be unique.
        first_name:
          type: string
          description: The first name of the customer.
        last_name:
          type: string
          description: The last name of the customer.
        company:
          type: string
          description: The company of the customer.
        phone:
          type: string
          description: The phone number of the customer.
        notes:
          type: string
          description: The customer notes.
        tax_exempt_category:
          type: string
          description: The tax exempt category code for the customer.
        customer_group_id:
          type: integer
          description: ID of the group which this customer belongs to.
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/customerAddresses_CustomerPost'
          description: Array of customer addresses. Limited to 10.
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/customerAttributes_Base'
          description: Array of customer attributes. Limited to 10.
        authentication:
          $ref: '#/components/schemas/customerAuthentication_PostPut'
        accepts_product_review_abandoned_cart_emails:
          type: boolean
          description: >-
            It determines if the customer is signed up to receive either product review or abandoned cart emails or
            receive both emails.
        store_credit_amounts:
          $ref: '#/components/schemas/CustomerStoredCreditAmounts'
        origin_channel_id:
          type: integer
          description: Channel ID of the customer that has created the form.
        channel_ids:
          type: array
          items:
            type: integer
          description: Array of channels the customer can access.
        form_fields:
          type: array
          items:
            $ref: '#/components/schemas/formFieldValue'
          description: |
            Array of form fields. Controlled by formfields parameter.
        trigger_account_created_notification:
          type: boolean
          description: Indicates whether to send a customer registered welcome email.
      required:
        - email
        - first_name
        - last_name
      title: customer_Post
    MetaOpen:
      type: object
      properties: {}
      description: Response metadata.
      title: MetaOpen
    Customers_createCustomers_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/customer_Full'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Customers_createCustomers_Response_200
    ErrorResponseErrors:
      type: object
      properties: {}
      title: ErrorResponseErrors
    ErrorResponse:
      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.
        instance:
          type: string
        errors:
          $ref: '#/components/schemas/ErrorResponseErrors'
      title: ErrorResponse
    customer_Put:
      type: object
      properties:
        email:
          type: string
          description: The email of the customer. Must be unique.
        first_name:
          type: string
          description: The first name of the customer.
        last_name:
          type: string
          description: The last name of the customer.
        company:
          type: string
          description: The company of the customer.
        phone:
          type: string
          description: The phone number of the customer.
        registration_ip_address:
          type: string
          description: The IP address from which this customer was registered.
        notes:
          type: string
          description: The customer notes.
        tax_exempt_category:
          type: string
          description: The tax exempt category code for the customer.
        customer_group_id:
          type: integer
          description: ID of the group which this customer belongs to.
        id:
          type: integer
          description: The unique numeric ID of the customer.
        authentication:
          $ref: '#/components/schemas/customerAuthentication_PostPut'
        accepts_product_review_abandoned_cart_emails:
          type: boolean
          description: >-
            It determines if the customer is signed up to receive either product review or abandoned cart emails or
            receive both emails.
        store_credit_amounts:
          $ref: '#/components/schemas/CustomerStoredCreditAmounts'
        origin_channel_id:
          type: integer
          description: Channel ID of the customer that has created the form.
        channel_ids:
          type: array
          items:
            type: integer
          description: Arrays of channels the customer can access.
        form_fields:
          type: array
          items:
            $ref: '#/components/schemas/formFieldValue'
          description: |
            Array of form fields. Controlled by formfields parameter.
      required:
        - id
      title: customer_Put
    Customers_updateCustomers_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/customer_Full'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Customers_updateCustomers_Response_200
    CustomersAddressesGetParametersIncludeSchemaItems:
      type: string
      enum:
        - formfields
      title: CustomersAddressesGetParametersIncludeSchemaItems
    CustomersAddressesGetResponsesContentApplicationJsonSchemaDataItemsAddressType:
      type: string
      enum:
        - residential
        - commercial
      description: The address type. Residential or Commercial.
      title: CustomersAddressesGetResponsesContentApplicationJsonSchemaDataItemsAddressType
    FormFieldValueAddressValue:
      oneOf:
        - type: string
        - type: number
          format: double
        - type: array
          items:
            type: string
      title: FormFieldValueAddressValue
    formFieldValue_Address:
      type: object
      properties:
        name:
          type: string
          description: The form field name.
        value:
          $ref: '#/components/schemas/FormFieldValueAddressValue'
        address_id:
          type: integer
          description: The Customer Address ID.
      required:
        - name
        - value
        - address_id
      title: formFieldValue_Address
    CustomersAddressesGetResponsesContentApplicationJsonSchemaDataItems:
      type: object
      properties:
        address1:
          type: string
          description: The address 1 line.
        address2:
          type: string
          description: The address 2 line.
        address_type:
          $ref: '#/components/schemas/CustomersAddressesGetResponsesContentApplicationJsonSchemaDataItemsAddressType'
          description: The address type. Residential or Commercial.
        city:
          type: string
          description: The city of the customer address.
        company:
          type: string
          description: The company of the customer address.
        country:
          type: string
          description: The country name of the customer address.
        country_code:
          type: string
          description: The country code of the customer address.
        customer_id:
          type: integer
          description: The customer ID.
        first_name:
          type: string
          description: The first name of the customer address.
        id:
          type: integer
          description: The unique numeric ID of the address.
        last_name:
          type: string
          description: The last name of the customer address.
        phone:
          type: string
          description: The phone number of the customer address.
        postal_code:
          type: string
          description: The postal code of the customer address.
        state_or_province:
          type: string
          description: The state or province name
        form_fields:
          type: array
          items:
            $ref: '#/components/schemas/formFieldValue_Address'
          description: Array of form fields. Controlled by `formfields` parameter.
      required:
        - address1
        - city
        - country_code
        - customer_id
        - first_name
        - id
        - last_name
        - postal_code
        - state_or_province
      title: CustomersAddressesGetResponsesContentApplicationJsonSchemaDataItems
    _metaCollection:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
      description: Data about the response, including pagination and collection totals.
      title: _metaCollection
    Addresses_getCustomersAddresses_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CustomersAddressesGetResponsesContentApplicationJsonSchemaDataItems'
        meta:
          $ref: '#/components/schemas/_metaCollection'
      description: Response payload for the BigCommerce API.
      title: Addresses_getCustomersAddresses_Response_200
    AddressPostAddressType:
      type: string
      enum:
        - residential
        - commercial
      description: The address type. Residential or Commercial.
      title: AddressPostAddressType
    address_Post:
      type: object
      properties:
        first_name:
          type: string
          description: The first name of the customer address.
        last_name:
          type: string
          description: The last name of the customer address.
        company:
          type: string
          description: The company of the customer address.
        address1:
          type: string
          description: The address 1 line.
        address2:
          type: string
          description: The address 2 line.
        city:
          type: string
          description: The city of the customer address.
        state_or_province:
          type: string
          description: >-
            The state or province name spelled out in full. It is required for countries that need a state/province to
            complete an address. State or province codes not accepted.
        postal_code:
          type: string
          description: >-
            The postal code of the customer address. It is required for countries that need postal codes to complete an
            address.
        country_code:
          type: string
          description: The country code of the customer address.
        phone:
          type: string
          description: The phone number of the customer address.
        address_type:
          $ref: '#/components/schemas/AddressPostAddressType'
          description: The address type. Residential or Commercial.
        customer_id:
          type: integer
          description: The customer ID.
        form_fields:
          type: array
          items:
            $ref: '#/components/schemas/formFieldValue'
          description: |
            The address custom form field values
      required:
        - first_name
        - last_name
        - address1
        - city
        - state_or_province
        - postal_code
        - country_code
        - customer_id
      title: address_Post
    CustomersAddressesPostResponsesContentApplicationJsonSchemaOneOf0DataItemsAddressType:
      type: string
      enum:
        - residential
        - commercial
      description: The address type. Residential or Commercial.
      title: CustomersAddressesPostResponsesContentApplicationJsonSchemaOneOf0DataItemsAddressType
    formFieldValue_Full:
      oneOf:
        - $ref: '#/components/schemas/formFieldValue_Customer'
        - $ref: '#/components/schemas/formFieldValue_Address'
      title: formFieldValue_Full
    CustomersAddressesPostResponsesContentApplicationJsonSchemaOneOf0DataItems:
      type: object
      properties:
        address1:
          type: string
          description: The address 1 line.
        address2:
          type: string
          description: The address 2 line.
        address_type:
          $ref: '#/components/schemas/CustomersAddressesPostResponsesContentApplicationJsonSchemaOneOf0DataItemsAddressType'
          description: The address type. Residential or Commercial.
        city:
          type: string
          description: The city of the customer address.
        company:
          type: string
          description: The company of the customer address.
        country:
          type: string
          description: The country name of the customer address.
        country_code:
          type: string
          description: The country code of the customer address.
        customer_id:
          type: integer
          description: The customer ID.
        first_name:
          type: string
          description: The first name of the customer address.
        id:
          type: integer
          description: The unique numeric ID of the address.
        last_name:
          type: string
          description: The last name of the customer address.
        phone:
          type: string
          description: The phone number of the customer address.
        postal_code:
          type: string
          description: The postal code of the customer address.
        state_or_province:
          type: string
          description: The state or province name
        form_fields:
          type: array
          items:
            $ref: '#/components/schemas/formFieldValue_Full'
          description: Array of form fields. Controlled by `formfields` parameter.
      title: CustomersAddressesPostResponsesContentApplicationJsonSchemaOneOf0DataItems
    AddressesCreateCustomersAddressesResponse2000:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CustomersAddressesPostResponsesContentApplicationJsonSchemaOneOf0DataItems'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      description: Response payload for the BigCommerce API.
      title: AddressesCreateCustomersAddressesResponse2000
    Addresses_createCustomersAddresses_Response_200:
      oneOf:
        - $ref: '#/components/schemas/AddressesCreateCustomersAddressesResponse2000'
        - type: object
          additionalProperties:
            description: Any type
      title: Addresses_createCustomersAddresses_Response_200
    AddressPutAddressType:
      type: string
      enum:
        - residential
        - commercial
      description: The address type. Residential or Commercial.
      title: AddressPutAddressType
    address_Put:
      type: object
      properties:
        first_name:
          type: string
          description: The first name of the customer address.
        last_name:
          type: string
          description: The last name of the customer address.
        company:
          type: string
          description: The company of the customer address.
        address1:
          type: string
          description: The address 1 line.
        address2:
          type: string
          description: The address 2 line.
        city:
          type: string
          description: The city of the customer address.
        state_or_province:
          type: string
          description: The state or province name.
        postal_code:
          type: string
          description: The postal code of the customer address.
        country_code:
          type: string
          description: The country code of the customer address.
        phone:
          type: string
          description: The phone number of the customer address.
        address_type:
          $ref: '#/components/schemas/AddressPutAddressType'
          description: The address type. Residential or Commercial.
        id:
          type: integer
          description: The unique numeric ID of the address.
        form_fields:
          type: array
          items:
            $ref: '#/components/schemas/formFieldValue'
          description: |
            Array of form fields. Controlled by formfields parameter.
      required:
        - id
      title: address_Put
    CustomersAddressesPutResponsesContentApplicationJsonSchemaOneOf0DataItemsAddressType:
      type: string
      enum:
        - residential
        - commercial
      description: The address type. Residential or Commercial.
      title: CustomersAddressesPutResponsesContentApplicationJsonSchemaOneOf0DataItemsAddressType
    CustomersAddressesPutResponsesContentApplicationJsonSchemaOneOf0DataItems:
      type: object
      properties:
        address1:
          type: string
          description: The address 1 line.
        address2:
          type: string
          description: The address 2 line.
        address_type:
          $ref: '#/components/schemas/CustomersAddressesPutResponsesContentApplicationJsonSchemaOneOf0DataItemsAddressType'
          description: The address type. Residential or Commercial.
        city:
          type: string
          description: The city of the customer address.
        company:
          type: string
          description: The company of the customer address.
        country:
          type: string
          description: The country name of the customer address.
        country_code:
          type: string
          description: The country code of the customer address.
        customer_id:
          type: integer
          description: The customer ID.
        first_name:
          type: string
          description: The first name of the customer address.
        id:
          type: integer
          description: The unique numeric ID of the address.
        last_name:
          type: string
          description: The last name of the customer address.
        phone:
          type: string
          description: The phone number of the customer address.
        postal_code:
          type: string
          description: The postal code of the customer address.
        state_or_province:
          type: string
          description: The state or province name
        form_fields:
          type: array
          items:
            $ref: '#/components/schemas/formFieldValue_Full'
          description: Array of form fields. Controlled by `formfields` parameter.
      title: CustomersAddressesPutResponsesContentApplicationJsonSchemaOneOf0DataItems
    AddressesUpdateCustomersAddressesResponse2000:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CustomersAddressesPutResponsesContentApplicationJsonSchemaOneOf0DataItems'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      description: Response payload for the BigCommerce API.
      title: AddressesUpdateCustomersAddressesResponse2000
    Addresses_updateCustomersAddresses_Response_200:
      oneOf:
        - $ref: '#/components/schemas/AddressesUpdateCustomersAddressesResponse2000'
        - type: object
          additionalProperties:
            description: Any type
      title: Addresses_updateCustomersAddresses_Response_200
    CustomersAttributeValuesGetResponsesContentApplicationJsonSchemaDataItems:
      type: object
      properties:
        attribute_id:
          type: integer
          description: Attribute ID.
        attribute_value:
          type: string
          description: |-
            Attribute value. This will always be a string, regardless of the attributes type. 

            Corresponds to `value` used in customer attribute values `PUT` requests.
        id:
          type: integer
          description: Attribute value ID.
        customer_id:
          type: integer
          description: Customer ID.
        date_modified:
          type: string
          format: date-time
          description: The date on which the customer attribute value was modified.
        date_created:
          type: string
          format: date-time
          description: The date of which the customer attribute value was created.
      required:
        - attribute_id
        - attribute_value
        - customer_id
      title: CustomersAttributeValuesGetResponsesContentApplicationJsonSchemaDataItems
    CustomersAttributeValuesGetResponsesContentApplicationJsonSchemaMetaPaginationLinks:
      type: object
      properties:
        previous:
          type: string
          description: Link to the previous page returned in the response.
        current:
          type: string
          description: Link to the current page returned in the response.
        next:
          type: string
          description: Link to the next page returned in the response.
      description: Pagination links for the previous and next parts of the whole collection.
      title: CustomersAttributeValuesGetResponsesContentApplicationJsonSchemaMetaPaginationLinks
    CustomersAttributeValuesGetResponsesContentApplicationJsonSchemaMetaPagination:
      type: object
      properties:
        total:
          type: integer
          description: Total number of items in the result set.
        count:
          type: integer
          description: Total number of items in the collection response.
        per_page:
          type: integer
          description: The amount of items returned in the collection per page, controlled by the limit parameter.
        current_page:
          type: integer
          description: The page you are currently on within the collection.
        total_pages:
          type: integer
          description: The total number of pages in the collection.
        links:
          $ref: '#/components/schemas/CustomersAttributeValuesGetResponsesContentApplicationJsonSchemaMetaPaginationLinks'
          description: Pagination links for the previous and next parts of the whole collection.
      description: Data about the response, including pagination and collection totals.
      title: CustomersAttributeValuesGetResponsesContentApplicationJsonSchemaMetaPagination
    CustomersAttributeValuesGetResponsesContentApplicationJsonSchemaMeta:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/CustomersAttributeValuesGetResponsesContentApplicationJsonSchemaMetaPagination'
          description: Data about the response, including pagination and collection totals.
      description: Data about the response, including pagination and collection totals.
      title: CustomersAttributeValuesGetResponsesContentApplicationJsonSchemaMeta
    Attribute Values_getCustomersAttributeValues_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CustomersAttributeValuesGetResponsesContentApplicationJsonSchemaDataItems'
        meta:
          $ref: '#/components/schemas/CustomersAttributeValuesGetResponsesContentApplicationJsonSchemaMeta'
          description: Data about the response, including pagination and collection totals.
      description: Response payload for the BigCommerce API.
      title: Attribute Values_getCustomersAttributeValues_Response_200
    attributeValue_Base:
      type: object
      properties:
        id:
          type: integer
          description: Attribute value ID.
        attribute_id:
          type: integer
          description: Attribute ID.
        value:
          type: string
          description: |-
            Attribute value. This will always be a string, regardless of the attributeʼs type. 

            Corresponds to `attribute_value` used in customer attribute values `GET` requests.
        customer_id:
          type: integer
          description: Customer ID.
      required:
        - attribute_id
        - value
        - customer_id
      title: attributeValue_Base
    CustomersAttributeValuesPutResponsesContentApplicationJsonSchemaDataItems:
      type: object
      properties:
        attribute_id:
          type: integer
          description: Attribute ID.
        attribute_value:
          type: string
          description: |-
            Attribute value. This will always be a string, regardless of the attributes type. 

            Corresponds to `value` used in customer attribute values `PUT` requests.
        id:
          type: integer
          description: Attribute value ID.
        customer_id:
          type: integer
          description: Customer ID.
        date_modified:
          type: string
          format: date-time
          description: The date on which the customer attribute value was modified.
        date_created:
          type: string
          format: date-time
          description: The date of which the customer attribute value was created.
      required:
        - attribute_id
        - attribute_value
        - customer_id
      title: CustomersAttributeValuesPutResponsesContentApplicationJsonSchemaDataItems
    CustomersAttributeValuesPutResponsesContentApplicationJsonSchemaMetaPaginationLinks:
      type: object
      properties:
        previous:
          type: string
          description: Link to the previous page returned in the response.
        current:
          type: string
          description: Link to the current page returned in the response.
        next:
          type: string
          description: Link to the next page returned in the response.
      description: Pagination links for the previous and next parts of the whole collection.
      title: CustomersAttributeValuesPutResponsesContentApplicationJsonSchemaMetaPaginationLinks
    CustomersAttributeValuesPutResponsesContentApplicationJsonSchemaMetaPagination:
      type: object
      properties:
        total:
          type: integer
          description: Total number of items in the result set.
        count:
          type: integer
          description: Total number of items in the collection response.
        per_page:
          type: integer
          description: The amount of items returned in the collection per page, controlled by the limit parameter.
        current_page:
          type: integer
          description: The page you are currently on within the collection.
        total_pages:
          type: integer
          description: The total number of pages in the collection.
        links:
          $ref: '#/components/schemas/CustomersAttributeValuesPutResponsesContentApplicationJsonSchemaMetaPaginationLinks'
          description: Pagination links for the previous and next parts of the whole collection.
      description: Data about the response, including pagination and collection totals.
      title: CustomersAttributeValuesPutResponsesContentApplicationJsonSchemaMetaPagination
    CustomersAttributeValuesPutResponsesContentApplicationJsonSchemaMeta:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/CustomersAttributeValuesPutResponsesContentApplicationJsonSchemaMetaPagination'
          description: Data about the response, including pagination and collection totals.
      description: Data about the response, including pagination and collection totals.
      title: CustomersAttributeValuesPutResponsesContentApplicationJsonSchemaMeta
    Attribute Values_upsertCustomersAttributeValues_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CustomersAttributeValuesPutResponsesContentApplicationJsonSchemaDataItems'
        meta:
          $ref: '#/components/schemas/CustomersAttributeValuesPutResponsesContentApplicationJsonSchemaMeta'
          description: Data about the response, including pagination and collection totals.
      description: Response payload for the BigCommerce API.
      title: Attribute Values_upsertCustomersAttributeValues_Response_200
    CustomersAttributesGetResponsesContentApplicationJsonSchemaDataItemsType:
      type: string
      enum:
        - string
        - number
        - date
      description: 'Attribute type should match one of: string, number, date.'
      title: CustomersAttributesGetResponsesContentApplicationJsonSchemaDataItemsType
    CustomersAttributesGetResponsesContentApplicationJsonSchemaDataItems:
      type: object
      properties:
        name:
          type: string
          description: Attribute name.
        type:
          $ref: '#/components/schemas/CustomersAttributesGetResponsesContentApplicationJsonSchemaDataItemsType'
          description: 'Attribute type should match one of: string, number, date.'
        id:
          type: integer
          description: Attribute ID.
        date_modified:
          type: string
          format: date-time
          description: The date on which the customer attribute was modified.
        date_created:
          type: string
          format: date-time
          description: The date of which the customer attribute was created.
      required:
        - name
        - type
        - id
      title: CustomersAttributesGetResponsesContentApplicationJsonSchemaDataItems
    Attributes_getCustomersAttributes_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CustomersAttributesGetResponsesContentApplicationJsonSchemaDataItems'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      description: Response payload for the BigCommerce API.
      title: Attributes_getCustomersAttributes_Response_200
    AttributePostType:
      type: string
      enum:
        - string
        - number
        - date
      description: 'Attribute type should match one of: string, number, date.'
      title: AttributePostType
    attribute_Post:
      type: object
      properties:
        name:
          type: string
          description: Attribute name.
        type:
          $ref: '#/components/schemas/AttributePostType'
          description: 'Attribute type should match one of: string, number, date.'
      required:
        - name
        - type
      title: attribute_Post
    CustomersAttributesPostResponsesContentApplicationJsonSchemaDataItemsType:
      type: string
      enum:
        - string
        - number
        - date
      description: 'Attribute type should match one of: string, number, date.'
      title: CustomersAttributesPostResponsesContentApplicationJsonSchemaDataItemsType
    CustomersAttributesPostResponsesContentApplicationJsonSchemaDataItems:
      type: object
      properties:
        name:
          type: string
          description: Attribute name.
        type:
          $ref: '#/components/schemas/CustomersAttributesPostResponsesContentApplicationJsonSchemaDataItemsType'
          description: 'Attribute type should match one of: string, number, date.'
        id:
          type: integer
          description: Attribute ID.
        date_modified:
          type: string
          format: date-time
          description: The date on which the customer attribute was modified.
        date_created:
          type: string
          format: date-time
          description: The date of which the customer attribute was created.
      required:
        - name
        - type
        - id
      title: CustomersAttributesPostResponsesContentApplicationJsonSchemaDataItems
    Attributes_createCustomersAttributes_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CustomersAttributesPostResponsesContentApplicationJsonSchemaDataItems'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      description: Response payload for the BigCommerce API.
      title: Attributes_createCustomersAttributes_Response_200
    attribute_Put:
      type: object
      properties:
        name:
          type: string
          description: Attribute name.
        id:
          type: integer
          description: Attribute ID.
      required:
        - name
        - id
      description: >-
        Once the data type is set, it can not be changed. The attribute will need to be deleted then created again with
        the new data type. This will also delete it from the customer.
      title: attribute_Put
    CustomersAttributesPutResponsesContentApplicationJsonSchemaDataItemsType:
      type: string
      enum:
        - string
        - number
        - date
      description: 'Attribute type should match one of: string, number, date.'
      title: CustomersAttributesPutResponsesContentApplicationJsonSchemaDataItemsType
    CustomersAttributesPutResponsesContentApplicationJsonSchemaDataItems:
      type: object
      properties:
        name:
          type: string
          description: Attribute name.
        type:
          $ref: '#/components/schemas/CustomersAttributesPutResponsesContentApplicationJsonSchemaDataItemsType'
          description: 'Attribute type should match one of: string, number, date.'
        id:
          type: integer
          description: Attribute ID.
        date_modified:
          type: string
          format: date-time
          description: The date on which the customer attribute was modified.
        date_created:
          type: string
          format: date-time
          description: The date of which the customer attribute was created.
      required:
        - name
        - type
        - id
      title: CustomersAttributesPutResponsesContentApplicationJsonSchemaDataItems
    Attributes_updateCustomersAttributes_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CustomersAttributesPutResponsesContentApplicationJsonSchemaDataItems'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      description: Response payload for the BigCommerce API.
      title: Attributes_updateCustomersAttributes_Response_200
    CustomerChannelSettingsObjectPrivacySettings:
      type: object
      properties:
        ask_shopper_for_tracking_consent:
          type: boolean
          description: Determines if a customer requires consent for tracking privacy.
        policy_url:
          type: string
          description: The URL for a websiteʼs privacy policy.
      description: Controls the privacy settings.
      title: CustomerChannelSettingsObjectPrivacySettings
    CustomerChannelSettingsObjectCustomerGroupSettings:
      type: object
      properties:
        guest_customer_group_id:
          type: integer
          description: The ID for a guest customer group.
        default_customer_group_id:
          type: integer
          description: The ID for a default customer group.
      description: The settings for a collection of customers.
      title: CustomerChannelSettingsObjectCustomerGroupSettings
    CustomerChannelSettingsObject:
      type: object
      properties:
        privacy_settings:
          $ref: '#/components/schemas/CustomerChannelSettingsObjectPrivacySettings'
          description: Controls the privacy settings.
        customer_group_settings:
          $ref: '#/components/schemas/CustomerChannelSettingsObjectCustomerGroupSettings'
          description: The settings for a collection of customers.
        allow_global_logins:
          type: boolean
          description: |-
            * Determines if a channel allows global customer to login
            * Determines if customers created on this channel will get global access/login
      title: CustomerChannelSettingsObject
    CustomersSettingsChannelsChannelIdGetResponsesContentApplicationJsonSchemaMeta:
      type: object
      properties: {}
      title: CustomersSettingsChannelsChannelIdGetResponsesContentApplicationJsonSchemaMeta
    Channel Settings_getCustomersSettingsChannel_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CustomerChannelSettingsObject'
        meta:
          $ref: '#/components/schemas/CustomersSettingsChannelsChannelIdGetResponsesContentApplicationJsonSchemaMeta'
      title: Channel Settings_getCustomersSettingsChannel_Response_200
    CustomerSettingsObjectPrivacySettings:
      type: object
      properties:
        ask_shopper_for_tracking_consent:
          type: boolean
          description: Determines if a customer requires consent for tracking privacy.
        policy_url:
          type: string
          description: The URL for a websiteʼs privacy policy.
      description: Controls the privacy settings.
      title: CustomerSettingsObjectPrivacySettings
    CustomerSettingsObjectCustomerGroupSettings:
      type: object
      properties:
        guest_customer_group_id:
          type: integer
          description: The ID for a guest customer group.
        default_customer_group_id:
          type: integer
          description: The ID for a default customer group.
      description: The settings for a collection of customers.
      title: CustomerSettingsObjectCustomerGroupSettings
    CustomerSettingsObject:
      type: object
      properties:
        privacy_settings:
          $ref: '#/components/schemas/CustomerSettingsObjectPrivacySettings'
          description: Controls the privacy settings.
        customer_group_settings:
          $ref: '#/components/schemas/CustomerSettingsObjectCustomerGroupSettings'
          description: The settings for a collection of customers.
      description: Customer Settings.
      title: CustomerSettingsObject
    CustomersSettingsChannelsChannelIdPutResponsesContentApplicationJsonSchemaMeta:
      type: object
      properties: {}
      title: CustomersSettingsChannelsChannelIdPutResponsesContentApplicationJsonSchemaMeta
    Channel Settings_updateCustomersSettingsChannel_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CustomerSettingsObject'
        meta:
          $ref: '#/components/schemas/CustomersSettingsChannelsChannelIdPutResponsesContentApplicationJsonSchemaMeta'
      title: Channel Settings_updateCustomersSettingsChannel_Response_200
    ConsentAllowItems:
      type: string
      enum:
        - essential
        - functional
        - analytics
        - targeting
      title: ConsentAllowItems
    consentAllow:
      type: array
      items:
        $ref: '#/components/schemas/ConsentAllowItems'
      title: consentAllow
    DenyItems:
      type: string
      enum:
        - essential
        - functional
        - analytics
        - targeting
      title: DenyItems
    Deny:
      type: array
      items:
        $ref: '#/components/schemas/DenyItems'
      title: Deny
    consent_Full:
      type: object
      properties:
        allow:
          $ref: '#/components/schemas/consentAllow'
        deny:
          $ref: '#/components/schemas/Deny'
        updated_at:
          type: string
          format: date-time
          description: >-
            The date of which the customer consent was last updated.


            > NOTE

            > 

            > Currently, this field returns the time of the current API Call, not the time of last update. For PUT
            requests, this is typically accurate; however, it will not be accurate for GET requests.
      description: Response payload for the BigCommerce API.
      title: consent_Full
    DeclareCustomerConsentRequest:
      type: object
      properties:
        allow:
          $ref: '#/components/schemas/consentAllow'
        deny:
          $ref: '#/components/schemas/Deny'
      description: Request payload for the BigCommerce API.
      title: DeclareCustomerConsentRequest
    CustomersFormFieldValuesGetParametersFieldType:
      type: string
      enum:
        - checkboxes
        - date
        - multiline
        - numbers
        - password
        - radiobuttons
        - text
        - picklist
      title: CustomersFormFieldValuesGetParametersFieldType
    CustomersFormFieldValuesGetResponsesContentApplicationJsonSchemaDataItemsOneOf0Value:
      oneOf:
        - type: string
        - type: number
          format: double
        - type: array
          items:
            type: string
      title: CustomersFormFieldValuesGetResponsesContentApplicationJsonSchemaDataItemsOneOf0Value
    CustomersFormFieldValuesGetResponsesContentApplicationJsonSchemaDataItems0:
      type: object
      properties:
        name:
          type: string
          description: The form field name.
        value:
          $ref: '#/components/schemas/CustomersFormFieldValuesGetResponsesContentApplicationJsonSchemaDataItemsOneOf0Value'
        customer_id:
          type: integer
      required:
        - name
        - value
        - customer_id
      title: CustomersFormFieldValuesGetResponsesContentApplicationJsonSchemaDataItems0
    CustomersFormFieldValuesGetResponsesContentApplicationJsonSchemaDataItemsOneOf1Value:
      oneOf:
        - type: string
        - type: number
          format: double
        - type: array
          items:
            type: string
      title: CustomersFormFieldValuesGetResponsesContentApplicationJsonSchemaDataItemsOneOf1Value
    CustomersFormFieldValuesGetResponsesContentApplicationJsonSchemaDataItems1:
      type: object
      properties:
        name:
          type: string
          description: The form field name.
        value:
          $ref: '#/components/schemas/CustomersFormFieldValuesGetResponsesContentApplicationJsonSchemaDataItemsOneOf1Value'
        address_id:
          type: integer
          description: The Customer Address ID.
      required:
        - name
        - value
        - address_id
      title: CustomersFormFieldValuesGetResponsesContentApplicationJsonSchemaDataItems1
    CustomersFormFieldValuesGetResponsesContentApplicationJsonSchemaDataItems:
      oneOf:
        - $ref: '#/components/schemas/CustomersFormFieldValuesGetResponsesContentApplicationJsonSchemaDataItems0'
        - $ref: '#/components/schemas/CustomersFormFieldValuesGetResponsesContentApplicationJsonSchemaDataItems1'
      title: CustomersFormFieldValuesGetResponsesContentApplicationJsonSchemaDataItems
    Form Field Values_getCustomersFormFieldValues_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CustomersFormFieldValuesGetResponsesContentApplicationJsonSchemaDataItems'
        meta:
          $ref: '#/components/schemas/_metaCollectionWithCursorPagination'
      title: Form Field Values_getCustomersFormFieldValues_Response_200
    CustomersFormFieldValuesPutResponsesContentApplicationJsonSchemaDataItemsOneOf0Value:
      oneOf:
        - type: string
        - type: number
          format: double
        - type: array
          items:
            type: string
      title: CustomersFormFieldValuesPutResponsesContentApplicationJsonSchemaDataItemsOneOf0Value
    CustomersFormFieldValuesPutResponsesContentApplicationJsonSchemaDataItems0:
      type: object
      properties:
        name:
          type: string
          description: The form field name.
        value:
          $ref: '#/components/schemas/CustomersFormFieldValuesPutResponsesContentApplicationJsonSchemaDataItemsOneOf0Value'
        customer_id:
          type: integer
      required:
        - name
        - value
        - customer_id
      title: CustomersFormFieldValuesPutResponsesContentApplicationJsonSchemaDataItems0
    CustomersFormFieldValuesPutResponsesContentApplicationJsonSchemaDataItemsOneOf1Value:
      oneOf:
        - type: string
        - type: number
          format: double
        - type: array
          items:
            type: string
      title: CustomersFormFieldValuesPutResponsesContentApplicationJsonSchemaDataItemsOneOf1Value
    CustomersFormFieldValuesPutResponsesContentApplicationJsonSchemaDataItems1:
      type: object
      properties:
        name:
          type: string
          description: The form field name.
        value:
          $ref: '#/components/schemas/CustomersFormFieldValuesPutResponsesContentApplicationJsonSchemaDataItemsOneOf1Value'
        address_id:
          type: integer
          description: The Customer Address ID.
      required:
        - name
        - value
        - address_id
      title: CustomersFormFieldValuesPutResponsesContentApplicationJsonSchemaDataItems1
    CustomersFormFieldValuesPutResponsesContentApplicationJsonSchemaDataItems:
      oneOf:
        - $ref: '#/components/schemas/CustomersFormFieldValuesPutResponsesContentApplicationJsonSchemaDataItems0'
        - $ref: '#/components/schemas/CustomersFormFieldValuesPutResponsesContentApplicationJsonSchemaDataItems1'
      title: CustomersFormFieldValuesPutResponsesContentApplicationJsonSchemaDataItems
    Form Field Values_updateCustomerFormFieldValues_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CustomersFormFieldValuesPutResponsesContentApplicationJsonSchemaDataItems'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Form Field Values_updateCustomerFormFieldValues_Response_200
    CustomersSettingsGetResponsesContentApplicationJsonSchemaMeta:
      type: object
      properties: {}
      title: CustomersSettingsGetResponsesContentApplicationJsonSchemaMeta
    Global Settings_getCustomersSettings_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CustomerSettingsObject'
        meta:
          $ref: '#/components/schemas/CustomersSettingsGetResponsesContentApplicationJsonSchemaMeta'
      title: Global Settings_getCustomersSettings_Response_200
    CustomersSettingsPutResponsesContentApplicationJsonSchemaMeta:
      type: object
      properties: {}
      title: CustomersSettingsPutResponsesContentApplicationJsonSchemaMeta
    Global Settings_updateCustomersSettings_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CustomerSettingsObject'
        meta:
          $ref: '#/components/schemas/CustomersSettingsPutResponsesContentApplicationJsonSchemaMeta'
      title: Global Settings_updateCustomersSettings_Response_200
    MetafieldBasePermissionSet:
      type: string
      enum:
        - app_only
        - read
        - write
        - read_and_sf_access
        - write_and_sf_access
      description: |-
        Determines the visibility and writeability of the field by other API consumers.

        |Value|Description
        |-|-|
        |`app_only`|Private to the app that owns the field|
        |`read`|Visible to other API consumers|
        |`write`|Open for reading and writing by other API consumers|
        |`read_and_sf_access`|Visible to other API consumers, including on storefront|
        |`write_and_sf_access`|Open for reading and writing by other API consumers, including on storefront|
      title: MetafieldBasePermissionSet
    MetafieldFullResourceType:
      type: string
      enum:
        - category
        - brand
        - product
        - variant
        - customer
      description: |
        The type of resource with which the metafield is associated.
      title: MetafieldFullResourceType
    metafield_Full:
      type: object
      properties:
        key:
          type: string
          description: |
            The name of the field, for example: `location_id`, `color`. Required for POST.
        value:
          type: string
          description: |
            The value of the field, for example: `1`, `blue`. Required for POST.
        namespace:
          type: string
          description: |
            Namespace for the metafield, for organizational purposes. This is set by the developer. Required for POST.
        permission_set:
          $ref: '#/components/schemas/MetafieldBasePermissionSet'
          description: |-
            Determines the visibility and writeability of the field by other API consumers.

            |Value|Description
            |-|-|
            |`app_only`|Private to the app that owns the field|
            |`read`|Visible to other API consumers|
            |`write`|Open for reading and writing by other API consumers|
            |`read_and_sf_access`|Visible to other API consumers, including on storefront|
            |`write_and_sf_access`|Open for reading and writing by other API consumers, including on storefront|
        description:
          type: string
          description: |
            Description for the metafields.
        id:
          type: integer
          description: Unique ID of the *Metafield*. Read-Only.
        resource_type:
          $ref: '#/components/schemas/MetafieldFullResourceType'
          description: |
            The type of resource with which the metafield is associated.
        resource_id:
          type: integer
          description: |
            The ID of the resource with which the metafield is associated.
        date_created:
          type: string
          format: date-time
          description: |
            Date and time of the metafieldʼs creation. Read-Only.
        date_modified:
          type: string
          format: date-time
          description: |
            Date and time when the metafield was last updated. Read-Only.
      required:
        - key
        - value
        - namespace
        - permission_set
      title: metafield_Full
    PaginationFullLinks:
      type: object
      properties:
        previous:
          type: string
          description: |
            Link to the previous page returned in the response.
        current:
          type: string
          description: |
            Link to the current page returned in the response.
        next:
          type: string
          description: |
            Link to the next page returned in the response.
      description: |
        Pagination links for the previous and next parts of the whole collection.
      title: PaginationFullLinks
    pagination_Full:
      type: object
      properties:
        total:
          type: integer
          description: |
            Total number of items in the result set.
        count:
          type: integer
          description: |
            Total number of items in the collection response.
        per_page:
          type: integer
          description: |
            The amount of items returned in the collection per page, controlled by the limit parameter.
        current_page:
          type: integer
          description: |
            The page you are currently on within the collection.
        total_pages:
          type: integer
          description: |
            The total number of pages in the collection.
        links:
          $ref: '#/components/schemas/PaginationFullLinks'
          description: |
            Pagination links for the previous and next parts of the whole collection.
      description: Data about the response, including pagination and collection totals.
      title: pagination_Full
    metaCollection_Full:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/pagination_Full'
      description: Data about the response, including pagination and collection totals.
      title: metaCollection_Full
    Metafields_getCustomersMetafields_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/metafield_Full'
        meta:
          $ref: '#/components/schemas/metaCollection_Full'
      title: Metafields_getCustomersMetafields_Response_200
    MetafieldBasePostPermissionSet:
      type: string
      enum:
        - app_only
        - read
        - write
        - read_and_sf_access
        - write_and_sf_access
      description: |-
        Determines the visibility and writeability of the field by other API consumers.

        | Value | Description |
        | :--- | :--- |
        | `app_only` | Private to the app that owns the field. |
        | `read` | Visible to other API consumers. |
        | `write` | Open for reading and writing by other API consumers. |
        | `read_and_sf_access` | Visible to other API consumers, including on the storefront. |
        | `write_and_sf_access` | Open for reading and writing by other API consumers, including on the storefront. |
      title: MetafieldBasePostPermissionSet
    MetafieldBase_Post:
      type: object
      properties:
        permission_set:
          $ref: '#/components/schemas/MetafieldBasePostPermissionSet'
          description: >-
            Determines the visibility and writeability of the field by other API consumers.


            | Value | Description |

            | :--- | :--- |

            | `app_only` | Private to the app that owns the field. |

            | `read` | Visible to other API consumers. |

            | `write` | Open for reading and writing by other API consumers. |

            | `read_and_sf_access` | Visible to other API consumers, including on the storefront. |

            | `write_and_sf_access` | Open for reading and writing by other API consumers, including on the storefront.
            |
        namespace:
          type: string
          description: |
            Namespace for the metafield, for organizational purposes.
        key:
          type: string
          description: |
            The name of the field, for example: `location_id`, `color`.
        value:
          type: string
          description: |
            The value of the field, for example: `1`, `blue`.
        description:
          type: string
          description: |
            Description for the metafields.
      required:
        - permission_set
        - namespace
        - key
        - value
      description: |
        Common Metafield properties.
      title: MetafieldBase_Post
    MetafieldPermissionSet:
      type: string
      enum:
        - app_only
        - read
        - write
        - read_and_sf_access
        - write_and_sf_access
      description: |
        Determines the visibility and writeability of the field by other API consumers.
        | Value | Description |
        | :--- | :--- |
        | `app_only` | Private to the app that owns the field. |
        | `read` | Visible to other API consumers. |
        | `write` | Open for reading and writing by other API consumers. |
        | `read_and_sf_access` | Visible to other API consumers, including on storefront. |
        | `write_and_sf_access` | Open for reading and writing by other API consumers, including on storefront. |
      title: MetafieldPermissionSet
    MetafieldResourceType:
      type: string
      enum:
        - brand
        - product
        - variant
        - category
        - cart
        - channel
        - location
        - order
        - customer
      description: |
        The type of resource with which the metafield is associated.
      title: MetafieldResourceType
    Metafield:
      type: object
      properties:
        permission_set:
          $ref: '#/components/schemas/MetafieldPermissionSet'
          description: |
            Determines the visibility and writeability of the field by other API consumers.
            | Value | Description |
            | :--- | :--- |
            | `app_only` | Private to the app that owns the field. |
            | `read` | Visible to other API consumers. |
            | `write` | Open for reading and writing by other API consumers. |
            | `read_and_sf_access` | Visible to other API consumers, including on storefront. |
            | `write_and_sf_access` | Open for reading and writing by other API consumers, including on storefront. |
        namespace:
          type: string
          description: |
            Namespace for the metafield, for organizational purposes.
        key:
          type: string
          description: |
            The name of the field, for example: `location_id`, `color`.
        value:
          type: string
          description: |
            The value of the field, for example: `1`, `blue`.
        description:
          type: string
          description: |
            Description for the metafields.
        resource_type:
          $ref: '#/components/schemas/MetafieldResourceType'
          description: |
            The type of resource with which the metafield is associated.
        resource_id:
          type: integer
          description: |
            The unique identifier for the resource with which the metafield is associated.
        id:
          type: integer
          description: The unique identifier for the metafield.
        date_created:
          type: string
          format: date-time
          description: Date and time of the metafieldʼs creation.
        date_modified:
          type: string
          format: date-time
          description: Date and time when the metafield was last updated.
        owner_client_id:
          type: string
          description: Client ID for the metafieldʼs creator.
      required:
        - permission_set
        - namespace
        - key
        - value
        - description
        - resource_type
        - resource_id
        - id
        - date_created
        - date_modified
      description: |
        Common metafield properties.
      title: Metafield
    CollectionMetaPaginationLinks:
      type: object
      properties:
        previous:
          type: string
          description: |
            Link to the previous page returned in the response.
        current:
          type: string
          description: |
            Link to the current page returned in the response.
        next:
          type: string
          description: |
            Link to the next page returned in the response.
      description: |
        Pagination links for the previous and next parts of the whole collection.
      title: CollectionMetaPaginationLinks
    CollectionMetaPagination:
      type: object
      properties:
        total:
          type: integer
          description: |
            Total number of items in the result set.
        count:
          type: integer
          description: |
            Total number of items in the collection response.
        per_page:
          type: integer
          description: |
            The amount of items returned in the collection per page, controlled by the limit parameter.
        current_page:
          type: integer
          description: |
            The page you are currently on within the collection.
        total_pages:
          type: integer
          description: |
            The total number of pages in the collection.
        links:
          $ref: '#/components/schemas/CollectionMetaPaginationLinks'
          description: |
            Pagination links for the previous and next parts of the whole collection.
      description: Data about the response, including pagination and collection totals.
      title: CollectionMetaPagination
    CollectionMeta:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/CollectionMetaPagination'
          description: Data about the response, including pagination and collection totals.
      description: Data about the response, including pagination and collection totals.
      title: CollectionMeta
    MetaFieldCollectionPostPutResponses:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Metafield'
        errors:
          type: array
          items:
            description: Any type
          description: Empty for 200 responses.
        meta:
          $ref: '#/components/schemas/CollectionMeta'
      description: Response payload for the BigCommerce API.
      title: MetaFieldCollectionPostPutResponses
    CreateCustomerMetafieldsRequestBadRequestError:
      type: object
      properties:
        status:
          type: number
          format: double
        title:
          type: string
        type:
          type: string
        detail:
          type: string
      title: CreateCustomerMetafieldsRequestBadRequestError
    metaEmpty_Full:
      type: object
      properties: {}
      description: Response metadata.
      title: metaEmpty_Full
    Metafields_getMetafieldsCustomerId_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/metafield_Full'
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      title: Metafields_getMetafieldsCustomerId_Response_200
    NotFound:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: NotFound
    CustomersCustomerIdMetafieldsMetafieldIdPutRequestBodyContentApplicationJsonSchemaPermissionSet:
      type: string
      enum:
        - app_only
        - read
        - write
        - read_and_sf_access
        - write_and_sf_access
      description: |
        Determines the visibility and writeability of the field by other API consumers.

        | Value | Description |
        | :--- | :--- |
        | `app_only` | Private to the app that owns the field. |
        | `read` | Visible to other API consumers. |
        | `write` | Open for reading and writing by other API consumers. |
        | `read_and_sf_access` | Visible to other API consumers, including on the storefront. |
        | `write_and_sf_access` | Open for reading and writing by other API consumers, including on the storefront. |
      title: CustomersCustomerIdMetafieldsMetafieldIdPutRequestBodyContentApplicationJsonSchemaPermissionSet
    UpdateCustomerMetafieldRequestBadRequestError:
      type: object
      properties:
        status:
          type: number
          format: double
        title:
          type: string
        type:
          type: string
        detail:
          type: string
      title: UpdateCustomerMetafieldRequestBadRequestError
    CustomersMetafieldsGetParametersDirection:
      type: string
      enum:
        - asc
        - desc
      title: CustomersMetafieldsGetParametersDirection
    CustomersMetafieldsGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - resource_id
        - key
        - value
        - namespace
        - permission_set
        - resource_type
        - description
        - owner_client_id
        - date_created
        - date_modified
      title: CustomersMetafieldsGetParametersIncludeFieldsSchemaItems
    MetaFieldCollectionResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Metafield'
        meta:
          $ref: '#/components/schemas/CollectionMeta'
      description: |
        Response payload for the BigCommerce API.
      title: MetaFieldCollectionResponse
    CustomersMetafieldsPostRequestBodyContentApplicationJsonSchemaItemsPermissionSet:
      type: string
      enum:
        - app_only
        - read
        - write
        - read_and_sf_access
        - write_and_sf_access
      description: |-
        Determines the visibility and writeability of the field by other API consumers.

        | Value | Description |
        | :--- | :--- |
        | `app_only` | Private to the app that owns the field. |
        | `read` | Visible to other API consumers. |
        | `write` | Open for reading and writing by other API consumers. |
        | `read_and_sf_access` | Visible to other API consumers, including on the storefront. |
        | `write_and_sf_access` | Open for reading and writing by other API consumers, including on the storefront. |
      title: CustomersMetafieldsPostRequestBodyContentApplicationJsonSchemaItemsPermissionSet
    CustomersMetafieldsPostRequestBodyContentApplicationJsonSchemaItems:
      type: object
      properties:
        permission_set:
          $ref: '#/components/schemas/CustomersMetafieldsPostRequestBodyContentApplicationJsonSchemaItemsPermissionSet'
          description: >-
            Determines the visibility and writeability of the field by other API consumers.


            | Value | Description |

            | :--- | :--- |

            | `app_only` | Private to the app that owns the field. |

            | `read` | Visible to other API consumers. |

            | `write` | Open for reading and writing by other API consumers. |

            | `read_and_sf_access` | Visible to other API consumers, including on the storefront. |

            | `write_and_sf_access` | Open for reading and writing by other API consumers, including on the storefront.
            |
        namespace:
          type: string
          description: |
            Namespace for the metafield, for organizational purposes.
        key:
          type: string
          description: |
            The name of the field, for example: `location_id`, `color`.
        value:
          type: string
          description: |
            The value of the field, for example: `1`, `blue`.
        description:
          type: string
          description: |
            Description for the metafields.
        resource_id:
          type: integer
          description: |
            The ID for the resource with which the metafield is associated.
      required:
        - permission_set
        - namespace
        - key
        - value
        - resource_id
      description: |
        Common Metafield properties.
      title: CustomersMetafieldsPostRequestBodyContentApplicationJsonSchemaItems
    CreateCustomersMetafieldsRequestBadRequestError:
      type: object
      properties:
        status:
          type: number
          format: double
        title:
          type: string
        type:
          type: string
        detail:
          type: string
      title: CreateCustomersMetafieldsRequestBadRequestError
    WriteCollectionPartialSuccessMeta:
      type: object
      properties:
        total:
          type: integer
          description: |
            Total number of items in the result set.
        success:
          type: integer
          description: |
            Total number of items that were successfully deleted.
        failed:
          type: integer
          description: |
            Total number of items that failed to be deleted.
      description: Additional data about the response.
      title: WriteCollectionPartialSuccessMeta
    MetaFieldCollectionResponsePartialSuccess_POST_PUT:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Metafield'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
        meta:
          $ref: '#/components/schemas/WriteCollectionPartialSuccessMeta'
      description: |
        Response payload for the BigCommerce API.
      title: MetaFieldCollectionResponsePartialSuccess_POST_PUT
    CustomersMetafieldsPutRequestBodyContentApplicationJsonSchemaItemsPermissionSet:
      type: string
      enum:
        - app_only
        - read
        - write
        - read_and_sf_access
        - write_and_sf_access
      description: |
        Determines the visibility and writeability of the field by other API consumers.

        | Value | Description |
        | :--- | :--- |
        | `app_only` | Private to the app that owns the field. |
        | `read` | Visible to other API consumers. |
        | `write` | Open for reading and writing by other API consumers. |
        | `read_and_sf_access` | Visible to other API consumers, including on the storefront. |
        | `write_and_sf_access` | Open for reading and writing by other API consumers, including on the storefront. |
      title: CustomersMetafieldsPutRequestBodyContentApplicationJsonSchemaItemsPermissionSet
    CustomersMetafieldsPutRequestBodyContentApplicationJsonSchemaItems:
      type: object
      properties:
        permission_set:
          $ref: '#/components/schemas/CustomersMetafieldsPutRequestBodyContentApplicationJsonSchemaItemsPermissionSet'
          description: >
            Determines the visibility and writeability of the field by other API consumers.


            | Value | Description |

            | :--- | :--- |

            | `app_only` | Private to the app that owns the field. |

            | `read` | Visible to other API consumers. |

            | `write` | Open for reading and writing by other API consumers. |

            | `read_and_sf_access` | Visible to other API consumers, including on the storefront. |

            | `write_and_sf_access` | Open for reading and writing by other API consumers, including on the storefront.
            |
        namespace:
          type: string
          description: |
            Namespace for the metafield, for organizational purposes.
        key:
          type: string
          description: |
            The name of the field, for example: `location_id`, `color`.
        value:
          type: string
          description: |
            The value of the field, for example: `1`, `blue`.
        description:
          type: string
          description: |
            Description for the metafields.
        id:
          type: integer
          description: |
            The ID of metafield to update.
      required:
        - id
      description: |
        Common Metafield properties.
      title: CustomersMetafieldsPutRequestBodyContentApplicationJsonSchemaItems
    UpdateCustomersMetafieldsRequestBadRequestError:
      type: object
      properties:
        status:
          type: number
          format: double
        title:
          type: string
        type:
          type: string
        detail:
          type: string
      title: UpdateCustomersMetafieldsRequestBadRequestError
    WriteCollectionSuccessMeta:
      type: object
      properties:
        total:
          type: integer
          description: |
            Total number of items in the result set.
        success:
          type: integer
          description: |
            Total number of items that were successfully deleted.
        failed:
          type: integer
          description: |
            Total number of items that failed to be deleted.
      description: Additional data about the response.
      title: WriteCollectionSuccessMeta
    MetaFieldCollectionDeleteResponseSuccess:
      type: object
      properties:
        data:
          type: array
          items:
            type: integer
        errors:
          type: array
          items:
            description: Any type
          description: Empty for 200 responses.
        meta:
          $ref: '#/components/schemas/WriteCollectionSuccessMeta'
      description: |
        Response payload for the BigCommerce API.
      title: MetaFieldCollectionDeleteResponseSuccess
    DeleteCustomersMetafieldsRequestBadRequestError:
      type: object
      properties:
        status:
          type: number
          format: double
        title:
          type: string
        type:
          type: string
        detail:
          type: string
      title: DeleteCustomersMetafieldsRequestBadRequestError
    MetaFieldCollectionResponsePartialSuccess_DELETE:
      type: object
      properties:
        data:
          type: array
          items:
            type: integer
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
        meta:
          $ref: '#/components/schemas/WriteCollectionPartialSuccessMeta'
      description: |
        Response payload for the BigCommerce API.
      title: MetaFieldCollectionResponsePartialSuccess_DELETE
    BillingAddress:
      type: object
      properties:
        first_name:
          type: string
          description: First name of the card holder.
        last_name:
          type: string
          description: Last name of the card holder.
        email:
          type: string
        company:
          type: string
          description: Company of the card holder.
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        postal_code:
          type: string
        state_or_province:
          type: string
          description: Represents state or province.
        state_or_province_code:
          type: string
        country_code:
          type: string
          description: ISO-3166-1 2 letter country code.
        phone:
          type: string
      title: BillingAddress
    CustomersCustomerIdStoredInstrumentsGetResponsesContentApplicationJsonSchemaItems:
      oneOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - stored_card
              description: 'Discriminator value: stored_card'
            token:
              type: string
              description: An identifier representing this stored instrument.
            is_default:
              type: boolean
              description: Identifies whether this stored instrument is default for the customer.
            brand:
              type: string
              description: Card brand.
            expiry_month:
              type: integer
              description: Expiry month for this card.
            expiry_year:
              type: integer
              description: Expiry year for this card.
            issuer_identification_number:
              type: string
              description: Issuer identification number for this card.
            last_4:
              type: string
              description: Last four digits of this card.
            billing_address:
              $ref: '#/components/schemas/BillingAddress'
          required:
            - type
          description: Details about a stored card instrument which includes details around billing, last 4 digits, issuer, etc.
        - type: object
          properties:
            type:
              type: string
              enum:
                - stored_paypal_account
              description: 'Discriminator value: stored_paypal_account'
            token:
              type: string
              description: An identifier representing this stored instrument.
            is_default:
              type: boolean
              description: Identifies whether this stored instrument is default for the customer.
            email:
              type: string
              description: PayPal email address.
          required:
            - type
          description: A PayPal account stored instrument.
        - type: object
          properties:
            type:
              type: string
              enum:
                - stored_bank_account
              description: 'Discriminator value: stored_bank_account'
            token:
              type: string
              description: An identifier representing this stored instrument.
            is_default:
              type: boolean
              description: Identifies whether this stored instrument is default for the customer.
            masked_account_number:
              type: string
              description: A masked bank account number.
            issuer:
              type: string
              description: Issuer identifier for the account.
          required:
            - type
          description: A stored bank account instrument.
      discriminator:
        propertyName: type
      title: CustomersCustomerIdStoredInstrumentsGetResponsesContentApplicationJsonSchemaItems
    ValidateCustomerCredentialsObject:
      type: object
      properties:
        email:
          type: string
          description: Customer email address.
        password:
          type: string
          description: Customer password.
        channel_id:
          type: integer
          description: ChannelId to check the customer credentials against - If this field is empty we will use channel 1.
      required:
        - email
        - password
      title: ValidateCustomerCredentialsObject
    ValidateCustomerCredentialsResponseObject:
      type: object
      properties:
        customer_id:
          type:
            - integer
            - 'null'
          description: Returns the customer ID.
        is_valid:
          type: boolean
          description: indicates if the provided credentials are valid.
      title: ValidateCustomerCredentialsResponseObject
  securitySchemes:
    X-Auth-Token:
      type: apiKey
      in: header
      name: X-Auth-Token
      description: >-
        ### OAuth scopes


        | UI Name | Permission | Parameter |

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

        | Customers | modify | `store_v2_customers` |

        | Customers | read-only | `store_v2_customers_read_only` |

        | Stored Payment Instruments | modify | `store_stored_payment_instruments` |

        | Stored Payment Instruments | read-only | `store_stored_payment_instruments_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).
