action square_retrieve_catalog_object { label: "RetrieveCatalogObject" description: "Returns a single [CatalogItem](https://developer.squareup.com/reference/square_2021-08-18/objects/CatalogItem) as a\n[CatalogObject](https://developer.squareup.com/reference/square_2021-08-18/objects/CatalogObject) based on the provided ID. The returned\nobject includes all of the relevant [CatalogItem](https://developer.squareup.com/reference/square_2021-08-18/objects/CatalogItem)\ninformation including: [CatalogItemVariation](https://developer.squareup.com/reference/square_2021-08-18/objects/CatalogItemVariation)\nchildren, references to its\n[CatalogModifierList](https://developer.squareup.com/reference/square_2021-08-18/objects/CatalogModifierList) objects, and the ids of\nany [CatalogTax](https://developer.squareup.com/reference/square_2021-08-18/objects/CatalogTax) objects that apply to it." provider: square method: GET path: "/v2/catalog/object/{object_id}" encoding: json input: { type: "object" properties: { catalog_version: { type: "integer" format: "int64" } include_related_objects: { type: "boolean" } object_id: { type: "string" } } required: ["object_id"] additionalProperties: false } output: { type: "object" properties: { errors: { type: "array" description: "Any errors that occurred during the request." items: { 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." required: ["category", "code"] properties: { category: { type: "string" description: "The high-level category for the error." } code: { type: "string" description: "The specific code of the error." } 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." } } } } object: { type: "object" description: "The wrapper object for the Catalog entries of a given object type.\n\nThe type of a particular `CatalogObject` is determined by the value of the\n`type` attribute and only the corresponding data attribute can be set on the `CatalogObject` instance.\nFor example, the following list shows some instances of `CatalogObject` of a given `type` and\ntheir corresponding data attribute that can be set:\n- For a `CatalogObject` of the `ITEM` type, set the `item_data` attribute to yield the `CatalogItem` object.\n- For a `CatalogObject` of the `ITEM_VARIATION` type, set the `item_variation_data` attribute to yield the `CatalogItemVariation` object.\n- For a `CatalogObject` of the `MODIFIER` type, set the `modifier_data` attribute to yield the `CatalogModifier` object.\n- For a `CatalogObject` of the `MODIFIER_LIST` type, set the `modifier_list_data` attribute to yield the `CatalogModifierList` object.\n- For a `CatalogObject` of the `CATEGORY` type, set the `category_data` attribute to yield the `CatalogCategory` object.\n- For a `CatalogObject` of the `DISCOUNT` type, set the `discount_data` attribute to yield the `CatalogDiscount` object.\n- For a `CatalogObject` of the `TAX` type, set the `tax_data` attribute to yield the `CatalogTax` object.\n- For a `CatalogObject` of the `IMAGE` type, set the `image_data` attribute to yield the `CatalogImageData` object.\n- For a `CatalogObject` of the `QUICK_AMOUNTS_SETTINGS` type, set the `quick_amounts_settings_data` attribute to yield the `CatalogQuickAmountsSettings` object.\n- For a `CatalogObject` of the `PRICING_RULE` type, set the `pricing_rule_data` attribute to yield the `CatalogPricingRule` object.\n- For a `CatalogObject` of the `TIME_PERIOD` type, set the `time_period_data` attribute to yield the `CatalogTimePeriod` object.\n- For a `CatalogObject` of the `PRODUCT_SET` type, set the `product_set_data` attribute to yield the `CatalogProductSet` object.\n- For a `CatalogObject` of the `SUBSCRIPTION_PLAN` type, set the `subscription_plan_data` attribute to yield the `CatalogSubscriptionPlan` object.\n\n\nFor a more detailed discussion of the Catalog data model, please see the\n[Design a Catalog](https://developer.squareup.com/docs/catalog-api/design-a-catalog) guide." required: ["id", "type"] properties: { absent_at_location_ids: { type: "array" description: "A list of locations where the object is not present, even if `present_at_all_locations` is `true`.\nThis can include locations that are deactivated." items: { type: "string" } } catalog_v1_ids: { type: "array" description: "The Connect v1 IDs for this object at each location where it is present, where they\ndiffer from the object's Connect V2 ID. The field will only be present for objects that\nhave been created or modified by legacy APIs." items: { type: "object" description: "A Square API V1 identifier of an item, including the object ID and its associated location ID." properties: { catalog_v1_id: { type: "string" description: "The ID for an object used in the Square API V1, if the object ID differs from the Square API V2 object ID." } location_id: { type: "string" description: "The ID of the `Location` this Connect V1 ID is associated with." } } } } category_data: { type: "object" description: "A category to which a `CatalogItem` instance belongs." properties: { name: { type: "string" description: "The category name. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points." } } } custom_attribute_definition_data: { type: "object" description: "Contains information defining a custom attribute. Custom attributes are\nintended to store additional information about a catalog object or to associate a\ncatalog object with an entity in another system. Do not use custom attributes\nto store any sensitive information (personally identifiable information, card details, etc.).\n[Read more about custom attributes](https://developer.squareup.com/docs/catalog-api/add-custom-attributes)" required: ["allowed_object_types", "name", "type"] properties: { allowed_object_types: { type: "array" description: "The set of Catalog Object Types that this Custom Attribute may be applied to.\nCurrently, only `ITEM` and `ITEM_VARIATION` are allowed. At least one type must be included." items: { type: "string" } } app_visibility: { type: "string" description: "The visibility of a custom attribute to applications other than the application\nthat created the attribute." } custom_attribute_usage_count: { type: "integer" description: "__Read-only.__ The number of custom attributes that reference this\ncustom attribute definition. Set by the server in response to a ListCatalog\nrequest with `include_counts` set to `true`. If the actual count is greater\nthan 100, `custom_attribute_usage_count` will be set to `100`." } description: { type: "string" description: "Seller-oriented description of the meaning of this Custom Attribute,\nany constraints that the seller should observe, etc. May be displayed as a tooltip in Square UIs." } key: { type: "string" description: "The name of the desired custom attribute key that can be used to access\nthe custom attribute value on catalog objects. Cannot be modified after the\ncustom attribute definition has been created.\nMust be between 1 and 60 characters, and may only contain the characters `[a-zA-Z0-9_-]`." } name: { type: "string" description: " The name of this definition for API and seller-facing UI purposes.\nThe name must be unique within the (merchant, application) pair. Required.\nMay not be empty and may not exceed 255 characters. Can be modified after creation." } number_config: { type: "object" properties: { precision: { type: "integer" description: "An integer between 0 and 5 that represents the maximum number of\npositions allowed after the decimal in number custom attribute values\nFor example:\n\n- if the precision is 0, the quantity can be 1, 2, 3, etc.\n- if the precision is 1, the quantity can be 0.1, 0.2, etc.\n- if the precision is 2, the quantity can be 0.01, 0.12, etc.\n\nDefault: 5" } } } selection_config: { type: "object" description: "Configuration associated with `SELECTION`-type custom attribute definitions." properties: { allowed_selections: { type: "array" description: "The set of valid `CatalogCustomAttributeSelections`. Up to a maximum of 100\nselections can be defined. Can be modified." items: { type: "object" description: "A named selection for this `SELECTION`-type custom attribute definition." required: ["name"] properties: { name: { type: "string" description: "Selection name, unique within `allowed_selections`." } uid: { type: "string" description: "Unique ID set by Square." } } } } max_allowed_selections: { type: "integer" description: "The maximum number of selections that can be set. The maximum value for this\nattribute is 100. The default value is 1. The value can be modified, but changing the value will not\naffect existing custom attribute values on objects. Clients need to\nhandle custom attributes with more selected values than allowed by this limit." } } } seller_visibility: { type: "string" description: "The visibility of a custom attribute in seller-facing UIs (including Square Point\nof Sale applications and Square Dashboard). May be modified." } source_application: { type: "object" description: "Provides information about the application used to generate a change." properties: { application_id: { type: "string" description: "Read-only Square ID assigned to the application. Only used for\n[Product](https://developer.squareup.com/reference/square_2021-08-18/enums/Product) type `EXTERNAL_API`." } name: { type: "string" description: "Read-only display name assigned to the application\n(e.g. `\"Custom Application\"`, `\"Square POS 4.74 for Android\"`)." } product: { type: "string" description: "Read-only [Product](https://developer.squareup.com/reference/square_2021-08-18/enums/Product) type for the application." } } } string_config: { type: "object" description: "Configuration associated with Custom Attribute Definitions of type `STRING`." properties: { enforce_uniqueness: { type: "boolean" description: "If true, each Custom Attribute instance associated with this Custom Attribute\nDefinition must have a unique value within the seller's catalog. For\nexample, this may be used for a value like a SKU that should not be\nduplicated within a seller's catalog. May not be modified after the\ndefinition has been created." } } } type: { type: "string" description: "The type of this custom attribute. Cannot be modified after creation.\nRequired." } } } custom_attribute_values: { type: "object" description: "A map (key-value pairs) of application-defined custom attribute values. The value of a key-value pair\nis a [CatalogCustomAttributeValue](https://developer.squareup.com/reference/square_2021-08-18/objects/CatalogCustomAttributeValue) object. The key is the `key` attribute\nvalue defined in the associated [CatalogCustomAttributeDefinition](https://developer.squareup.com/reference/square_2021-08-18/objects/CatalogCustomAttributeDefinition)\nobject defined by the application making the request.\n\nIf the `CatalogCustomAttributeDefinition` object is\ndefined by another application, the `CatalogCustomAttributeDefinition`'s key attribute value is prefixed by\nthe defining application ID. For example, if the `CatalogCustomAttributeDefinition` has a `key` attribute of\n`\"cocoa_brand\"` and the defining application ID is `\"abcd1234\"`, the key in the map is `\"abcd1234:cocoa_brand\"`\nif the application making the request is different from the application defining the custom attribute definition.\nOtherwise, the key used in the map is simply `\"cocoa_brand\"`.\n\nApplication-defined custom attributes that are set at a global (location-independent) level.\nCustom attribute values are intended to store additional information about a catalog object\nor associations with an entity in another system. Do not use custom attributes\nto store any sensitive information (personally identifiable information, card details, etc.)." } discount_data: { type: "object" description: "A discount applicable to items." properties: { amount_money: { type: "object" description: "Represents an amount of money. `Money` fields can be signed or unsigned.\nFields that do not explicitly define whether they are signed or unsigned are\nconsidered unsigned and can only hold positive amounts. For signed fields, the\nsign of the value indicates the purpose of the money transfer. See\n[Working with Monetary Amounts](https://developer.squareup.com/docs/build-basics/working-with-monetary-amounts)\nfor more information." properties: { amount: { type: "integer" format: "int64" description: "The amount of money, in the smallest denomination of the currency\nindicated by `currency`. For example, when `currency` is `USD`, `amount` is\nin cents. Monetary amounts can be positive or negative. See the specific\nfield description to determine the meaning of the sign in a particular case." } currency: { type: "string" description: "The type of currency, in __ISO 4217 format__. For example, the currency\ncode for US dollars is `USD`.\n\nSee [Currency](https://developer.squareup.com/reference/square_2021-08-18/enums/Currency) for possible values." } } } discount_type: { type: "string" description: "Indicates whether the discount is a fixed amount or percentage, or entered at the time of sale." } label_color: { type: "string" description: "The color of the discount display label in the Square Point of Sale app. This must be a valid hex color code." } modify_tax_basis: { type: "string" description: "Indicates whether this discount should reduce the price used to calculate tax.\n\nMost discounts should use `MODIFY_TAX_BASIS`. However, in some circumstances taxes must\nbe calculated based on an item's price, ignoring a particular discount. For example,\nin many US jurisdictions, a manufacturer coupon or instant rebate reduces the price a\ncustomer pays but does not reduce the sale price used to calculate how much sales tax is\ndue. In this case, the discount representing that manufacturer coupon should have\n`DO_NOT_MODIFY_TAX_BASIS` for this field.\n\nIf you are unsure whether you need to use this field, consult your tax professional." } name: { type: "string" description: "The discount name. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points." } percentage: { type: "string" description: "The percentage of the discount as a string representation of a decimal number, using a `.` as the decimal\nseparator and without a `%` sign. A value of `7.5` corresponds to `7.5%`. Specify a percentage of `0` if `discount_type`\nis `VARIABLE_PERCENTAGE`.\n\nDo not use this field for amount-based or variable discounts." } pin_required: { type: "boolean" description: "Indicates whether a mobile staff member needs to enter their PIN to apply the\ndiscount to a payment in the Square Point of Sale app." } } } id: { type: "string" description: "An identifier to reference this object in the catalog. When a new `CatalogObject`\nis inserted, the client should set the id to a temporary identifier starting with\na \"`#`\" character. Other objects being inserted or updated within the same request\nmay use this identifier to refer to the new object.\n\nWhen the server receives the new object, it will supply a unique identifier that\nreplaces the temporary identifier for all future references." } image_data: { type: "object" description: "An image file to use in Square catalogs. It can be associated with catalog\nitems, item variations, and categories." properties: { caption: { type: "string" description: "A caption that describes what is shown in the image. Displayed in the\nSquare Online Store. This is a searchable attribute for use in applicable query filters\nusing the [SearchCatalogObjects](https://developer.squareup.com/reference/square_2021-08-18/catalog-api/search-catalog-objects)." } name: { type: "string" description: "The internal name to identify this image in calls to the Square API.\nThis is a searchable attribute for use in applicable query filters\nusing the [SearchCatalogObjects](https://developer.squareup.com/reference/square_2021-08-18/catalog-api/search-catalog-objects).\nIt is not unique and should not be shown in a buyer facing context." } url: { type: "string" description: "The URL of this image, generated by Square after an image is uploaded\nusing the [CreateCatalogImage](https://developer.squareup.com/reference/square_2021-08-18/catalog-api/create-catalog-image) endpoint." } } } image_id: { type: "string" description: "Identifies the `CatalogImage` attached to this `CatalogObject`." } is_deleted: { type: "boolean" description: "If `true`, the object has been deleted from the database. Must be `false` for new objects\nbeing inserted. When deleted, the `updated_at` field will equal the deletion time." } item_data: { type: "object" description: "A [CatalogObject](https://developer.squareup.com/reference/square_2021-08-18/objects/CatalogObject) instance of the `ITEM` type, also referred to as an item, in the catalog." properties: { abbreviation: { type: "string" description: "The text of the item's display label in the Square Point of Sale app. Only up to the first five characters of the string are used.\nThis attribute is searchable, and its value length is of Unicode code points." } available_electronically: { type: "boolean" description: "If `true`, the item can be added to electronically fulfilled orders from the merchant's online store." } available_for_pickup: { type: "boolean" description: "If `true`, the item can be added to pickup orders from the merchant's online store." } available_online: { type: "boolean" description: "If `true`, the item can be added to shipping orders from the merchant's online store." } category_id: { type: "string" description: "The ID of the item's category, if any." } description: { type: "string" description: "The item's description. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points." } item_options: { type: "array" description: "List of item options IDs for this item. Used to manage and group item\nvariations in a specified order.\n\nMaximum: 6 item options." items: { type: "object" description: " An option that can be assigned to an item.\nFor example, a t-shirt item may offer a color option or a size option." properties: { item_option_id: { type: "string" description: "The unique id of the item option, used to form the dimensions of the item option matrix in a specified order." } } } } label_color: { type: "string" description: "The color of the item's display label in the Square Point of Sale app. This must be a valid hex color code." } modifier_list_info: { type: "array" description: "A set of `CatalogItemModifierListInfo` objects\nrepresenting the modifier lists that apply to this item, along with the overrides and min\nand max limits that are specific to this item. Modifier lists\nmay also be added to or deleted from an item using `UpdateItemModifierLists`." items: { type: "object" description: "Options to control the properties of a `CatalogModifierList` applied to a `CatalogItem` instance." required: ["modifier_list_id"] properties: { enabled: { type: "boolean" description: "If `true`, enable this `CatalogModifierList`. The default value is `true`." } max_selected_modifiers: { type: "integer" description: "If 0 or larger, the largest number of `CatalogModifier`s that can be selected from this `CatalogModifierList`." } min_selected_modifiers: { type: "integer" description: "If 0 or larger, the smallest number of `CatalogModifier`s that must be selected from this `CatalogModifierList`." } modifier_list_id: { type: "string" description: "The ID of the `CatalogModifierList` controlled by this `CatalogModifierListInfo`." } modifier_overrides: { type: "array" description: "A set of `CatalogModifierOverride` objects that override whether a given `CatalogModifier` is enabled by default." items: { type: "object" description: "Options to control how to override the default behavior of the specified modifier." required: ["modifier_id"] properties: { modifier_id: { type: "string" description: "The ID of the `CatalogModifier` whose default behavior is being overridden." } on_by_default: { type: "boolean" description: "If `true`, this `CatalogModifier` should be selected by default for this `CatalogItem`." } } } } } } } name: { type: "string" description: "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points." } product_type: { type: "string" description: "The product type of the item. May not be changed once an item has been created.\n\nOnly items of product type `REGULAR` or `APPOINTMENTS_SERVICE` may be created by this API; items with other product\ntypes are read-only." } skip_modifier_screen: { type: "boolean" description: "If `false`, the Square Point of Sale app will present the `CatalogItem`'s\ndetails screen immediately, allowing the merchant to choose `CatalogModifier`s\nbefore adding the item to the cart. This is the default behavior.\n\nIf `true`, the Square Point of Sale app will immediately add the item to the cart with the pre-selected\nmodifiers, and merchants can edit modifiers by drilling down onto the item's details.\n\nThird-party clients are encouraged to implement similar behaviors." } sort_name: { type: "string" description: "A name to sort the item by. If this name is unspecified, namely, the `sort_name` field is absent, the regular `name` field is used for sorting.\n\nIt is currently supported for sellers of the Japanese locale only." } tax_ids: { type: "array" description: "A set of IDs indicating the taxes enabled for\nthis item. When updating an item, any taxes listed here will be added to the item.\nTaxes may also be added to or deleted from an item using `UpdateItemTaxes`." items: { type: "string" } } variations: { type: "array" description: "A list of [CatalogItemVariation](https://developer.squareup.com/reference/square_2021-08-18/objects/CatalogItemVariation) objects for this item. An item must have\nat least one variation." items: { type: "object" additionalProperties: true } } } } item_option_data: { type: "object" description: "A group of variations for a `CatalogItem`." properties: { description: { type: "string" description: "The item option's human-readable description. Displayed in the Square\nPoint of Sale app for the seller and in the Online Store or on receipts for\nthe buyer. This is a searchable attribute for use in applicable query filters." } display_name: { type: "string" description: "The item option's display name for the customer. This is a searchable attribute for use in applicable query filters." } name: { type: "string" description: "The item option's display name for the seller. Must be unique across\nall item options. This is a searchable attribute for use in applicable query filters." } show_colors: { type: "boolean" description: "If true, display colors for entries in `values` when present." } values: { type: "array" description: "A list of CatalogObjects containing the\n`CatalogItemOptionValue`s for this item." items: { type: "object" additionalProperties: true } } } } item_option_value_data: { type: "object" description: "An enumerated value that can link a\n`CatalogItemVariation` to an item option as one of\nits item option values." properties: { color: { type: "string" description: "The HTML-supported hex color for the item option (e.g., \"#ff8d4e85\").\nOnly displayed if `show_colors` is enabled on the parent `ItemOption`. When\nleft unset, `color` defaults to white (\"#ffffff\") when `show_colors` is\nenabled on the parent `ItemOption`." } description: { type: "string" description: "A human-readable description for the option value. This is a searchable attribute for use in applicable query filters." } item_option_id: { type: "string" description: "Unique ID of the associated item option." } name: { type: "string" description: "Name of this item option value. This is a searchable attribute for use in applicable query filters." } ordinal: { type: "integer" description: "Determines where this option value appears in a list of option values." } } } item_variation_data: { type: "object" description: "An item variation (i.e., product) in the Catalog object model. Each item\nmay have a maximum of 250 item variations." properties: { available_for_booking: { type: "boolean" description: "If the `CatalogItem` that owns this item variation is of type\n`APPOINTMENTS_SERVICE`, a bool representing whether this service is available for booking." } inventory_alert_threshold: { type: "integer" format: "int64" description: "If the inventory quantity for the variation is less than or equal to this value and `inventory_alert_type`\nis `LOW_QUANTITY`, the variation displays an alert in the merchant dashboard.\n\nThis value is always an integer." } inventory_alert_type: { type: "string" description: "Indicates whether the item variation displays an alert when its inventory quantity is less than or equal\nto its `inventory_alert_threshold`." } item_id: { type: "string" description: "The ID of the `CatalogItem` associated with this item variation." } item_option_values: { type: "array" description: "List of item option values associated with this item variation. Listed\nin the same order as the item options of the parent item." items: { type: "object" description: "A `CatalogItemOptionValue` links an item variation to an item option as\nan item option value. For example, a t-shirt item may offer a color option and\na size option. An item option value would represent each variation of t-shirt:\nFor example, \"Color:Red, Size:Small\" or \"Color:Blue, Size:Medium\"." properties: { item_option_id: { type: "string" description: "The unique id of an item option." } item_option_value_id: { type: "string" description: "The unique id of the selected value for the item option." } } } } location_overrides: { type: "array" description: "Per-location price and inventory overrides." items: { type: "object" description: "Price and inventory alerting overrides for a `CatalogItemVariation` at a specific `Location`." properties: { inventory_alert_threshold: { type: "integer" format: "int64" description: "If the inventory quantity for the variation is less than or equal to this value and `inventory_alert_type`\nis `LOW_QUANTITY`, the variation displays an alert in the merchant dashboard.\n\nThis value is always an integer." } inventory_alert_type: { type: "string" description: "Indicates whether the `CatalogItemVariation` displays an alert when its inventory\nquantity is less than or equal to its `inventory_alert_threshold`." } location_id: { type: "string" description: "The ID of the `Location`. This can include locations that are deactivated." } price_money: { type: "object" additionalProperties: true } pricing_type: { type: "string" description: "The pricing type (fixed or variable) for the `CatalogItemVariation` at the given `Location`." } track_inventory: { type: "boolean" description: "If `true`, inventory tracking is active for the `CatalogItemVariation` at this `Location`." } } } } measurement_unit_id: { type: "string" description: "ID of the ‘CatalogMeasurementUnit’ that is used to measure the quantity\nsold of this item variation. If left unset, the item will be sold in\nwhole quantities." } name: { type: "string" description: "The item variation's name. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points." } ordinal: { type: "integer" description: "The order in which this item variation should be displayed. This value is read-only. On writes, the ordinal\nfor each item variation within a parent `CatalogItem` is set according to the item variations's\nposition. On reads, the value is not guaranteed to be sequential or unique." } price_money: { type: "object" additionalProperties: true } pricing_type: { type: "string" description: "Indicates whether the item variation's price is fixed or determined at the time\nof sale." } service_duration: { type: "integer" format: "int64" description: "If the `CatalogItem` that owns this item variation is of type\n`APPOINTMENTS_SERVICE`, then this is the duration of the service in milliseconds. For\nexample, a 30 minute appointment would have the value `1800000`, which is equal to\n30 (minutes) * 60 (seconds per minute) * 1000 (milliseconds per second)." } sku: { type: "string" description: "The item variation's SKU, if any. This is a searchable attribute for use in applicable query filters." } stockable: { type: "boolean" description: "Whether stock is counted directly on this variation (TRUE) or only on its components (FALSE).\nFor backward compatibility missing values will be interpreted as TRUE." } stockable_conversion: { type: "object" description: "Represents the rule of conversion between a stockable [CatalogItemVariation](https://developer.squareup.com/reference/square_2021-08-18/objects/CatalogItemVariation)\nand a non-stockable sell-by or receive-by `CatalogItemVariation` that\nshare the same underlying stock." required: ["nonstockable_quantity", "stockable_item_variation_id", "stockable_quantity"] properties: { nonstockable_quantity: { type: "string" description: "The converted equivalent quantity of the non-stockable [CatalogItemVariation](https://developer.squareup.com/reference/square_2021-08-18/objects/CatalogItemVariation) \nin its measurement unit. The `stockable_quantity` value and this `nonstockable_quantity` value together\ndefine the conversion ratio between stockable item variation and the non-stockable item variation.\nIt accepts a decimal number in a string format that can take up to 10 digits before the decimal point\nand up to 5 digits after the decimal point." } stockable_item_variation_id: { type: "string" description: "References to the stockable [CatalogItemVariation](https://developer.squareup.com/reference/square_2021-08-18/objects/CatalogItemVariation)\nfor this stock conversion. Selling, receiving or recounting the non-stockable `CatalogItemVariation` \ndefined with a stock conversion results in adjustments of this stockable `CatalogItemVariation`.\nThis immutable field must reference a stockable `CatalogItemVariation`\nthat shares the parent [CatalogItem](https://developer.squareup.com/reference/square_2021-08-18/objects/CatalogItem) of the converted `CatalogItemVariation.`" } stockable_quantity: { type: "string" description: "The quantity of the stockable item variation (as identified by `stockable_item_variation_id`) \nequivalent to the non-stockable item variation quantity (as specified in `nonstockable_quantity`) \nas defined by this stock conversion. It accepts a decimal number in a string format that can take\nup to 10 digits before the decimal point and up to 5 digits after the decimal point." } } } team_member_ids: { type: "array" description: "Tokens of employees that can perform the service represented by this variation. Only valid for\nvariations of type `APPOINTMENTS_SERVICE`." items: { type: "string" } } track_inventory: { type: "boolean" description: "If `true`, inventory tracking is active for the variation." } upc: { type: "string" description: "The universal product code (UPC) of the item variation, if any. This is a searchable attribute for use in applicable query filters.\n\nThe value of this attribute should be a number of 12-14 digits long. This restriction is enforced on the Square Seller Dashboard,\nSquare Point of Sale or Retail Point of Sale apps, where this attribute shows in the GTIN field. If a non-compliant UPC value is assigned\nto this attribute using the API, the value is not editable on the Seller Dashboard, Square Point of Sale or Retail Point of Sale apps\nunless it is updated to fit the expected format." } user_data: { type: "string" description: "Arbitrary user metadata to associate with the item variation. This attribute value length is of Unicode code points." } } } measurement_unit_data: { type: "object" description: "Represents the unit used to measure a `CatalogItemVariation` and\nspecifies the precision for decimal quantities." properties: { measurement_unit: { type: "object" description: "Represents a unit of measurement to use with a quantity, such as ounces\nor inches. Exactly one of the following fields are required: `custom_unit`,\n`area_unit`, `length_unit`, `volume_unit`, and `weight_unit`." properties: { area_unit: { type: "string" description: "Represents a standard area unit." } custom_unit: { type: "object" description: "The information needed to define a custom unit, provided by the seller." required: ["abbreviation", "name"] properties: { abbreviation: { type: "string" description: "The abbreviation of the custom unit, such as \"bsh\" (bushel). This appears\nin the cart for the Point of Sale app, and in reports." } name: { type: "string" description: "The name of the custom unit, for example \"bushel\"." } } } generic_unit: { type: "string" description: "Reserved for API integrations that lack the ability to specify a real measurement unit" } length_unit: { type: "string" description: "Represents a standard length unit." } time_unit: { type: "string" description: "Represents a standard unit of time." } type: { type: "string" description: "Represents the type of the measurement unit." } volume_unit: { type: "string" description: "Represents a standard volume unit." } weight_unit: { type: "string" description: "Represents a standard unit of weight or mass." } } } precision: { type: "integer" description: "An integer between 0 and 5 that represents the maximum number of\npositions allowed after the decimal in quantities measured with this unit.\nFor example:\n\n- if the precision is 0, the quantity can be 1, 2, 3, etc.\n- if the precision is 1, the quantity can be 0.1, 0.2, etc.\n- if the precision is 2, the quantity can be 0.01, 0.12, etc.\n\nDefault: 3" } } } modifier_data: { type: "object" description: "A modifier applicable to items at the time of sale." properties: { modifier_list_id: { type: "string" description: "The ID of the `CatalogModifierList` associated with this modifier." } name: { type: "string" description: "The modifier name. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points." } ordinal: { type: "integer" description: "Determines where this `CatalogModifier` appears in the `CatalogModifierList`." } price_money: { type: "object" additionalProperties: true } } } modifier_list_data: { type: "object" description: "A list of modifiers applicable to items at the time of sale.\n\nFor example, a \"Condiments\" modifier list applicable to a \"Hot Dog\" item\nmay contain \"Ketchup\", \"Mustard\", and \"Relish\" modifiers.\nUse the `selection_type` field to specify whether or not multiple selections from\nthe modifier list are allowed." properties: { modifiers: { type: "array" description: "The options included in the `CatalogModifierList`.\nYou must include at least one `CatalogModifier`.\nEach CatalogObject must have type `MODIFIER` and contain\n`CatalogModifier` data." items: { type: "object" additionalProperties: true } } name: { type: "string" description: "The name for the `CatalogModifierList` instance. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points." } ordinal: { type: "integer" description: "Determines where this modifier list appears in a list of `CatalogModifierList` values." } selection_type: { type: "string" description: "Indicates whether multiple options from the modifier list\ncan be applied to a single `CatalogItem`." } } } present_at_all_locations: { type: "boolean" description: "If `true`, this object is present at all locations (including future locations), except where specified in\nthe `absent_at_location_ids` field. If `false`, this object is not present at any locations (including future locations),\nexcept where specified in the `present_at_location_ids` field. If not specified, defaults to `true`." } present_at_location_ids: { type: "array" description: "A list of locations where the object is present, even if `present_at_all_locations` is `false`.\nThis can include locations that are deactivated." items: { type: "string" } } pricing_rule_data: { type: "object" description: "Defines how discounts are automatically applied to a set of items that match the pricing rule\nduring the active time period." properties: { apply_products_id: { type: "string" description: "__Deprecated__: Please use the `exclude_products_id` field to apply\nan exclude set instead. Exclude sets allow better control over quantity\nranges and offer more flexibility for which matched items receive a discount.\n\n`CatalogProductSet` to apply the pricing to.\nAn apply rule matches within the subset of the cart that fits the match rules (the match set).\nAn apply rule can only match once in the match set.\nIf not supplied, the pricing will be applied to all products in the match set.\nOther products retain their base price, or a price generated by other rules." } customer_group_ids_any: { type: "array" description: "A list of IDs of customer groups, the members of which are eligible for discounts specified in this pricing rule.\nNotice that a group ID is generated by the Customers API.\nIf this field is not set, the specified discount applies to matched products sold to anyone whether the buyer\nhas a customer profile created or not. If this `customer_group_ids_any` field is set, the specified discount\napplies only to matched products sold to customers belonging to the specified customer groups." items: { type: "string" } } discount_id: { type: "string" description: "Unique ID for the `CatalogDiscount` to take off\nthe price of all matched items." } exclude_products_id: { type: "string" description: "`CatalogProductSet` to exclude from the pricing rule.\nAn exclude rule matches within the subset of the cart that fits the match rules (the match set).\nAn exclude rule can only match once in the match set.\nIf not supplied, the pricing will be applied to all products in the match set.\nOther products retain their base price, or a price generated by other rules." } exclude_strategy: { type: "string" description: "If an `exclude_products_id` was given, controls which subset of matched\nproducts is excluded from any discounts.\n\nDefault value: `LEAST_EXPENSIVE`" } match_products_id: { type: "string" description: "Unique ID for the `CatalogProductSet` that will be matched by this rule. A match rule\nmatches within the entire cart, and can match multiple times. This field will always be set." } name: { type: "string" description: "User-defined name for the pricing rule. For example, \"Buy one get one\nfree\" or \"10% off\"." } time_period_ids: { type: "array" description: "A list of unique IDs for the catalog time periods when\nthis pricing rule is in effect. If left unset, the pricing rule is always\nin effect." items: { type: "string" } } valid_from_date: { type: "string" description: "Represents the date the Pricing Rule is valid from. Represented in RFC 3339 full-date format (YYYY-MM-DD)." } valid_from_local_time: { type: "string" description: "Represents the local time the pricing rule should be valid from. Represented in RFC 3339 partial-time format\n(HH:MM:SS). Partial seconds will be truncated." } valid_until_date: { type: "string" description: "Represents the date the Pricing Rule is valid until. Represented in RFC 3339 full-date format (YYYY-MM-DD)." } valid_until_local_time: { type: "string" description: "Represents the local time the pricing rule should be valid until. Represented in RFC 3339 partial-time format\n(HH:MM:SS). Partial seconds will be truncated." } } } product_set_data: { type: "object" description: "Represents a collection of catalog objects for the purpose of applying a\n`PricingRule`. Including a catalog object will include all of its subtypes.\nFor example, including a category in a product set will include all of its\nitems and associated item variations in the product set. Including an item in\na product set will also include its item variations." properties: { all_products: { type: "boolean" description: "If set to `true`, the product set will include every item in the catalog.\nOnly one of `product_ids_all`, `product_ids_any`, or `all_products` can be set." } name: { type: "string" description: "User-defined name for the product set. For example, \"Clearance Items\"\nor \"Winter Sale Items\"." } product_ids_all: { type: "array" description: "Unique IDs for any `CatalogObject` included in this product set.\nAll objects in this set must be included in an order for a pricing rule to apply.\n\nOnly one of `product_ids_all`, `product_ids_any`, or `all_products` can be set.\n\nMax: 500 catalog object IDs." items: { type: "string" } } product_ids_any: { type: "array" description: " Unique IDs for any `CatalogObject` included in this product set. Any\nnumber of these catalog objects can be in an order for a pricing rule to apply.\n\nThis can be used with `product_ids_all` in a parent `CatalogProductSet` to\nmatch groups of products for a bulk discount, such as a discount for an\nentree and side combo.\n\nOnly one of `product_ids_all`, `product_ids_any`, or `all_products` can be set.\n\nMax: 500 catalog object IDs." items: { type: "string" } } quantity_exact: { type: "integer" format: "int64" description: "If set, there must be exactly this many items from `products_any` or `products_all`\nin the cart for the discount to apply.\n\nCannot be combined with either `quantity_min` or `quantity_max`." } quantity_max: { type: "integer" format: "int64" description: "If set, the pricing rule will apply to a maximum of this many items from\n`products_any` or `products_all`." } quantity_min: { type: "integer" format: "int64" description: "If set, there must be at least this many items from `products_any` or `products_all`\nin a cart for the discount to apply. See `quantity_exact`. Defaults to 0 if\n`quantity_exact`, `quantity_min` and `quantity_max` are all unspecified." } } } quick_amounts_settings_data: { type: "object" description: "A parent Catalog Object model represents a set of Quick Amounts and the settings control the amounts." required: ["option"] properties: { amounts: { type: "array" description: "Represents a set of Quick Amounts at this location." items: { type: "object" description: "Represents a Quick Amount in the Catalog." required: ["type", "amount"] properties: { amount: { type: "object" additionalProperties: true } ordinal: { type: "integer" format: "int64" description: "The order in which this Quick Amount should be displayed." } score: { type: "integer" format: "int64" description: "Describes the ranking of the Quick Amount provided by machine learning model, in the range [0, 100].\nMANUAL type amount will always have score = 100." } type: { type: "string" description: "Represents the type of the Quick Amount." } } } } eligible_for_auto_amounts: { type: "boolean" description: "Represents location's eligibility for auto amounts\nThe boolean should be consistent with whether there are AUTO amounts in the `amounts`." } option: { type: "string" description: "Represents the option seller currently uses on Quick Amounts." } } } subscription_plan_data: { type: "object" description: "Describes a subscription plan. For more information, see\n[Set Up and Manage a Subscription Plan](https://developer.squareup.com/docs/subscriptions-api/setup-plan)." required: ["name", "phases"] properties: { name: { type: "string" description: "The name of the plan." } phases: { type: "array" description: "A list of SubscriptionPhase containing the [SubscriptionPhase](https://developer.squareup.com/reference/square_2021-08-18/objects/SubscriptionPhase) for this plan." items: { type: "object" description: "Describes a phase in a subscription plan. For more information, see\n[Set Up and Manage a Subscription Plan](https://developer.squareup.com/docs/subscriptions-api/setup-plan)." required: ["cadence", "recurring_price_money"] properties: { cadence: { type: "string" description: "The billing cadence of the phase. For example, weekly or monthly. This field cannot be changed after a `SubscriptionPhase` is created." } ordinal: { type: "integer" format: "int64" description: "The position this phase appears in the sequence of phases defined for the plan, indexed from 0. This field cannot be changed after a `SubscriptionPhase` is created." } periods: { type: "integer" description: "The number of `cadence`s the phase lasts. If not set, the phase never ends. Only the last phase can be indefinite. This field cannot be changed after a `SubscriptionPhase` is created." } recurring_price_money: { type: "object" additionalProperties: true } uid: { type: "string" description: "The Square-assigned ID of the subscription phase. This field cannot be changed after a `SubscriptionPhase` is created." } } } } } } tax_data: { type: "object" description: "A tax applicable to an item." properties: { applies_to_custom_amounts: { type: "boolean" description: "If `true`, the fee applies to custom amounts entered into the Square Point of Sale\napp that are not associated with a particular `CatalogItem`." } calculation_phase: { type: "string" description: "Whether the tax is calculated based on a payment's subtotal or total." } enabled: { type: "boolean" description: "A Boolean flag to indicate whether the tax is displayed as enabled (`true`) in the Square Point of Sale app or not (`false`)." } inclusion_type: { type: "string" description: "Whether the tax is `ADDITIVE` or `INCLUSIVE`." } name: { type: "string" description: "The tax's name. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points." } percentage: { type: "string" description: "The percentage of the tax in decimal form, using a `'.'` as the decimal separator and without a `'%'` sign.\nA value of `7.5` corresponds to 7.5%." } } } time_period_data: { type: "object" description: "Represents a time period - either a single period or a repeating period." properties: { event: { type: "string" description: "An iCalendar (RFC 5545) [event](https://tools.ietf.org/html/rfc5545#section-3.6.1), which\nspecifies the name, timing, duration and recurrence of this time period.\n\nExample:\n\n```\nDTSTART:20190707T180000\nDURATION:P2H\nRRULE:FREQ=WEEKLY;BYDAY=MO,WE,FR\n```\n\nOnly `SUMMARY`, `DTSTART`, `DURATION` and `RRULE` fields are supported.\n`DTSTART` must be in local (unzoned) time format. Note that while `BEGIN:VEVENT`\nand `END:VEVENT` is not required in the request. The response will always\ninclude them." } } } type: { type: "string" description: "The type of this object. Each object type has expected\nproperties expressed in a structured format within its corresponding `*_data` field below." } updated_at: { type: "string" description: "Last modification [timestamp](https://developer.squareup.com/docs/build-basics/working-with-dates) in RFC 3339 format, e.g., `\"2016-08-15T23:59:33.123Z\"`\nwould indicate the UTC time (denoted by `Z`) of August 15, 2016 at 23:59:33 and 123 milliseconds." } version: { type: "integer" format: "int64" description: "The version of the object. When updating an object, the version supplied\nmust match the version in the database, otherwise the write will be rejected as conflicting." } } } related_objects: { type: "array" description: "A list of `CatalogObject`s referenced by the object in the `object` field." items: { type: "object" additionalProperties: true } } } } }