Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
version: '2.0'
title: Square ApplePay Booking 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: BookingCustomAttributes
paths:
/v2/bookings/custom-attribute-definitions:
get:
tags:
- BookingCustomAttributes
summary: Square List Booking Custom Attribute Definitions
operationId: ListBookingCustomAttributeDefinitions
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
description: 'Get all bookings custom attribute definitions.
To call this endpoint with buyer-level permissions, set `APPOINTMENTS_READ` for the OAuth scope.
To call this endpoint with seller-level permissions, set `APPOINTMENTS_ALL_READ` and `APPOINTMENTS_READ` for the OAuth scope.'
x-release-status: PUBLIC
security:
- oauth2:
- APPOINTMENTS_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/ListBookingCustomAttributeDefinitionsResponse'
post:
tags:
- BookingCustomAttributes
summary: Square Create Booking Custom Attribute Definition
operationId: CreateBookingCustomAttributeDefinition
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
description: 'Creates a bookings custom attribute definition.
To call this endpoint with buyer-level permissions, set `APPOINTMENTS_WRITE` for the OAuth scope.
To call this endpoint with seller-level permissions, set `APPOINTMENTS_ALL_WRITE` and `APPOINTMENTS_WRITE` for the OAuth scope.
For calls to this endpoint with seller-level permissions to succeed, the seller must have subscribed to *Appointments Plus*
or *Appointments Premium*.'
x-release-status: PUBLIC
security:
- oauth2:
- APPOINTMENTS_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/CreateBookingCustomAttributeDefinitionRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CreateBookingCustomAttributeDefinitionResponse'
/v2/bookings/custom-attribute-definitions/{key}:
delete:
tags:
- BookingCustomAttributes
summary: Square Delete Booking Custom Attribute Definition
operationId: DeleteBookingCustomAttributeDefinition
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
description: 'Deletes a bookings custom attribute definition.
To call this endpoint with buyer-level permissions, set `APPOINTMENTS_WRITE` for the OAuth scope.
To call this endpoint with seller-level permissions, set `APPOINTMENTS_ALL_WRITE` and `APPOINTMENTS_WRITE` for the OAuth scope.
For calls to this endpoint with seller-level permissions to succeed, the seller must have subscribed to *Appointments Plus*
or *Appointments Premium*.'
x-release-status: PUBLIC
security:
- oauth2:
- APPOINTMENTS_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/DeleteBookingCustomAttributeDefinitionResponse'
get:
tags:
- BookingCustomAttributes
summary: Square Retrieve Booking Custom Attribute Definition
operationId: RetrieveBookingCustomAttributeDefinition
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
description: 'Retrieves a bookings custom attribute definition.
To call this endpoint with buyer-level permissions, set `APPOINTMENTS_READ` for the OAuth scope.
To call this endpoint with seller-level permissions, set `APPOINTMENTS_ALL_READ` and `APPOINTMENTS_READ` for the OAuth scope.'
x-release-status: PUBLIC
security:
- oauth2:
- APPOINTMENTS_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/RetrieveBookingCustomAttributeDefinitionResponse'
put:
tags:
- BookingCustomAttributes
summary: Square Update Booking Custom Attribute Definition
operationId: UpdateBookingCustomAttributeDefinition
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
description: 'Updates a bookings custom attribute definition.
To call this endpoint with buyer-level permissions, set `APPOINTMENTS_WRITE` for the OAuth scope.
To call this endpoint with seller-level permissions, set `APPOINTMENTS_ALL_WRITE` and `APPOINTMENTS_WRITE` for the OAuth scope.
For calls to this endpoint with seller-level permissions to succeed, the seller must have subscribed to *Appointments Plus*
or *Appointments Premium*.'
x-release-status: PUBLIC
security:
- oauth2:
- APPOINTMENTS_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/UpdateBookingCustomAttributeDefinitionRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateBookingCustomAttributeDefinitionResponse'
/v2/bookings/custom-attributes/bulk-delete:
post:
tags:
- BookingCustomAttributes
summary: Square Bulk Delete Booking Custom Attributes
operationId: BulkDeleteBookingCustomAttributes
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
description: 'Bulk deletes bookings custom attributes.
To call this endpoint with buyer-level permissions, set `APPOINTMENTS_WRITE` for the OAuth scope.
To call this endpoint with seller-level permissions, set `APPOINTMENTS_ALL_WRITE` and `APPOINTMENTS_WRITE` for the OAuth scope.
For calls to this endpoint with seller-level permissions to succeed, the seller must have subscribed to *Appointments Plus*
or *Appointments Premium*.'
x-release-status: PUBLIC
security:
- oauth2:
- APPOINTMENTS_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/BulkDeleteBookingCustomAttributesRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/BulkDeleteBookingCustomAttributesResponse'
/v2/bookings/custom-attributes/bulk-upsert:
post:
tags:
- BookingCustomAttributes
summary: Square Bulk Upsert Booking Custom Attributes
operationId: BulkUpsertBookingCustomAttributes
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
description: 'Bulk upserts bookings custom attributes.
To call this endpoint with buyer-level permissions, set `APPOINTMENTS_WRITE` for the OAuth scope.
To call this endpoint with seller-level permissions, set `APPOINTMENTS_ALL_WRITE` and `APPOINTMENTS_WRITE` for the OAuth scope.
For calls to this endpoint with seller-level permissions to succeed, the seller must have subscribed to *Appointments Plus*
or *Appointments Premium*.'
x-release-status: PUBLIC
security:
- oauth2:
- APPOINTMENTS_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/BulkUpsertBookingCustomAttributesRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/BulkUpsertBookingCustomAttributesResponse'
/v2/bookings/{booking_id}/custom-attributes:
get:
tags:
- BookingCustomAttributes
summary: Square List Booking Custom Attributes
operationId: ListBookingCustomAttributes
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
description: 'Lists a booking''s custom attributes.
To call this endpoint with buyer-level permissions, set `APPOINTMENTS_READ` for the OAuth scope.
To call this endpoint with seller-level permissions, set `APPOINTMENTS_ALL_READ` and `APPOINTMENTS_READ` for the OAuth scope.'
x-release-status: PUBLIC
security:
- oauth2:
- APPOINTMENTS_READ
parameters:
- name: booking_id
description: The ID of the target [booking](entity:Booking).
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/ListBookingCustomAttributesResponse'
/v2/bookings/{booking_id}/custom-attributes/{key}:
delete:
tags:
- BookingCustomAttributes
summary: Square Delete Booking Custom Attribute
operationId: DeleteBookingCustomAttribute
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
description: 'Deletes a bookings custom attribute.
To call this endpoint with buyer-level permissions, set `APPOINTMENTS_WRITE` for the OAuth scope.
To call this endpoint with seller-level permissions, set `APPOINTMENTS_ALL_WRITE` and `APPOINTMENTS_WRITE` for the OAuth scope.
For calls to this endpoint with seller-level permissions to succeed, the seller must have subscribed to *Appointments Plus*
or *Appointments Premium*.'
x-release-status: PUBLIC
security:
- oauth2:
- APPOINTMENTS_WRITE
parameters:
- name: booking_id
description: The ID of the target [booking](entity:Booking).
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/DeleteBookingCustomAttributeResponse'
get:
tags:
- BookingCustomAttributes
summary: Square Retrieve Booking Custom Attribute
operationId: RetrieveBookingCustomAttribute
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
description: 'Retrieves a bookings custom attribute.
To call this endpoint with buyer-level permissions, set `APPOINTMENTS_READ` for the OAuth scope.
To call this endpoint with seller-level permissions, set `APPOINTMENTS_ALL_READ` and `APPOINTMENTS_READ` for the OAuth scope.'
x-release-status: PUBLIC
security:
- oauth2:
- APPOINTMENTS_READ
parameters:
- name: booking_id
description: The ID of the target [booking](entity:Booking).
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/RetrieveBookingCustomAttributeResponse'
put:
tags:
- BookingCustomAttributes
summary: Square Upsert Booking Custom Attribute
operationId: UpsertBookingCustomAttribute
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
description: 'Upserts a bookings custom attribute.
To call this endpoint with buyer-level permissions, set `APPOINTMENTS_WRITE` for the OAuth scope.
To call this endpoint with seller-level permissions, set `APPOINTMENTS_ALL_WRITE` and `APPOINTMENTS_WRITE` for the OAuth scope.
For calls to this endpoint with seller-level permissions to succeed, the seller must have subscribed to *Appointments Plus*
or *Appointments Premium*.'
x-release-status: PUBLIC
security:
- oauth2:
- APPOINTMENTS_WRITE
parameters:
- name: booking_id
description: The ID of the target [booking](entity:Booking).
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/UpsertBookingCustomAttributeRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UpsertBookingCustomAttributeResponse'
components:
schemas:
BulkDeleteBookingCustomAttributesResponse:
type: object
description: 'Represents a [BulkDeleteBookingCustomAttributes](api-endpoint:BookingCustomAttributes-BulkDeleteBookingCustomAttributes) response,
which contains a map of responses that each corresponds to an individual delete request.'
x-release-status: PUBLIC
properties:
values:
type: object
additionalProperties:
$ref: '#/components/schemas/BookingCustomAttributeDeleteResponse'
description: 'A map of responses that correspond to individual delete requests. Each response has the
same ID as the corresponding request and contains `booking_id` and `errors` field.'
errors:
type: array
items:
$ref: '#/components/schemas/Error'
description: Any errors that occurred during the request.
example:
errors: []
values:
id1:
booking_id: N3NCVYY3WS27HF0HKANA3R9FP8
errors: []
id2:
booking_id: SY8EMWRNDN3TQDP2H4KS1QWMMM
errors: []
id3:
booking_id: SY8EMWRNDN3TQDP2H4KS1QWMMM
errors: []
ListBookingCustomAttributesResponse:
type: object
description: 'Represents a [ListBookingCustomAttributes](api-endpoint:BookingCustomAttributes-ListBookingCustomAttributes) response.
Either `custom_attributes`, an empty object, or `errors` is present in the response. If additional
results are available, the `cursor` field is also present along with `custom_attributes`.'
x-release-status: PUBLIC
properties:
custom_attributes:
type: array
items:
$ref: '#/components/schemas/CustomAttribute'
description: 'The retrieved custom attributes. If `with_definitions` was set to `true` in the request,
the custom attribute definition is returned in the `definition` field of each custom attribute.
If no custom attributes are found, Square returns an empty object (`{}`).'
cursor:
type: string
description: 'The cursor to use in your next call to this endpoint to retrieve the next page of results
for your original request. This field is present only if the request succeeded and additional
results are available. For more information, see [Pagination](https://developer.squareup.com/docs/build-basics/common-api-patterns/pagination).'
errors:
type: array
items:
$ref: '#/components/schemas/Error'
description: Any errors that occurred during the request.
example:
custom_attributes:
- created_at: '2022-11-16T15:50:27Z'
key: favoriteShampoo
updated_at: '2022-11-16T15:50:27Z'
value: Hydro-Cool
version: 1
visibility: VISIBILITY_READ_ONLY
- created_at: '2022-11-16T15:51:53Z'
key: hasShoes
updated_at: '2022-11-16T15:51:53Z'
value: false
version: 1
visibility: VISIBILITY_HIDDEN
errors: []
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
UpsertBookingCustomAttributeResponse:
type: object
description: 'Represents an [UpsertBookingCustomAttribute](api-endpoint:BookingCustomAttributes-UpsertBookingCustomAttribute) response.
Either `custom_attribute_definition` or `errors` is present in the response.'
x-release-status: PUBLIC
properties:
custom_attribute:
$ref: '#/components/schemas/CustomAttribute'
description: The new or updated custom attribute.
errors:
type: array
items:
$ref: '#/components/schemas/Error'
description: Any errors that occurred during the request.
example:
custom_attribute:
created_at: '2022-11-16T15:50:27Z'
key: favoriteShampoo
updated_at: '2022-11-16T15:50:27Z'
value: Spring Fresh
version: 1
visibility: VISIBILITY_READ_ONLY
errors: []
RetrieveBookingCustomAttributeResponse:
type: object
description: 'Represents a [RetrieveBookingCustomAttribute](api-endpoint:BookingCustomAttributes-RetrieveBookingCustomAttribute) response.
Either `custom_attribute_definition` or `errors` is present in the response.'
x-release-status: PUBLIC
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: '2022-11-16T15:50:27Z'
key: favoriteShampoo
updated_at: '2022-11-16T15:50:27Z'
value: Dune
version: 1
visibility: VISIBILITY_READ_ONLY
errors: []
BookingCustomAttributeUpsertRequest:
type: object
description: 'Represents an individual upsert request in a [BulkUpsertBookingCustomAttributes](api-endpoint:BookingCustomAttributes-BulkUpsertBookingCustomAttributes)
request. An individual request contains a booking ID, the custom attribute to create or update,
and an optional idempotency key.'
x-release-status: PUBLIC
required:
- booking_id
- custom_attribute
properties:
booking_id:
type: string
description: The ID of the target [booking](entity:Booking).
minLength: 1
maxLength: 36
custom_attribute:
$ref: '#/components/schemas/CustomAttribute'
description: 'The custom attribute to create or update, with following fields:
- `key`. This key must match the `key` of a custom attribute definition in the Square seller
account. If the requesting applic
# --- truncated at 32 KB (100 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/square/refs/heads/main/openapi/square-bookingcustomattributes-api-openapi.yml