Square CustomerCustomAttributes API

The CustomerCustomAttributes API from Square — 5 operation(s) for customercustomattributes.

Documentation

📖
Documentation
https://developer.squareup.com/docs/payments-overview
📖
APIReference
https://developer.squareup.com/reference/square/payments-api
📖
Documentation
https://developer.squareup.com/docs/orders-api/what-it-does
📖
APIReference
https://developer.squareup.com/reference/square/orders-api
📖
Documentation
https://developer.squareup.com/docs/catalog-api/what-it-does
📖
APIReference
https://developer.squareup.com/reference/square/catalog-api
📖
Documentation
https://developer.squareup.com/docs/inventory-api/what-it-does
📖
APIReference
https://developer.squareup.com/reference/square/inventory-api
📖
Documentation
https://developer.squareup.com/docs/customers
📖
APIReference
https://developer.squareup.com/reference/square/customers-api
📖
Documentation
https://developer.squareup.com/docs/locations-api
📖
APIReference
https://developer.squareup.com/reference/square/locations-api
📖
Documentation
https://developer.squareup.com/docs/team/overview
📖
APIReference
https://developer.squareup.com/reference/square/team-api
📖
Documentation
https://developer.squareup.com/docs/labor-api/what-it-does
📖
APIReference
https://developer.squareup.com/reference/square/labor-api
📖
Documentation
https://developer.squareup.com/docs/bookings-api/what-it-is
📖
APIReference
https://developer.squareup.com/reference/square/bookings-api
📖
Documentation
https://developer.squareup.com/docs/loyalty-api/overview
📖
APIReference
https://developer.squareup.com/reference/square/loyalty-api
📖
Documentation
https://developer.squareup.com/docs/gift-cards/using-gift-cards-api
📖
APIReference
https://developer.squareup.com/reference/square/gift-cards-api
📖
Documentation
https://developer.squareup.com/docs/invoices-api/overview
📖
APIReference
https://developer.squareup.com/reference/square/invoices-api
📖
Documentation
https://developer.squareup.com/docs/subscriptions-api/overview
📖
APIReference
https://developer.squareup.com/reference/square/subscriptions-api
📖
Documentation
https://developer.squareup.com/docs/checkout-api
📖
APIReference
https://developer.squareup.com/reference/square/checkout-api
📖
Documentation
https://developer.squareup.com/docs/terminal-api/overview
📖
APIReference
https://developer.squareup.com/reference/square/terminal-api
📖
Documentation
https://developer.squareup.com/docs/payments-refunds
📖
APIReference
https://developer.squareup.com/reference/square/refunds-api
📖
Documentation
https://developer.squareup.com/docs/disputes-api/overview
📖
APIReference
https://developer.squareup.com/reference/square/disputes-api
📖
Documentation
https://developer.squareup.com/docs/merchants-api
📖
APIReference
https://developer.squareup.com/reference/square/merchants-api
📖
Documentation
https://developer.squareup.com/docs/cards-api/overview
📖
APIReference
https://developer.squareup.com/reference/square/cards-api
📖
Documentation
https://developer.squareup.com/docs/vendors-api/manage-vendors-in-apps
📖
APIReference
https://developer.squareup.com/reference/square/vendors-api
📖
Documentation
https://developer.squareup.com/docs/cashdrawershift-api/reporting
📖
APIReference
https://developer.squareup.com/reference/square/cash-drawers-api
📖
Documentation
https://developer.squareup.com/docs/bank-accounts-api
📖
APIReference
https://developer.squareup.com/reference/square/bank-accounts-api
📖
Documentation
https://developer.squareup.com/docs/payouts-api/overview
📖
APIReference
https://developer.squareup.com/reference/square/payouts-api
📖
Documentation
https://developer.squareup.com/docs/web-payments/apple-pay
📖
APIReference
https://developer.squareup.com/reference/square/apple-pay-api
📖
Documentation
https://developer.squareup.com/docs/sites-api/overview
📖
APIReference
https://developer.squareup.com/reference/square/sites-api
📖
Documentation
https://developer.squareup.com/docs/snippets-api/overview
📖
APIReference
https://developer.squareup.com/reference/square/snippets-api
📖
Documentation
https://developer.squareup.com/docs/oauth-api/overview
📖
APIReference
https://developer.squareup.com/reference/square/oauth-api
📖
Documentation
https://developer.squareup.com/docs/webhooks/overview
📖
APIReference
https://developer.squareup.com/reference/square/webhook-subscriptions-api
📖
Documentation
https://developer.squareup.com/docs/events-api/overview
📖
APIReference
https://developer.squareup.com/reference/square/events-api
📖
Documentation
https://developer.squareup.com/docs/devices-api/overview
📖
APIReference
https://developer.squareup.com/reference/square/devices-api
📖
Documentation
https://developer.squareup.com/docs/customer-groups-api/what-it-does
📖
APIReference
https://developer.squareup.com/reference/square/customer-groups-api
📖
Documentation
https://developer.squareup.com/docs/customer-segments-api/what-it-does
📖
APIReference
https://developer.squareup.com/reference/square/customer-segments-api
📖
Documentation
https://developer.squareup.com/docs/gift-cards/using-gift-card-activities-api
📖
APIReference
https://developer.squareup.com/reference/square/gift-card-activities-api
📖
Documentation
https://developer.squareup.com/docs/customer-custom-attributes-api/overview
📖
APIReference
https://developer.squareup.com/reference/square/customer-custom-attributes-api

