Square MerchantCustomAttributes API

The MerchantCustomAttributes API from Square — 6 operation(s) for merchantcustomattributes.

Operations 11

GET /v2/merchants/custom-attribute-definitions Square List Merchant Custom Attribute Definitions #
POST /v2/merchants/custom-attribute-definitions Square Create Merchant Custom Attribute Definition #
DELETE /v2/merchants/custom-attribute-definitions/{key} Square Delete Merchant Custom Attribute Definition #
GET /v2/merchants/custom-attribute-definitions/{key} Square Retrieve Merchant Custom Attribute Definition #
PUT /v2/merchants/custom-attribute-definitions/{key} Square Update Merchant Custom Attribute Definition #
POST /v2/merchants/custom-attributes/bulk-delete Square Bulk Delete Merchant Custom Attributes #
POST /v2/merchants/custom-attributes/bulk-upsert Square Bulk Upsert Merchant Custom Attributes #
GET /v2/merchants/{merchant_id}/custom-attributes Square List Merchant Custom Attributes #
DELETE /v2/merchants/{merchant_id}/custom-attributes/{key} Square Delete Merchant Custom Attribute #
GET /v2/merchants/{merchant_id}/custom-attributes/{key} Square Retrieve Merchant Custom Attribute #
POST /v2/merchants/{merchant_id}/custom-attributes/{key} Square Upsert Merchant Custom Attribute #

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

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/square-merchantcustomattributes-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

square-merchantcustomattributes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: '2.0'
  title: Square ApplePay Merchant Custom Attributes 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: MerchantCustomAttributes
