{
  "openapi": "3.1.0",
  "info": {
    "title": "Fourthwall APIs",
    "description": "Service used for management of orders, carts, and payments.",
    "termsOfService": "https://fourthwall.com/terms-of-service",
    "contact": {
      "name": "Backend team",
      "url": "https://fourthwall.com",
      "email": "backend@fourthwall.com"
    },
    "version": "unspecified"
  },
  "externalDocs": {
    "description": "OpenAPI documentation",
    "url": "https://docs.fourthwall.com"
  },
  "servers": [
    {
      "url": "https://storefront-api.fourthwall.com",
      "description": "Production server"
    }
  ],
  "paths": {
    "/v1/carts": {
      "post": {
        "tags": [
          "headless_carts"
        ],
        "summary": "Create cart",
        "externalDocs": {
          "url": "https://docs.fourthwall.com/api-reference/storefront/carts/create-cart"
        },
        "operationId": "create-cart",
        "parameters": [
          {
            "name": "storefront_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "ptkn_xxxxxxxxxxxxxxxxxx"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "USD",
                "EUR",
                "CAD",
                "GBP",
                "AUD",
                "NZD",
                "SEK",
                "NOK",
                "DKK",
                "PLN",
                "INR",
                "JPY",
                "MYR",
                "SGD",
                "MXN",
                "BRL",
                "CHF"
              ]
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/com.fourthwall.app.headless.endpoint.HeadlessCart.XRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/com.fourthwall.app.headless.model.CartV1"
                }
              }
            }
          },
          "400": {
            "description": "Possible errors: `CART_DUPLICATE_VARIANT_IDS_ERROR`, `CART_FORBIDDEN_MEMBERS_ONLY_OFFERS_ERROR`, `CART_INCOMPLETE_BUNDLE_ERROR`, `CART_ITEM_NOT_FOUND_FOR_SHOP_ERROR`, `CART_OFFER_NOT_AVAILABLE`, `CART_OFFER_NOT_PURCHASABLE_ERROR`, `CART_PROMOTION_REQUIREMENTS_NOT_MET`, `CART_QUANTITY_TOO_HIGH`, `CHECKOUT_PROMOTION_ALREADY_USED_BY_CUSTOMER`, `CHECKOUT_PROMOTION_AVAILABLE_ONLY_FOR_SIGNED_CUSTOMERS`, `CHECKOUT_PROMOTION_FREE_SHIPPING_COUNTRY_NOT_SUPPORTED`, `CHECKOUT_PROMOTION_MAXIMUM_USES_LIMIT_EXCEEDED`, `CHECKOUT_PROMOTION_NOT_ALLOWED_FOR_CUSTOMER_TIER`, `CHECKOUT_PROMOTION_NOT_ALLOWED_FOR_CUSTOMER_TWITCH_TIER`, `CHECKOUT_PROMOTION_NOT_ALLOWED_FOR_GIVEN_ITEMS`, `PROMOTION_ALREADY_USED_BY_CUSTOMER`, `PROMOTION_AVAILABLE_ONLY_FOR_SIGNED_CUSTOMERS`, `PROMOTION_FREE_SHIPPING_COUNTRY_NOT_SUPPORTED`, `PROMOTION_MAXIMUM_USES_LIMIT_EXCEEDED`, `PROMOTION_MISSING_REQUIRED_PRODUCTS`, `PROMOTION_NOT_ALLOWED_FOR_CUSTOMER_TIER`, `PROMOTION_NOT_ALLOWED_FOR_CUSTOMER_TWITCH_TIER`, `PROMOTION_NOT_ALLOWED_FOR_GIVEN_ITEMS`, `VARIANT_NOT_ALLOWED_FOR_FREE_PRODUCTS`",
            "content": {
              "application/json": {
                "examples": {
                  "cart-duplicate-variant-ids-error": {
                    "value": {
                      "code": "CART_DUPLICATE_VARIANT_IDS_ERROR",
                      "variantIds": "<set>"
                    }
                  },
                  "cart-forbidden-members-only-offers-error": {
                    "value": {
                      "code": "CART_FORBIDDEN_MEMBERS_ONLY_OFFERS_ERROR",
                      "offerIds": "<set>"
                    }
                  },
                  "cart-incomplete-bundle-error": {
                    "value": {
                      "code": "CART_INCOMPLETE_BUNDLE_ERROR",
                      "bundleId": "<offerid>",
                      "details": "<string>"
                    }
                  },
                  "cart-item-not-found-for-shop-error": {
                    "value": {
                      "code": "CART_ITEM_NOT_FOUND_FOR_SHOP_ERROR",
                      "shopId": "<shopid>",
                      "variantId": "<offervariantid>"
                    }
                  },
                  "cart-offer-not-available": {
                    "value": {
                      "code": "CART_OFFER_NOT_AVAILABLE",
                      "variantId": "<offervariantid>"
                    }
                  },
                  "cart-offer-not-purchasable-error": {
                    "value": {
                      "code": "CART_OFFER_NOT_PURCHASABLE_ERROR",
                      "variantId": "<offervariantid>"
                    }
                  },
                  "cart-promotion-requirements-not-met": {
                    "value": {
                      "code": "CART_PROMOTION_REQUIREMENTS_NOT_MET",
                      "promotionCode": "<string>",
                      "details": "<string>"
                    }
                  },
                  "cart-quantity-too-high": {
                    "value": {
                      "code": "CART_QUANTITY_TOO_HIGH",
                      "variantId": "<offervariantid>",
                      "quantity": "<int>"
                    }
                  },
                  "checkout-promotion-already-used-by-customer": {
                    "value": {
                      "code": "CHECKOUT_PROMOTION_ALREADY_USED_BY_CUSTOMER",
                      "promotionId": "<promotionid>",
                      "customerId": "<string?>",
                      "normalizedEmailId": "<string?>"
                    }
                  },
                  "checkout-promotion-available-only-for-signed-customers": {
                    "value": {
                      "code": "CHECKOUT_PROMOTION_AVAILABLE_ONLY_FOR_SIGNED_CUSTOMERS",
                      "promotionId": "<promotionid>"
                    }
                  },
                  "checkout-promotion-free-shipping-country-not-supported": {
                    "value": {
                      "code": "CHECKOUT_PROMOTION_FREE_SHIPPING_COUNTRY_NOT_SUPPORTED",
                      "id": "<promotionid>",
                      "country": "<country>"
                    }
                  },
                  "checkout-promotion-maximum-uses-limit-exceeded": {
                    "value": {
                      "code": "CHECKOUT_PROMOTION_MAXIMUM_USES_LIMIT_EXCEEDED",
                      "id": "<promotionid>"
                    }
                  },
                  "checkout-promotion-not-allowed-for-customer-tier": {
                    "value": {
                      "code": "CHECKOUT_PROMOTION_NOT_ALLOWED_FOR_CUSTOMER_TIER",
                      "customerTierId": "<membershiptierid?>"
                    }
                  },
                  "checkout-promotion-not-allowed-for-customer-twitch-tier": {
                    "value": {
                      "code": "CHECKOUT_PROMOTION_NOT_ALLOWED_FOR_CUSTOMER_TWITCH_TIER",
                      "twitchTier": "<string?>"
                    }
                  },
                  "checkout-promotion-not-allowed-for-given-items": {
                    "value": {
                      "code": "CHECKOUT_PROMOTION_NOT_ALLOWED_FOR_GIVEN_ITEMS"
                    }
                  },
                  "promotion-already-used-by-customer": {
                    "value": {
                      "code": "PROMOTION_ALREADY_USED_BY_CUSTOMER",
                      "promotionId": "<promotionid>",
                      "customerId": "<customeridentifier>"
                    }
                  },
                  "promotion-available-only-for-signed-customers": {
                    "value": {
                      "code": "PROMOTION_AVAILABLE_ONLY_FOR_SIGNED_CUSTOMERS",
                      "promotionId": "<promotionid>"
                    }
                  },
                  "promotion-free-shipping-country-not-supported": {
                    "value": {
                      "code": "PROMOTION_FREE_SHIPPING_COUNTRY_NOT_SUPPORTED",
                      "id": "<promotionid>",
                      "country": "<country>"
                    }
                  },
                  "promotion-maximum-uses-limit-exceeded": {
                    "value": {
                      "code": "PROMOTION_MAXIMUM_USES_LIMIT_EXCEEDED",
                      "id": "<promotionid>"
                    }
                  },
                  "promotion-missing-required-products": {
                    "value": {
                      "code": "PROMOTION_MISSING_REQUIRED_PRODUCTS"
                    }
                  },
                  "promotion-not-allowed-for-customer-tier": {
                    "value": {
                      "code": "PROMOTION_NOT_ALLOWED_FOR_CUSTOMER_TIER",
                      "customerTierId": "<membershiptierid?>"
                    }
                  },
                  "promotion-not-allowed-for-customer-twitch-tier": {
                    "value": {
                      "code": "PROMOTION_NOT_ALLOWED_FOR_CUSTOMER_TWITCH_TIER",
                      "customerTwitchTier": "<promotionrequirements.twitchtier?>",
                      "allowedTwitchTiers": "<list>"
                    }
                  },
                  "promotion-not-allowed-for-given-items": {
                    "value": {
                      "code": "PROMOTION_NOT_ALLOWED_FOR_GIVEN_ITEMS"
                    }
                  },
                  "variant-not-allowed-for-free-products": {
                    "value": {
                      "code": "VARIANT_NOT_ALLOWED_FOR_FREE_PRODUCTS"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Possible errors: `CART_NOT_FOUND`, `CART_OFFER_NOT_FOUND`, `CHECKOUT_PROMOTION_CODE_DO_NOT_EXISTS`, `OFFER_VARIANT_NOT_FOUND_ERROR`, `SHOP_TEAM_MEMBER_SHOP_NOT_FOUND_ERROR`",
            "content": {
              "application/json": {
                "examples": {
                  "cart-not-found": {
                    "value": {
                      "code": "CART_NOT_FOUND",
                      "cartId": "<cartid>"
                    }
                  },
                  "cart-offer-not-found": {
                    "value": {
                      "code": "CART_OFFER_NOT_FOUND",
                      "variantId": "<offervariantid?>",
                      "groupedId": "<cartitemgroupedid?>"
                    }
                  },
                  "checkout-promotion-code-do-not-exists": {
                    "value": {
                      "code": "CHECKOUT_PROMOTION_CODE_DO_NOT_EXISTS",
                      "shopId": "<shopid>",
                      "promotionCode": "<string>"
                    }
                  },
                  "offer-variant-not-found-error": {
                    "value": {
                      "code": "OFFER_VARIANT_NOT_FOUND_ERROR",
                      "offerVariantId": "<offervariantid>"
                    }
                  },
                  "shop-team-member-shop-not-found-error": {
                    "value": {
                      "code": "SHOP_TEAM_MEMBER_SHOP_NOT_FOUND_ERROR",
                      "shopId": "<shopid>"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Possible errors: `CHECKOUT_PROMOTION_REQUIRE_MINIMUM_ORDER_VALUE`, `PROMOTION_REQUIRE_MINIMUM_ORDER_VALUE`",
            "content": {
              "application/json": {
                "examples": {
                  "checkout-promotion-require-minimum-order-value": {
                    "value": {
                      "code": "CHECKOUT_PROMOTION_REQUIRE_MINIMUM_ORDER_VALUE",
                      "minimumOrderValue": "<money>"
                    }
                  },
                  "promotion-require-minimum-order-value": {
                    "value": {
                      "code": "PROMOTION_REQUIRE_MINIMUM_ORDER_VALUE",
                      "minimumOrderValue": "<money>"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/carts/{cartId}/remove": {
      "post": {
        "tags": [
          "headless_carts"
        ],
        "summary": "Remove from cart",
        "externalDocs": {
          "url": "https://docs.fourthwall.com/api-reference/storefront/carts/remove-from-cart"
        },
        "operationId": "remove-from-cart",
        "parameters": [
          {
            "name": "storefront_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "ptkn_xxxxxxxxxxxxxxxxxx"
            }
          },
          {
            "name": "cartId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "USD",
                "EUR",
                "CAD",
                "GBP",
                "AUD",
                "NZD",
                "SEK",
                "NOK",
                "DKK",
                "PLN",
                "INR",
                "JPY",
                "MYR",
                "SGD",
                "MXN",
                "BRL",
                "CHF"
              ]
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/com.fourthwall.app.headless.endpoint.HeadlessCart.XRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/com.fourthwall.app.headless.model.CartV1"
                }
              }
            }
          },
          "400": {
            "description": "Possible errors: `CART_FORBIDDEN_MEMBERS_ONLY_OFFERS_ERROR`, `CART_INCOMPLETE_BUNDLE_ERROR`, `CART_ITEM_NOT_FOUND_FOR_SHOP_ERROR`, `CART_OFFER_NOT_AVAILABLE`, `CART_OFFER_NOT_PURCHASABLE_ERROR`, `CART_QUANTITY_TOO_HIGH`, `VARIANT_NOT_ALLOWED_FOR_FREE_PRODUCTS`",
            "content": {
              "application/json": {
                "examples": {
                  "cart-forbidden-members-only-offers-error": {
                    "value": {
                      "code": "CART_FORBIDDEN_MEMBERS_ONLY_OFFERS_ERROR",
                      "offerIds": "<set>"
                    }
                  },
                  "cart-incomplete-bundle-error": {
                    "value": {
                      "code": "CART_INCOMPLETE_BUNDLE_ERROR",
                      "bundleId": "<offerid>",
                      "details": "<string>"
                    }
                  },
                  "cart-item-not-found-for-shop-error": {
                    "value": {
                      "code": "CART_ITEM_NOT_FOUND_FOR_SHOP_ERROR",
                      "shopId": "<shopid>",
                      "variantId": "<offervariantid>"
                    }
                  },
                  "cart-offer-not-available": {
                    "value": {
                      "code": "CART_OFFER_NOT_AVAILABLE",
                      "variantId": "<offervariantid>"
                    }
                  },
                  "cart-offer-not-purchasable-error": {
                    "value": {
                      "code": "CART_OFFER_NOT_PURCHASABLE_ERROR",
                      "variantId": "<offervariantid>"
                    }
                  },
                  "cart-quantity-too-high": {
                    "value": {
                      "code": "CART_QUANTITY_TOO_HIGH",
                      "variantId": "<offervariantid>",
                      "quantity": "<int>"
                    }
                  },
                  "variant-not-allowed-for-free-products": {
                    "value": {
                      "code": "VARIANT_NOT_ALLOWED_FOR_FREE_PRODUCTS"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Possible errors: `CART_NOT_FOUND`, `CART_OFFER_NOT_FOUND`, `OFFER_VARIANT_NOT_FOUND_ERROR`, `SHOP_TEAM_MEMBER_SHOP_NOT_FOUND_ERROR`",
            "content": {
              "application/json": {
                "examples": {
                  "cart-not-found": {
                    "value": {
                      "code": "CART_NOT_FOUND",
                      "cartId": "<cartid>"
                    }
                  },
                  "cart-offer-not-found": {
                    "value": {
                      "code": "CART_OFFER_NOT_FOUND",
                      "variantId": "<offervariantid?>",
                      "groupedId": "<cartitemgroupedid?>"
                    }
                  },
                  "offer-variant-not-found-error": {
                    "value": {
                      "code": "OFFER_VARIANT_NOT_FOUND_ERROR",
                      "offerVariantId": "<offervariantid>"
                    }
                  },
                  "shop-team-member-shop-not-found-error": {
                    "value": {
                      "code": "SHOP_TEAM_MEMBER_SHOP_NOT_FOUND_ERROR",
                      "shopId": "<shopid>"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/carts/{cartId}/change": {
      "post": {
        "tags": [
          "headless_carts"
        ],
        "summary": "Change cart items quantity",
        "externalDocs": {
          "url": "https://docs.fourthwall.com/api-reference/storefront/carts/change-cart-quantity"
        },
        "operationId": "change-cart-quantity",
        "parameters": [
          {
            "name": "storefront_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "ptkn_xxxxxxxxxxxxxxxxxx"
            }
          },
          {
            "name": "cartId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "USD",
                "EUR",
                "CAD",
                "GBP",
                "AUD",
                "NZD",
                "SEK",
                "NOK",
                "DKK",
                "PLN",
                "INR",
                "JPY",
                "MYR",
                "SGD",
                "MXN",
                "BRL",
                "CHF"
              ]
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/com.fourthwall.app.headless.endpoint.HeadlessCart.XRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/com.fourthwall.app.headless.model.CartV1"
                }
              }
            }
          },
          "400": {
            "description": "Possible errors: `CART_FORBIDDEN_MEMBERS_ONLY_OFFERS_ERROR`, `CART_INCOMPLETE_BUNDLE_ERROR`, `CART_ITEM_NOT_FOUND_FOR_SHOP_ERROR`, `CART_OFFER_NOT_AVAILABLE`, `CART_OFFER_NOT_PURCHASABLE_ERROR`, `CART_QUANTITY_TOO_HIGH`, `VARIANT_NOT_ALLOWED_FOR_FREE_PRODUCTS`",
            "content": {
              "application/json": {
                "examples": {
                  "cart-forbidden-members-only-offers-error": {
                    "value": {
                      "code": "CART_FORBIDDEN_MEMBERS_ONLY_OFFERS_ERROR",
                      "offerIds": "<set>"
                    }
                  },
                  "cart-incomplete-bundle-error": {
                    "value": {
                      "code": "CART_INCOMPLETE_BUNDLE_ERROR",
                      "bundleId": "<offerid>",
                      "details": "<string>"
                    }
                  },
                  "cart-item-not-found-for-shop-error": {
                    "value": {
                      "code": "CART_ITEM_NOT_FOUND_FOR_SHOP_ERROR",
                      "shopId": "<shopid>",
                      "variantId": "<offervariantid>"
                    }
                  },
                  "cart-offer-not-available": {
                    "value": {
                      "code": "CART_OFFER_NOT_AVAILABLE",
                      "variantId": "<offervariantid>"
                    }
                  },
                  "cart-offer-not-purchasable-error": {
                    "value": {
                      "code": "CART_OFFER_NOT_PURCHASABLE_ERROR",
                      "variantId": "<offervariantid>"
                    }
                  },
                  "cart-quantity-too-high": {
                    "value": {
                      "code": "CART_QUANTITY_TOO_HIGH",
                      "variantId": "<offervariantid>",
                      "quantity": "<int>"
                    }
                  },
                  "variant-not-allowed-for-free-products": {
                    "value": {
                      "code": "VARIANT_NOT_ALLOWED_FOR_FREE_PRODUCTS"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Possible errors: `CART_NOT_FOUND`, `CART_OFFER_NOT_FOUND`, `OFFER_VARIANT_NOT_FOUND_ERROR`, `SHOP_TEAM_MEMBER_SHOP_NOT_FOUND_ERROR`",
            "content": {
              "application/json": {
                "examples": {
                  "cart-not-found": {
                    "value": {
                      "code": "CART_NOT_FOUND",
                      "cartId": "<cartid>"
                    }
                  },
                  "cart-offer-not-found": {
                    "value": {
                      "code": "CART_OFFER_NOT_FOUND",
                      "variantId": "<offervariantid?>",
                      "groupedId": "<cartitemgroupedid?>"
                    }
                  },
                  "offer-variant-not-found-error": {
                    "value": {
                      "code": "OFFER_VARIANT_NOT_FOUND_ERROR",
                      "offerVariantId": "<offervariantid>"
                    }
                  },
                  "shop-team-member-shop-not-found-error": {
                    "value": {
                      "code": "SHOP_TEAM_MEMBER_SHOP_NOT_FOUND_ERROR",
                      "shopId": "<shopid>"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/carts/{cartId}/add": {
      "post": {
        "tags": [
          "headless_carts"
        ],
        "summary": "Add to cart",
        "externalDocs": {
          "url": "https://docs.fourthwall.com/api-reference/storefront/carts/add-to-cart"
        },
        "operationId": "add-to-cart",
        "parameters": [
          {
            "name": "storefront_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "ptkn_xxxxxxxxxxxxxxxxxx"
            }
          },
          {
            "name": "cartId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "USD",
                "EUR",
                "CAD",
                "GBP",
                "AUD",
                "NZD",
                "SEK",
                "NOK",
                "DKK",
                "PLN",
                "INR",
                "JPY",
                "MYR",
                "SGD",
                "MXN",
                "BRL",
                "CHF"
              ]
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/com.fourthwall.cart.usecase.CartAdd.Request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/com.fourthwall.app.headless.model.CartV1"
                }
              }
            }
          },
          "400": {
            "description": "Possible errors: `CART_FORBIDDEN_MEMBERS_ONLY_OFFERS_ERROR`, `CART_INCOMPLETE_BUNDLE_ERROR`, `CART_ITEM_NOT_FOUND_FOR_SHOP_ERROR`, `CART_OFFER_NOT_AVAILABLE`, `CART_OFFER_NOT_PURCHASABLE_ERROR`, `CART_QUANTITY_TOO_HIGH`, `VARIANT_NOT_ALLOWED_FOR_FREE_PRODUCTS`",
            "content": {
              "application/json": {
                "examples": {
                  "cart-forbidden-members-only-offers-error": {
                    "value": {
                      "code": "CART_FORBIDDEN_MEMBERS_ONLY_OFFERS_ERROR",
                      "offerIds": "<set>"
                    }
                  },
                  "cart-incomplete-bundle-error": {
                    "value": {
                      "code": "CART_INCOMPLETE_BUNDLE_ERROR",
                      "bundleId": "<offerid>",
                      "details": "<string>"
                    }
                  },
                  "cart-item-not-found-for-shop-error": {
                    "value": {
                      "code": "CART_ITEM_NOT_FOUND_FOR_SHOP_ERROR",
                      "shopId": "<shopid>",
                      "variantId": "<offervariantid>"
                    }
                  },
                  "cart-offer-not-available": {
                    "value": {
                      "code": "CART_OFFER_NOT_AVAILABLE",
                      "variantId": "<offervariantid>"
                    }
                  },
                  "cart-offer-not-purchasable-error": {
                    "value": {
                      "code": "CART_OFFER_NOT_PURCHASABLE_ERROR",
                      "variantId": "<offervariantid>"
                    }
                  },
                  "cart-quantity-too-high": {
                    "value": {
                      "code": "CART_QUANTITY_TOO_HIGH",
                      "variantId": "<offervariantid>",
                      "quantity": "<int>"
                    }
                  },
                  "variant-not-allowed-for-free-products": {
                    "value": {
                      "code": "VARIANT_NOT_ALLOWED_FOR_FREE_PRODUCTS"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Possible errors: `CART_NOT_FOUND`, `CART_OFFER_NOT_FOUND`, `OFFER_VARIANT_NOT_FOUND_ERROR`, `SHOP_TEAM_MEMBER_SHOP_NOT_FOUND_ERROR`",
            "content": {
              "application/json": {
                "examples": {
                  "cart-not-found": {
                    "value": {
                      "code": "CART_NOT_FOUND",
                      "cartId": "<cartid>"
                    }
                  },
                  "cart-offer-not-found": {
                    "value": {
                      "code": "CART_OFFER_NOT_FOUND",
                      "variantId": "<offervariantid?>",
                      "groupedId": "<cartitemgroupedid?>"
                    }
                  },
                  "offer-variant-not-found-error": {
                    "value": {
                      "code": "OFFER_VARIANT_NOT_FOUND_ERROR",
                      "offerVariantId": "<offervariantid>"
                    }
                  },
                  "shop-team-member-shop-not-found-error": {
                    "value": {
                      "code": "SHOP_TEAM_MEMBER_SHOP_NOT_FOUND_ERROR",
                      "shopId": "<shopid>"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/shop": {
      "get": {
        "tags": [
          "headless_shop"
        ],
        "summary": "Get shop information",
        "externalDocs": {
          "url": "https://docs.fourthwall.com/api-reference/storefront/shop/get-shop"
        },
        "operationId": "get-shop",
        "parameters": [
          {
            "name": "storefront_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "ptkn_xxxxxxxxxxxxxxxxxx"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/com.fourthwall.app.headless.model.ShopPublicV1"
                }
              }
            }
          },
          "404": {
            "description": "Possible errors: `SHOP_TEAM_MEMBER_SHOP_NOT_FOUND_ERROR`",
            "content": {
              "application/json": {
                "examples": {
                  "shop-team-member-shop-not-found-error": {
                    "value": {
                      "code": "SHOP_TEAM_MEMBER_SHOP_NOT_FOUND_ERROR",
                      "shopId": "<shopid>"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/products/{slug}": {
      "get": {
        "tags": [
          "headless_products"
        ],
        "summary": "Get a product by slug",
        "externalDocs": {
          "url": "https://docs.fourthwall.com/api-reference/storefront/products/get-product"
        },
        "operationId": "get-product",
        "parameters": [
          {
            "name": "storefront_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "ptkn_xxxxxxxxxxxxxxxxxx"
            }
          },
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "USD",
                "EUR",
                "CAD",
                "GBP",
                "AUD",
                "NZD",
                "SEK",
                "NOK",
                "DKK",
                "PLN",
                "INR",
                "JPY",
                "MYR",
                "SGD",
                "MXN",
                "BRL",
                "CHF"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/com.fourthwall.app.headless.model.ProductV1"
                }
              }
            }
          },
          "404": {
            "description": "Possible errors: `OFFER_SLUG_NOT_FOUND_ERROR`, `OFFER_VARIANT_NOT_FOUND_ERROR`",
            "content": {
              "application/json": {
                "examples": {
                  "offer-slug-not-found-error": {
                    "value": {
                      "code": "OFFER_SLUG_NOT_FOUND_ERROR",
                      "shopId": "<shopid>",
                      "offerSlug": "<slug>"
                    }
                  },
                  "offer-variant-not-found-error": {
                    "value": {
                      "code": "OFFER_VARIANT_NOT_FOUND_ERROR",
                      "offerVariantId": "<offervariantid>"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/collections": {
      "get": {
        "tags": [
          "headless_collections"
        ],
        "summary": "Get all collections",
        "description": "Returns all collections",
        "externalDocs": {
          "url": "https://docs.fourthwall.com/api-reference/storefront/collections/list-collections"
        },
        "operationId": "list-collections",
        "parameters": [
          {
            "name": "storefront_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "ptkn_xxxxxxxxxxxxxxxxxx"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/com.fourthwall.app.headless.model.HeadlessPageResponseCom.fourthwall.app.headless.model.CollectionPublicV1"
                }
              }
            }
          }
        }
      }
    },
    "/v1/collections/{slug}": {
      "get": {
        "tags": [
          "headless_collections"
        ],
        "summary": "Get a collection",
        "description": "Returns a collection",
        "externalDocs": {
          "url": "https://docs.fourthwall.com/api-reference/storefront/collections/get-collection"
        },
        "operationId": "get-collection",
        "parameters": [
          {
            "name": "storefront_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "ptkn_xxxxxxxxxxxxxxxxxx"
            }
          },
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/com.fourthwall.app.headless.model.CollectionPublicV1"
                }
              }
            }
          },
          "404": {
            "description": "Possible errors: `COLLECTION_NOT_FOUND_BY_SHOP_ID_AND_SHOP_ERROR`",
            "content": {
              "application/json": {
                "examples": {
                  "collection-not-found-by-shop-id-and-shop-error": {
                    "value": {
                      "code": "COLLECTION_NOT_FOUND_BY_SHOP_ID_AND_SHOP_ERROR",
                      "shopId": "<shopid>",
                      "slug": "<slug>"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/collections/{slug}/products": {
      "get": {
        "tags": [
          "headless_collections"
        ],
        "summary": "Get products (offers) in a collection",
        "description": "Returns all products in the collection",
        "externalDocs": {
          "url": "https://docs.fourthwall.com/api-reference/storefront/collections/get-collection-products"
        },
        "operationId": "get-collection-products",
        "parameters": [
          {
            "name": "storefront_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "ptkn_xxxxxxxxxxxxxxxxxx"
            }
          },
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "USD",
                "EUR",
                "CAD",
                "GBP",
                "AUD",
                "NZD",
                "SEK",
                "NOK",
                "DKK",
                "PLN",
                "INR",
                "JPY",
                "MYR",
                "SGD",
                "MXN",
                "BRL",
                "CHF"
              ]
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/com.fourthwall.app.headless.model.HeadlessPageResponseCom.fourthwall.app.headless.model.ProductV1"
                }
              }
            }
          },
          "404": {
            "description": "Possible errors: `COLLECTION_NOT_FOUND_BY_SHOP_ID_AND_SHOP_ERROR`, `OFFER_VARIANT_NOT_FOUND_ERROR`",
            "content": {
              "application/json": {
                "examples": {
                  "collection-not-found-by-shop-id-and-shop-error": {
                    "value": {
                      "code": "COLLECTION_NOT_FOUND_BY_SHOP_ID_AND_SHOP_ERROR",
                      "shopId": "<shopid>",
                      "slug": "<slug>"
                    }
                  },
                  "offer-variant-not-found-error": {
                    "value": {
                      "code": "OFFER_VARIANT_NOT_FOUND_ERROR",
                      "offerVariantId": "<offervariantid>"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/carts/{cartId}": {
      "get": {
        "tags": [
          "headless_carts"
        ],
        "summary": "Get cart by id",
        "externalDocs": {
          "url": "https://docs.fourthwall.com/api-reference/storefront/carts/get-cart"
        },
        "operationId": "get-cart",
        "parameters": [
          {
            "name": "storefront_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "ptkn_xxxxxxxxxxxxxxxxxx"
            }
          },
          {
            "name": "cartId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "USD",
                "EUR",
                "CAD",
                "GBP",
                "AUD",
                "NZD",
                "SEK",
                "NOK",
                "DKK",
                "PLN",
                "INR",
                "JPY",
                "MYR",
                "SGD",
                "MXN",
                "BRL",
                "CHF"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/com.fourthwall.app.headless.model.CartV1"
                }
              }
            }
          },
          "404": {
            "description": "Possible errors: `CART_NOT_FOUND`",
            "content": {
              "application/json": {
                "examples": {
                  "cart-not-found": {
                    "value": {
                      "code": "CART_NOT_FOUND",
                      "cartId": "<cartid>"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "com.fourthwall.app.headless.endpoint.HeadlessCart.RequestItem": {
        "type": "object",
        "properties": {
          "variantId": {
            "type": "string",
            "format": "uuid",
            "example": "000009c2-0c75-0024-0000-09c20c750024"
          },
          "quantity": {
            "type": "integer",
            "format": "int32",
            "example": 1,
            "maximum": 1000,
            "minimum": 0
          }
        },
        "required": [
          "quantity",
          "variantId"
        ],
        "title": "Request Item"
      },
      "com.fourthwall.app.headless.endpoint.HeadlessCart.XRequest": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.app.headless.endpoint.HeadlessCart.RequestItem"
            }
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Custom metadata key-value pairs. Max 10 keys, keys must be alphanumeric with underscores, max 256 chars per key, max 512 bytes per value, max 2KB total.",
            "example": {
              "asset_id": "abc123",
              "campaign": "summer_2026"
            }
          }
        },
        "required": [
          "items"
        ],
        "title": "X Request"
      },
      "Money": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "example": 10,
            "minimum": 0
          },
          "currency": {
            "type": "string",
            "example": "USD"
          }
        },
        "required": [
          "currency",
          "value"
        ],
        "title": "Money"
      },
      "com.fourthwall.app.headless.model.CartItemGroupedByV1": {
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "Cart Item Grouped By"
      },
      "com.fourthwall.app.headless.model.CartItemGroupedByV1.Bundle": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.app.headless.model.CartItemGroupedByV1"
          },
          {
            "type": "object",
            "properties": {
              "bundleId": {
                "type": "string"
              },
              "groupedId": {
                "type": "string"
              }
            }
          }
        ],
        "required": [
          "bundleId",
          "groupedId"
        ],
        "title": "Bundle"
      },
      "com.fourthwall.app.headless.model.CartProductVariantV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "unitPrice": {
            "$ref": "#/components/schemas/Money"
          },
          "compareAtPrice": {
            "$ref": "#/components/schemas/Money"
          },
          "attributes": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Attributes"
          },
          "stock": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock.Limited"
              },
              {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock.Unlimited"
              }
            ]
          },
          "weight": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Weight"
          },
          "dimensions": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Dimensions"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.openapi.model.Image"
            }
          },
          "product": {
            "$ref": "#/components/schemas/com.fourthwall.app.headless.model.ProductStubV1"
          }
        },
        "required": [
          "attributes",
          "dimensions",
          "id",
          "images",
          "name",
          "product",
          "sku",
          "stock",
          "unitPrice",
          "weight"
        ],
        "title": "Cart Product Variant"
      },
      "com.fourthwall.app.headless.model.CartV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.app.headless.model.CartV1.CartItemV1"
            }
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "required": [
          "id",
          "items"
        ],
        "title": "Cart"
      },
      "com.fourthwall.app.headless.model.CartV1.CartItemV1": {
        "type": "object",
        "properties": {
          "variant": {
            "$ref": "#/components/schemas/com.fourthwall.app.headless.model.CartProductVariantV1"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "groupedBy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/com.fourthwall.app.headless.model.CartItemGroupedByV1.Bundle"
              }
            ]
          }
        },
        "required": [
          "quantity",
          "variant"
        ],
        "title": "Cart Item"
      },
      "com.fourthwall.app.headless.model.ProductStubV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "slug"
        ],
        "title": "Product Stub"
      },
      "com.fourthwall.openapi.model.Image": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
          },
          "url": {
            "type": "string",
            "example": "https://fourthwall.com/image.png"
          },
          "width": {
            "type": "integer",
            "format": "int32",
            "description": "The original width of the image in pixels.",
            "example": 800
          },
          "height": {
            "type": "integer",
            "format": "int32",
            "description": "The original height of the image in pixels.",
            "example": 600
          },
          "transformedUrl": {
            "type": "string",
            "description": "Transformed URL with applied image processing (e.g., resizing, optimization)",
            "example": "https://fourthwall.com/image.png"
          }
        },
        "required": [
          "height",
          "id",
          "transformedUrl",
          "url",
          "width"
        ],
        "title": "Image"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Attributes": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "example": "Black, L"
          },
          "color": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Attributes.Color"
          },
          "size": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Attributes.Size"
          }
        },
        "required": [
          "description"
        ],
        "title": "Attributes"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Attributes.Color": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Black"
          },
          "swatch": {
            "type": "string",
            "example": "#000000"
          }
        },
        "required": [
          "name",
          "swatch"
        ],
        "title": "Color"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Attributes.Size": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "L"
          }
        },
        "required": [
          "name"
        ],
        "title": "Size"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Dimensions": {
        "type": "object",
        "properties": {
          "length": {
            "type": "number",
            "example": 1
          },
          "width": {
            "type": "number",
            "example": 2
          },
          "height": {
            "type": "number",
            "example": 3
          },
          "unit": {
            "type": "string",
            "example": "cm"
          }
        },
        "required": [
          "height",
          "length",
          "unit",
          "width"
        ],
        "title": "Dimensions"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock": {
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "UNLIMITED": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock.Unlimited",
            "LIMITED": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock.Limited"
          }
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "Stock"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock.Limited": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock"
          },
          {
            "type": "object",
            "properties": {
              "inStock": {
                "type": "integer",
                "format": "int32",
                "example": 5
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "LIMITED"
              }
            }
          }
        ],
        "required": [
          "inStock"
        ],
        "title": "Limited"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock.Unlimited": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "UNLIMITED"
              }
            }
          }
        ],
        "title": "Unlimited"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Weight": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "example": 1
          },
          "unit": {
            "type": "string",
            "example": "kg"
          }
        },
        "required": [
          "unit",
          "value"
        ],
        "title": "Weight"
      },
      "com.fourthwall.cart.model.CartItemGroupBy": {
        "discriminator": {
          "propertyName": "@type",
          "mapping": {
            "BUNDLE": "#/components/schemas/com.fourthwall.cart.model.CartItemGroupBy.Bundle"
          }
        },
        "title": "Cart Item Group By"
      },
      "com.fourthwall.cart.model.CartItemGroupBy.Bundle": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.cart.model.CartItemGroupBy"
          },
          {
            "type": "object",
            "properties": {
              "bundleId": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "@type": {
                "type": "string",
                "const": "BUNDLE"
              }
            }
          }
        ],
        "required": [
          "bundleId"
        ],
        "title": "Bundle"
      },
      "com.fourthwall.cart.usecase.CartAdd.Request": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.cart.usecase.CartAdd.RequestItem"
            }
          }
        },
        "required": [
          "items"
        ],
        "title": "Request"
      },
      "com.fourthwall.cart.usecase.CartAdd.RequestItem": {
        "type": "object",
        "properties": {
          "variantId": {
            "type": "string",
            "format": "uuid"
          },
          "quantity": {
            "type": "integer",
            "format": "int32",
            "maximum": 10000,
            "minimum": 1
          },
          "recStrategy": {
            "type": "string"
          },
          "groupBy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/com.fourthwall.cart.model.CartItemGroupBy.Bundle"
              }
            ]
          }
        },
        "required": [
          "quantity",
          "variantId"
        ],
        "title": "Request Item"
      },
      "com.fourthwall.app.headless.model.ShopPublicV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "domain": {
            "type": "string"
          },
          "publicDomain": {
            "type": "string"
          }
        },
        "required": [
          "domain",
          "id",
          "name",
          "publicDomain"
        ],
        "title": "Shop Public"
      },
      "com.fourthwall.app.headless.model.ProductAdditionalInformationV1": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "MORE_DETAILS",
              "SIZE_AND_FIT",
              "GUARANTEE_AND_RETURNS"
            ]
          },
          "title": {
            "type": "string"
          },
          "bodyHtml": {
            "type": "string"
          }
        },
        "required": [
          "bodyHtml",
          "title",
          "type"
        ],
        "title": "Product Additional Information"
      },
      "com.fourthwall.app.headless.model.ProductSizeGuideV1": {
        "type": "object",
        "properties": {
          "previewUrl": {
            "type": "string"
          },
          "fileUrl": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "fitGuideDescription": {
            "type": "string"
          },
          "fitGuideUrls": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "fitGuideUrls"
        ],
        "title": "Product Size Guide"
      },
      "com.fourthwall.app.headless.model.ProductV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "state": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1.Available"
              },
              {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1.SoldOut"
              }
            ]
          },
          "access": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Archived"
              },
              {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Hidden"
              },
              {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Private"
              },
              {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Public"
              }
            ]
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.openapi.model.Image"
            }
          },
          "variants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.app.headless.model.ProductVariantV1"
            }
          },
          "additionalInformation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.app.headless.model.ProductAdditionalInformationV1"
            }
          },
          "sizeGuide": {
            "$ref": "#/components/schemas/com.fourthwall.app.headless.model.ProductSizeGuideV1"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "example": "2020-08-13T09:05:36.939Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2020-08-13T09:05:36.939Z"
          }
        },
        "required": [
          "access",
          "createdAt",
          "description",
          "id",
          "images",
          "name",
          "slug",
          "state",
          "updatedAt",
          "variants"
        ],
        "title": "Product"
      },
      "com.fourthwall.app.headless.model.ProductVariantV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "unitPrice": {
            "$ref": "#/components/schemas/Money"
          },
          "compareAtPrice": {
            "$ref": "#/components/schemas/Money"
          },
          "attributes": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Attributes"
          },
          "stock": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock.Limited"
              },
              {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock.Unlimited"
              }
            ]
          },
          "weight": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Weight"
          },
          "dimensions": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Dimensions"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.openapi.model.Image"
            }
          }
        },
        "required": [
          "attributes",
          "dimensions",
          "id",
          "images",
          "name",
          "sku",
          "stock",
          "unitPrice",
          "weight"
        ],
        "title": "Product Variant"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1": {
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "PUBLIC": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Public",
            "HIDDEN": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Hidden",
            "PRIVATE": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Private",
            "ARCHIVED": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Archived"
          }
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "Offer Access"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Archived": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "ARCHIVED"
              }
            }
          }
        ],
        "title": "Archived"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Hidden": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "HIDDEN"
              }
            }
          }
        ],
        "title": "Hidden"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Private": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "PRIVATE"
              }
            }
          }
        ],
        "title": "Private"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Public": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "PUBLIC"
              }
            }
          }
        ],
        "title": "Public"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1": {
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "AVAILABLE": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1.Available",
            "SOLD_OUT": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1.SoldOut"
          }
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "Offer State"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1.Available": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "AVAILABLE"
              }
            }
          }
        ],
        "title": "Available"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1.SoldOut": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "SOLD_OUT"
              }
            }
          }
        ],
        "title": "Sold Out"
      },
      "com.fourthwall.app.headless.model.CollectionPublicV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "col_b1EVARkUTcCTSfspQaXr1Q"
          },
          "name": {
            "type": "string",
            "example": "My collection"
          },
          "slug": {
            "type": "string",
            "example": "my-collection"
          },
          "description": {
            "type": "string",
            "example": "My collection description"
          }
        },
        "required": [
          "description",
          "id",
          "name",
          "slug"
        ],
        "title": "Collection Public"
      },
      "com.fourthwall.app.headless.model.HeadlessPageResponseCom.fourthwall.app.headless.model.CollectionPublicV1": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.app.headless.model.CollectionPublicV1"
            }
          },
          "paging": {
            "$ref": "#/components/schemas/com.fourthwall.support.paging.PageResult"
          }
        },
        "required": [
          "results"
        ],
        "title": "Collection Public"
      },
      "com.fourthwall.support.paging.PageResult": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "elementsSize": {
            "type": "integer",
            "format": "int32"
          },
          "elementsTotal": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "hasNextPage": {
            "type": "boolean"
          }
        },
        "required": [
          "elementsSize",
          "elementsTotal",
          "hasNextPage",
          "pageNumber",
          "pageSize",
          "totalPages"
        ],
        "title": "Page Result"
      },
      "com.fourthwall.app.headless.model.HeadlessPageResponseCom.fourthwall.app.headless.model.ProductV1": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.app.headless.model.ProductV1"
            }
          },
          "paging": {
            "$ref": "#/components/schemas/com.fourthwall.support.paging.PageResult"
          }
        },
        "required": [
          "results"
        ],
        "title": "Product"
      },
      "com.fourthwall.openapi.model.OrderV1": {
        "properties": {
          "id": {
            "type": "string",
            "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
          },
          "shopId": {
            "type": "string",
            "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
          },
          "friendlyId": {
            "type": "string",
            "example": "D3XZFWPP"
          },
          "checkoutId": {
            "type": "string",
            "example": "ch_BV44UYrXQA2T_Xcf1288tw"
          },
          "promotionId": {
            "type": "string",
            "example": "prm_EdJvIXu3SEiXe_QkPavHSA"
          },
          "status": {
            "type": "string",
            "enum": [
              "CONFIRMED",
              "PARTIALLY_IN_PRODUCTION",
              "IN_PRODUCTION",
              "PARTIALLY_SHIPPED",
              "SHIPPED",
              "PARTIALLY_DELIVERED",
              "DELIVERED",
              "CANCELLED",
              "COMPLETED"
            ]
          },
          "email": {
            "type": "string",
            "example": "supporter@fourthwall.com"
          },
          "emailMarketingOptIn": {
            "type": "boolean"
          },
          "username": {
            "type": "string",
            "example": "Johnny123"
          },
          "message": {
            "type": "string",
            "example": "Sample message"
          },
          "amounts": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OrderV1.OrderAmounts"
          },
          "billing": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OrderV1.Billing"
          },
          "shipping": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OrderV1.Shipping"
          },
          "offers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferOrderV1"
            }
          },
          "source": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OrderV1.Source"
          },
          "trackingParams": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OrderV1.TrackingParams"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Custom metadata passed during cart creation. Null for orders without metadata."
            },
            "description": "Custom metadata passed during cart creation. Null for orders without metadata."
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "example": "2020-08-13T09:05:36.939Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2020-08-13T09:05:36.939Z"
          }
        },
        "title": "Order"
      },
      "com.fourthwall.openapi.model.Address": {
        "properties": {
          "name": {
            "type": "string",
            "example": "Joe Doe"
          },
          "address1": {
            "type": "string",
            "example": "Main Street 1"
          },
          "address2": {
            "type": "string"
          },
          "city": {
            "type": "string",
            "example": "San Francisco"
          },
          "state": {
            "type": "string",
            "example": "CA"
          },
          "country": {
            "type": "string",
            "example": "US"
          },
          "zip": {
            "type": "string",
            "example": "12345"
          },
          "phone": {
            "type": "string",
            "example": "123456789"
          }
        },
        "title": "Address"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferOrderV1": {
        "properties": {
          "id": {
            "type": "string",
            "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
          },
          "name": {
            "type": "string",
            "example": "My t-shirt"
          },
          "slug": {
            "type": "string",
            "example": "my-t-shirt"
          },
          "description": {
            "type": "string",
            "example": "My t-shirt description"
          },
          "primaryImage": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.Image"
          },
          "variant": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.OfferVariantWithQuantityV1"
          }
        },
        "title": "Offer Order"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.OfferVariantWithQuantityV1": {
        "properties": {
          "id": {
            "type": "string",
            "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
          },
          "name": {
            "type": "string",
            "example": "My t-shirt - Black, L"
          },
          "sku": {
            "type": "string",
            "example": "WDEK-DRE200L"
          },
          "unitPrice": {
            "$ref": "#/components/schemas/Money"
          },
          "unitCost": {
            "$ref": "#/components/schemas/Money"
          },
          "compareAtPrice": {
            "$ref": "#/components/schemas/Money"
          },
          "attributes": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Attributes"
          },
          "quantity": {
            "type": "integer",
            "format": "int32",
            "example": 5
          },
          "price": {
            "$ref": "#/components/schemas/Money"
          },
          "cost": {
            "$ref": "#/components/schemas/Money"
          },
          "weight": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Weight"
          },
          "dimensions": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Dimensions"
          }
        },
        "title": "Offer Variant With Quantity"
      },
      "com.fourthwall.openapi.model.OrderV1.Billing": {
        "properties": {
          "address": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.Address"
          }
        },
        "title": "Billing"
      },
      "com.fourthwall.openapi.model.OrderV1.GiftCard": {
        "properties": {
          "code": {
            "type": "string"
          },
          "amountUsed": {
            "$ref": "#/components/schemas/Money"
          }
        },
        "title": "Gift Card"
      },
      "com.fourthwall.openapi.model.OrderV1.OrderAmounts": {
        "properties": {
          "subtotal": {
            "$ref": "#/components/schemas/Money"
          },
          "shipping": {
            "$ref": "#/components/schemas/Money"
          },
          "tax": {
            "$ref": "#/components/schemas/Money"
          },
          "donation": {
            "$ref": "#/components/schemas/Money"
          },
          "discount": {
            "$ref": "#/components/schemas/Money"
          },
          "giftCards": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.openapi.model.OrderV1.GiftCard"
            }
          },
          "total": {
            "$ref": "#/components/schemas/Money"
          }
        },
        "title": "Order Amounts"
      },
      "com.fourthwall.openapi.model.OrderV1.Shipping": {
        "properties": {
          "address": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.Address"
          }
        },
        "title": "Shipping"
      },
      "com.fourthwall.openapi.model.OrderV1.Source": {
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "ORDER": "#/components/schemas/com.fourthwall.openapi.model.OrderV1.Source.Order",
            "SAMPLES_ORDER": "#/components/schemas/com.fourthwall.openapi.model.OrderV1.Source.SamplesOrder",
            "TWITCH_GIFT_REDEMPTION": "#/components/schemas/com.fourthwall.openapi.model.OrderV1.Source.TwitchGiftRedemption",
            "GIVEAWAY_LINKS": "#/components/schemas/com.fourthwall.openapi.model.OrderV1.Source.GiveawayLinks"
          }
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "Source"
      },
      "com.fourthwall.openapi.model.OrderV1.Source.GiveawayLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OrderV1.Source"
          },
          {
            "type": "object",
            "properties": {
              "giftId": {
                "type": "string",
                "example": "gft_EdJvIXu3SEiXe_QkPavHSA"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "GIVEAWAY_LINKS"
              }
            }
          }
        ],
        "title": "Giveaway Links"
      },
      "com.fourthwall.openapi.model.OrderV1.Source.Order": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OrderV1.Source"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "ORDER"
              }
            }
          }
        ],
        "title": "Order"
      },
      "com.fourthwall.openapi.model.OrderV1.Source.SamplesOrder": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OrderV1.Source"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "SAMPLES_ORDER"
              }
            }
          }
        ],
        "title": "Samples Order"
      },
      "com.fourthwall.openapi.model.OrderV1.Source.TwitchGiftRedemption": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OrderV1.Source"
          },
          {
            "type": "object",
            "properties": {
              "giftPurchaseId": {
                "type": "string",
                "example": "giv_EdJvIXu3SEiXe_QkPavHSA"
              },
              "giftId": {
                "type": "string",
                "example": "gft_EdJvIXu3SEiXe_QkPavHSA"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "TWITCH_GIFT_REDEMPTION"
              }
            }
          }
        ],
        "title": "Twitch Gift Redemption"
      },
      "com.fourthwall.openapi.model.OrderV1.TrackingParams": {
        "properties": {
          "fbc": {
            "type": "string"
          },
          "fbp": {
            "type": "string"
          },
          "utm_source": {
            "type": "string"
          },
          "utm_medium": {
            "type": "string"
          },
          "utm_campaign": {
            "type": "string"
          },
          "utm_content": {
            "type": "string"
          },
          "utm_term": {
            "type": "string"
          }
        },
        "title": "Tracking Params"
      },
      "com.fourthwall.support.money.Money": {
        "properties": {
          "currency": {
            "type": "string",
            "enum": [
              "USD",
              "EUR",
              "CAD",
              "GBP",
              "AUD",
              "NZD",
              "SEK",
              "NOK",
              "DKK",
              "PLN",
              "INR",
              "JPY",
              "MYR",
              "SGD",
              "MXN",
              "BRL",
              "CHF"
            ]
          },
          "zero": {
            "type": "boolean"
          },
          "negative": {
            "type": "boolean"
          },
          "moreThanZero": {
            "type": "boolean"
          },
          "lessThanZero": {
            "type": "boolean"
          },
          "zeroOrLess": {
            "type": "boolean"
          },
          "currencyScale": {
            "type": "integer",
            "format": "int32"
          }
        },
        "title": "Money"
      },
      "com.fourthwall.openapi.model.OrderUpdatedV1": {
        "properties": {
          "order": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OrderV1"
          },
          "update": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OrderUpdatedV1.Update"
          }
        },
        "title": "Order Updated"
      },
      "com.fourthwall.openapi.model.OrderUpdatedV1.Update": {
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "STATUS": "#/components/schemas/com.fourthwall.openapi.model.OrderUpdatedV1.Update.Status",
            "SHIPPING.ADDRESS": "#/components/schemas/com.fourthwall.openapi.model.OrderUpdatedV1.Update.ShippingAddress",
            "EMAIL": "#/components/schemas/com.fourthwall.openapi.model.OrderUpdatedV1.Update.Email"
          }
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "Update"
      },
      "com.fourthwall.openapi.model.OrderUpdatedV1.Update.Email": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OrderUpdatedV1.Update"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "EMAIL"
              }
            }
          }
        ],
        "title": "Email"
      },
      "com.fourthwall.openapi.model.OrderUpdatedV1.Update.ShippingAddress": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OrderUpdatedV1.Update"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "SHIPPING.ADDRESS"
              }
            }
          }
        ],
        "title": "Shipping Address"
      },
      "com.fourthwall.openapi.model.OrderUpdatedV1.Update.Status": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OrderUpdatedV1.Update"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "STATUS"
              }
            }
          }
        ],
        "title": "Status"
      },
      "com.fourthwall.openapi.model.GiftPurchaseV1": {
        "properties": {
          "id": {
            "type": "string",
            "example": "giv_EdJvIXu3SEiXe_QkPavHSA"
          },
          "friendlyId": {
            "type": "string",
            "example": "D3XZFWPP"
          },
          "shopId": {
            "type": "string",
            "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
          },
          "offer": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferGiftPurchaseV1"
          },
          "amounts": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Amounts"
          },
          "email": {
            "type": "string",
            "example": "supporter@fourthwall.com"
          },
          "username": {
            "type": "string",
            "example": "Johnny123"
          },
          "message": {
            "type": "string",
            "example": "Sample message"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "gifts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Gift"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "title": "Gift Purchase"
      },
      "com.fourthwall.openapi.model.GiftPurchaseV1.Amounts": {
        "properties": {
          "subtotal": {
            "$ref": "#/components/schemas/com.fourthwall.support.money.Money"
          },
          "tax": {
            "$ref": "#/components/schemas/com.fourthwall.support.money.Money"
          },
          "total": {
            "$ref": "#/components/schemas/com.fourthwall.support.money.Money"
          },
          "profit": {
            "$ref": "#/components/schemas/com.fourthwall.support.money.Money"
          },
          "prepaidShipping": {
            "$ref": "#/components/schemas/com.fourthwall.support.money.Money"
          }
        },
        "title": "Amounts"
      },
      "com.fourthwall.openapi.model.GiftPurchaseV1.Gift": {
        "discriminator": {
          "propertyName": "status",
          "mapping": {
            "REDEEMED": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Gift.Redeemed",
            "AVAILABLE": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Gift.Available",
            "CANCELLED": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Gift.Cancelled",
            "CHANGED_TO_PROMOTION": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Gift.ChangedToPromotion"
          }
        },
        "properties": {
          "status": {
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "title": "Gift"
      },
      "com.fourthwall.openapi.model.GiftPurchaseV1.Gift.Available": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Gift"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "gft_EdJvIXu3SEiXe_QkPavHSA"
              },
              "winner": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Winner"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "const": "AVAILABLE"
              }
            }
          }
        ],
        "title": "Available"
      },
      "com.fourthwall.openapi.model.GiftPurchaseV1.Gift.Cancelled": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Gift"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "gft_EdJvIXu3SEiXe_QkPavHSA"
              },
              "winner": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Winner"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "const": "CANCELLED"
              }
            }
          }
        ],
        "title": "Cancelled"
      },
      "com.fourthwall.openapi.model.GiftPurchaseV1.Gift.ChangedToPromotion": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Gift"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "gft_EdJvIXu3SEiXe_QkPavHSA"
              },
              "promotionId": {
                "type": "string",
                "example": "prm_EdJvIXu3SEiXe_QkPavHSA"
              },
              "winner": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Winner"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "const": "CHANGED_TO_PROMOTION"
              }
            }
          }
        ],
        "title": "Changed To Promotion"
      },
      "com.fourthwall.openapi.model.GiftPurchaseV1.Gift.Redeemed": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Gift"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "gft_EdJvIXu3SEiXe_QkPavHSA"
              },
              "orderId": {
                "type": "string",
                "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
              },
              "orderFriendlyId": {
                "type": "string",
                "example": "D3XZFWPP"
              },
              "winner": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Winner"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "const": "REDEEMED"
              }
            }
          }
        ],
        "title": "Redeemed"
      },
      "com.fourthwall.openapi.model.GiftPurchaseV1.Winner": {
        "properties": {
          "email": {
            "type": "string",
            "example": "supporter@fourthwall.com"
          },
          "username": {
            "type": "string",
            "example": "Johnny123"
          },
          "selectedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2020-08-13T09:05:36.939Z"
          }
        },
        "title": "Winner"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferGiftPurchaseV1": {
        "properties": {
          "id": {
            "type": "string",
            "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
          },
          "name": {
            "type": "string",
            "example": "My t-shirt"
          },
          "slug": {
            "type": "string",
            "example": "my-t-shirt"
          },
          "description": {
            "type": "string",
            "example": "My t-shirt description"
          },
          "primaryImage": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.Image"
          }
        },
        "title": "Offer Gift Purchase"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferFullV1": {
        "properties": {
          "id": {
            "type": "string",
            "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
          },
          "name": {
            "type": "string",
            "example": "My t-shirt"
          },
          "slug": {
            "type": "string",
            "example": "my-t-shirt"
          },
          "description": {
            "type": "string",
            "example": "My t-shirt description"
          },
          "type": {
            "type": "string",
            "enum": [
              "STANDARD",
              "GIFT_CARD",
              "UNKNOWN"
            ]
          },
          "state": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1"
          },
          "access": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1"
          },
          "thumbnailImage": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.Image"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.openapi.model.Image"
            }
          },
          "variants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.OfferVariantV1"
            }
          },
          "additionalInformation": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAdditionalInformationV1"
          },
          "sizeGuide": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferSizeGuideV1"
          },
          "digitalFiles": {
            "type": "array",
            "description": "Digital files attached to this offer. Only present for digital offers.",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.openapi.model.offer.DigitalFileV1"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "example": "2020-08-13T09:05:36.939Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2020-08-13T09:05:36.939Z"
          }
        },
        "title": "Offer Full"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferAdditionalInformationV1": {
        "properties": {
          "sizeAndFit": {
            "type": "string"
          },
          "guaranteeAndReturns": {
            "type": "string"
          },
          "moreDetails": {
            "type": "string"
          }
        },
        "title": "Offer Additional Information"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferSizeGuideV1": {
        "properties": {
          "previewUrl": {
            "type": "string"
          },
          "fileUrl": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "fitGuideDescription": {
            "type": "string"
          },
          "fitGuideUrls": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "title": "Offer Size Guide"
      },
      "com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.OfferVariantV1": {
        "properties": {
          "id": {
            "type": "string",
            "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
          },
          "name": {
            "type": "string",
            "example": "My t-shirt - Black, L"
          },
          "sku": {
            "type": "string",
            "example": "WDEK-DRE200L"
          },
          "unitPrice": {
            "$ref": "#/components/schemas/com.fourthwall.support.money.Money"
          },
          "compareAtPrice": {
            "$ref": "#/components/schemas/com.fourthwall.support.money.Money"
          },
          "unitCost": {
            "$ref": "#/components/schemas/com.fourthwall.support.money.Money"
          },
          "attributes": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Attributes"
          },
          "creatorDeclaredCost": {
            "$ref": "#/components/schemas/com.fourthwall.support.money.Money"
          },
          "stock": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock"
          },
          "weight": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Weight"
          },
          "dimensions": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Dimensions"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.openapi.model.Image"
            }
          },
          "thumbnailImage": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.Image"
          }
        },
        "title": "Offer Variant"
      },
      "com.fourthwall.openapi.model.offer.DigitalFileV1": {
        "description": "A digital file attached to an offer",
        "properties": {
          "uri": {
            "type": "string",
            "description": "The file URI",
            "example": "https://storage.googleapis.com/bucket/shop/offer/file"
          },
          "name": {
            "type": "string",
            "description": "The file name",
            "example": "my-ebook.pdf"
          },
          "fileSize": {
            "type": "string",
            "description": "Human-readable file size",
            "example": "15.4 MB"
          },
          "mediaType": {
            "type": "string",
            "description": "MIME type of the file",
            "example": "application/pdf"
          }
        },
        "title": "Digital File"
      },
      "com.fourthwall.openapi.model.OfferUpdatedV1": {
        "properties": {
          "product": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferFullV1"
          }
        },
        "title": "Offer Updated"
      },
      "com.fourthwall.openapi.model.DonationV1": {
        "properties": {
          "id": {
            "type": "string",
            "example": "don_Kpcjx4HIQ1e4bTIOjX9CsA"
          },
          "shopId": {
            "type": "string",
            "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
          },
          "status": {
            "type": "string",
            "enum": [
              "OPEN",
              "COMPLETED",
              "ABANDONED",
              "CANCELLED",
              "FAILED"
            ]
          },
          "email": {
            "type": "string",
            "example": "supporter@fourthwall.com"
          },
          "username": {
            "type": "string",
            "example": "Johnny123"
          },
          "message": {
            "type": "string",
            "example": "Sample message"
          },
          "amounts": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Amounts"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "example": "2020-08-13T09:05:36.939Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2020-08-13T09:05:36.939Z"
          }
        },
        "title": "Donation"
      },
      "com.fourthwall.openapi.model.DonationV1.Amounts": {
        "properties": {
          "total": {
            "$ref": "#/components/schemas/com.fourthwall.support.money.Money"
          }
        },
        "title": "Amounts"
      },
      "com.fourthwall.openapi.model.MembershipSupporterV1": {
        "properties": {
          "id": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "example": "supporter@fourthwall.com"
          },
          "nickname": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "example": "2020-08-13T09:05:36.939Z"
          },
          "subscription": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.MembershipSupporterV1.Subscription"
          }
        },
        "title": "Membership Supporter"
      },
      "com.fourthwall.openapi.model.MembershipSupporterV1.Subscription": {
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "ACTIVE": "#/components/schemas/com.fourthwall.openapi.model.MembershipSupporterV1.Subscription.Active",
            "CANCELLED": "#/components/schemas/com.fourthwall.openapi.model.MembershipSupporterV1.Subscription.Cancelled",
            "SUSPENDED": "#/components/schemas/com.fourthwall.openapi.model.MembershipSupporterV1.Subscription.Suspended",
            "NONE": "#/components/schemas/com.fourthwall.openapi.model.MembershipSupporterV1.Subscription.None"
          }
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "Subscription"
      },
      "com.fourthwall.openapi.model.MembershipSupporterV1.Subscription.Active": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.MembershipSupporterV1.Subscription"
          },
          {
            "type": "object",
            "properties": {
              "variant": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.MembershipTierVariantV1"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "ACTIVE"
              }
            }
          }
        ],
        "title": "Active"
      },
      "com.fourthwall.openapi.model.MembershipSupporterV1.Subscription.Cancelled": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.MembershipSupporterV1.Subscription"
          },
          {
            "type": "object",
            "properties": {
              "variant": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.MembershipTierVariantV1"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "CANCELLED"
              }
            }
          }
        ],
        "title": "Cancelled"
      },
      "com.fourthwall.openapi.model.MembershipSupporterV1.Subscription.None": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.MembershipSupporterV1.Subscription"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "NONE"
              }
            }
          }
        ],
        "title": "None"
      },
      "com.fourthwall.openapi.model.MembershipSupporterV1.Subscription.Suspended": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.MembershipSupporterV1.Subscription"
          },
          {
            "type": "object",
            "properties": {
              "variant": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.MembershipTierVariantV1"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "SUSPENDED"
              }
            }
          }
        ],
        "title": "Suspended"
      },
      "com.fourthwall.openapi.model.MembershipTierVariantV1": {
        "properties": {
          "id": {
            "type": "string"
          },
          "tierId": {
            "type": "string"
          },
          "interval": {
            "type": "string",
            "enum": [
              "ANNUAL",
              "MONTHLY"
            ]
          },
          "amount": {
            "$ref": "#/components/schemas/com.fourthwall.support.money.Money"
          },
          "offerId": {
            "type": "string"
          }
        },
        "title": "Membership Tier Variant"
      },
      "com.fourthwall.openapi.model.NewsletterSubscribedV1": {
        "properties": {
          "email": {
            "type": "string"
          }
        },
        "title": "Newsletter Subscribed"
      },
      "com.fourthwall.openapi.model.ThankYouV1": {
        "properties": {
          "id": {
            "type": "string",
            "example": "ty_EdJvIXu3SEiXe_QkPavHSA"
          },
          "mediaUrl": {
            "type": "string",
            "example": "https://fourthwall.com/thankyou/ty_EdJvIXu3SEiXe_QkPavHSA"
          },
          "contribution": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.ThankYouContribution"
          }
        },
        "title": "Thank You"
      },
      "com.fourthwall.openapi.model.ThankYouContribution": {
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "ORDER": "#/components/schemas/com.fourthwall.openapi.model.ThankYouContribution.Order",
            "DONATION": "#/components/schemas/com.fourthwall.openapi.model.ThankYouContribution.Donation",
            "GIFT_PURCHASE": "#/components/schemas/com.fourthwall.openapi.model.ThankYouContribution.GiftPurchase",
            "MEMBERSHIP_PAYMENT_CHARGE": "#/components/schemas/com.fourthwall.openapi.model.ThankYouContribution.Membership"
          }
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "Thank You Contribution"
      },
      "com.fourthwall.openapi.model.ThankYouContribution.Donation": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.ThankYouContribution"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "don_Kpcjx4HIQ1e4bTIOjX9CsA"
              },
              "shopId": {
                "type": "string",
                "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
              },
              "supporter": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.ThankYouContribution.Supporter"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "DONATION"
              }
            }
          }
        ],
        "title": "Donation"
      },
      "com.fourthwall.openapi.model.ThankYouContribution.GiftPurchase": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.ThankYouContribution"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "giv_EdJvIXu3SEiXe_QkPavHSA"
              },
              "shopId": {
                "type": "string",
                "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
              },
              "supporter": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.ThankYouContribution.Supporter"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "GIFT_PURCHASE"
              }
            }
          }
        ],
        "title": "Gift Purchase"
      },
      "com.fourthwall.openapi.model.ThankYouContribution.Membership": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.ThankYouContribution"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "mpc_EdJvIXu3SEiXe_QkPavHSA"
              },
              "shopId": {
                "type": "string",
                "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
              },
              "supporter": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.ThankYouContribution.Supporter"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "MEMBERSHIP_PAYMENT_CHARGE"
              }
            }
          }
        ],
        "title": "Membership"
      },
      "com.fourthwall.openapi.model.ThankYouContribution.Order": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.ThankYouContribution"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
              },
              "shopId": {
                "type": "string",
                "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
              },
              "supporter": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.ThankYouContribution.Supporter"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "ORDER"
              }
            }
          }
        ],
        "title": "Order"
      },
      "com.fourthwall.openapi.model.ThankYouContribution.Supporter": {
        "properties": {
          "email": {
            "type": "string",
            "example": "supporter@fourthwall.com"
          },
          "username": {
            "type": "string",
            "example": "Johnny123"
          },
          "message": {
            "type": "string",
            "example": "Sample message"
          }
        },
        "title": "Supporter"
      },
      "com.fourthwall.openapi.model.GiftDraftV1": {
        "properties": {
          "id": {
            "type": "string",
            "example": "gdr_EdJvIXu3SEiXe_QkPavHSA"
          },
          "type": {
            "type": "string",
            "enum": [
              "INITIAL",
              "REDO"
            ]
          },
          "giveawayId": {
            "type": "string",
            "example": "giv_EdJvIXu3SEiXe_QkPavHSA"
          },
          "giveawayFriendlyId": {
            "type": "string",
            "example": "D3XZFWPP"
          },
          "shopId": {
            "type": "string",
            "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
          },
          "offer": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferGiftPurchaseV1"
          },
          "amounts": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.DonationV1.Amounts"
          },
          "email": {
            "type": "string",
            "example": "supporter@fourthwall.com"
          },
          "username": {
            "type": "string",
            "example": "Johnny123"
          },
          "message": {
            "type": "string",
            "example": "Sample message"
          },
          "gifts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Gift"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "durationSeconds": {
            "type": "integer",
            "format": "int64"
          }
        },
        "title": "Gift Draft"
      },
      "com.fourthwall.openapi.model.GiftDraftV1.Amounts": {
        "properties": {
          "subtotal": {
            "$ref": "#/components/schemas/com.fourthwall.support.money.Money"
          },
          "total": {
            "$ref": "#/components/schemas/com.fourthwall.support.money.Money"
          }
        },
        "title": "Amounts"
      },
      "com.fourthwall.openapi.model.GiftDraftV1.Gift": {
        "discriminator": {
          "propertyName": "status",
          "mapping": {
            "REDEEMED": "#/components/schemas/com.fourthwall.openapi.model.GiftDraftV1.Gift.Redeemed",
            "AVAILABLE": "#/components/schemas/com.fourthwall.openapi.model.GiftDraftV1.Gift.Available",
            "CANCELLED": "#/components/schemas/com.fourthwall.openapi.model.GiftDraftV1.Gift.Cancelled",
            "CHANGED_TO_PROMOTION": "#/components/schemas/com.fourthwall.openapi.model.GiftDraftV1.Gift.ChangedToPromotion",
            "CHANGED_TO_GIFT_CARD": "#/components/schemas/com.fourthwall.openapi.model.GiftDraftV1.Gift.ChangedToGiftCard"
          }
        },
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "title": "Gift"
      },
      "com.fourthwall.openapi.model.GiftDraftV1.Gift.Available": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Gift"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "gft_EdJvIXu3SEiXe_QkPavHSA"
              },
              "winner": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Winner"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "const": "AVAILABLE"
              }
            }
          }
        ],
        "title": "Available"
      },
      "com.fourthwall.openapi.model.GiftDraftV1.Gift.Cancelled": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Gift"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "gft_EdJvIXu3SEiXe_QkPavHSA"
              },
              "winner": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Winner"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "const": "CANCELLED"
              }
            }
          }
        ],
        "title": "Cancelled"
      },
      "com.fourthwall.openapi.model.GiftDraftV1.Gift.ChangedToGiftCard": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Gift"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "gft_EdJvIXu3SEiXe_QkPavHSA"
              },
              "giftCardId": {
                "type": "string",
                "example": "gcrd_EdJvIXu3SEiXe_QkPavHSA"
              },
              "winner": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Winner"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "const": "CHANGED_TO_GIFT_CARD"
              }
            }
          }
        ],
        "title": "Changed To Gift Card"
      },
      "com.fourthwall.openapi.model.GiftDraftV1.Gift.ChangedToPromotion": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Gift"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "gft_EdJvIXu3SEiXe_QkPavHSA"
              },
              "promotionId": {
                "type": "string",
                "example": "prm_EdJvIXu3SEiXe_QkPavHSA"
              },
              "winner": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Winner"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "const": "CHANGED_TO_PROMOTION"
              }
            }
          }
        ],
        "title": "Changed To Promotion"
      },
      "com.fourthwall.openapi.model.GiftDraftV1.Gift.Redeemed": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Gift"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "gft_EdJvIXu3SEiXe_QkPavHSA"
              },
              "orderId": {
                "type": "string",
                "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
              },
              "orderFriendlyId": {
                "type": "string",
                "example": "D3XZFWPP"
              },
              "winner": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1.Winner"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "const": "REDEEMED"
              }
            }
          }
        ],
        "title": "Redeemed"
      },
      "com.fourthwall.openapi.model.GiftDraftV1.Winner": {
        "properties": {
          "email": {
            "type": "string",
            "example": "supporter@fourthwall.com"
          },
          "username": {
            "type": "string",
            "example": "Johnny123"
          },
          "selectedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2020-08-13T09:05:36.939Z"
          },
          "redeemUri": {
            "type": "string",
            "format": "uri"
          }
        },
        "title": "Winner"
      },
      "com.fourthwall.openapi.model.promotions.PromotionV1": {
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "SHOP_SINGLE": "#/components/schemas/com.fourthwall.openapi.model.promotions.SingleShopPromotionV1",
            "SHOP_MULTI": "#/components/schemas/com.fourthwall.openapi.model.promotions.MultiShopPromotionV1",
            "SHOP_AUTO_APPLYING": "#/components/schemas/com.fourthwall.openapi.model.promotions.AutoApplyingShopPromotionV1",
            "MEMBERSHIPS_SINGLE": "#/components/schemas/com.fourthwall.openapi.model.promotions.SingleMembershipsPromotionV1",
            "MEMBERSHIPS_MULTI": "#/components/schemas/com.fourthwall.openapi.model.promotions.MultiMembershipsPromotionV1"
          }
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "Promotion"
      },
      "com.fourthwall.openapi.model.promotions.AutoApplyingShopPromotionV1": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionV1"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "title": {
                "type": "string"
              },
              "code": {
                "type": "string"
              },
              "discount": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1"
              },
              "status": {
                "type": "string",
                "enum": [
                  "Live",
                  "Ended",
                  "Archived",
                  "AllUsed"
                ]
              },
              "requirements": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionRequirementsV1.Shop"
              },
              "usageCount": {
                "type": "integer",
                "format": "int32"
              },
              "limits": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionLimitsV1"
              },
              "appliesTo": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopAppliesToV1"
              },
              "type": {
                "type": "string",
                "const": "SHOP_AUTO_APPLYING"
              }
            }
          }
        ],
        "title": "Auto Applying Shop Promotion"
      },
      "com.fourthwall.openapi.model.promotions.MultiMembershipsPromotionV1": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionV1"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "title": {
                "type": "string"
              },
              "codes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.MultiPromoSubCodeV1"
                }
              },
              "discount": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionMembershipsDiscountTypeV1"
              },
              "status": {
                "type": "string",
                "enum": [
                  "Live",
                  "Ended",
                  "Archived",
                  "AllUsed"
                ]
              },
              "requirements": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionRequirementsV1.Memberships"
              },
              "usageCount": {
                "type": "integer",
                "format": "int32"
              },
              "subscriptionType": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionMembershipsSubscriptionTypeAppliesToV1"
              },
              "tiers": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionMembershipsTiersAppliesToV1"
              },
              "type": {
                "type": "string",
                "const": "MEMBERSHIPS_MULTI"
              }
            }
          }
        ],
        "title": "Multi Memberships Promotion"
      },
      "com.fourthwall.openapi.model.promotions.MultiPromoSubCodeV1": {
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "usageCount": {
            "type": "integer",
            "format": "int32"
          },
          "status": {
            "type": "string",
            "enum": [
              "Live",
              "Ended",
              "Archived",
              "AllUsed"
            ]
          }
        },
        "title": "Multi Promo Sub Code"
      },
      "com.fourthwall.openapi.model.promotions.MultiShopPromotionV1": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionV1"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "title": {
                "type": "string"
              },
              "codes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.MultiPromoSubCodeV1"
                }
              },
              "discount": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1"
              },
              "status": {
                "type": "string",
                "enum": [
                  "Live",
                  "Ended",
                  "Archived",
                  "AllUsed"
                ]
              },
              "requirements": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionRequirementsV1.Shop"
              },
              "limits": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionLimitsV1"
              },
              "usageCount": {
                "type": "integer",
                "format": "int32"
              },
              "appliesTo": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopAppliesToV1"
              },
              "type": {
                "type": "string",
                "const": "SHOP_MULTI"
              }
            }
          }
        ],
        "title": "Multi Shop Promotion"
      },
      "com.fourthwall.openapi.model.promotions.PromotionLimitsV1": {
        "properties": {
          "maximumUsesNumber": {
            "type": "integer",
            "format": "int32"
          },
          "oneUsePerCustomer": {
            "type": "boolean"
          }
        },
        "title": "Promotion Limits"
      },
      "com.fourthwall.openapi.model.promotions.PromotionMembershipsDiscountTypeV1": {
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "MEMBERSHIPS_PERCENTAGE": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionMembershipsDiscountTypeV1.Percentage"
          }
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "Promotion Memberships Discount Type"
      },
      "com.fourthwall.openapi.model.promotions.PromotionMembershipsDiscountTypeV1.Percentage": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionMembershipsDiscountTypeV1"
          },
          {
            "type": "object",
            "properties": {
              "percentage": {
                "type": "number"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "MEMBERSHIPS_PERCENTAGE"
              }
            }
          }
        ],
        "title": "Percentage"
      },
      "com.fourthwall.openapi.model.promotions.PromotionMembershipsSubscriptionTypeAppliesToV1": {
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "ALL": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionMembershipsSubscriptionTypeAppliesToV1.AllMembers",
            "MONTHLY": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionMembershipsSubscriptionTypeAppliesToV1.MonthlyMembersOnly",
            "ANNUAL": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionMembershipsSubscriptionTypeAppliesToV1.AnnualMembersOnly"
          }
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "Promotion Memberships Subscription Type Applies To"
      },
      "com.fourthwall.openapi.model.promotions.PromotionMembershipsSubscriptionTypeAppliesToV1.AllMembers": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionMembershipsSubscriptionTypeAppliesToV1"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "ALL"
              }
            }
          }
        ],
        "title": "All Members"
      },
      "com.fourthwall.openapi.model.promotions.PromotionMembershipsSubscriptionTypeAppliesToV1.AnnualMembersOnly": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionMembershipsSubscriptionTypeAppliesToV1"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "ANNUAL"
              }
            }
          }
        ],
        "title": "Annual Members Only"
      },
      "com.fourthwall.openapi.model.promotions.PromotionMembershipsSubscriptionTypeAppliesToV1.MonthlyMembersOnly": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionMembershipsSubscriptionTypeAppliesToV1"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "MONTHLY"
              }
            }
          }
        ],
        "title": "Monthly Members Only"
      },
      "com.fourthwall.openapi.model.promotions.PromotionMembershipsTiersAppliesToV1": {
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "ALL": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionMembershipsTiersAppliesToV1.AllTiers",
            "SELECTED": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionMembershipsTiersAppliesToV1.SelectedTiers"
          }
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "Promotion Memberships Tiers Applies To"
      },
      "com.fourthwall.openapi.model.promotions.PromotionMembershipsTiersAppliesToV1.AllTiers": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionMembershipsTiersAppliesToV1"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "ALL"
              }
            }
          }
        ],
        "title": "All Tiers"
      },
      "com.fourthwall.openapi.model.promotions.PromotionMembershipsTiersAppliesToV1.SelectedTiers": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionMembershipsTiersAppliesToV1"
          },
          {
            "type": "object",
            "properties": {
              "tiersIds": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "SELECTED"
              }
            }
          }
        ],
        "title": "Selected Tiers"
      },
      "com.fourthwall.openapi.model.promotions.PromotionRequirementsV1.Memberships": {
        "properties": {
          "newMembersOnly": {
            "type": "boolean"
          }
        },
        "title": "Memberships"
      },
      "com.fourthwall.openapi.model.promotions.PromotionRequirementsV1.Shop": {
        "properties": {
          "minimumOrderValue": {
            "$ref": "#/components/schemas/com.fourthwall.support.money.Money"
          }
        },
        "title": "Shop"
      },
      "com.fourthwall.openapi.model.promotions.PromotionShopAppliesToV1": {
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "ENTIRE_ORDER": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopAppliesToV1.EntireOrder",
            "SELECTED_PRODUCTS": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopAppliesToV1.SelectedProducts",
            "ENTIRE_ORDER_WITH_EXCLUDED_PRODUCTS": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopAppliesToV1.EntireOrderWithExcludedProducts"
          }
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "Promotion Shop Applies To"
      },
      "com.fourthwall.openapi.model.promotions.PromotionShopAppliesToV1.EntireOrder": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopAppliesToV1"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "ENTIRE_ORDER"
              }
            }
          }
        ],
        "title": "Entire Order"
      },
      "com.fourthwall.openapi.model.promotions.PromotionShopAppliesToV1.EntireOrderWithExcludedProducts": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopAppliesToV1"
          },
          {
            "type": "object",
            "properties": {
              "excludedProducts": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "ENTIRE_ORDER_WITH_EXCLUDED_PRODUCTS"
              }
            }
          }
        ],
        "title": "Entire Order With Excluded Products"
      },
      "com.fourthwall.openapi.model.promotions.PromotionShopAppliesToV1.SelectedProducts": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopAppliesToV1"
          },
          {
            "type": "object",
            "properties": {
              "products": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "oncePerOrder": {
                "type": "boolean"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "SELECTED_PRODUCTS"
              }
            }
          }
        ],
        "title": "Selected Products"
      },
      "com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1": {
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "PERCENTAGE": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.Percentage",
            "FLAT_RATE": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.FixedAmount",
            "FREE_SHIPPING": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.FreeShipping",
            "FREE_PRODUCTS": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.FreeProducts"
          }
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "Promotion Shop Discount Type"
      },
      "com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.FixedAmount": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1"
          },
          {
            "type": "object",
            "properties": {
              "money": {
                "$ref": "#/components/schemas/com.fourthwall.support.money.Money"
              },
              "freeShipping": {
                "type": "boolean"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "FLAT_RATE"
              }
            }
          }
        ],
        "title": "Fixed Amount"
      },
      "com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.FreeProducts": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1"
          },
          {
            "type": "object",
            "properties": {
              "freeProductsType": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.FreeProducts.Type"
              },
              "freeShipping": {
                "type": "boolean"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "FREE_PRODUCTS"
              }
            }
          }
        ],
        "title": "Free Products"
      },
      "com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.FreeProducts.AutoAddedFreeProduct": {
        "properties": {
          "variantId": {
            "type": "string"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          }
        },
        "title": "Auto Added Free Product"
      },
      "com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.FreeProducts.ManuallyAddedFreeProduct": {
        "properties": {
          "availableVariantIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          }
        },
        "title": "Manually Added Free Product"
      },
      "com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.FreeProducts.Type": {
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "AUTO_ADDED": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.FreeProducts.Type.AutoAdded",
            "MANUALLY_ADDED": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.FreeProducts.Type.ManuallyAdded"
          }
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "Type"
      },
      "com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.FreeProducts.Type.AutoAdded": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.FreeProducts.Type"
          },
          {
            "type": "object",
            "properties": {
              "products": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.FreeProducts.AutoAddedFreeProduct"
                }
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "AUTO_ADDED"
              }
            }
          }
        ],
        "title": "Auto Added"
      },
      "com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.FreeProducts.Type.ManuallyAdded": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.FreeProducts.Type"
          },
          {
            "type": "object",
            "properties": {
              "products": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.FreeProducts.ManuallyAddedFreeProduct"
                }
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "MANUALLY_ADDED"
              }
            }
          }
        ],
        "title": "Manually Added"
      },
      "com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.FreeShipping": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1"
          },
          {
            "type": "object",
            "properties": {
              "lowestOnly": {
                "type": "boolean"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "FREE_SHIPPING"
              }
            }
          }
        ],
        "title": "Free Shipping"
      },
      "com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1.Percentage": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1"
          },
          {
            "type": "object",
            "properties": {
              "percentage": {
                "type": "number"
              },
              "shippingOption": {
                "type": "string",
                "enum": [
                  "Included",
                  "Excluded",
                  "Free",
                  "FreeLowestOnly"
                ]
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "PERCENTAGE"
              }
            }
          }
        ],
        "title": "Percentage"
      },
      "com.fourthwall.openapi.model.promotions.SingleMembershipsPromotionV1": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionV1"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "code": {
                "type": "string"
              },
              "discount": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionMembershipsDiscountTypeV1"
              },
              "status": {
                "type": "string",
                "enum": [
                  "Live",
                  "Ended",
                  "Archived",
                  "AllUsed"
                ]
              },
              "requirements": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionRequirementsV1.Memberships"
              },
              "usageCount": {
                "type": "integer",
                "format": "int32"
              },
              "subscriptionType": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionMembershipsSubscriptionTypeAppliesToV1"
              },
              "tiers": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionMembershipsTiersAppliesToV1"
              },
              "type": {
                "type": "string",
                "const": "MEMBERSHIPS_SINGLE"
              }
            }
          }
        ],
        "title": "Single Memberships Promotion"
      },
      "com.fourthwall.openapi.model.promotions.SingleShopPromotionV1": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionV1"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "code": {
                "type": "string"
              },
              "discount": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopDiscountTypeV1"
              },
              "status": {
                "type": "string",
                "enum": [
                  "Live",
                  "Ended",
                  "Archived",
                  "AllUsed"
                ]
              },
              "requirements": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionRequirementsV1.Shop"
              },
              "usageCount": {
                "type": "integer",
                "format": "int32"
              },
              "limits": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionLimitsV1"
              },
              "appliesTo": {
                "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionShopAppliesToV1"
              },
              "type": {
                "type": "string",
                "const": "SHOP_SINGLE"
              }
            }
          }
        ],
        "title": "Single Shop Promotion"
      },
      "com.fourthwall.openapi.model.PlatformAppDisconnectedV1": {
        "properties": {
          "appId": {
            "type": "string",
            "example": "apps.test_app"
          },
          "shopId": {
            "type": "string",
            "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
          }
        },
        "title": "Platform App Disconnected"
      },
      "com.fourthwall.openapi.model.CollectionV1": {
        "properties": {
          "id": {
            "type": "string",
            "example": "col_b1EVARkUTcCTSfspQaXr1Q"
          },
          "shopId": {
            "type": "string",
            "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
          },
          "name": {
            "type": "string",
            "example": "My collection"
          },
          "slug": {
            "type": "string",
            "example": "my-collection"
          },
          "description": {
            "type": "string",
            "example": "My collection description"
          },
          "available": {
            "type": "boolean"
          },
          "state": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.CollectionStateV1"
          },
          "offerIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "title": "Collection"
      },
      "com.fourthwall.openapi.model.CollectionStateV1": {
        "description": "Collection state",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "PUBLIC": "#/components/schemas/com.fourthwall.openapi.model.CollectionStateV1.Public",
            "HIDDEN": "#/components/schemas/com.fourthwall.openapi.model.CollectionStateV1.Hidden",
            "PRIVATE": "#/components/schemas/com.fourthwall.openapi.model.CollectionStateV1.Private",
            "ARCHIVED": "#/components/schemas/com.fourthwall.openapi.model.CollectionStateV1.Archived"
          }
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "Collection State"
      },
      "com.fourthwall.openapi.model.CollectionStateV1.Archived": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.CollectionStateV1"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "ARCHIVED"
              }
            }
          }
        ],
        "description": "Archived collection state",
        "title": "Archived"
      },
      "com.fourthwall.openapi.model.CollectionStateV1.Hidden": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.CollectionStateV1"
          },
          {
            "type": "object",
            "properties": {
              "available": {
                "type": "boolean"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "HIDDEN"
              }
            }
          }
        ],
        "description": "Hidden collection state",
        "title": "Hidden"
      },
      "com.fourthwall.openapi.model.CollectionStateV1.Private": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.CollectionStateV1"
          },
          {
            "type": "object",
            "properties": {
              "available": {
                "type": "boolean"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "PRIVATE"
              }
            }
          }
        ],
        "description": "Private collection state",
        "title": "Private"
      },
      "com.fourthwall.openapi.model.CollectionStateV1.Public": {
        "allOf": [
          {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.CollectionStateV1"
          },
          {
            "type": "object",
            "properties": {
              "available": {
                "type": "boolean"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "PUBLIC"
              }
            }
          }
        ],
        "description": "Public collection state",
        "title": "Public"
      },
      "com.fourthwall.openapi.model.CartAbandonedV1": {
        "properties": {
          "cartId": {
            "type": "string"
          },
          "shopId": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "marketingConsent": {
            "type": "boolean"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.fourthwall.openapi.model.CartAbandonedV1.CartItem"
            }
          },
          "cartOrigin": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "cartCreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "cartUpdatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "checkout": {
            "$ref": "#/components/schemas/com.fourthwall.openapi.model.CartAbandonedV1.CheckoutContext"
          }
        },
        "title": "Cart Abandoned"
      },
      "com.fourthwall.openapi.model.CartAbandonedV1.CartItem": {
        "properties": {
          "offerVariantId": {
            "type": "string"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          }
        },
        "title": "Cart Item"
      },
      "com.fourthwall.openapi.model.CartAbandonedV1.CheckoutContext": {
        "properties": {
          "checkoutId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "currentStep": {
            "type": "string"
          },
          "checkoutCreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "checkoutUpdatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "title": "Checkout Context"
      }
    },
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic"
      }
    }
  },
  "webhooks": {
    "order.placed": {
      "post": {
        "tags": [
          "Order Events"
        ],
        "summary": "Order Placed",
        "description": "Fired when a new order is successfully placed and paid.",
        "operationId": "webhook-order-placed",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "ORDER_PLACED"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.OrderV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "order.updated": {
      "post": {
        "tags": [
          "Order Events"
        ],
        "summary": "Order Updated",
        "description": "Fired when an order's status, shipping address, or email is updated.",
        "operationId": "webhook-order-updated",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "ORDER_UPDATED"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.OrderUpdatedV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "gift.purchase": {
      "post": {
        "tags": [
          "Order Events"
        ],
        "summary": "Gift Purchase",
        "description": "Fired when a gift card is purchased.",
        "operationId": "webhook-gift-purchase",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "GIFT_PURCHASE"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftPurchaseV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "product.created": {
      "post": {
        "tags": [
          "Product Events"
        ],
        "summary": "Product Created",
        "description": "Fired when a new product is created.",
        "operationId": "webhook-product-created",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "PRODUCT_CREATED"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferFullV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "product.updated": {
      "post": {
        "tags": [
          "Product Events"
        ],
        "summary": "Product Updated",
        "description": "Fired when a product is updated.",
        "operationId": "webhook-product-updated",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "PRODUCT_UPDATED"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.OfferUpdatedV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "donation": {
      "post": {
        "tags": [
          "Order Events"
        ],
        "summary": "Donation",
        "description": "Fired when a new donation is received.",
        "operationId": "webhook-donation",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "DONATION"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.DonationV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "subscription.purchased": {
      "post": {
        "tags": [
          "Membership Events"
        ],
        "summary": "Subscription Purchased",
        "description": "Fired when a new membership subscription is purchased.",
        "operationId": "webhook-subscription-purchased",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "SUBSCRIPTION_PURCHASED"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.MembershipSupporterV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "subscription.expired": {
      "post": {
        "tags": [
          "Membership Events"
        ],
        "summary": "Subscription Expired",
        "description": "Fired when a membership subscription expires.",
        "operationId": "webhook-subscription-expired",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "SUBSCRIPTION_EXPIRED"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.MembershipSupporterV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "subscription.changed": {
      "post": {
        "tags": [
          "Membership Events"
        ],
        "summary": "Subscription Changed",
        "description": "Fired when a membership subscription is changed (e.g., tier change).",
        "operationId": "webhook-subscription-changed",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "SUBSCRIPTION_CHANGED"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.MembershipSupporterV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "newsletter.subscribed": {
      "post": {
        "tags": [
          "Newsletter Events"
        ],
        "summary": "Newsletter Subscribed",
        "description": "Fired when someone subscribes to the newsletter.",
        "operationId": "webhook-newsletter-subscribed",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "NEWSLETTER_SUBSCRIBED"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.NewsletterSubscribedV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "thank.you.sent": {
      "post": {
        "tags": [
          "Thank You Events"
        ],
        "summary": "Thank You Sent",
        "description": "Fired when a thank you message is sent to a supporter.",
        "operationId": "webhook-thank-you-sent",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "THANK_YOU_SENT"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.ThankYouV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "gift.draw.started": {
      "post": {
        "tags": [
          "Giveaway Events"
        ],
        "summary": "Gift Draw Started",
        "description": "Fired when a giveaway draw is started.",
        "operationId": "webhook-gift-draw-started",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "GIFT_DRAW_STARTED"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftDraftV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "gift.draw.ended": {
      "post": {
        "tags": [
          "Giveaway Events"
        ],
        "summary": "Gift Draw Ended",
        "description": "Fired when a giveaway draw ends.",
        "operationId": "webhook-gift-draw-ended",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "GIFT_DRAW_ENDED"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.GiftDraftV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "promotion.created": {
      "post": {
        "tags": [
          "Promotion Events"
        ],
        "summary": "Promotion Created",
        "description": "Fired when a new promotion is created.",
        "operationId": "webhook-promotion-created",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "PROMOTION_CREATED"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "promotion.updated": {
      "post": {
        "tags": [
          "Promotion Events"
        ],
        "summary": "Promotion Updated",
        "description": "Fired when a promotion is updated.",
        "operationId": "webhook-promotion-updated",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "PROMOTION_UPDATED"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "promotion.status.changed": {
      "post": {
        "tags": [
          "Promotion Events"
        ],
        "summary": "Promotion Status Changed",
        "description": "Fired when a promotion's status changes (e.g., activated, expired).",
        "operationId": "webhook-promotion-status-changed",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "PROMOTION_STATUS_CHANGED"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.promotions.PromotionV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "platform.app.disconnected": {
      "post": {
        "tags": [
          "Platform Events"
        ],
        "summary": "Platform App Disconnected",
        "description": "Fired when a platform app is disconnected from a shop.",
        "operationId": "webhook-platform-app-disconnected",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "PLATFORM_APP_DISCONNECTED"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.PlatformAppDisconnectedV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "collection.updated": {
      "post": {
        "tags": [
          "Collection Events"
        ],
        "summary": "Collection Updated",
        "description": "Fired when a collection is updated.",
        "operationId": "webhook-collection-updated",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "COLLECTION_UPDATED"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.CollectionV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "cart.abandoned.1h": {
      "post": {
        "tags": [
          "Cart Events"
        ],
        "summary": "Cart Abandoned (1 Hour)",
        "description": "Fired when a cart has been inactive for 1 hour.",
        "operationId": "webhook-cart-abandoned-1h",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "CART_ABANDONED_1H"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.CartAbandonedV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "cart.abandoned.24h": {
      "post": {
        "tags": [
          "Cart Events"
        ],
        "summary": "Cart Abandoned (24 Hours)",
        "description": "Fired when a cart has been inactive for 24 hours.",
        "operationId": "webhook-cart-abandoned-24h",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "CART_ABANDONED_24H"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.CartAbandonedV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    },
    "cart.abandoned.72h": {
      "post": {
        "tags": [
          "Cart Events"
        ],
        "summary": "Cart Abandoned (72 Hours)",
        "description": "Fired when a cart has been inactive for 72 hours. This is the final abandonment signal.",
        "operationId": "webhook-cart-abandoned-72h",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for this webhook event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "webhookId": {
                    "type": "string",
                    "description": "ID of the webhook configuration that triggered this event",
                    "example": "00aa4abd-5778-4199-8161-0b49b2f212e5"
                  },
                  "shopId": {
                    "type": "string",
                    "description": "ID of the shop that generated this event",
                    "example": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb"
                  },
                  "type": {
                    "type": "string",
                    "description": "The event type",
                    "example": "CART_ABANDONED_72H"
                  },
                  "apiVersion": {
                    "type": "string",
                    "description": "API version of the webhook payload",
                    "example": "V1"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When this event was created",
                    "example": "2020-08-13T09:05:36.939+00:00"
                  },
                  "testMode": {
                    "description": "Whether this event was sent in test mode",
                    "example": false
                  },
                  "data": {
                    "$ref": "#/components/schemas/com.fourthwall.openapi.model.CartAbandonedV1"
                  }
                },
                "required": [
                  "apiVersion",
                  "createdAt",
                  "data",
                  "id",
                  "shopId",
                  "testMode",
                  "type",
                  "webhookId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Event received successfully"
          }
        }
      }
    }
  }
}