Specifications

Other Resources

OpenAPI Specification

square-customercustomattributes-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: '2.0'
  title: Square ApplePay CustomerCustomAttributes API
  description: 'Supercharge Square for sellers of every size. Our entire connected commerce platform  from elegant hardware to a rich suite of Square APIs  is yours to build with. Whether youre developing an app or composing a bespoke solution, this is the place to make it happen. '
  termsOfService: https://connect.squareup.com/tos
  contact:
    name: Square Developer Platform
    email: developers@squareup.com
    url: https://squareup.com/developers
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  externalDocs:
    description: 'Read the official documentation here:'
    url: https://docs.connect.squareup.com/
  x-server-configuration:
    default-environment: production
    default-server: default
    environments:
    - name: production
      servers:
      - name: default
        url: https://connect.squareup.com
    - name: sandbox
      servers:
      - name: default
        url: https://connect.squareupsandbox.com
    - name: custom
      servers:
      - name: default
        url: '{custom_url}'
    parameters:
    - name: custom_url
      description: Sets the base URL requests are made to. Defaults to `https://connect.squareup.com`
      type: string
      example: https://connect.squareup.com
  x-square-generic-error-codes:
  - ACCESS_TOKEN_EXPIRED
  - ACCESS_TOKEN_REVOKED
  - API_VERSION_INCOMPATIBLE
  - APPLICATION_DISABLED
  - ARRAY_EMPTY
  - ARRAY_LENGTH_TOO_LONG
  - ARRAY_LENGTH_TOO_SHORT
  - BAD_CERTIFICATE
  - BAD_GATEWAY
  - BAD_REQUEST
  - CONFLICT
  - CONFLICTING_PARAMETERS
  - CURRENCY_MISMATCH
  - EXPECTED_ARRAY
  - EXPECTED_BASE64_ENCODED_BYTE_ARRAY
  - EXPECTED_BOOLEAN
  - EXPECTED_FLOAT
  - EXPECTED_INTEGER
  - EXPECTED_JSON_BODY
  - EXPECTED_MAP
  - EXPECTED_OBJECT
  - EXPECTED_STRING
  - FORBIDDEN
  - GATEWAY_TIMEOUT
  - GONE
  - IDEMPOTENCY_KEY_REUSED
  - INCORRECT_TYPE
  - INSUFFICIENT_SCOPES
  - INTERNAL_SERVER_ERROR
  - INVALID_ARRAY_VALUE
  - INVALID_CONTENT_TYPE
  - INVALID_CURSOR
  - INVALID_ENUM_VALUE
  - INVALID_FORM_VALUE
  - INVALID_SORT_ORDER
  - INVALID_SQUARE_VERSION_FORMAT
  - INVALID_TIME
  - INVALID_TIME_RANGE
  - INVALID_VALUE
  - LOCATION_MISMATCH
  - MAP_KEY_LENGTH_TOO_LONG
  - MAP_KEY_LENGTH_TOO_SHORT
  - MERCHANT_SUBSCRIPTION_NOT_FOUND
  - METHOD_NOT_ALLOWED
  - MISSING_REQUIRED_PARAMETER
  - NOT_ACCEPTABLE
  - NOT_FOUND
  - NOT_IMPLEMENTED
  - NO_FIELDS_SET
  - RATE_LIMITED
  - REQUEST_ENTITY_TOO_LARGE
  - REQUEST_TIMEOUT
  - SANDBOX_NOT_SUPPORTED
  - SERVICE_UNAVAILABLE
  - TOO_MANY_MAP_ENTRIES
  - UNAUTHORIZED
  - UNEXPECTED_VALUE
  - UNKNOWN_BODY_PARAMETER
  - UNKNOWN_QUERY_PARAMETER
  - UNPROCESSABLE_ENTITY
  - UNSUPPORTED_MEDIA_TYPE
  - V1_ACCESS_TOKEN
  - V1_APPLICATION
  - VALUE_EMPTY
  - VALUE_REGEX_MISMATCH
  - VALUE_TOO_HIGH
  - VALUE_TOO_LONG
  - VALUE_TOO_LOW
  - VALUE_TOO_SHORT
