Square · Schema
BulkUpsertBookingCustomAttributesResponse
Represents a [BulkUpsertBookingCustomAttributes](api-endpoint:BookingCustomAttributes-BulkUpsertBookingCustomAttributes) response, which contains a map of responses that each corresponds to an individual upsert request.
BookingLocationSquareRestaurantCatalogCheckoutCustomersDisputesE-CommerceFinancial TechnologyGift CardsInventoryInvoicingLaborLoyaltyMerchantsOrderPaymentsPoint-of-SaleRefundsRetailSubscriptionTeamWebhookPayment ProcessingPayment Terminals
Properties
| Name | Type | Description |
|---|---|---|
| values | object | A map of responses that correspond to individual upsert requests. Each response has the same ID as the corresponding request and contains either a `booking_id` and `custom_attribute` or an `errors` fi |
| errors | array | Any errors that occurred during the request. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/square/main/json-schema/square-bulk-upsert-booking-custom-attributes-response-schema.json",
"title": "BulkUpsertBookingCustomAttributesResponse",
"description": "Represents a [BulkUpsertBookingCustomAttributes](api-endpoint:BookingCustomAttributes-BulkUpsertBookingCustomAttributes) response,\nwhich contains a map of responses that each corresponds to an individual upsert request.",
"x-generated": "2026-10-12",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/square-bookingcustomattributes-api-openapi.yml#/components/schemas/BulkUpsertBookingCustomAttributesResponse",
"type": "object",
"x-release-status": "PUBLIC",
"properties": {
"values": {
"type": "object",
"additionalProperties": {
"$ref": "#/$defs/BookingCustomAttributeUpsertResponse"
},
"description": "A map of responses that correspond to individual upsert requests. Each response has the\nsame ID as the corresponding request and contains either a `booking_id` and `custom_attribute` or an `errors` field."
},
"errors": {
"type": "array",
"items": {
"$ref": "#/$defs/Error"
},
"description": "Any errors that occurred during the request."
}
},
"$defs": {
"BookingCustomAttributeUpsertResponse": {
"type": "object",
"description": "Represents a response for an individual upsert request in a [BulkUpsertBookingCustomAttributes](api-endpoint:BookingCustomAttributes-BulkUpsertBookingCustomAttributes) operation.",
"x-release-status": "PUBLIC",
"properties": {
"booking_id": {
"type": "string",
"description": "The ID of the [booking](entity:Booking) associated with the custom attribute."
},
"custom_attribute": {
"$ref": "#/$defs/CustomAttribute",
"description": "The new or updated custom attribute."
},
"errors": {
"type": "array",
"items": {
"$ref": "#/$defs/Error"
},
"description": "Any errors that occurred while processing the individual request."
}
}
},
"CustomAttribute": {
"type": "object",
"description": "A custom attribute value. Each custom attribute value has a corresponding\n`CustomAttributeDefinition` object.",
"x-release-status": "PUBLIC",
"properties": {
"key": {
"type": [
"string",
"null"
],
"description": "The identifier\nof the custom attribute definition and its corresponding custom attributes. This value\ncan be a simple key, which is the key that is provided when the custom attribute definition\nis created, or a qualified key, if the requesting\napplication is not the definition owner. The qualified key consists of the application ID\nof the custom attribute definition owner\nfollowed by the simple key that was provided when the definition was created. It has the\nformat application_id:simple key.\n\nThe value for a simple key can contain up to 60 alphanumeric characters, periods (.),\nunderscores (_), 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\nattribute definition's schema on write operations. For more information about custom\nattribute values,\nsee [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.\nWhen updating an existing custom attribute value, you can provide this field\nand specify the current version of the custom attribute to enable\n[optimistic concurrency](https://developer.squareup.com/docs/build-basics/common-api-patterns/optimistic-concurrency).\nThis field can also be used to enforce strong consistency for reads. For more information about strong consistency for reads,\nsee [Custom Attributes Overview](https://developer.squareup.com/docs/devtools/customattributes/overview)."
},
"visibility": {
"$ref": "#/$defs/CustomAttributeDefinitionVisibility",
"description": "A copy of the `visibility` field value for the associated custom attribute definition.\nSee [CustomAttributeDefinitionVisibility](#type-customattributedefinitionvisibility) for possible values",
"readOnly": true
},
"definition": {
"$ref": "#/$defs/CustomAttributeDefinition",
"description": "A copy of the associated custom attribute definition object. This field is only set when\nthe optional field is specified on the request.",
"readOnly": true
},
"updated_at": {
"type": "string",
"description": "The timestamp that indicates when the custom attribute was created or was most recently\nupdated, in RFC 3339 format.",
"readOnly": true
},
"created_at": {
"type": "string",
"description": "The timestamp that indicates when the custom attribute was created, in RFC 3339 format.",
"readOnly": true
}
}
},
"CustomAttributeDefinition": {
"type": "object",
"description": "Represents a definition for custom attribute values. A custom attribute definition\nspecifies the key, visibility, schema, and other properties for a custom attribute.",
"x-release-status": "PUBLIC",
"properties": {
"key": {
"type": [
"string",
"null"
],
"description": "The identifier\nof the custom attribute definition and its corresponding custom attributes. This value\ncan be a simple key, which is the key that is provided when the custom attribute definition\nis created, or a qualified key, if the requesting\napplication is not the definition owner. The qualified key consists of the application ID\nof the custom attribute definition owner\nfollowed by the simple key that was provided when the definition was created. It has the\nformat application_id:simple key.\n\nThe value for a simple key can contain up to 60 alphanumeric characters, periods (.),\nunderscores (_), and hyphens (-).\n\nThis field can not be changed\nafter the custom attribute definition is created. This field is required when creating\na 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,\nsee [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\nbe unique within the seller and application pair. This field is required if the\n`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\nthat the seller should observe. May be displayed as a tooltip in Square UIs. This field is\nrequired if the `visibility` field is `VISIBILITY_READ_ONLY` or `VISIBILITY_READ_WRITE_VALUES`.",
"maxLength": 255
},
"visibility": {
"$ref": "#/$defs/CustomAttributeDefinitionVisibility",
"description": "Specifies how the custom attribute definition and its values should be shared with\nthe seller and other applications. If no value is specified, the value defaults to `VISIBILITY_HIDDEN`.\nSee [Visibility](#type-visibility) for possible values"
},
"version": {
"type": "integer",
"description": "Read only. The current version of the custom attribute definition.\nThe value is incremented each time the custom attribute definition is updated.\nWhen updating a custom attribute definition, you can provide this field\nand specify the current version of the custom attribute definition to enable\n[optimistic concurrency](https://developer.squareup.com/docs/build-basics/common-api-patterns/optimistic-concurrency).\n\nOn writes, this field must be set to the latest version. Stale writes are rejected.\n\nThis field can also be used to enforce strong consistency for reads. For more information about strong consistency for reads,\nsee [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,\nin 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
}
}
},
"CustomAttributeDefinitionVisibility": {
"type": "string",
"enum": [
"VISIBILITY_HIDDEN",
"VISIBILITY_READ_ONLY",
"VISIBILITY_READ_WRITE_VALUES"
],
"x-enum-elements": [
{
"name": "VISIBILITY_HIDDEN",
"description": "The custom attribute definition and values are hidden from the seller (except on export\nof all seller data) and other developers."
},
{
"name": "VISIBILITY_READ_ONLY",
"description": "The seller and other developers can read the custom attribute definition and values\non resources."
},
{
"name": "VISIBILITY_READ_WRITE_VALUES",
"description": "The seller and other developers can read the custom attribute definition,\nand can read and write values on resources. A custom attribute definition\ncan only be edited or deleted by the application that created it."
}
],
"description": "The level of permission that a seller or other applications requires to\nview this custom attribute definition.\nThe `Visibility` field controls who can read and write the custom attribute values\nand custom attribute definition.",
"x-release-status": "PUBLIC"
},
"Error": {
"type": "object",
"description": "Represents an error encountered during a request to the Connect API.\n\nSee [Handling errors](https://developer.squareup.com/docs/build-basics/handling-errors) for more information.",
"x-release-status": "PUBLIC",
"required": [
"category",
"code"
],
"properties": {
"category": {
"$ref": "#/$defs/ErrorCategory",
"description": "The high-level category for the error.\nSee [ErrorCategory](#type-errorcategory) for possible values"
},
"code": {
"$ref": "#/$defs/ErrorCode",
"description": "The specific code of the error.\nSee [ErrorCode](#type-errorcode) for possible values"
},
"detail": {
"type": "string",
"description": "A human-readable description of the error for debugging purposes."
},
"field": {
"type": "string",
"description": "The name of the field provided in the original request (if any) that\nthe error pertains to."
}
}
},
"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\na missing, malformed, or otherwise invalid `Authorization` header."
},
{
"name": "INVALID_REQUEST_ERROR",
"description": "The request was invalid. Most commonly, a required parameter was\nmissing, 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\nto Square APIs in a short period of time.\n\nYour 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)\nschedule 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,\nthe details of the payment method were invalid (such as a card's CVV\nor 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\nrequest 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_REQUIRED",
"PLAID_ERROR_RATE_LIMIT",
"CARD_DECLINED",
"VERIFY_CVV_FAILURE",
"VERIFY_AVS_FAILURE",
"CARD_DECLINED_CALL_ISSUER",
"CARD_DECLINED_VERIFICATION_REQUIRED",
"BAD_EXPIRATION",
"CHIP_INSERTION_REQUIRED",
"ALLOWABLE_PIN_TRIES_EXCEEDED",
"RESERVATION_DECLINED",
"UNKNOWN_BODY_PARAMETER",
"NOT_FOUND",
"APPLE_PAYMENT_PROCESSING_CERTIFICATE_HASH_NOT_FOUND",
"METHOD_NOT_ALLOWED",
"NOT_ACCEPTABLE",
"REQUEST_TIMEOUT",
"CONFLICT",
"GONE",
"REQUEST_ENTITY_TOO_LARGE",
"UNSUPPORTED_MEDIA_TYPE",
"UNPROCESSABLE_ENTITY",
"RATE_LIMITED",
"NOT_IMPLEMENTED",
"BAD_GATEWAY",
"SERVICE_UNAVAILABLE",
"TEMPORARY_ERROR",
"GATEWAY_TIMEOUT"
],
"x-enum-elements": [
{
"name": "INTERNAL_SERVER_ERROR",
"description": "A general server error occurred.",
"error-category": "API_ERROR"
},
{
"name": "UNAUTHORIZED",
"description": "A general authorization error occurred.",
"error-category": "AUTHENTICATION_ERROR"
},
{
"name": "ACCESS_TOKEN_EXPIRED",
"description": "The provided access token has expired.",
"error-category": "AUTHENTICATION_ERROR"
},
{
"name": "ACCESS_TOKEN_REVOKED",
"description": "The provided access token has been revoked.",
"error-category": "AUTHENTICATION_ERROR"
},
{
"name": "CLIENT_DISABLED",
"description": "The provided client has been disabled.",
"error-category": "AUTHENTICATION_ERROR"
},
{
"name": "FORBIDDEN",
"description": "A general access error occurred.",
"error-category": "AUTHENTICATION_ERROR"
},
{
"name": "INSUFFICIENT_SCOPES",
"description": "The provided access token does not have permission\nto execute the requested action.",
"error-category": "AUTHENTICATION_ERROR"
},
{
"name": "APPLICATION_DISABLED",
"description": "The calling application was disabled.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "V1_APPLICATION",
"description": "The calling application was created prior to\n2016-03-30 and is not compatible with v2 Square API calls.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "V1_ACCESS_TOKEN",
"description": "The calling application is using an access token\ncreated prior to 2016-03-30 and is not compatible with v2 Square API\ncalls.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "CARD_PROCESSING_NOT_ENABLED",
"description": "The location provided in the API call is not\nenabled for credit card processing.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "MERCHANT_SUBSCRIPTION_NOT_FOUND",
"description": "A required subscription was not found for the merchant",
"error-category": "MERCHANT_SUBSCRIPTION_ERROR"
},
{
"name": "BAD_REQUEST",
"description": "A general error occurred with the request.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "MISSING_REQUIRED_PARAMETER",
"description": "The request is missing a required path, query, or\nbody parameter.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "INCORRECT_TYPE",
"description": "The value provided in the request is the wrong\ntype. For example, a string instead of an integer.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "INVALID_TIME",
"description": "Formatting for the provided time value is\nincorrect.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "INVALID_TIME_RANGE",
"description": "The time range provided in the request is invalid.\nFor example, the end time is before the start time.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "INVALID_VALUE",
"description": "The provided value is invalid. For example,\nincluding `%` in a phone number.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "INVALID_CURSOR",
"description": "The pagination cursor included in the request is\ninvalid.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "UNKNOWN_QUERY_PARAMETER",
"description": "The query parameters provided is invalid for the\nrequested endpoint.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "CONFLICTING_PARAMETERS",
"description": "One or more of the request parameters conflict with\neach other.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "EXPECTED_JSON_BODY",
"description": "The request body is not a JSON object.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "INVALID_SORT_ORDER",
"description": "The provided sort order is not a valid key.\nCurrently, sort order must be `ASC` or `DESC`.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "VALUE_REGEX_MISMATCH",
"description": "The provided value does not match an expected\nregular expression.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "VALUE_TOO_SHORT",
"description": "The provided string value is shorter than the\nminimum length allowed.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "VALUE_TOO_LONG",
"description": "The provided string value is longer than the\nmaximum length allowed.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "VALUE_TOO_LOW",
"description": "The provided value is less than the supported\nminimum.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "VALUE_TOO_HIGH",
"description": "The provided value is greater than the supported\nmaximum.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "VALUE_EMPTY",
"description": "The provided value has a default (empty) value\nsuch as a blank string.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "ARRAY_LENGTH_TOO_LONG",
"description": "The provided array has too many elements.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "ARRAY_LENGTH_TOO_SHORT",
"description": "The provided array has too few elements.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "ARRAY_EMPTY",
"description": "The provided array is empty.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "EXPECTED_BOOLEAN",
"description": "The endpoint expected the provided value to be a\nboolean.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "EXPECTED_INTEGER",
"description": "The endpoint expected the provided value to be an\ninteger.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "EXPECTED_FLOAT",
"description": "The endpoint expected the provided value to be a\nfloat.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "EXPECTED_STRING",
"description": "The endpoint expected the provided value to be a\nstring.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "EXPECTED_OBJECT",
"description": "The endpoint expected the provided value to be a\nJSON object.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "EXPECTED_ARRAY",
"description": "The endpoint expected the provided value to be an\narray or list.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "EXPECTED_MAP",
"description": "The endpoint expected the provided value to be a\nmap or associative array.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "EXPECTED_BASE64_ENCODED_BYTE_ARRAY",
"description": "The endpoint expected the provided value to be an\narray encoded in base64.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "INVALID_ARRAY_VALUE",
"description": "One or more objects in the array does not match the\narray type.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "INVALID_ENUM_VALUE",
"description": "The provided static string is not valid for the\nfield.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "INVALID_CONTENT_TYPE",
"description": "Invalid content type header.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "INVALID_FORM_VALUE",
"description": "Only relevant for applications created prior to\n2016-03-30. Indicates there was an error while parsing form values.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "CUSTOMER_NOT_FOUND",
"description": "The provided customer id can't be found in the merchant's customers list.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "ONE_INSTRUMENT_EXPECTED",
"description": "A general error occurred.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "NO_FIELDS_SET",
"description": "A general error occurred.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "TOO_MANY_MAP_ENTRIES",
"description": "Too many entries in the map field.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "MAP_KEY_LENGTH_TOO_SHORT",
"description": "The length of one of the provided keys in the map is too short.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "MAP_KEY_LENGTH_TOO_LONG",
"description": "The length of one of the provided keys in the map is too long.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "CUSTOMER_MISSING_NAME",
"description": "The provided customer does not have a recorded name.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "CUSTOMER_MISSING_EMAIL",
"description": "The provided customer does not have a recorded email.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "INVALID_PAUSE_LENGTH",
"description": "The subscription cannot be paused longer than the duration of the current phase.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "INVALID_DATE",
"description": "The subscription cannot be paused/resumed on the given date.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "UNSUPPORTED_COUNTRY",
"description": "The API request references an unsupported country.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "UNSUPPORTED_CURRENCY",
"description": "The API request references an unsupported currency.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "APPLE_TTP_PIN_TOKEN",
"description": "The payment was declined by the card issuer during an Apple Tap to Pay (TTP)\ntransaction with a request for the card's PIN. This code will be returned alongside\n`CARD_DECLINED_VERIFICATION_REQUIRED` as a supplemental error, and will include an\nissuer-provided token in the `details` field that is needed to initiate the PIN\ncollection flow on the iOS device.",
"error-category": "PAYMENT_METHOD_ERROR"
},
{
"name": "CARD_EXPIRED",
"description": "The card issuer declined the request because the card is expired.",
"error-category": "PAYMENT_METHOD_ERROR"
},
{
"name": "INVALID_EXPIRATION",
"description": "The expiration date for the payment card is invalid. For example,\nit indicates a date in the past.",
"error-category": "PAYMENT_METHOD_ERROR"
},
{
"name": "INVALID_EXPIRATION_YEAR",
"description": "The expiration year for the payment card is invalid. For example,\nit indicates a year in the past or contains invalid characters.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "INVALID_EXPIRATION_DATE",
"description": "The expiration date for the payment card is invalid. For example,\nit contains invalid characters.",
"error-category": "INVALID_REQUEST_ERROR"
},
{
"name": "UNSUPPORTED_CARD_BRAND",
"description": "The credit card provided is not from a supported issuer.",
"error-category": "PAYMENT_METHOD_ERROR"
},
{
"name": "UNSUPPORTED_ENTRY_METHOD",
"description": "The entry method for the credit card (swipe, dip, tap) is not supported.",
"error-category": "PAYMENT_METHOD_ERROR"
},
{
"name": "INVALID_ENCRYPTED_CARD",
"description": "The encrypted card information is invalid.",
"error-category": "PAYMENT_METHOD_ERROR"
},
{
"name": "INVALID_CARD",
"description": "The credit card cannot be val
# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/square/refs/heads/main/json-schema/square-bulk-upsert-booking-custom-attributes-response-schema.json
Work with this as data
Every JSON Schema 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 schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/square-bulk-upsert-booking-custom-attributes-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.