{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/cash-app/main/json-schema/cash-app-item-schema.json",
  "title": "Item",
  "description": "This data model is used to store crucial product details. The `price.amount` field represents the unit price of the individual item. The `quantity` field shows the number of units of the item. The `name` field denotes the name of the product, while `sku` holds the Stock Keeping Unit identifier. 100 is the maximum number of item objects in the items array.\n<Warning Title=\"Important Note\">\n  It is crucial that the `price.amount` represents the unit price of the individual item.\n  **Never** populate the `price.amount` by multiplying the quantity by the unit cost. Always enter the price for a single unit to maintain data accuracy.\n</Warning>\n",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/cash-app-payments-api-openapi.yml#/components/schemas/Item",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "sku": {
      "type": "string"
    },
    "pageUrl": {
      "type": "string"
    },
    "imageUrl": {
      "type": "string"
    },
    "quantity": {
      "type": "integer"
    },
    "price": {
      "$ref": "#/$defs/Money"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "estimatedShipmentDate": {
      "type": "string",
      "format": "date"
    },
    "preorder": {
      "type": "boolean",
      "default": false
    }
  },
  "required": [
    "name",
    "quantity",
    "price"
  ],
  "$defs": {
    "Money": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "string",
          "description": "The amount as a string representation of a decimal number, rounded to 2 decimal places."
        },
        "currency": {
          "$ref": "#/$defs/MoneyCurrency"
        }
      },
      "required": [
        "amount",
        "currency"
      ],
      "description": "Object containing amount and currency",
      "title": "Money"
    },
    "MoneyCurrency": {
      "type": "string",
      "enum": [
        "AUD",
        "NZD",
        "USD",
        "CAD",
        "GBP"
      ],
      "title": "MoneyCurrency"
    }
  }
}