servers:
- url: https://connect.squareup.com
  variables: {}
tags:
- name: CustomerCustomAttributes
paths:
  /v2/customers/custom-attribute-definitions:
    get:
      tags:
      - CustomerCustomAttributes
      summary: Square List Customer Custom Attribute Definitions
      operationId: ListCustomerCustomAttributeDefinitions
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Lists the customer-related [custom attribute definitions](entity:CustomAttributeDefinition) that belong to a Square seller account.


        When all response pages are retrieved, the results include all custom attribute definitions

        that are visible to the requesting application, including those that are created by other

        applications and set to `VISIBILITY_READ_ONLY` or `VISIBILITY_READ_WRITE_VALUES`. Note that

        seller-defined custom attributes (also known as custom fields) are always set to `VISIBILITY_READ_WRITE_VALUES`.'
      x-release-status: PUBLIC
      security:
      - oauth2:
        - CUSTOMERS_READ
      parameters:
      - name: limit
        description: 'The maximum number of results to return in a single paged response. This limit is advisory.

          The response might contain more or fewer results. The minimum value is 1 and the maximum value is 100.

          The default value is 20. For more information, see [Pagination](https://developer.squareup.com/docs/build-basics/common-api-patterns/pagination).'
        schema:
          type: integer
        in: query
        required: false
      - name: cursor
        description: 'The cursor returned in the paged response from the previous call to this endpoint.

          Provide this cursor to retrieve the next page of results for your original request.

          For more information, see [Pagination](https://developer.squareup.com/docs/build-basics/common-api-patterns/pagination).'
        schema:
          type: string
        in: query
        required: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCustomerCustomAttributeDefinitionsResponse'
    post:
      tags:
      - CustomerCustomAttributes
      summary: Square Create Customer Custom Attribute Definition
      operationId: CreateCustomerCustomAttributeDefinition
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Creates a customer-related [custom attribute definition](entity:CustomAttributeDefinition) for a Square seller account.

        Use this endpoint to define a custom attribute that can be associated with customer profiles.


        A custom attribute definition specifies the `key`, `visibility`, `schema`, and other properties

        for a custom attribute. After the definition is created, you can call

        [UpsertCustomerCustomAttribute](api-endpoint:CustomerCustomAttributes-UpsertCustomerCustomAttribute) or

        [BulkUpsertCustomerCustomAttributes](api-endpoint:CustomerCustomAttributes-BulkUpsertCustomerCustomAttributes)

        to set the custom attribute for customer profiles in the seller''s Customer Directory.


        Sellers can view all custom attributes in exported customer data, including those set to

        `VISIBILITY_HIDDEN`.'
      x-release-status: PUBLIC
      security:
      - oauth2:
        - CUSTOMERS_WRITE
      parameters: []
      requestBody:
        required: true
        description: 'An object containing the fields to POST for the request.


          See the corresponding object definition for field details.'
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomerCustomAttributeDefinitionRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCustomerCustomAttributeDefinitionResponse'
  /v2/customers/custom-attribute-definitions/{key}:
    delete:
      tags:
      - CustomerCustomAttributes
      summary: Square Delete Customer Custom Attribute Definition
      operationId: DeleteCustomerCustomAttributeDefinition
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Deletes a customer-related [custom attribute definition](entity:CustomAttributeDefinition) from a Square seller account.


        Deleting a custom attribute definition also deletes the corresponding custom attribute from

        all customer profiles in the seller''s Customer Directory.


        Only the definition owner can delete a custom attribute definition.'
      x-release-status: PUBLIC
      security:
      - oauth2:
        - CUSTOMERS_WRITE
      parameters:
      - name: key
        description: The key of the custom attribute definition to delete.
        schema:
          type: string
        in: path
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteCustomerCustomAttributeDefinitionResponse'
    get:
      tags:
      - CustomerCustomAttributes
      summary: Square Retrieve Customer Custom Attribute Definition
      operationId: RetrieveCustomerCustomAttributeDefinition
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Retrieves a customer-related [custom attribute definition](entity:CustomAttributeDefinition) from a Square seller account.


        To retrieve a custom attribute definition created by another application, the `visibility`

        setting must be `VISIBILITY_READ_ONLY` or `VISIBILITY_READ_WRITE_VALUES`. Note that seller-defined custom attributes

        (also known as custom fields) are always set to `VISIBILITY_READ_WRITE_VALUES`.'
      x-release-status: PUBLIC
      security:
      - oauth2:
        - CUSTOMERS_READ
      parameters:
      - name: key
        description: 'The key of the custom attribute definition to retrieve. If the requesting application

          is not the definition owner, you must use the qualified key.'
        schema:
          type: string
        in: path
        required: true
      - name: version
        description: 'The current version of the custom attribute definition, which is used for strongly consistent

          reads to guarantee that you receive the most up-to-date data. When included in the request,

          Square returns the specified version or a higher version if one exists. If the specified version

          is higher than the current version, Square returns a `BAD_REQUEST` error.'
        schema:
          type: integer
        in: query
        required: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveCustomerCustomAttributeDefinitionResponse'
    put:
      tags:
      - CustomerCustomAttributes
      summary: Square Update Customer Custom Attribute Definition
      operationId: UpdateCustomerCustomAttributeDefinition
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Updates a customer-related [custom attribute definition](entity:CustomAttributeDefinition) for a Square seller account.


        Use this endpoint to update the following fields: `name`, `description`, `visibility`, or the

        `schema` for a `Selection` data type.


        Only the definition owner can update a custom attribute definition. Note that sellers can view

        all custom attributes in exported customer data, including those set to `VISIBILITY_HIDDEN`.'
      x-release-status: PUBLIC
      security:
      - oauth2:
        - CUSTOMERS_WRITE
      parameters:
      - name: key
        description: The key of the custom attribute definition to update.
        schema:
          type: string
        in: path
        required: true
      requestBody:
        required: true
        description: 'An object containing the fields to POST for the request.


          See the corresponding object definition for field details.'
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCustomerCustomAttributeDefinitionRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateCustomerCustomAttributeDefinitionResponse'
  /v2/customers/custom-attributes/bulk-upsert:
    post:
      tags:
      - CustomerCustomAttributes
      summary: Square Bulk Upsert Customer Custom Attributes
      operationId: BulkUpsertCustomerCustomAttributes
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Creates or updates [custom attributes](entity:CustomAttribute) for customer profiles as a bulk operation.


        Use this endpoint to set the value of one or more custom attributes for one or more customer profiles.

        A custom attribute is based on a custom attribute definition in a Square seller account, which is

        created using the [CreateCustomerCustomAttributeDefinition](api-endpoint:CustomerCustomAttributes-CreateCustomerCustomAttributeDefinition) endpoint.


        This `BulkUpsertCustomerCustomAttributes` endpoint accepts a map of 1 to 25 individual upsert

        requests and returns a map of individual upsert responses. Each upsert request has a unique ID

        and provides a customer ID and custom attribute. Each upsert response is returned with the ID

        of the corresponding request.


        To create or update a custom attribute owned by another application, the `visibility` setting

        must be `VISIBILITY_READ_WRITE_VALUES`. Note that seller-defined custom attributes

        (also known as custom fields) are always set to `VISIBILITY_READ_WRITE_VALUES`.'
      x-release-status: PUBLIC
      security:
      - oauth2:
        - CUSTOMERS_WRITE
      parameters: []
      requestBody:
        required: true
        description: 'An object containing the fields to POST for the request.


          See the corresponding object definition for field details.'
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkUpsertCustomerCustomAttributesRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkUpsertCustomerCustomAttributesResponse'
  /v2/customers/{customer_id}/custom-attributes:
    get:
      tags:
      - CustomerCustomAttributes
      summary: Square List Customer Custom Attributes
      operationId: ListCustomerCustomAttributes
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Lists the [custom attributes](entity:CustomAttribute) associated with a customer profile.


        You can use the `with_definitions` query parameter to also retrieve custom attribute definitions

        in the same call.


        When all response pages are retrieved, the results include all custom attributes that are

        visible to the requesting application, including those that are owned by other applications

        and set to `VISIBILITY_READ_ONLY` or `VISIBILITY_READ_WRITE_VALUES`.'
      x-release-status: PUBLIC
      security:
      - oauth2:
        - CUSTOMERS_READ
      parameters:
      - name: customer_id
        description: The ID of the target [customer profile](entity:Customer).
        schema:
          type: string
        in: path
        required: true
      - name: limit
        description: 'The maximum number of results to return in a single paged response. This limit is advisory.

          The response might contain more or fewer results. The minimum value is 1 and the maximum value is 100.

          The default value is 20. For more information, see [Pagination](https://developer.squareup.com/docs/build-basics/common-api-patterns/pagination).'
        schema:
          type: integer
        in: query
        required: false
      - name: cursor
        description: 'The cursor returned in the paged response from the previous call to this endpoint.

          Provide this cursor to retrieve the next page of results for your original request. For more

          information, see [Pagination](https://developer.squareup.com/docs/build-basics/common-api-patterns/pagination).'
        schema:
          type: string
        in: query
        required: false
      - name: with_definitions
        description: 'Indicates whether to return the [custom attribute definition](entity:CustomAttributeDefinition) in the `definition` field of each

          custom attribute. Set this parameter to `true` to get the name and description of each custom

          attribute, information about the data type, or other definition details. The default value is `false`.'
        schema:
          type: boolean
          default: false
        in: query
        required: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCustomerCustomAttributesResponse'
  /v2/customers/{customer_id}/custom-attributes/{key}:
    delete:
      tags:
      - CustomerCustomAttributes
      summary: Square Delete Customer Custom Attribute
      operationId: DeleteCustomerCustomAttribute
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Deletes a [custom attribute](entity:CustomAttribute) associated with a customer profile.


        To delete a custom attribute owned by another application, the `visibility` setting must be

        `VISIBILITY_READ_WRITE_VALUES`. Note that seller-defined custom attributes

        (also known as custom fields) are always set to `VISIBILITY_READ_WRITE_VALUES`.'
      x-release-status: PUBLIC
      security:
      - oauth2:
        - CUSTOMERS_WRITE
      parameters:
      - name: customer_id
        description: The ID of the target [customer profile](entity:Customer).
        schema:
          type: string
        in: path
        required: true
      - name: key
        description: 'The key of the custom attribute to delete. This key must match the `key` of a custom

          attribute definition in the Square seller account. If the requesting application is not the

          definition owner, you must use the qualified key.'
        schema:
          type: string
        in: path
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteCustomerCustomAttributeResponse'
    get:
      tags:
      - CustomerCustomAttributes
      summary: Square Retrieve Customer Custom Attribute
      operationId: RetrieveCustomerCustomAttribute
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Retrieves a [custom attribute](entity:CustomAttribute) associated with a customer profile.


        You can use the `with_definition` query parameter to also retrieve the custom attribute definition

        in the same call.


        To retrieve a custom attribute owned by another application, the `visibility` setting must be

        `VISIBILITY_READ_ONLY` or `VISIBILITY_READ_WRITE_VALUES`. Note that seller-defined custom attributes

        (also known as custom fields) are always set to `VISIBILITY_READ_WRITE_VALUES`.'
      x-release-status: PUBLIC
      security:
      - oauth2:
        - CUSTOMERS_READ
      parameters:
      - name: customer_id
        description: The ID of the target [customer profile](entity:Customer).
        schema:
          type: string
        in: path
        required: true
      - name: key
        description: 'The key of the custom attribute to retrieve. This key must match the `key` of a custom

          attribute definition in the Square seller account. If the requesting application is not the

          definition owner, you must use the qualified key.'
        schema:
          type: string
        in: path
        required: true
      - name: with_definition
        description: 'Indicates whether to return the [custom attribute definition](entity:CustomAttributeDefinition) in the `definition` field of

          the custom attribute. Set this parameter to `true` to get the name and description of the custom

          attribute, information about the data type, or other definition details. The default value is `false`.'
        schema:
          type: boolean
          default: false
        in: query
        required: false
      - name: version
        description: 'The current version of the custom attribute, which is used for strongly consistent reads to

          guarantee that you receive the most up-to-date data. When included in the request, Square

          returns the specified version or a higher version if one exists. If the specified version is

          higher than the current version, Square returns a `BAD_REQUEST` error.'
        schema:
          type: integer
        in: query
        required: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveCustomerCustomAttributeResponse'
    post:
      tags:
      - CustomerCustomAttributes
      summary: Square Upsert Customer Custom Attribute
      operationId: UpsertCustomerCustomAttribute
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Creates or updates a [custom attribute](entity:CustomAttribute) for a customer profile.


        Use this endpoint to set the value of a custom attribute for a specified customer profile.

        A custom attribute is based on a custom attribute definition in a Square seller account, which

        is created using the [CreateCustomerCustomAttributeDefinition](api-endpoint:CustomerCustomAttributes-CreateCustomerCustomAttributeDefinition) endpoint.


        To create or update a custom attribute owned by another application, the `visibility` setting

        must be `VISIBILITY_READ_WRITE_VALUES`. Note that seller-defined custom attributes

        (also known as custom fields) are always set to `VISIBILITY_READ_WRITE_VALUES`.'
      x-release-status: PUBLIC
      security:
      - oauth2:
        - CUSTOMERS_WRITE
      parameters:
      - name: customer_id
        description: The ID of the target [customer profile](entity:Customer).
        schema:
          type: string
        in: path
        required: true
      - name: key
        description: 'The key of the custom attribute to create or update. This key must match the `key` of a

          custom attribute definition in the Square seller account. If the requesting application is not

          the definition owner, you must use the qualified key.'
        schema:
          type: string
        in: path
        required: true
      requestBody:
        required: true
        description: 'An object containing the fields to POST for the request.


          See the corresponding object definition for field details.'
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpsertCustomerCustomAttributeRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpsertCustomerCustomAttributeResponse'
components:
  schemas:
    BulkUpsertCustomerCustomAttributesResponse:
      type: object
      description: 'Represents a [BulkUpsertCustomerCustomAttributes](api-endpoint:CustomerCustomAttributes-BulkUpsertCustomerCustomAttributes) response,

        which contains a map of responses that each corresponds to an individual upsert request.'
      x-release-status: PUBLIC
      properties:
        values:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/BulkUpsertCustomerCustomAttributesResponseCustomerCustomAttributeUpsertResponse'
          description: 'A map of responses that correspond to individual upsert requests. Each response has the

            same ID as the corresponding request and contains either a `customer_id` and `custom_attribute` or an `errors` field.'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
          description: Any errors that occurred during the request.
      example:
        values:
          id1:
            custom_attribute:
              created_at: '2021-12-08T23:14:47Z'
              key: favoritemovie
              updated_at: '2021-12-09T00:16:23Z'
              value: Dune
              version: 1
              visibility: VISIBILITY_READ_WRITE_VALUES
            customer_id: N3NCVYY3WS27HF0HKANA3R9FP8
          id2:
            custom_attribute:
              created_at: '2021-12-09T00:16:20Z'
              key: ownsmovie
              updated_at: '2021-12-09T00:16:23Z'
              value: false
              version: 2
              visibility: VISIBILITY_READ_WRITE_VALUES
            customer_id: SY8EMWRNDN3TQDP2H4KS1QWMMM
          id3:
            custom_attribute:
              created_at: '2021-12-09T00:16:20Z'
              key: favoritemovie
              updated_at: '2021-12-09T00:16:23Z'
              value: Star Wars
              version: 2
              visibility: VISIBILITY_READ_WRITE_VALUES
            customer_id: SY8EMWRNDN3TQDP2H4KS1QWMMM
          id4:
            custom_attribute:
              created_at: '2021-12-08T23:14:47Z'
              key: square:a0f1505a-2aa1-490d-91a8-8d31ff181808
              updated_at: '2021-12-09T00:16:23Z'
              value: '10.5'
              version: 1
              visibility: VISIBILITY_READ_WRITE_VALUES
            customer_id: N3NCVYY3WS27HF0HKANA3R9FP8
          id5:
            custom_attribute:
              created_at: '2021-12-09T00:16:20Z'
              key: sq0ids-0evKIskIGaY45fCyNL66aw:backupemail
              updated_at: '2021-12-09T00:16:23Z'
              value: fake-email@squareup.com
              version: 2
              visibility: VISIBILITY_READ_WRITE_VALUES
            customer_id: 70548QG1HN43B05G0KCZ4MMC1G
    UpsertCustomerCustomAttributeRequest:
      type: object
      description: Represents an [UpsertCustomerCustomAttribute](api-endpoint:CustomerCustomAttributes-UpsertCustomerCustomAttribute) request.
      x-release-status: PUBLIC
      x-params-example: ?customer_id=Z57QXKM2FGXEQDV42W8RBZY7BR&key=favoritemovie
      required:
      - custom_attribute
      properties:
        custom_attribute:
          $ref: '#/components/schemas/CustomAttribute'
          description: "The custom attribute to create or update, with the following fields:\n\n- `value`. This value must conform to the `schema` specified by the definition. \nFor more information, see [Value data types](https://developer.squareup.com/docs/customer-custom-attributes-api/custom-attributes#value-data-types).\n\n- `version`. To enable [optimistic concurrency](https://developer.squareup.com/docs/build-basics/common-api-patterns/optimistic-concurrency)\ncontrol for an update operation, include this optional field and specify the current version\nof the custom attribute."
        idempotency_key:
          type: string
          description: 'A unique identifier for this request, used to ensure idempotency. For more information,

            see [Idempotency](https://developer.squareup.com/docs/build-basics/common-api-patterns/idempotency).'
          maxLength: 45
          nullable: true
      example:
        custom_attribute:
          value: Dune
    ErrorCategory:
      type: string
      enum:
      - API_ERROR
      - AUTHENTICATION_ERROR
      - INVALID_REQUEST_ERROR
      - RATE_LIMIT_ERROR
      - PAYMENT_METHOD_ERROR
      - REFUND_ERROR
      - MERCHANT_SUBSCRIPTION_ERROR
      - EXTERNAL_VENDOR_ERROR
      x-enum-elements:
      - name: API_ERROR
        description: An error occurred with the Connect API itself.
      - name: AUTHENTICATION_ERROR
        description: 'An authentication error occurred. Most commonly, the request had

          a missing, malformed, or otherwise invalid `Authorization` header.'
      - name: INVALID_REQUEST_ERROR
        description: 'The request was invalid. Most commonly, a required parameter was

          missing, or a provided parameter had an invalid value.'
      - name: RATE_LIMIT_ERROR
        description: 'Your application reached the Square API rate limit. You might receive this error if your application sends a high number of requests

          to Square APIs in a short period of time.


          Your application should monitor responses for `429 RATE_LIMITED` errors and use a retry mechanism with an [exponential backoff](https://en.wikipedia.org/wiki/Exponential_backoff)

          schedule to resend the requests at an increasingly slower rate. It is also a good practice to use a randomized delay (jitter) in your retry schedule.'
      - name: PAYMENT_METHOD_ERROR
        description: 'An error occurred while processing a payment method. Most commonly,

          the details of the payment method were invalid (such as a card''s CVV

          or expiration date).'
      - name: REFUND_ERROR
        description: An error occurred while attempting to process a refund.
      - name: MERCHANT_SUBSCRIPTION_ERROR
        description: An error occurred when checking a merchant subscription status
      - name: EXTERNAL_VENDOR_ERROR
        description: An error that is returned from an external vendor's API
      description: 'Indicates which high-level category of error has occurred during a

        request to the Connect API.'
      x-release-status: PUBLIC
    ErrorCode:
      type: string
      enum:
      - INTERNAL_SERVER_ERROR
      - UNAUTHORIZED
      - ACCESS_TOKEN_EXPIRED
      - ACCESS_TOKEN_REVOKED
      - CLIENT_DISABLED
      - FORBIDDEN
      - INSUFFICIENT_SCOPES
      - APPLICATION_DISABLED
      - V1_APPLICATION
      - V1_ACCESS_TOKEN
      - CARD_PROCESSING_NOT_ENABLED
      - MERCHANT_SUBSCRIPTION_NOT_FOUND
      - BAD_REQUEST
      - MISSING_REQUIRED_PARAMETER
      - INCORRECT_TYPE
      - INVALID_TIME
      - INVALID_TIME_RANGE
      - INVALID_VALUE
      - INVALID_CURSOR
      - UNKNOWN_QUERY_PARAMETER
      - CONFLICTING_PARAMETERS
      - EXPECTED_JSON_BODY
      - INVALID_SORT_ORDER
      - VALUE_REGEX_MISMATCH
      - VALUE_TOO_SHORT
      - VALUE_TOO_LONG
      - VALUE_TOO_LOW
      - VALUE_TOO_HIGH
      - VALUE_EMPTY
      - ARRAY_LENGTH_TOO_LONG
      - ARRAY_LENGTH_TOO_SHORT
      - ARRAY_EMPTY
      - EXPECTED_BOOLEAN
      - EXPECTED_INTEGER
      - EXPECTED_FLOAT
      - EXPECTED_STRING
      - EXPECTED_OBJECT
      - EXPECTED_ARRAY
      - EXPECTED_MAP
      - EXPECTED_BASE64_ENCODED_BYTE_ARRAY
      - INVALID_ARRAY_VALUE
      - INVALID_ENUM_VALUE
      - INVALID_CONTENT_TYPE
      - INVALID_FORM_VALUE
      - CUSTOMER_NOT_FOUND
      - ONE_INSTRUMENT_EXPECTED
      - NO_FIELDS_SET
      - TOO_MANY_MAP_ENTRIES
      - MAP_KEY_LENGTH_TOO_SHORT
      - MAP_KEY_LENGTH_TOO_LONG
      - CUSTOMER_MISSING_NAME
      - CUSTOMER_MISSING_EMAIL
      - INVALID_PAUSE_LENGTH
      - INVALID_DATE
      - UNSUPPORTED_COUNTRY
      - UNSUPPORTED_CURRENCY
      - APPLE_TTP_PIN_TOKEN
      - CARD_EXPIRED
      - INVALID_EXPIRATION
      - INVALID_EXPIRATION_YEAR
      - INVALID_EXPIRATION_DATE
      - UNSUPPORTED_CARD_BRAND
      - UNSUPPORTED_ENTRY_METHOD
      - INVALID_ENCRYPTED_CARD
      - INVALID_CARD
      - PAYMENT_AMOUNT_MISMATCH
      - GENERIC_DECLINE
      - CVV_FAILURE
      - ADDRESS_VERIFICATION_FAILURE
      - INVALID_ACCOUNT
      - CURRENCY_MISMATCH
      - INSUFFICIENT_FUNDS
      - INSUFFICIENT_PERMISSIONS
      - CARDHOLDER_INSUFFICIENT_PERMISSIONS
      - INVALID_LOCATION
      - TRANSACTION_LIMIT
      - VOICE_FAILURE
      - PAN_FAILURE
      - EXPIRATION_FAILURE
      - CARD_NOT_SUPPORTED
      - INVALID_PIN
      - MISSING_PIN
      - MISSING_ACCOUNT_TYPE
      - INVALID_POSTAL_CODE
      - INVALID_FEES
      - MANUALLY_ENTERED_PAYMENT_NOT_SUPPORTED
      - PAYMENT_LIMIT_EXCEEDED
      - GIFT_CARD_AVAILABLE_AMOUNT
      - ACCOUNT_UNUSABLE
      - BUYER_REFUSED_PAYMENT
      - DELAYED_TRANSACTION_EXPIRED
      - DELAYED_TRANSACTION_CANCELED
      - DELAYED_TRANSACTION_CAPTURED
      - DELAYED_TRANSACTION_FAILED
      - CARD_TOKEN_EXPIRED
      - CARD_TOKEN_USED
      - AMOUNT_TOO_HIGH
      - UNSUPPORTED_INSTRUMENT_TYPE
      - REFUND_AMOUNT_INVALID
      - REFUND_ALREADY_PENDING
      - PAYMENT_NOT_REFUNDABLE
      - PAYMENT_NOT_REFUNDABLE_DUE_TO_DISPUTE
      - REFUND_DECLINED
      - INSUFFICIENT_PERMISSIONS_FOR_REFUND
      - INVALID_CARD_DATA
      - SOURCE_USED
      - SOURCE_EXPIRED
      - UNSUPPORTED_LOYALTY_REWARD_TIER
      - LOCATION_MISMATCH
      - IDEMPOTENCY_KEY_REUSED
      - UNEXPECTED_VALUE
      - SANDBOX_NOT_SUPPORTED
      - INVALID_EMAIL_ADDRESS
      - INVALID_PHONE_NUMBER
      - CHECKOUT_EXPIRED
      - BAD_CERTIFICATE
      - INVALID_SQUARE_VERSION_FORMAT
      - API_VERSION_INCOMPATIBLE
      - CARD_PRESENCE_REQUIRED
      - UNSUPPORTED_SOURCE_TYPE
      - CARD_MISMATCH
      - PLAID_ERROR
      - PLAID_ERROR_ITEM_LOGIN_

# --- truncated at 32 KB (99 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/square/refs/heads/main/openapi/square-customercustomattributes-api-openapi.yml