paths:
  /v2/merchants/custom-attribute-definitions:
    get:
      tags:
      - MerchantCustomAttributes
      summary: Square List Merchant Custom Attribute Definitions
      operationId: ListMerchantCustomAttributeDefinitions
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Lists the merchant-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`.'
      x-release-status: BETA
      security:
      - oauth2:
        - MERCHANT_PROFILE_READ
      parameters:
      - name: visibility_filter
        description: Filters the `CustomAttributeDefinition` results by their `visibility` values.
        schema:
          $ref: '#/components/schemas/VisibilityFilter'
        in: query
        required: false
      - 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/ListMerchantCustomAttributeDefinitionsResponse'
    post:
      tags:
      - MerchantCustomAttributes
      summary: Square Create Merchant Custom Attribute Definition
      operationId: CreateMerchantCustomAttributeDefinition
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Creates a merchant-related [custom attribute definition](entity:CustomAttributeDefinition) for a Square seller account.

        Use this endpoint to define a custom attribute that can be associated with a merchant connecting to your application.

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

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

        [UpsertMerchantCustomAttribute](api-endpoint:MerchantCustomAttributes-UpsertMerchantCustomAttribute) or

        [BulkUpsertMerchantCustomAttributes](api-endpoint:MerchantCustomAttributes-BulkUpsertMerchantCustomAttributes)

        to set the custom attribute for a merchant.'
      x-release-status: BETA
      security:
      - oauth2:
        - MERCHANT_PROFILE_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/CreateMerchantCustomAttributeDefinitionRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateMerchantCustomAttributeDefinitionResponse'
  /v2/merchants/custom-attribute-definitions/{key}:
    delete:
      tags:
      - MerchantCustomAttributes
      summary: Square Delete Merchant Custom Attribute Definition
      operationId: DeleteMerchantCustomAttributeDefinition
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Deletes a merchant-related [custom attribute definition](entity:CustomAttributeDefinition) from a Square seller account.

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

        the merchant.

        Only the definition owner can delete a custom attribute definition.'
      x-release-status: BETA
      security:
      - oauth2:
        - MERCHANT_PROFILE_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/DeleteMerchantCustomAttributeDefinitionResponse'
    get:
      tags:
      - MerchantCustomAttributes
      summary: Square Retrieve Merchant Custom Attribute Definition
      operationId: RetrieveMerchantCustomAttributeDefinition
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Retrieves a merchant-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`.'
      x-release-status: BETA
      security:
      - oauth2:
        - MERCHANT_PROFILE_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/RetrieveMerchantCustomAttributeDefinitionResponse'
    put:
      tags:
      - MerchantCustomAttributes
      summary: Square Update Merchant Custom Attribute Definition
      operationId: UpdateMerchantCustomAttributeDefinition
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Updates a merchant-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.'
      x-release-status: BETA
      security:
      - oauth2:
        - MERCHANT_PROFILE_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/UpdateMerchantCustomAttributeDefinitionRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateMerchantCustomAttributeDefinitionResponse'
  /v2/merchants/custom-attributes/bulk-delete:
    post:
      tags:
      - MerchantCustomAttributes
      summary: Square Bulk Delete Merchant Custom Attributes
      operationId: BulkDeleteMerchantCustomAttributes
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Deletes [custom attributes](entity:CustomAttribute) for a merchant as a bulk operation.

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

        `VISIBILITY_READ_WRITE_VALUES`.'
      x-release-status: BETA
      security:
      - oauth2:
        - MERCHANT_PROFILE_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/BulkDeleteMerchantCustomAttributesRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkDeleteMerchantCustomAttributesResponse'
  /v2/merchants/custom-attributes/bulk-upsert:
    post:
      tags:
      - MerchantCustomAttributes
      summary: Square Bulk Upsert Merchant Custom Attributes
      operationId: BulkUpsertMerchantCustomAttributes
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Creates or updates [custom attributes](entity:CustomAttribute) for a merchant as a bulk operation.

        Use this endpoint to set the value of one or more custom attributes for a merchant.

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

        created using the [CreateMerchantCustomAttributeDefinition](api-endpoint:MerchantCustomAttributes-CreateMerchantCustomAttributeDefinition) endpoint.

        This `BulkUpsertMerchantCustomAttributes` 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 merchant 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`.'
      x-release-status: BETA
      security:
      - oauth2:
        - MERCHANT_PROFILE_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/BulkUpsertMerchantCustomAttributesRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkUpsertMerchantCustomAttributesResponse'
  /v2/merchants/{merchant_id}/custom-attributes:
    get:
      tags:
      - MerchantCustomAttributes
      summary: Square List Merchant Custom Attributes
      operationId: ListMerchantCustomAttributes
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Lists the [custom attributes](entity:CustomAttribute) associated with a merchant.

        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: BETA
      security:
      - oauth2:
        - MERCHANT_PROFILE_READ
      parameters:
      - name: merchant_id
        description: The ID of the target [merchant](entity:Merchant).
        schema:
          type: string
        in: path
        required: true
      - name: visibility_filter
        description: Filters the `CustomAttributeDefinition` results by their `visibility` values.
        schema:
          $ref: '#/components/schemas/VisibilityFilter'
        in: query
        required: false
      - 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/ListMerchantCustomAttributesResponse'
  /v2/merchants/{merchant_id}/custom-attributes/{key}:
    delete:
      tags:
      - MerchantCustomAttributes
      summary: Square Delete Merchant Custom Attribute
      operationId: DeleteMerchantCustomAttribute
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Deletes a [custom attribute](entity:CustomAttribute) associated with a merchant.

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

        `VISIBILITY_READ_WRITE_VALUES`.'
      x-release-status: BETA
      security:
      - oauth2:
        - MERCHANT_PROFILE_WRITE
      parameters:
      - name: merchant_id
        description: The ID of the target [merchant](entity:Merchant).
        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/DeleteMerchantCustomAttributeResponse'
    get:
      tags:
      - MerchantCustomAttributes
      summary: Square Retrieve Merchant Custom Attribute
      operationId: RetrieveMerchantCustomAttribute
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Retrieves a [custom attribute](entity:CustomAttribute) associated with a merchant.

        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`.'
      x-release-status: BETA
      security:
      - oauth2:
        - MERCHANT_PROFILE_READ
      parameters:
      - name: merchant_id
        description: The ID of the target [merchant](entity:Merchant).
        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/RetrieveMerchantCustomAttributeResponse'
    post:
      tags:
      - MerchantCustomAttributes
      summary: Square Upsert Merchant Custom Attribute
      operationId: UpsertMerchantCustomAttribute
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      description: 'Creates or updates a [custom attribute](entity:CustomAttribute) for a merchant.

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

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

        is created using the [CreateMerchantCustomAttributeDefinition](api-endpoint:MerchantCustomAttributes-CreateMerchantCustomAttributeDefinition) endpoint.

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

        must be `VISIBILITY_READ_WRITE_VALUES`.'
      x-release-status: BETA
      security:
      - oauth2:
        - MERCHANT_PROFILE_WRITE
      parameters:
      - name: merchant_id
        description: The ID of the target [merchant](entity:Merchant).
        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/UpsertMerchantCustomAttributeRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpsertMerchantCustomAttributeResponse'
components:
  schemas:
    RetrieveMerchantCustomAttributeResponse:
      type: object
      description: 'Represents a [RetrieveMerchantCustomAttribute](api-endpoint:MerchantCustomAttributes-RetrieveMerchantCustomAttribute) response.

        Either `custom_attribute_definition` or `errors` is present in the response.'
      x-release-status: BETA
      properties:
        custom_attribute:
          $ref: '#/components/schemas/CustomAttribute'
          description: 'The retrieved custom attribute. If `with_definition` was set to `true` in the request,

            the custom attribute definition is returned in the `definition` field.'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
          description: Any errors that occurred during the request.
      example:
        custom_attribute:
          created_at: '2023-05-06T19:02:58.647Z'
          key: alternative_seller_name
          updated_at: '2023-05-06T19:21:04.551Z'
          value: Ultimate Sneaker Store
          version: 2
          visibility: VISIBILITY_READ_ONLY
    CustomAttributeDefinition:
      type: object
      description: 'Represents a definition for custom attribute values. A custom attribute definition

        specifies the key, visibility, schema, and other properties for a custom attribute.'
      x-release-status: PUBLIC
      properties:
        key:
          type:
          - string
          - 'null'
          description: 'The identifier

            of the custom attribute definition and its corresponding custom attributes. This value

            can be a simple key, which is the key that is provided when the custom attribute definition

            is created, or a qualified key, if the requesting

            application is not the definition owner. The qualified key consists of the application ID

            of the custom attribute definition owner

            followed by the simple key that was provided when the definition was created. It has the

            format application_id:simple key.


            The value for a simple key can contain up to 60 alphanumeric characters, periods (.),

            underscores (_), and hyphens (-).


            This field can not be changed

            after the custom attribute definition is created. This field is required when creating

            a definition and must be unique per application, seller, and resource type.'
          minLength: 1
          pattern: ^([a-zA-Z0-9\._-]+:)?[a-zA-Z0-9\._-]{1,60}$
        schema:
          type:
          - object
          - 'null'
          description: 'The JSON schema for the custom attribute definition, which determines the data type of the corresponding custom attributes. For more information,

            see [Custom Attributes Overview](https://developer.squareup.com/docs/devtools/customattributes/overview). This field is required when creating a definition.'
        name:
          type:
          - string
          - 'null'
          description: 'The name of the custom attribute definition for API and seller-facing UI purposes. The name must

            be unique within the seller and application pair. This field is required if the

            `visibility` field is `VISIBILITY_READ_ONLY` or `VISIBILITY_READ_WRITE_VALUES`.'
          maxLength: 255
        description:
          type:
          - string
          - 'null'
          description: 'Seller-oriented description of the custom attribute definition, including any constraints

            that the seller should observe. May be displayed as a tooltip in Square UIs. This field is

            required if the `visibility` field is `VISIBILITY_READ_ONLY` or `VISIBILITY_READ_WRITE_VALUES`.'
          maxLength: 255
        visibility:
          $ref: '#/components/schemas/CustomAttributeDefinitionVisibility'
          description: 'Specifies how the custom attribute definition and its values should be shared with

            the seller and other applications. If no value is specified, the value defaults to `VISIBILITY_HIDDEN`.

            See [Visibility](#type-visibility) for possible values'
        version:
          type: integer
          description: 'Read only. The current version of the custom attribute definition.

            The value is incremented each time the custom attribute definition is updated.

            When updating a custom attribute definition, you can provide this field

            and specify the current version of the custom attribute definition to enable

            [optimistic concurrency](https://developer.squareup.com/docs/build-basics/common-api-patterns/optimistic-concurrency).


            On writes, this field must be set to the latest version. Stale writes are rejected.


            This field can also be used to enforce strong consistency for reads. For more information about strong consistency for reads,

            see [Custom Attributes Overview](https://developer.squareup.com/docs/devtools/customattributes/overview).'
        updated_at:
          type: string
          description: 'The timestamp that indicates when the custom attribute definition was created or most recently updated,

            in RFC 3339 format.'
          readOnly: true
        created_at:
          type: string
          description: The timestamp that indicates when the custom attribute definition was created, in RFC 3339 format.
          readOnly: true
    UpdateMerchantCustomAttributeDefinitionRequest:
      type: object
      description: Represents an [UpdateMerchantCustomAttributeDefinition](api-endpoint:MerchantCustomAttributes-UpdateMerchantCustomAttributeDefinition) request.
      x-release-status: BETA
      x-params-example: ?key=alternative_seller_name
      required:
      - custom_attribute_definition
      properties:
        custom_attribute_definition:
          $ref: '#/components/schemas/CustomAttributeDefinition'
          description: 'The custom attribute definition that contains the fields to update. This endpoint

            supports sparse updates, so only new or changed fields need to be included in the request.

            Only the following fields can be updated:

            - `name`

            - `description`

            - `visibility`

            - `schema` for a `Selection` data type. Only changes to the named options or the maximum number of allowed

            selections are supported.

            For more information, see

            [Update a merchant custom attribute definition](https://developer.squareup.com/docs/merchant-custom-attributes-api/custom-attribute-definitions#update-custom-attribute-definition).

            The version field must match the current version of the custom attribute definition to enable

            [optimistic concurrency](https://developer.squareup.com/docs/build-basics/common-api-patterns/optimistic-concurrency)

            If this is not important for your application, version can be set to -1. For any other values, the request fails with a BAD_REQUEST error.'
        idempotency_key:
          type:
          - string
          - 'null'
          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
      example:
        custom_attribute_definition:
          description: Update the description as desired.
          visibility: VISIBILITY_READ_ONLY
    CustomAttribute:
      type: object
      description: 'A custom attribute value. Each custom attribute value has a corresponding

        `CustomAttributeDefinition` object.'
      x-release-status: PUBLIC
      properties:
        key:
          type:
          - string
          - 'null'
          description: 'The identifier

            of the custom attribute definition and its corresponding custom attributes. This value

            can be a simple key, which is the key that is provided when the custom attribute definition

            is created, or a qualified key, if the requesting

            application is not the definition owner. The qualified key consists of the application ID

            of the custom attribute definition owner

            followed by the simple key that was provided when the definition was created. It has the

            format application_id:simple key.


            The value for a simple key can contain up to 60 alphanumeric characters, periods (.),

            underscores (_), and hyphens (-).'
          minLength: 1
          pattern: ^([a-zA-Z0-9\._-]+:)?[a-zA-Z0-9\._-]{1,60}$
        value:
          description: 'The value assigned to the custom attribute. It is validated against the custom

            attribute definition''s schema on write operations. For more information about custom

            attribute values,

            see [Custom Attributes Overview](https://developer.squareup.com/docs/devtools/customattributes/overview).'
        version:
          type: integer
          description: 'Read only. The current version of the custom attribute. This field is incremented when the custom attribute is changed.

            Whe

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