{
  "openapi": "3.1.1",
  "info": {
    "title": "Stora Public API",
    "version": "2025-09",
    "x-build-date": "2026-07-08",
    "description": "The Stora Public API gives you programmatic access to your self-storage business. Use it to build custom integrations, automate operational workflows, and sync data with the tools you already use.",
    "termsOfService": "https://www.stora.co/terms-of-service",
    "contact": {
      "name": "Stora Support",
      "url": "https://www.stora.co/contact"
    }
  },
  "externalDocs": {
    "description": "Stora Public API documentation website",
    "url": "https://docs.stora.co/2025-09/"
  },
  "tags": [
    {
      "name": "Contacts",
      "description": "Contact is the end user of an operator’s storage business — an individual or company that inquires, books, signs agreements, and pays for storage."
    },
    {
      "name": "Contract Templates",
      "description": "Contract Template is a reusable contract blueprint. It contains the contract content with fillable fields and variables that Stora can pre‑fill at document generation time for a specific contact and tenancy."
    },
    {
      "name": "Contracts",
      "description": "Contract is a document generated from a contract template for a specific contact. It tracks the signing lifecycle, moving through statuses such as pending, signed, voided, declined, and deleted."
    },
    {
      "name": "Coupons",
      "description": "Coupon is a reusable promotion that reduces the price a contact pays by either a percentage or a fixed amount. It can be applied to eligible charges such as unit rent or product and may be limited by duration, number of uses, or scope."
    },
    {
      "name": "Credit Notes",
      "description": "Credit Note reduces or reverses part or all of a previously issued invoice. It references the original invoice and contact, along with the specified corrected amounts and taxes."
    },
    {
      "name": "Deals",
      "description": "Deal refers to the collection of information pertaining to a potential order including contact, site, unit types, protection."
    },
    {
      "name": "Deals / Stages",
      "description": "Deal Stage refers to the stages a deal transitions through."
    },
    {
      "name": "Identity Verifications",
      "description": "Identity Verification tracks the process of verifying a contacts identity."
    },
    {
      "name": "Images",
      "description": "Serves images associated with resources such as sites and unit types. The endpoint redirects to a temporary pre-signed storage URL where the image can be downloaded."
    },
    {
      "name": "Invoices",
      "description": "Invoice is a finalized billing document issued to a contact for their storage subscriptions and related charges. It itemizes line items like unit rent and protection, applies taxes and discounts, and tracks totals, balance due, and status over time."
    },
    {
      "name": "Notes",
      "description": "A note is a text annotation attached to a resource such as a contact, unit, subscription, or task. Notes capture observations, reminders, or context added by staff or integrations."
    },
    {
      "name": "OAuth 2",
      "description": "The Stora Public API supports two OAuth 2.0 flows. Use **Client Credentials** if you are an operator building your own integration. Use **Authorization Code** if you are a partner integrating on behalf of an operator."
    },
    {
      "name": "Orders",
      "description": "Order captures a contact’s intent to rent storage, including the selected site and unit type, move‑in date, pricing, and optional add‑ons like protection, products, and services. It tracks status over its lifecycle, and may lead to a subscription that bills on a recurring basis."
    },
    {
      "name": "Orders / Line Items",
      "description": "Order Line Items are the individual charges that make up an order. Each line item represents a product or service such as unit rent, protection, or a one‑off fee, and includes its quantity, unit price, and currency."
    },
    {
      "name": "Product Categories",
      "description": "Product Category groups related products and services into a logical classification used for pricing and display."
    },
    {
      "name": "Products",
      "description": "Product represents a sellable item or service offered by the operator. It defines attributes such as name, description, pricing model, currency, and category, which determine how it’s presented and billed."
    },
    {
      "name": "Protection Levels",
      "description": "Protection Level is an optional add‑on that protects a contact’s stored goods up to a chosen coverage amount. It’s priced and billed alongside storage, appears as its own product or line item, and follows the same tax and discount rules as other charges."
    },
    {
      "name": "Sites",
      "description": "Site is a single physical self‑storage location operated by the operator. It’s the container for everything specific to that location: units and unit types, pricing and taxes, access control, and reporting."
    },
    {
      "name": "Staff",
      "description": "Staff refers to a member of an organization who works on behalf of the operator."
    },
    {
      "name": "Subscriptions",
      "description": "Subscription is an ongoing billing agreement that charges a contact on a recurring schedule for storage and related services. It defines the billing period and active prices, accrues charges into invoices, and reflects proration, discounts, and taxes."
    },
    {
      "name": "Tasks",
      "description": "Tasks represent individual pieces of work or actions."
    },
    {
      "name": "Tenancies",
      "description": "Tenancy represents an ongoing storage agreement between a contact and an operator, tied to a site and one or more allocated units."
    },
    {
      "name": "Timeline / Events",
      "description": "An event represents a custom timeline entry created by an external integration, such as a CRM or messaging app."
    },
    {
      "name": "Timeline / Sources",
      "description": "A source represents the origin of a custom timeline event, such as an external CRM, or a custom integration."
    },
    {
      "name": "Timeline / Templates",
      "description": "A template defines the message format for a custom timeline event, including the Liquid template and available variables."
    },
    {
      "name": "Unit Allocations",
      "description": "Unit Allocation represents the assignment of a specific unit to a tenancy, tracking reservation and access details."
    },
    {
      "name": "Unit Types",
      "description": "Unit Type represents a standardized storage offering at a site, such as “50 sq ft indoor” or “20 ft container.” It defines core attributes used for pricing and availability, including size, features or access type, and display name."
    },
    {
      "name": "Units",
      "description": "Unit is a specific, bookable storage space at a site, for example “Unit A‑012” of a given unit type. It carries concrete attributes like identifier and status."
    },
    {
      "name": "Webhook Endpoints",
      "description": "Webhook endpoints are used to receive notifications when specific events occur in Stora. We will send a `POST` request to the endpoint with the event payload."
    },
    {
      "name": "Webhooks",
      "description": "Webhooks are HTTP callbacks that send real-time `POST` requests to your configured endpoints when specific events occur in Stora. When an event happens (such as an invoice being paid or a credit note being created), Stora will immediately send a webhook notification to all endpoints subscribed to that event type."
    }
  ],
  "paths": {
    "/2025-09/contacts": {
      "get": {
        "summary": "List all Contacts",
        "tags": [
          "Contacts"
        ],
        "operationId": "contact_list",
        "description": "Retrieve a list of all contacts.\n\nRequired authorization scope: `public.contact:read`\n",
        "security": [
          {
            "Bearer": [
              "public.contact:read"
            ]
          },
          {
            "OAuth2": [
              "public.contact:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at",
                "full_name"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "email",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "email"
              }
            },
            "description": "Find by email. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Search contacts by name, email, or phone (fuzzy match). **BETA**",
            "required": false
          },
          {
            "name": "type",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "domestic",
                  "company",
                  "student",
                  "charity",
                  "local_authority",
                  "unspecified"
                ]
              }
            },
            "description": "Filter by type. Supports multiple values separated by a comma. `unspecified` will filter by `null` value.",
            "examples": {
              "single": {
                "value": [
                  "domestic"
                ]
              },
              "multiple": {
                "value": [
                  "domestic",
                  "student"
                ]
              }
            },
            "required": false
          },
          {
            "name": "source",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "pre_open",
                  "incomplete_booking",
                  "registered_interest",
                  "price_interest",
                  "quotation_request",
                  "booking",
                  "popup",
                  "external_enquiry",
                  "phone",
                  "walkin",
                  "import",
                  "other",
                  "unspecified"
                ]
              }
            },
            "description": "Filter by source. Supports multiple values separated by a comma. `unspecified` will filter by `null` value.",
            "examples": {
              "single": {
                "value": [
                  "pre_open"
                ]
              },
              "multiple": {
                "value": [
                  "popup",
                  "phone"
                ]
              }
            },
            "required": false
          },
          {
            "name": "marketing_source",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "used_before",
                  "recommendation",
                  "received_leaflet",
                  "seen_building_signs",
                  "seen_advert",
                  "facebook_marketplace",
                  "google_search",
                  "other_online_search",
                  "social_media",
                  "email",
                  "radio",
                  "other",
                  "unspecified"
                ]
              }
            },
            "description": "Filter by marketing source. Supports multiple values separated by a comma. `unspecified` will filter by `null` value.",
            "examples": {
              "single": {
                "value": [
                  "radio"
                ]
              },
              "multiple": {
                "value": [
                  "radio",
                  "email"
                ]
              }
            },
            "required": false
          },
          {
            "name": "use_case",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "business_needs",
                  "moving_home",
                  "more_space",
                  "refurb",
                  "travelling",
                  "other",
                  "unspecified"
                ]
              }
            },
            "description": "Filter by use case. Supports multiple values separated by a comma. `unspecified` will filter by `null` value.",
            "examples": {
              "single": {
                "value": [
                  "refurb"
                ]
              },
              "multiple": {
                "value": [
                  "travelling",
                  "moving_home"
                ]
              }
            },
            "required": false
          },
          {
            "name": "status",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "lead",
                  "customer",
                  "churned"
                ]
              }
            },
            "description": "Filter by status. Supports multiple values separated by a comma.",
            "examples": {
              "single": {
                "value": [
                  "lead"
                ]
              },
              "multiple": {
                "value": [
                  "lead",
                  "customer"
                ]
              }
            },
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "metadata",
            "in": "query",
            "style": "deepObject",
            "required": false,
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "example": {}
            },
            "description": "Filter by metadata. Use `metadata[key]=value` to filter by specific metadata keys."
          }
        ],
        "responses": {
          "200": {
            "description": "list of contacts",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "contacts": [
                        {
                          "id": "con_0ac0514ed0711463",
                          "address": null,
                          "company_registration_number": null,
                          "created_at": "2025-02-21T14:41:00Z",
                          "email": "jane@doe.com",
                          "full_name": "Jane Doe",
                          "identity_check": {
                            "required": false,
                            "status": "not_attempted"
                          },
                          "marketing_source": null,
                          "metadata": {},
                          "phone_number": null,
                          "source": null,
                          "status": "lead",
                          "stripe_customer_id": null,
                          "tax_id": null,
                          "tenancies_count": 0,
                          "type": null,
                          "updated_at": "2025-02-22T14:41:00Z",
                          "use_case": null
                        },
                        {
                          "id": "con_0ac0514ed0711462",
                          "address": null,
                          "company_registration_number": null,
                          "created_at": "2025-02-20T14:41:00Z",
                          "email": "john@doe.com",
                          "full_name": "John Doe",
                          "identity_check": {
                            "required": false,
                            "status": "not_attempted"
                          },
                          "marketing_source": null,
                          "metadata": {},
                          "phone_number": null,
                          "source": null,
                          "status": "lead",
                          "stripe_customer_id": "cus_SqaLe6rJhviOGm",
                          "tax_id": null,
                          "tenancies_count": 0,
                          "type": null,
                          "updated_at": "2025-02-22T14:41:00Z",
                          "use_case": null
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 2,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of contacts"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/contact_list"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create a Contact",
        "tags": [
          "Contacts"
        ],
        "operationId": "contact_create",
        "description": "Create a new contact.\n\nRequired authorization scope: `public.contact:write`\n",
        "security": [
          {
            "Bearer": [
              "public.contact:write"
            ]
          },
          {
            "OAuth2": [
              "public.contact:write"
            ]
          }
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "contact successfully created (minimal)",
            "content": {
              "application/json": {
                "examples": {
                  "normal": {
                    "value": {
                      "contact": {
                        "id": "con_0ac0514ed0711462",
                        "address": {
                          "city": "Anytown",
                          "country_alpha2": "US",
                          "line_1": "123 Main St",
                          "line_2": "Apt 4B",
                          "postal_code": "12345",
                          "state": "CA"
                        },
                        "company_registration_number": null,
                        "created_at": "2025-02-22T14:41:00Z",
                        "email": "john@doe.com",
                        "full_name": "John Doe",
                        "identity_check": {
                          "required": false,
                          "status": "not_attempted"
                        },
                        "marketing_source": "recommendation",
                        "metadata": {
                          "external_id": "crm_12345",
                          "source": "api_import"
                        },
                        "phone_number": null,
                        "source": "walkin",
                        "status": "lead",
                        "stripe_customer_id": null,
                        "tax_id": "123456789",
                        "tenancies_count": 0,
                        "type": "company",
                        "updated_at": "2025-02-22T14:41:00Z",
                        "use_case": "more_space"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "contact successfully created (full)"
                  },
                  "minimal": {
                    "value": {
                      "contact": {
                        "id": "con_0ac0514ed0711462",
                        "address": null,
                        "company_registration_number": null,
                        "created_at": "2025-02-22T14:41:00Z",
                        "email": "john@doe.com",
                        "full_name": "john@doe.com",
                        "identity_check": {
                          "required": false,
                          "status": "not_attempted"
                        },
                        "marketing_source": null,
                        "metadata": {},
                        "phone_number": null,
                        "source": null,
                        "status": "lead",
                        "stripe_customer_id": null,
                        "tax_id": null,
                        "tenancies_count": 0,
                        "type": null,
                        "updated_at": "2025-02-22T14:41:00Z",
                        "use_case": null
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "contact successfully created (minimal)"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/contact_single"
                }
              }
            }
          },
          "422": {
            "description": "invalid email",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "value at `/email` does not match format: email",
                            "pointer": "/email"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "invalid email"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactsCreate"
              },
              "examples": {
                "contact_create_full": {
                  "summary": "contact create (full)",
                  "value": {
                    "full_name": "John Doe",
                    "email": "john@doe.com",
                    "tax_id": "123456789",
                    "address": {
                      "line_1": "123 Main St",
                      "line_2": "Apt 4B",
                      "city": "Anytown",
                      "postal_code": "12345",
                      "state": "CA",
                      "country_alpha2": "US"
                    },
                    "type": "company",
                    "marketing_source": "recommendation",
                    "source": "walkin",
                    "use_case": "more_space",
                    "metadata": {
                      "external_id": "crm_12345",
                      "source": "api_import"
                    }
                  }
                },
                "contact_create_minimal": {
                  "summary": "contact create (minimal)",
                  "value": {
                    "email": "john@doe.com"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/contacts/{contact_id}": {
      "parameters": [
        {
          "name": "contact_id",
          "in": "path",
          "description": "The ID of the contact to retrieve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Contact",
        "tags": [
          "Contacts"
        ],
        "operationId": "contact_show",
        "description": "Retrieve a specific contact by its ID.\n\nRequired authorization scope: `public.contact:read`\n",
        "security": [
          {
            "Bearer": [
              "public.contact:read"
            ]
          },
          {
            "OAuth2": [
              "public.contact:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "contact detail",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "contact": {
                        "id": "con_0ac0514ed0711462",
                        "address": null,
                        "company_registration_number": null,
                        "created_at": "2025-02-20T14:41:00Z",
                        "email": "john@doe.com",
                        "full_name": "John Doe",
                        "identity_check": {
                          "required": false,
                          "status": "not_attempted"
                        },
                        "marketing_source": null,
                        "metadata": {},
                        "phone_number": null,
                        "source": null,
                        "status": "lead",
                        "stripe_customer_id": "cus_SqaLe6rJhviOGm",
                        "tax_id": null,
                        "tenancies_count": 0,
                        "type": null,
                        "updated_at": "2025-02-22T14:41:00Z",
                        "use_case": null
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "contact detail"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/contact_single"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update a Contact",
        "tags": [
          "Contacts"
        ],
        "operationId": "contact_update",
        "description": "Update an existing contact.\n\nRequired authorization scope: `public.contact:write`\n",
        "security": [
          {
            "Bearer": [
              "public.contact:write"
            ]
          },
          {
            "OAuth2": [
              "public.contact:write"
            ]
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "contact successfully updated",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "contact": {
                        "id": "con_0ac0514ed0711462",
                        "address": {
                          "city": "Kindtown",
                          "country_alpha2": "GB",
                          "line_1": "456 Main St",
                          "line_2": "Apt 1B",
                          "postal_code": "54321",
                          "state": null
                        },
                        "company_registration_number": null,
                        "created_at": "2025-02-20T14:41:00Z",
                        "email": "john-2@doe.com",
                        "full_name": "John Doe Updated",
                        "identity_check": {
                          "required": false,
                          "status": "not_attempted"
                        },
                        "marketing_source": null,
                        "metadata": {
                          "source": "updated"
                        },
                        "phone_number": null,
                        "source": null,
                        "status": "lead",
                        "stripe_customer_id": "cus_SqaLe6rJhviOGm",
                        "tax_id": null,
                        "tenancies_count": 0,
                        "type": null,
                        "updated_at": "2025-02-22T14:41:00Z",
                        "use_case": null
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "contact update"
                  },
                  "partial_update": {
                    "value": {
                      "contact": {
                        "id": "con_0ac0514ed0711462",
                        "address": null,
                        "company_registration_number": null,
                        "created_at": "2025-02-20T14:41:00Z",
                        "email": "john@doe.com",
                        "full_name": "John Doe Updated",
                        "identity_check": {
                          "required": false,
                          "status": "not_attempted"
                        },
                        "marketing_source": null,
                        "metadata": {},
                        "phone_number": null,
                        "source": null,
                        "status": "lead",
                        "stripe_customer_id": "cus_SqaLe6rJhviOGm",
                        "tax_id": null,
                        "tenancies_count": 0,
                        "type": null,
                        "updated_at": "2025-02-22T14:41:00Z",
                        "use_case": null
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "update only full name"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/contact_single"
                }
              }
            }
          },
          "404": {
            "description": "contact not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Contact was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "contact not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "already used email",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "Email has already been taken",
                            "pointer": "/email"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "already used email"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactsUpdate"
              },
              "examples": {
                "contact_update": {
                  "summary": "contact update",
                  "value": {
                    "full_name": "John Doe Updated",
                    "email": "john-2@doe.com",
                    "address": {
                      "line_1": "456 Main St",
                      "line_2": "Apt 1B",
                      "city": "Kindtown",
                      "postal_code": "54321",
                      "state": null,
                      "country_alpha2": "GB"
                    },
                    "metadata": {
                      "source": "updated"
                    }
                  }
                },
                "update_only_full_name": {
                  "summary": "update only full name",
                  "value": {
                    "full_name": "John Doe Updated"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a Contact",
        "tags": [
          "Contacts"
        ],
        "operationId": "contact_delete",
        "description": "Delete a contact by its ID.\n\nRequired authorization scope: `public.contact:write`\n",
        "security": [
          {
            "Bearer": [
              "public.contact:write"
            ]
          },
          {
            "OAuth2": [
              "public.contact:write"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "contact successfully deleted",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "success": {
                        "message": "Contact deleted successfully."
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "contact successfully deleted"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "404": {
            "description": "contact not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Contact was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "contact not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "contact cannot be deleted",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "conflict",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "Only lead contacts without invoices can be deleted.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "contact cannot be deleted"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/contract_templates": {
      "get": {
        "summary": "List all Contract Templates",
        "tags": [
          "Contract Templates"
        ],
        "operationId": "contract_template_list",
        "description": "Retrieve a list of all contract templates.\n\nRequired authorization scope: `public.contract_template:read`\n",
        "security": [
          {
            "Bearer": [
              "public.contract_template:read"
            ]
          },
          {
            "OAuth2": [
              "public.contract_template:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "list of contract templates",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "contract_templates": [
                        {
                          "id": "ctpl_33ae8d0b2b371ba2",
                          "created_at": "2025-02-22T14:41:00Z",
                          "name": "Sample Contract Template",
                          "updated_at": "2025-02-22T14:41:00Z"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 1,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of contract templates"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/contract_template_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/contracts": {
      "get": {
        "summary": "List all Contracts",
        "tags": [
          "Contracts"
        ],
        "operationId": "contract_list",
        "description": "Retrieve a list of all contracts.\n\nRequired authorization scope: `public.contract:read`\n",
        "security": [
          {
            "Bearer": [
              "public.contract:read"
            ]
          },
          {
            "OAuth2": [
              "public.contract:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "site_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Site IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "contact_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Contact IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "contract_template_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Contract Template IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "tenancy_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Tenancy IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "status",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "pending",
                  "signed",
                  "voided",
                  "declined",
                  "deleted"
                ]
              }
            },
            "description": "Filter by status. Supports multiple values separated by a comma.",
            "examples": {
              "single": {
                "value": [
                  "pending"
                ]
              },
              "multiple": {
                "value": [
                  "pending",
                  "signed"
                ]
              }
            },
            "required": false
          },
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "sent_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `sent` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "sent_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `sent` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "signed_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `signed` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "signed_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `signed` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "list of contracts",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "contracts": [
                        {
                          "id": "ctr_a1b2c3d4e5f6g7h8",
                          "_links": {
                            "sf:show_contract": {
                              "href": "/contracts/ctr_a1b2c3d4e5f6g7h8",
                              "title": "Show contract"
                            }
                          },
                          "contact": {
                            "id": "con_195h6kfm9ro15lof"
                          },
                          "contract_template": {
                            "id": "ctpl_33ae8d0b2b371ba2"
                          },
                          "created_at": "2025-02-22T14:41:00Z",
                          "name": "Indoor Storage Contract",
                          "sent_at": "2025-02-18T09:00:00Z",
                          "signed_at": "2025-02-20T10:00:00Z",
                          "status": "signed",
                          "tenancy": {
                            "id": "ten_ac1499df16ae0dea"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        {
                          "id": "ctr_b2c3d4e5f6g7h8i9",
                          "_links": {},
                          "contact": {
                            "id": "con_195h6kfm9ro15lof"
                          },
                          "contract_template": {
                            "id": "ctpl_33ae8d0b2b371ba2"
                          },
                          "created_at": "2025-02-22T14:41:00Z",
                          "name": "Voided Storage Contract",
                          "sent_at": "2025-01-10T09:00:00Z",
                          "signed_at": null,
                          "status": "voided",
                          "tenancy": {
                            "id": "ten_ac1499df16ae0dea"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        {
                          "id": "ctr_c3d4e5f6g7h8i9j0",
                          "_links": {
                            "sf:show_contract": {
                              "href": "/contracts/ctr_c3d4e5f6g7h8i9j0",
                              "title": "Show contract"
                            }
                          },
                          "contact": {
                            "id": "con_195h6kfm9ro15lof"
                          },
                          "contract_template": {
                            "id": "ctpl_33ae8d0b2b371ba2"
                          },
                          "created_at": "2025-02-22T14:41:00Z",
                          "name": "Pending Storage Contract",
                          "sent_at": "2025-03-01T09:00:00Z",
                          "signed_at": null,
                          "status": "pending",
                          "tenancy": {
                            "id": "ten_ac1499df16ae0dea"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 3,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of contracts"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/contract_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/contracts/{contract_id}": {
      "parameters": [
        {
          "name": "contract_id",
          "in": "path",
          "description": "The ID of the contract",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Contract",
        "tags": [
          "Contracts"
        ],
        "operationId": "contract_show",
        "description": "Retrieve a specific contract by its ID.\n\nSupports PDF download. Set `application/pdf` in the `Accept` request header. Only signed contracts return a PDF.\n\nRequired authorization scope: `public.contract:read`\n",
        "security": [
          {
            "Bearer": [
              "public.contract:read"
            ]
          },
          {
            "OAuth2": [
              "public.contract:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "contract detail",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "contract": {
                        "id": "ctr_a1b2c3d4e5f6g7h8",
                        "_links": {
                          "sf:show_contract": {
                            "href": "/contracts/ctr_a1b2c3d4e5f6g7h8",
                            "title": "Show contract"
                          }
                        },
                        "contact": {
                          "id": "con_195h6kfm9ro15lof"
                        },
                        "contract_template": {
                          "id": "ctpl_33ae8d0b2b371ba2"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "name": "Indoor Storage Contract",
                        "sent_at": "2025-02-18T09:00:00Z",
                        "signed_at": "2025-02-20T10:00:00Z",
                        "status": "signed",
                        "tenancy": {
                          "id": "ten_ac1499df16ae0dea"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "contract detail"
                  },
                  "expanded": {
                    "value": {
                      "contract": {
                        "id": "ctr_a1b2c3d4e5f6g7h8",
                        "_links": {
                          "sf:show_contract": {
                            "href": "/contracts/ctr_a1b2c3d4e5f6g7h8",
                            "title": "Show contract"
                          }
                        },
                        "contact": {
                          "id": "con_195h6kfm9ro15lof",
                          "address": {
                            "city": "Testtown",
                            "country_alpha2": "GB",
                            "line_1": "1, Test Building",
                            "line_2": "Test St.",
                            "postal_code": "BT12 AAA",
                            "state": null
                          },
                          "company_registration_number": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "john@doe.com",
                          "full_name": "John Doe",
                          "identity_check": {
                            "required": false,
                            "status": "not_attempted"
                          },
                          "marketing_source": null,
                          "metadata": {},
                          "phone_number": "+447525920754",
                          "source": null,
                          "status": "customer",
                          "stripe_customer_id": null,
                          "tax_id": null,
                          "tenancies_count": 1,
                          "type": null,
                          "updated_at": "2025-02-22T14:41:00Z",
                          "use_case": null
                        },
                        "contract_template": {
                          "id": "ctpl_33ae8d0b2b371ba2",
                          "created_at": "2025-02-22T14:41:00Z",
                          "name": "Storage Contract Template",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "name": "Indoor Storage Contract",
                        "sent_at": "2025-02-18T09:00:00Z",
                        "signed_at": "2025-02-20T10:00:00Z",
                        "status": "signed",
                        "tenancy": {
                          "id": "ten_ac1499df16ae0dea",
                          "created_at": "2025-02-22T14:41:00Z",
                          "ends_at": null,
                          "order": {
                            "id": "order_3b268a69f8f3b32c",
                            "billing_period": "monthly",
                            "contract_template": null,
                            "coupon": null,
                            "created_at": "2025-02-22T14:41:00Z",
                            "email_notifications": {
                              "booking_confirmation": true,
                              "move_in_day": true,
                              "payment_details": false
                            },
                            "line_items": [],
                            "metadata": {},
                            "one_time_total": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "one_time_total_excluding_tax": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "payment_method": "card",
                            "payment_url": null,
                            "purchase_order_number": null,
                            "source": "unspecified",
                            "starts_at": "2025-02-23T14:41:00Z",
                            "status": "draft",
                            "subtotal": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "tax": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "total": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "total_discount": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "total_excluding_tax": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "starts_at": "2025-02-22T14:41:00Z",
                          "subscription": {
                            "id": "sub_195h6kfm9ro15lof",
                            "billing_period": "monthly",
                            "cancellation_reason": null,
                            "cancelled": false,
                            "created_at": "2025-02-22T14:41:00Z",
                            "current_period": {
                              "ends_at": null,
                              "starts_at": null
                            },
                            "ends_at": null,
                            "line_items": [],
                            "starts_at": "2025-02-22T14:41:00Z",
                            "stripe_subscription_id": null,
                            "stripe_subscription_schedule_id": null,
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "unit_allocations": [],
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "contract detail (fully expanded)"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/contract_single"
                }
              },
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/contract_single"
                }
              }
            }
          },
          "404": {
            "description": "contract not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Pandadoc Document was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "contract not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              },
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "406": {
            "description": "pdf content not available",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_format",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The requested format (application/pdf) is not supported or currently available.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "pdf content not available"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              },
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/coupons": {
      "get": {
        "summary": "List all Coupons",
        "tags": [
          "Coupons"
        ],
        "operationId": "coupon_list",
        "description": "Retrieve a list of all coupons.\n\nRequired authorization scope: `public.coupon:read`\n",
        "security": [
          {
            "Bearer": [
              "public.coupon:read"
            ]
          },
          {
            "OAuth2": [
              "public.coupon:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "list of coupons",
            "content": {
              "application/json": {
                "examples": {
                  "json": {
                    "value": {
                      "coupons": [
                        {
                          "id": "cpn_a26d0d4c582740c1",
                          "auto_apply_to": {
                            "products": false,
                            "protections": false,
                            "subscriptions": true,
                            "unit_types": false
                          },
                          "billing_period": "monthly",
                          "code": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "duration": "repeating",
                          "max_redemptions": null,
                          "months": 2,
                          "name": "50% off first two months",
                          "percent": 50,
                          "public": true,
                          "title": null,
                          "type": "percentage",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        {
                          "id": "cpn_bdc9397d53d9bfc3",
                          "amount": {
                            "amount": 500,
                            "currency": "GBP",
                            "formatted": "£5.00"
                          },
                          "auto_apply_to": {
                            "products": false,
                            "protections": false,
                            "subscriptions": true,
                            "unit_types": false
                          },
                          "billing_period": null,
                          "code": "5OFF",
                          "created_at": "2025-02-22T14:41:00Z",
                          "duration": "forever",
                          "max_redemptions": null,
                          "months": null,
                          "name": "£5.00 off",
                          "public": false,
                          "title": null,
                          "type": "amount",
                          "updated_at": "2025-02-22T14:41:00Z"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 2,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of coupons"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/coupon_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/coupons/{coupon_id}": {
      "parameters": [
        {
          "name": "coupon_id",
          "in": "path",
          "description": "The ID of the coupon to retrieve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Coupon",
        "tags": [
          "Coupons"
        ],
        "operationId": "coupon_show",
        "description": "Retrieve a specific coupon by its ID.\n\nRequired authorization scope: `public.coupon:read`\n",
        "security": [
          {
            "Bearer": [
              "public.coupon:read"
            ]
          },
          {
            "OAuth2": [
              "public.coupon:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "coupon detail",
            "content": {
              "application/json": {
                "examples": {
                  "json": {
                    "value": {
                      "coupon": {
                        "id": "cpn_bdc9397d53d9bfc3",
                        "amount": {
                          "amount": 500,
                          "currency": "GBP",
                          "formatted": "£5.00"
                        },
                        "auto_apply_to": {
                          "products": false,
                          "protections": false,
                          "subscriptions": true,
                          "unit_types": false
                        },
                        "billing_period": null,
                        "code": "5OFF",
                        "created_at": "2025-02-22T14:41:00Z",
                        "duration": "forever",
                        "max_redemptions": null,
                        "months": null,
                        "name": "£5.00 off",
                        "public": false,
                        "title": null,
                        "type": "amount",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "coupon detail"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/coupon_single"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/credit_notes": {
      "get": {
        "summary": "List all Credit Notes",
        "tags": [
          "Credit Notes"
        ],
        "operationId": "credit_note_list",
        "description": "Retrieve a list of all credit notes.\n\nRequired authorization scope: `public.credit_note:read`\n",
        "security": [
          {
            "Bearer": [
              "public.credit_note:read"
            ]
          },
          {
            "OAuth2": [
              "public.credit_note:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "contact_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Contact IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "site_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Site IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "invoice_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Invoice IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          },
          {
            "name": "status",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "issued",
                  "void"
                ]
              }
            },
            "description": "Filter by status. Supports multiple values separated by a comma.",
            "example": [
              "issued"
            ],
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "list of credit notes",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "credit_notes": [
                        {
                          "id": "cred_kk5h6lfm6ro15lon",
                          "contact": {
                            "id": "con_195h6kfm9ro15lof"
                          },
                          "created_at": "2025-02-22T14:41:00Z",
                          "invoice": {
                            "id": "inv_195h6kfm9ro15lof"
                          },
                          "line_items": [
                            {
                              "amount": {
                                "amount": 1099,
                                "currency": "GBP",
                                "formatted": "£10.99"
                              },
                              "description": "T-shirt",
                              "discount_total": {
                                "amount": 0,
                                "currency": "GBP",
                                "formatted": "£0.00"
                              },
                              "price": {
                                "amount": 1099,
                                "currency": "GBP",
                                "formatted": "£10.99"
                              },
                              "quantity": 1,
                              "tax": {
                                "amount": 0,
                                "currency": "GBP",
                                "formatted": "£0.00"
                              },
                              "type": "invoice_line_item"
                            }
                          ],
                          "number": "C9E0C52C-0036-CN-5",
                          "reason": "other",
                          "site": {
                            "id": "site_14b419f1096013f1"
                          },
                          "status": "issued",
                          "subtotal": {
                            "amount": 1099,
                            "currency": "GBP",
                            "formatted": "£10.99"
                          },
                          "total": {
                            "amount": 1099,
                            "currency": "GBP",
                            "formatted": "£10.99"
                          },
                          "type": "pre_payment"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 1,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of credit notes"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/credit_note_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/credit_notes/{credit_note_id}": {
      "parameters": [
        {
          "name": "credit_note_id",
          "in": "path",
          "description": "The ID of the credit note",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Credit Note",
        "tags": [
          "Credit Notes"
        ],
        "operationId": "credit_note_show",
        "description": "Retrieve a specific credit note by its ID.\n\nSupports PDF download. Set `application/pdf` in the `Accept` request header.\n\nRequired authorization scope: `public.credit_note:read`\n",
        "security": [
          {
            "Bearer": [
              "public.credit_note:read"
            ]
          },
          {
            "OAuth2": [
              "public.credit_note:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "credit note detail",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "credit_note": {
                        "id": "cred_kk5h6lfm6ro15lon",
                        "contact": {
                          "id": "con_195h6kfm9ro15lof"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "invoice": {
                          "id": "inv_195h6kfm9ro15lof"
                        },
                        "line_items": [
                          {
                            "amount": {
                              "amount": 1099,
                              "currency": "GBP",
                              "formatted": "£10.99"
                            },
                            "description": "T-shirt",
                            "discount_total": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "price": {
                              "amount": 1099,
                              "currency": "GBP",
                              "formatted": "£10.99"
                            },
                            "quantity": 1,
                            "tax": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "type": "invoice_line_item"
                          }
                        ],
                        "number": "C9E0C52C-0036-CN-5",
                        "reason": "other",
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "status": "issued",
                        "subtotal": {
                          "amount": 1099,
                          "currency": "GBP",
                          "formatted": "£10.99"
                        },
                        "total": {
                          "amount": 1099,
                          "currency": "GBP",
                          "formatted": "£10.99"
                        },
                        "type": "pre_payment"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "credit note detail"
                  },
                  "expanded": {
                    "value": {
                      "credit_note": {
                        "id": "cred_kk5h6lfm6ro15lon",
                        "contact": {
                          "id": "con_195h6kfm9ro15lof",
                          "address": {
                            "city": "Testtown",
                            "country_alpha2": "GB",
                            "line_1": "1, Test Building",
                            "line_2": "Test St.",
                            "postal_code": "BT12 AAA",
                            "state": null
                          },
                          "company_registration_number": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "example@example.com",
                          "full_name": "John Doe",
                          "identity_check": {
                            "required": false,
                            "status": "not_attempted"
                          },
                          "marketing_source": null,
                          "metadata": {},
                          "phone_number": "+447525920754",
                          "source": null,
                          "status": "lead",
                          "stripe_customer_id": null,
                          "tax_id": "6559",
                          "tenancies_count": 0,
                          "type": null,
                          "updated_at": "2025-02-22T14:41:00Z",
                          "use_case": null
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "invoice": {
                          "id": "inv_195h6kfm9ro15lof",
                          "amount_due": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "amount_paid": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "created_at": null,
                          "finalized_at": null,
                          "line_items": [
                            {
                              "accounting_code": "ACC-CODE",
                              "description": "Monthly subscription",
                              "discount_total": {
                                "amount": 0,
                                "currency": "GBP",
                                "formatted": "£0.00"
                              },
                              "price": {
                                "amount": 100000,
                                "currency": "GBP",
                                "formatted": "£1,000.00"
                              },
                              "proration": false,
                              "quantity": 1,
                              "tax": {
                                "amount": 10000,
                                "currency": "GBP",
                                "formatted": "£100.00"
                              },
                              "total": {
                                "amount": 100000,
                                "currency": "GBP",
                                "formatted": "£1,000.00"
                              },
                              "total_excluding_tax": {
                                "amount": 90000,
                                "currency": "GBP",
                                "formatted": "£900.00"
                              },
                              "type": null
                            },
                            {
                              "accounting_code": "ACC-CODE",
                              "description": "Monthly subscription",
                              "discount_total": {
                                "amount": 0,
                                "currency": "GBP",
                                "formatted": "£0.00"
                              },
                              "price": {
                                "amount": 100000,
                                "currency": "GBP",
                                "formatted": "£1,000.00"
                              },
                              "proration": false,
                              "quantity": 1,
                              "tax": {
                                "amount": 10000,
                                "currency": "GBP",
                                "formatted": "£100.00"
                              },
                              "total": {
                                "amount": 100000,
                                "currency": "GBP",
                                "formatted": "£1,000.00"
                              },
                              "total_excluding_tax": {
                                "amount": 90000,
                                "currency": "GBP",
                                "formatted": "£900.00"
                              },
                              "type": null
                            }
                          ],
                          "number": "ABC-867",
                          "paid_at": null,
                          "period_end": null,
                          "period_start": null,
                          "post_payment_credit_notes_amount": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "pre_payment_credit_notes_amount": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "purchase_order_number": null,
                          "status": "draft",
                          "subscription": null,
                          "subtotal": {
                            "amount": 100000,
                            "currency": "GBP",
                            "formatted": "£1,000.00"
                          },
                          "tax": {
                            "amount": 10000,
                            "currency": "GBP",
                            "formatted": "£100.00"
                          },
                          "tenancy": null,
                          "total": {
                            "amount": 100000,
                            "currency": "GBP",
                            "formatted": "£1,000.00"
                          },
                          "type": "subscription",
                          "voided_at": null
                        },
                        "line_items": [
                          {
                            "amount": {
                              "amount": 1099,
                              "currency": "GBP",
                              "formatted": "£10.99"
                            },
                            "description": "T-shirt",
                            "discount_total": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "price": {
                              "amount": 1099,
                              "currency": "GBP",
                              "formatted": "£10.99"
                            },
                            "quantity": 1,
                            "tax": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "type": "invoice_line_item"
                          }
                        ],
                        "number": "C9E0C52C-0036-CN-5",
                        "reason": "other",
                        "site": {
                          "id": "site_14b419f1096013f1",
                          "access_hours": null,
                          "address": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "description": null,
                          "directions": {
                            "google_maps_url": null
                          },
                          "images": {
                            "default": null
                          },
                          "name": "Site Name",
                          "opened_at": null,
                          "phone": "012345789",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "status": "issued",
                        "subtotal": {
                          "amount": 1099,
                          "currency": "GBP",
                          "formatted": "£10.99"
                        },
                        "total": {
                          "amount": 1099,
                          "currency": "GBP",
                          "formatted": "£10.99"
                        },
                        "type": "pre_payment"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "credit note detail (fully expanded)"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/credit_note_single"
                }
              },
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/credit_note_single"
                }
              }
            }
          },
          "404": {
            "description": "credit note not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Credit Note was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "credit note not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              },
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "406": {
            "description": "pdf content not available",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_format",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The requested format (application/pdf) is not supported or currently available.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "pdf content not available"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              },
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/deals/{deal_id}/lose": {
      "parameters": [
        {
          "name": "deal_id",
          "in": "path",
          "schema": {
            "type": "string",
            "pattern": "^deal_"
          },
          "description": "The ID of the deal to mark as lost",
          "required": true
        }
      ],
      "post": {
        "summary": "Lose a Deal",
        "tags": [
          "Deals"
        ],
        "operationId": "deal_lose",
        "description": "Mark a deal as lost.\n\nRequired authorization scope: `public.deal:write`\n",
        "security": [
          {
            "Bearer": [
              "public.deal:write"
            ]
          },
          {
            "OAuth2": [
              "public.deal:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "mark deal as lost",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "deal": {
                        "id": "deal_127b3057d5df338e",
                        "assignee": null,
                        "contact": {
                          "id": "con_1234567890abcdef"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_947b3057d5df338e"
                        },
                        "line_items": [
                          {
                            "item": {
                              "id": "plvl_e8f3ad0a07e47566"
                            },
                            "quantity": 1,
                            "type": "protection"
                          },
                          {
                            "item": {
                              "id": "utype_f18fc91387cdf710"
                            },
                            "quantity": 1,
                            "type": "unit_type"
                          }
                        ],
                        "lost_reason": "price_concerns",
                        "metadata": {},
                        "name": "First Deal",
                        "note": "£50 per month",
                        "site": null,
                        "stage": {
                          "id": "dstg_127b3057d5df338e"
                        },
                        "starts_at": null,
                        "status": "lost",
                        "updated_at": "2025-02-22T14:41:00Z",
                        "value_estimate": "£50 per month"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "mark deal as lost"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/deal_single"
                }
              }
            }
          },
          "404": {
            "description": "deal not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Deal was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "deal not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "deal already closed",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "Deal is already closed (status: 'won')",
                            "pointer": "deal"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "deal already closed"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DealsLose"
              }
            }
          }
        }
      }
    },
    "/2025-09/deals/{deal_id}/reopen": {
      "parameters": [
        {
          "name": "deal_id",
          "in": "path",
          "schema": {
            "type": "string",
            "pattern": "^deal_"
          },
          "description": "The ID of the deal to reopen",
          "required": true
        }
      ],
      "post": {
        "summary": "Reopen a Deal",
        "tags": [
          "Deals"
        ],
        "operationId": "deal_reopen",
        "description": "Reopen a closed deal (won or lost) and place it back on the deals board at the specified stage.\n\nRequired authorization scope: `public.deal:write`\n",
        "security": [
          {
            "Bearer": [
              "public.deal:write"
            ]
          },
          {
            "OAuth2": [
              "public.deal:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "reopen a closed deal",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "deal": {
                        "id": "deal_127b3057d5df338e",
                        "assignee": {
                          "id": "staff_947b3057d5df338e"
                        },
                        "contact": {
                          "id": "con_1234567890abcdef"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_947b3057d5df338e"
                        },
                        "line_items": [
                          {
                            "item": {
                              "id": "plvl_e8f3ad0a07e47566"
                            },
                            "quantity": 1,
                            "type": "protection"
                          },
                          {
                            "item": {
                              "id": "utype_f18fc91387cdf710"
                            },
                            "quantity": 1,
                            "type": "unit_type"
                          }
                        ],
                        "lost_reason": null,
                        "metadata": {},
                        "name": "Won Deal",
                        "note": "£50 per month",
                        "site": null,
                        "stage": {
                          "id": "dstg_127b3057d5df338e"
                        },
                        "starts_at": null,
                        "status": "open",
                        "updated_at": "2025-02-22T14:41:00Z",
                        "value_estimate": "£50 per month"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "reopen a closed deal"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/deal_single"
                }
              }
            }
          },
          "404": {
            "description": "deal not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Deal was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "deal not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "deal already open",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "Deal is already open",
                            "pointer": "deal"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "deal already open"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DealsReopen"
              },
              "examples": {
                "request": {
                  "summary": "request",
                  "value": {
                    "stage": {
                      "id": "dstg_721b3057d5df338e"
                    },
                    "assignee": {
                      "id": "staff_947b3057d5df338e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/deals/stages": {
      "get": {
        "summary": "List all Stages",
        "tags": [
          "Deals / Stages"
        ],
        "operationId": "deal_stage_list",
        "description": "Retrieve a list of all stages.\n\nRequired authorization scope: `public.deal_stage:read`\n",
        "security": [
          {
            "Bearer": [
              "public.deal_stage:read"
            ]
          },
          {
            "OAuth2": [
              "public.deal_stage:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at",
                "position"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "list of stages",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "stages": [
                        {
                          "id": "dstg_127b3057d5df338e",
                          "created_at": "2025-02-22T14:41:00Z",
                          "name": "first",
                          "position": 1,
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        {
                          "id": "dstg_237b3057d5df338e",
                          "created_at": "2025-02-22T14:41:00Z",
                          "name": "second",
                          "position": 2,
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        {
                          "id": "dstg_347b3057d5df338e",
                          "created_at": "2025-02-22T14:41:00Z",
                          "name": "third",
                          "position": 4,
                          "updated_at": "2025-02-22T14:41:00Z"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 3,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of stages"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/deal_stage_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/deals/stages/{stage_id}": {
      "parameters": [
        {
          "name": "stage_id",
          "in": "path",
          "description": "The ID of the deal stage to retrieve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Deal Stage",
        "tags": [
          "Deals / Stages"
        ],
        "operationId": "deal_stage_show",
        "description": "Retrieve a specific deal stage by its ID.\n\nRequired authorization scope: `public.deal_stage:read`\n",
        "security": [
          {
            "Bearer": [
              "public.deal_stage:read"
            ]
          },
          {
            "OAuth2": [
              "public.deal_stage:read"
            ]
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "stage detail",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "stage": {
                        "id": "dstg_127b3057d5df338e",
                        "created_at": "2025-02-22T14:41:00Z",
                        "name": "first",
                        "position": 1,
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "stage detail"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/deal_stage_single"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/deals/{deal_id}/win": {
      "parameters": [
        {
          "name": "deal_id",
          "in": "path",
          "schema": {
            "type": "string",
            "pattern": "^deal_"
          },
          "description": "The ID of the deal to mark as won",
          "required": true
        }
      ],
      "post": {
        "summary": "Win a Deal",
        "tags": [
          "Deals"
        ],
        "operationId": "deal_win",
        "description": "Mark a deal as won.\n\nRequired authorization scope: `public.deal:write`\n",
        "security": [
          {
            "Bearer": [
              "public.deal:write"
            ]
          },
          {
            "OAuth2": [
              "public.deal:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "mark deal as won",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "deal": {
                        "id": "deal_127b3057d5df338e",
                        "assignee": null,
                        "contact": {
                          "id": "con_1234567890abcdef"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_947b3057d5df338e"
                        },
                        "line_items": [
                          {
                            "item": {
                              "id": "plvl_e8f3ad0a07e47566"
                            },
                            "quantity": 1,
                            "type": "protection"
                          },
                          {
                            "item": {
                              "id": "utype_f18fc91387cdf710"
                            },
                            "quantity": 1,
                            "type": "unit_type"
                          }
                        ],
                        "lost_reason": null,
                        "metadata": {},
                        "name": "First Deal",
                        "note": "£50 per month",
                        "site": null,
                        "stage": {
                          "id": "dstg_127b3057d5df338e"
                        },
                        "starts_at": null,
                        "status": "won",
                        "updated_at": "2025-02-22T14:41:00Z",
                        "value_estimate": "£50 per month"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "mark deal as won"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/deal_single"
                }
              }
            }
          },
          "404": {
            "description": "deal not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Deal was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "deal not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "deal already closed",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "Deal is already closed (status: 'won')",
                            "pointer": "deal"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "deal already closed"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/deals": {
      "get": {
        "summary": "List all Deals",
        "tags": [
          "Deals"
        ],
        "operationId": "deal_list",
        "description": "Retrieve a list of all deals.\n\nRequired authorization scope: `public.deal:read`\n",
        "security": [
          {
            "Bearer": [
              "public.deal:read"
            ]
          },
          {
            "OAuth2": [
              "public.deal:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "contact_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Contact IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "site_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Site IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "stage_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Stage IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "assignee_id",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Filter by Assignee ID. Supports multiple values separated by comma. Use `unassigned` for deals without an assignee.",
            "required": false
          },
          {
            "name": "status",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "open",
                  "won",
                  "lost"
                ]
              }
            },
            "description": "Filter by deal status. Supports multiple values separated by comma.",
            "examples": {
              "single": {
                "value": [
                  "open"
                ]
              },
              "multiple": {
                "value": [
                  "open",
                  "won"
                ]
              }
            },
            "required": false
          },
          {
            "name": "lost_reason",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "accessibility_concern",
                  "better_deal_elsewhere",
                  "chose_competitor",
                  "contract_terms",
                  "decided_not_to_use_storage",
                  "didnt_respond",
                  "due_to_unstaffed_site",
                  "facility_condition",
                  "financial_reasons",
                  "lack_of_response",
                  "location_issues",
                  "needs_extra_services",
                  "no_longer_needed",
                  "poor_customer_service",
                  "price_concerns",
                  "security_concerns",
                  "size_availability",
                  "timing",
                  "unable_to_reach_customer",
                  "unable_to_take_deliveries",
                  "other"
                ]
              }
            },
            "description": "Filter by lost reason. Supports multiple values separated by comma.",
            "examples": {
              "single": {
                "value": [
                  "price_concerns"
                ]
              },
              "multiple": {
                "value": [
                  "price_concerns",
                  "timing"
                ]
              }
            },
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "list of deals",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "deals": [
                        {
                          "id": "deal_127b3057d5df338e",
                          "assignee": {
                            "id": "staff_947b3057d5df338e"
                          },
                          "contact": {
                            "id": "con_1234567890abcdef"
                          },
                          "created_at": "2025-02-22T14:41:00Z",
                          "creator": {
                            "id": "staff_947b3057d5df338e"
                          },
                          "line_items": [
                            {
                              "item": {
                                "id": "plvl_e8f3ad0a07e47566"
                              },
                              "quantity": 1,
                              "type": "protection"
                            },
                            {
                              "item": {
                                "id": "utype_f18fc91387cdf710"
                              },
                              "quantity": 1,
                              "type": "unit_type"
                            }
                          ],
                          "lost_reason": null,
                          "metadata": {},
                          "name": "First Deal",
                          "note": "£50 per month",
                          "site": {
                            "id": "site_14b419f1096013f1"
                          },
                          "stage": {
                            "id": "dstg_127b3057d5df338e"
                          },
                          "starts_at": null,
                          "status": "open",
                          "updated_at": "2025-02-22T14:41:00Z",
                          "value_estimate": "£50 per month"
                        },
                        {
                          "id": "deal_227b3057d5df338e",
                          "assignee": null,
                          "contact": {
                            "id": "con_1234567890abcdef"
                          },
                          "created_at": "2025-02-22T14:41:00Z",
                          "creator": {
                            "id": "staff_947b3057d5df338e"
                          },
                          "line_items": [
                            {
                              "item": {
                                "id": "plvl_e8f3ad0a07e47566"
                              },
                              "quantity": 1,
                              "type": "protection"
                            },
                            {
                              "item": {
                                "id": "utype_f18fc91387cdf710"
                              },
                              "quantity": 1,
                              "type": "unit_type"
                            }
                          ],
                          "lost_reason": null,
                          "metadata": {},
                          "name": "Archived Deal",
                          "note": "£50 per month",
                          "site": null,
                          "stage": {
                            "created_at": "2025-02-22T14:41:00Z",
                            "name": "Second Stage - (Deleted)",
                            "position": 2,
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "starts_at": null,
                          "status": "open",
                          "updated_at": "2025-02-22T14:41:00Z",
                          "value_estimate": "£50 per month"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 2,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of deals"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/deal_list"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create a Deal",
        "tags": [
          "Deals"
        ],
        "operationId": "deal_create",
        "description": "Create a new deal.\n\nRequired authorization scope: `public.deal:write`\n",
        "security": [
          {
            "Bearer": [
              "public.deal:write"
            ]
          },
          {
            "OAuth2": [
              "public.deal:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "201": {
            "description": "deal successfully created",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "deal": {
                        "id": "deal_a1b2c3d4e5f67890",
                        "assignee": null,
                        "contact": {
                          "id": "con_1234567890abcdef"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "app_99b90b9d208a137b"
                        },
                        "line_items": [
                          {
                            "item": {
                              "id": "plvl_e8f3ad0a07e47566"
                            },
                            "quantity": 1,
                            "type": "protection"
                          },
                          {
                            "item": {
                              "id": "utype_f18fc91387cdf710"
                            },
                            "quantity": 1,
                            "type": "unit_type"
                          }
                        ],
                        "lost_reason": null,
                        "metadata": {},
                        "name": "Acme Corp Storage",
                        "note": null,
                        "site": null,
                        "stage": {
                          "id": "dstg_127b3057d5df338e"
                        },
                        "starts_at": null,
                        "status": "open",
                        "updated_at": "2025-02-22T14:41:00Z",
                        "value_estimate": null
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "deal successfully created"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/deal_single"
                }
              }
            }
          },
          "404": {
            "description": "contact not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Contact was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "contact not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "line_items contain duplicate type",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "must contain at most one item per type",
                            "pointer": "/line_items"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "line_items contain duplicate type"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DealsCreate"
              },
              "examples": {
                "deal_successfully_created": {
                  "summary": "deal successfully created",
                  "value": {
                    "name": "Acme Corp Storage",
                    "contact": {
                      "id": "con_1234567890abcdef"
                    },
                    "stage": {
                      "id": "dstg_127b3057d5df338e"
                    },
                    "line_items": [
                      {
                        "type": "unit_type",
                        "item": {
                          "id": "utype_f18fc91387cdf710"
                        }
                      },
                      {
                        "type": "protection",
                        "item": {
                          "id": "plvl_e8f3ad0a07e47566"
                        }
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/deals/{deal_id}": {
      "parameters": [
        {
          "name": "deal_id",
          "in": "path",
          "description": "The ID of the deal to retrieve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Deal",
        "tags": [
          "Deals"
        ],
        "operationId": "deal_show",
        "description": "Retrieve a specific deal by its ID.\n\nRequired authorization scope: `public.deal:read`\n",
        "security": [
          {
            "Bearer": [
              "public.deal:read"
            ]
          },
          {
            "OAuth2": [
              "public.deal:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "deal detail",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "deal": {
                        "id": "deal_127b3057d5df338e",
                        "assignee": {
                          "id": "staff_947b3057d5df338e"
                        },
                        "contact": {
                          "id": "con_1234567890abcdef"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_947b3057d5df338e"
                        },
                        "line_items": [
                          {
                            "item": {
                              "id": "plvl_e8f3ad0a07e47566"
                            },
                            "quantity": 1,
                            "type": "protection"
                          },
                          {
                            "item": {
                              "id": "utype_f18fc91387cdf710"
                            },
                            "quantity": 1,
                            "type": "unit_type"
                          }
                        ],
                        "lost_reason": null,
                        "metadata": {},
                        "name": "First Deal",
                        "note": "£50 per month",
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "stage": {
                          "id": "dstg_127b3057d5df338e"
                        },
                        "starts_at": null,
                        "status": "open",
                        "updated_at": "2025-02-22T14:41:00Z",
                        "value_estimate": "£50 per month"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "deal detail"
                  },
                  "deleted_stage": {
                    "value": {
                      "deal": {
                        "id": "deal_227b3057d5df338e",
                        "assignee": null,
                        "contact": {
                          "id": "con_1234567890abcdef"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_947b3057d5df338e"
                        },
                        "line_items": [
                          {
                            "item": {
                              "id": "plvl_e8f3ad0a07e47566"
                            },
                            "quantity": 1,
                            "type": "protection"
                          },
                          {
                            "item": {
                              "id": "utype_f18fc91387cdf710"
                            },
                            "quantity": 1,
                            "type": "unit_type"
                          }
                        ],
                        "lost_reason": null,
                        "metadata": {},
                        "name": "Archived Deal",
                        "note": "£50 per month",
                        "site": null,
                        "stage": {
                          "created_at": "2025-02-22T14:41:00Z",
                          "name": "Second Stage - (Deleted)",
                          "position": 2,
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "starts_at": null,
                        "status": "open",
                        "updated_at": "2025-02-22T14:41:00Z",
                        "value_estimate": "£50 per month"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "deal detail (with deleted stage)"
                  },
                  "expanded": {
                    "value": {
                      "deal": {
                        "id": "deal_127b3057d5df338e",
                        "assignee": {
                          "id": "staff_947b3057d5df338e",
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "john@doe.com",
                          "name": "John Doe",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "contact": {
                          "id": "con_1234567890abcdef",
                          "address": null,
                          "company_registration_number": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "example@email.com",
                          "full_name": "Jane Doe",
                          "identity_check": {
                            "required": false,
                            "status": "not_attempted"
                          },
                          "marketing_source": null,
                          "metadata": {},
                          "phone_number": null,
                          "source": null,
                          "status": "lead",
                          "stripe_customer_id": null,
                          "tax_id": null,
                          "tenancies_count": 0,
                          "type": null,
                          "updated_at": "2025-02-22T14:41:00Z",
                          "use_case": null
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_947b3057d5df338e",
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "john@doe.com",
                          "name": "John Doe",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "line_items": [
                          {
                            "item": {
                              "id": "plvl_e8f3ad0a07e47566",
                              "account_code": null,
                              "cover_level": {
                                "amount": 2000000,
                                "currency": "GBP",
                                "formatted": "£20,000.00"
                              },
                              "created_at": "2025-02-22T14:41:00Z",
                              "public": true,
                              "stripe_product_id": "test_Sj6us30iGDiaXO",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            "quantity": 1,
                            "type": "protection"
                          },
                          {
                            "item": {
                              "id": "utype_f18fc91387cdf710",
                              "_links": {
                                "sf:new_order": {
                                  "href": "/sites/site-name-self-storage-units/order/contact-details?unit_type_slug=standard-storage-unit",
                                  "title": "New order"
                                }
                              },
                              "created_at": "2025-02-22T14:41:00Z",
                              "dimensions": {
                                "height": 11,
                                "length": 12,
                                "measurement_unit": "ft",
                                "width": 10
                              },
                              "dynamic_pricing": false,
                              "images": {
                                "default": null
                              },
                              "live_prices": [
                                {
                                  "billing_period": "monthly",
                                  "price": {
                                    "amount": 1500,
                                    "currency": "GBP",
                                    "formatted": "£15.00"
                                  },
                                  "stripe_price_id": "price_unit_type_live_123"
                                }
                              ],
                              "name": "Standard Storage Unit",
                              "promotion": null,
                              "require_insurance_coverage": true,
                              "require_security_deposit": true,
                              "security_deposit": {
                                "amount": 5000,
                                "currency": "GBP",
                                "formatted": "£50.00"
                              },
                              "selling_points": [
                                "Spacious",
                                "Affordable",
                                "Secure"
                              ],
                              "size_description": "10x12 ft",
                              "slug": "standard-storage-unit",
                              "status": "bookable",
                              "stripe_product_id": "test_Sj6uOSWhCLm5et",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            "quantity": 1,
                            "type": "unit_type"
                          }
                        ],
                        "lost_reason": null,
                        "metadata": {},
                        "name": "First Deal",
                        "note": "£50 per month",
                        "site": {
                          "id": "site_14b419f1096013f1",
                          "access_hours": null,
                          "address": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "description": null,
                          "directions": {
                            "google_maps_url": null
                          },
                          "images": {
                            "default": null
                          },
                          "name": "Site Name",
                          "opened_at": null,
                          "phone": "012345789",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "stage": {
                          "id": "dstg_127b3057d5df338e",
                          "created_at": "2025-02-22T14:41:00Z",
                          "name": "first",
                          "position": 1,
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "starts_at": null,
                        "status": "open",
                        "updated_at": "2025-02-22T14:41:00Z",
                        "value_estimate": "£50 per month"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "deal detail (fully expanded)"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/deal_single"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update a Deal",
        "tags": [
          "Deals"
        ],
        "operationId": "deal_update",
        "description": "Update an existing deal.\n\nRequired authorization scope: `public.deal:write`\n",
        "security": [
          {
            "Bearer": [
              "public.deal:write"
            ]
          },
          {
            "OAuth2": [
              "public.deal:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "deal updated",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "deal": {
                        "id": "deal_127b3057d5df338e",
                        "assignee": {
                          "id": "staff_947b3057d5df338e"
                        },
                        "contact": {
                          "id": "con_1234567890abcdef"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_947b3057d5df338e"
                        },
                        "line_items": [
                          {
                            "item": {
                              "id": "utype_f18fc91387cdf710"
                            },
                            "quantity": 1,
                            "type": "unit_type"
                          }
                        ],
                        "lost_reason": null,
                        "metadata": {},
                        "name": "Acme Corp Storage (Renamed)",
                        "note": "£50 per month",
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "stage": {
                          "id": "dstg_127b3057d5df338e"
                        },
                        "starts_at": null,
                        "status": "open",
                        "updated_at": "2025-02-22T14:41:00Z",
                        "value_estimate": "£50 per month"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "deal updated"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/deal_single"
                }
              }
            }
          },
          "404": {
            "description": "site not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Site was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "site not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "Name can't be blank",
                            "pointer": "/name"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "invalid request"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DealsUpdate"
              },
              "examples": {
                "deal_successfully_updated": {
                  "summary": "deal successfully updated",
                  "value": {
                    "name": "Acme Corp Storage (Renamed)",
                    "line_items": [
                      {
                        "type": "unit_type",
                        "item": {
                          "id": "utype_f18fc91387cdf710"
                        }
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a Deal",
        "tags": [
          "Deals"
        ],
        "operationId": "deal_delete",
        "description": "Delete a deal by its ID.\n\nRequired authorization scope: `public.deal:write`\n",
        "security": [
          {
            "Bearer": [
              "public.deal:write"
            ]
          },
          {
            "OAuth2": [
              "public.deal:write"
            ]
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "deal deleted",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "success": {
                        "message": "Deal deleted successfully."
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "deal deleted"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "404": {
            "description": "deal not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Deal was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "deal not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/identity_verifications": {
      "get": {
        "summary": "List all Identity Verifications",
        "tags": [
          "Identity Verifications"
        ],
        "operationId": "identity_verification_list",
        "description": "Retrieve a list of all identity verifications.\n\nRequired authorization scope: `public.identity_verification:read`\n",
        "security": [
          {
            "Bearer": [
              "public.identity_verification:read"
            ]
          },
          {
            "OAuth2": [
              "public.identity_verification:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "contact_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Contact IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          },
          {
            "name": "status",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "failed",
                  "processing",
                  "succeeded",
                  "cancelled"
                ]
              }
            },
            "description": "Filter by status. Supports multiple values separated by a comma.",
            "examples": {
              "single": {
                "value": [
                  "succeeded"
                ]
              },
              "multiple": {
                "value": [
                  "succeeded",
                  "failed"
                ]
              }
            },
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "list of identity verifications",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "identity_verifications": [
                        {
                          "id": "idver_a1b2c3d4e5f67890",
                          "contact": {
                            "id": "con_195h6kfm9ro15lof"
                          },
                          "created_at": "2025-02-22T14:41:00Z",
                          "error_code": null,
                          "status": "succeeded",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        {
                          "id": "idver_f0e9d8c7b6a59483",
                          "contact": {
                            "id": "con_195h6kfm9ro15lof"
                          },
                          "created_at": "2025-02-22T14:41:00Z",
                          "error_code": "document_expired",
                          "status": "failed",
                          "updated_at": "2025-02-22T14:41:00Z"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 2,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of identity verifications"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/identity_verification_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/identity_verifications/{identity_verification_id}": {
      "parameters": [
        {
          "name": "identity_verification_id",
          "in": "path",
          "description": "The ID of the identity verification",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show an Identity Verification",
        "tags": [
          "Identity Verifications"
        ],
        "operationId": "identity_verification_show",
        "description": "Retrieve a specific identity verification by its ID.\n\nRequired authorization scope: `public.identity_verification:read`\n",
        "security": [
          {
            "Bearer": [
              "public.identity_verification:read"
            ]
          },
          {
            "OAuth2": [
              "public.identity_verification:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "identity verification detail",
            "content": {
              "application/json": {
                "examples": {
                  "success": {
                    "value": {
                      "identity_verification": {
                        "id": "idver_a1b2c3d4e5f67890",
                        "contact": {
                          "id": "con_195h6kfm9ro15lof"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "error_code": null,
                        "status": "succeeded",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "successful verification (error code is null)"
                  },
                  "failed": {
                    "value": {
                      "identity_verification": {
                        "id": "idver_f0e9d8c7b6a59483",
                        "contact": {
                          "id": "con_195h6kfm9ro15lof"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "error_code": "document_expired",
                        "status": "failed",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "failed verification (with error code)"
                  },
                  "expanded": {
                    "value": {
                      "identity_verification": {
                        "id": "idver_a1b2c3d4e5f67890",
                        "contact": {
                          "id": "con_195h6kfm9ro15lof",
                          "address": {
                            "city": "Testtown",
                            "country_alpha2": "GB",
                            "line_1": "1, Test Building",
                            "line_2": "Test St.",
                            "postal_code": "BT12 AAA",
                            "state": null
                          },
                          "company_registration_number": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "example@example.com",
                          "full_name": "John Doe",
                          "identity_check": {
                            "required": false,
                            "status": "succeeded"
                          },
                          "marketing_source": null,
                          "metadata": {},
                          "phone_number": "+447525920754",
                          "source": null,
                          "status": "lead",
                          "stripe_customer_id": null,
                          "tax_id": null,
                          "tenancies_count": 0,
                          "type": null,
                          "updated_at": "2025-02-22T14:41:00Z",
                          "use_case": null
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "error_code": null,
                        "status": "succeeded",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "identity verification detail (fully expanded)"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/identity_verification_single"
                }
              }
            }
          },
          "404": {
            "description": "identity verification not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Identity Verification was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "identity verification not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/images/{token}/{filename}": {
      "parameters": [
        {
          "name": "token",
          "in": "path",
          "description": "Verified image token",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "filename",
          "in": "path",
          "description": "Original filename",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Get an image",
        "tags": [
          "Images"
        ],
        "operationId": "image_get",
        "description": "Returns a permanent URL suitable for use in `<img>` tags and other embedded contexts.\nThe URL itself never expires, but when accessed it redirects to a temporary pre-signed storage URL that expires after 5 minutes.\n\nThis endpoint does not require authentication — the verified token acts as authorization.\n\nComplete URLs are provided in API responses for resources like sites and unit types.\n",
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "302": {
            "description": "redirect to image",
            "content": {
              "text/html": {
                "examples": {
                  "default": {
                    "value": "",
                    "summary": "redirect to image"
                  }
                }
              }
            }
          },
          "404": {
            "description": "image not found",
            "content": {
              "text/html": {
                "examples": {
                  "default": {
                    "value": "",
                    "summary": "image not found"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/invoices": {
      "get": {
        "summary": "List all Invoices",
        "tags": [
          "Invoices"
        ],
        "operationId": "invoice_list",
        "description": "Retrieve a list of all invoices.\n\nRequired authorization scope: `public.invoice:read`\n",
        "security": [
          {
            "Bearer": [
              "public.invoice:read"
            ]
          },
          {
            "OAuth2": [
              "public.invoice:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "contact_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Contact IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "site_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Site IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "subscription_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Subscription IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "tenancy_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Tenancy IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          },
          {
            "name": "status",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "draft",
                  "deleted",
                  "open",
                  "paid",
                  "uncollectible",
                  "void"
                ]
              }
            },
            "description": "Filter by status. Supports multiple values separated by a comma.",
            "examples": {
              "single": {
                "value": [
                  "draft"
                ]
              },
              "multiple": {
                "value": [
                  "open",
                  "paid"
                ]
              }
            },
            "required": false
          },
          {
            "name": "type",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "subscription",
                  "ad_hoc",
                  "deposit"
                ]
              }
            },
            "description": "Filter by type. Supports multiple values separated by a comma.",
            "examples": {
              "single": {
                "value": [
                  "deposit"
                ]
              },
              "multiple": {
                "value": [
                  "subscription",
                  "ad_hoc"
                ]
              }
            },
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "list of invoices",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "invoices": [
                        {
                          "id": "inv_195h6kfm9ro15lof",
                          "amount_due": {
                            "amount": 5000,
                            "currency": "GBP",
                            "formatted": "£50.00"
                          },
                          "amount_paid": {
                            "amount": 4000,
                            "currency": "GBP",
                            "formatted": "£40.00"
                          },
                          "contact": {
                            "id": "con_195h6kfm9ro15lof"
                          },
                          "created_at": null,
                          "finalized_at": null,
                          "line_items": [
                            {
                              "accounting_code": "ACC-CODE",
                              "description": "Security deposit for XYZ",
                              "discount_total": {
                                "amount": 0,
                                "currency": "GBP",
                                "formatted": "£0.00"
                              },
                              "price": {
                                "amount": 100000,
                                "currency": "GBP",
                                "formatted": "£1,000.00"
                              },
                              "proration": false,
                              "quantity": 1,
                              "tax": {
                                "amount": 10000,
                                "currency": "GBP",
                                "formatted": "£100.00"
                              },
                              "total": {
                                "amount": 100000,
                                "currency": "GBP",
                                "formatted": "£1,000.00"
                              },
                              "total_excluding_tax": {
                                "amount": 90000,
                                "currency": "GBP",
                                "formatted": "£900.00"
                              },
                              "type": null
                            },
                            {
                              "accounting_code": "ACC-CODE",
                              "description": "Security deposit for XYZ",
                              "discount_total": {
                                "amount": 0,
                                "currency": "GBP",
                                "formatted": "£0.00"
                              },
                              "price": {
                                "amount": 100000,
                                "currency": "GBP",
                                "formatted": "£1,000.00"
                              },
                              "proration": false,
                              "quantity": 1,
                              "tax": {
                                "amount": 10000,
                                "currency": "GBP",
                                "formatted": "£100.00"
                              },
                              "total": {
                                "amount": 100000,
                                "currency": "GBP",
                                "formatted": "£1,000.00"
                              },
                              "total_excluding_tax": {
                                "amount": 90000,
                                "currency": "GBP",
                                "formatted": "£900.00"
                              },
                              "type": null
                            }
                          ],
                          "number": "ABC-361",
                          "paid_at": null,
                          "period_end": null,
                          "period_start": "2025-02-22T14:41:00Z",
                          "post_payment_credit_notes_amount": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "pre_payment_credit_notes_amount": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "purchase_order_number": null,
                          "site": {
                            "id": "site_14b419f1096013f1"
                          },
                          "status": "draft",
                          "subscription": {
                            "id": "sub_f7d4fea53ccdefe0"
                          },
                          "subtotal": {
                            "amount": 10000,
                            "currency": "GBP",
                            "formatted": "£100.00"
                          },
                          "tax": {
                            "amount": 1000,
                            "currency": "GBP",
                            "formatted": "£10.00"
                          },
                          "tenancy": {
                            "id": "ten_acaf3269a573af74"
                          },
                          "total": {
                            "amount": 9000,
                            "currency": "GBP",
                            "formatted": "£90.00"
                          },
                          "type": "deposit",
                          "voided_at": null
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 1,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of invoices"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/invoice_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/invoices/{invoice_id}": {
      "parameters": [
        {
          "name": "invoice_id",
          "in": "path",
          "description": "The ID of the invoice",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show an Invoice",
        "tags": [
          "Invoices"
        ],
        "operationId": "invoice_show",
        "description": "Retrieve a specific invoice by its ID.\n\nSupports PDF download. Set `application/pdf` in the `Accept` request header.\n\nRequired authorization scope: `public.invoice:read`\n",
        "security": [
          {
            "Bearer": [
              "public.invoice:read"
            ]
          },
          {
            "OAuth2": [
              "public.invoice:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "invoice detail",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "invoice": {
                        "id": "inv_195h6kfm9ro15lof",
                        "amount_due": {
                          "amount": 5000,
                          "currency": "GBP",
                          "formatted": "£50.00"
                        },
                        "amount_paid": {
                          "amount": 4000,
                          "currency": "GBP",
                          "formatted": "£40.00"
                        },
                        "contact": {
                          "id": "con_195h6kfm9ro15lof"
                        },
                        "created_at": null,
                        "finalized_at": null,
                        "line_items": [
                          {
                            "accounting_code": "ACC-CODE",
                            "description": "Security deposit for XYZ",
                            "discount_total": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "price": {
                              "amount": 100000,
                              "currency": "GBP",
                              "formatted": "£1,000.00"
                            },
                            "proration": false,
                            "quantity": 1,
                            "tax": {
                              "amount": 10000,
                              "currency": "GBP",
                              "formatted": "£100.00"
                            },
                            "total": {
                              "amount": 100000,
                              "currency": "GBP",
                              "formatted": "£1,000.00"
                            },
                            "total_excluding_tax": {
                              "amount": 90000,
                              "currency": "GBP",
                              "formatted": "£900.00"
                            },
                            "type": null
                          },
                          {
                            "accounting_code": "ACC-CODE",
                            "description": "Security deposit for XYZ",
                            "discount_total": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "price": {
                              "amount": 100000,
                              "currency": "GBP",
                              "formatted": "£1,000.00"
                            },
                            "proration": false,
                            "quantity": 1,
                            "tax": {
                              "amount": 10000,
                              "currency": "GBP",
                              "formatted": "£100.00"
                            },
                            "total": {
                              "amount": 100000,
                              "currency": "GBP",
                              "formatted": "£1,000.00"
                            },
                            "total_excluding_tax": {
                              "amount": 90000,
                              "currency": "GBP",
                              "formatted": "£900.00"
                            },
                            "type": null
                          }
                        ],
                        "number": "ABC-361",
                        "paid_at": null,
                        "period_end": null,
                        "period_start": "2025-02-22T14:41:00Z",
                        "post_payment_credit_notes_amount": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "pre_payment_credit_notes_amount": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "purchase_order_number": null,
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "status": "draft",
                        "subscription": {
                          "id": "sub_f7d4fea53ccdefe0"
                        },
                        "subtotal": {
                          "amount": 10000,
                          "currency": "GBP",
                          "formatted": "£100.00"
                        },
                        "tax": {
                          "amount": 1000,
                          "currency": "GBP",
                          "formatted": "£10.00"
                        },
                        "tenancy": {
                          "id": "ten_acaf3269a573af74"
                        },
                        "total": {
                          "amount": 9000,
                          "currency": "GBP",
                          "formatted": "£90.00"
                        },
                        "type": "deposit",
                        "voided_at": null
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "invoice detail"
                  },
                  "expanded": {
                    "value": {
                      "invoice": {
                        "id": "inv_195h6kfm9ro15lof",
                        "amount_due": {
                          "amount": 5000,
                          "currency": "GBP",
                          "formatted": "£50.00"
                        },
                        "amount_paid": {
                          "amount": 4000,
                          "currency": "GBP",
                          "formatted": "£40.00"
                        },
                        "contact": {
                          "id": "con_195h6kfm9ro15lof",
                          "address": {
                            "city": "Testtown",
                            "country_alpha2": "GB",
                            "line_1": "1, Test Building",
                            "line_2": "Test St.",
                            "postal_code": "BT12 AAA",
                            "state": null
                          },
                          "company_registration_number": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "example@example.com",
                          "full_name": "John Doe",
                          "identity_check": {
                            "required": false,
                            "status": "not_attempted"
                          },
                          "marketing_source": null,
                          "metadata": {},
                          "phone_number": "+447525920754",
                          "source": null,
                          "status": "lead",
                          "stripe_customer_id": null,
                          "tax_id": "6559",
                          "tenancies_count": 0,
                          "type": null,
                          "updated_at": "2025-02-22T14:41:00Z",
                          "use_case": null
                        },
                        "created_at": null,
                        "finalized_at": null,
                        "line_items": [
                          {
                            "accounting_code": "ACC-CODE",
                            "description": "Security deposit for XYZ",
                            "discount_total": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "price": {
                              "amount": 100000,
                              "currency": "GBP",
                              "formatted": "£1,000.00"
                            },
                            "proration": false,
                            "quantity": 1,
                            "tax": {
                              "amount": 10000,
                              "currency": "GBP",
                              "formatted": "£100.00"
                            },
                            "total": {
                              "amount": 100000,
                              "currency": "GBP",
                              "formatted": "£1,000.00"
                            },
                            "total_excluding_tax": {
                              "amount": 90000,
                              "currency": "GBP",
                              "formatted": "£900.00"
                            },
                            "type": null
                          },
                          {
                            "accounting_code": "ACC-CODE",
                            "description": "Security deposit for XYZ",
                            "discount_total": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "price": {
                              "amount": 100000,
                              "currency": "GBP",
                              "formatted": "£1,000.00"
                            },
                            "proration": false,
                            "quantity": 1,
                            "tax": {
                              "amount": 10000,
                              "currency": "GBP",
                              "formatted": "£100.00"
                            },
                            "total": {
                              "amount": 100000,
                              "currency": "GBP",
                              "formatted": "£1,000.00"
                            },
                            "total_excluding_tax": {
                              "amount": 90000,
                              "currency": "GBP",
                              "formatted": "£900.00"
                            },
                            "type": null
                          }
                        ],
                        "number": "ABC-361",
                        "paid_at": null,
                        "period_end": null,
                        "period_start": "2025-02-22T14:41:00Z",
                        "post_payment_credit_notes_amount": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "pre_payment_credit_notes_amount": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "purchase_order_number": null,
                        "site": {
                          "id": "site_14b419f1096013f1",
                          "access_hours": null,
                          "address": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "description": null,
                          "directions": {
                            "google_maps_url": null
                          },
                          "images": {
                            "default": null
                          },
                          "name": "Site Name",
                          "opened_at": null,
                          "phone": "012345789",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "status": "draft",
                        "subscription": {
                          "id": "sub_f7d4fea53ccdefe0",
                          "billing_period": "monthly",
                          "cancellation_reason": null,
                          "cancelled": false,
                          "created_at": "2025-02-22T14:41:00Z",
                          "current_period": {
                            "ends_at": null,
                            "starts_at": null
                          },
                          "ends_at": "2025-03-22T14:41:00Z",
                          "line_items": [],
                          "starts_at": "2025-02-22T14:41:00Z",
                          "stripe_subscription_id": "sub_1Rqgr9RD6khP71clla9Ur1jQ",
                          "stripe_subscription_schedule_id": null,
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "subtotal": {
                          "amount": 10000,
                          "currency": "GBP",
                          "formatted": "£100.00"
                        },
                        "tax": {
                          "amount": 1000,
                          "currency": "GBP",
                          "formatted": "£10.00"
                        },
                        "tenancy": {
                          "id": "ten_acaf3269a573af74",
                          "created_at": "2025-02-22T14:41:00Z",
                          "ends_at": "2025-03-22T14:41:00Z",
                          "order": {
                            "id": "order_8541ceb54c1b01f8",
                            "billing_period": "monthly",
                            "contract_template": null,
                            "coupon": null,
                            "created_at": "2025-02-22T14:41:00Z",
                            "email_notifications": {
                              "booking_confirmation": true,
                              "move_in_day": true,
                              "payment_details": false
                            },
                            "line_items": [],
                            "metadata": {},
                            "one_time_total": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "one_time_total_excluding_tax": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "payment_method": "card",
                            "payment_url": null,
                            "purchase_order_number": null,
                            "source": "unspecified",
                            "starts_at": "2025-02-23T14:41:00Z",
                            "status": "draft",
                            "subtotal": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "tax": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "total": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "total_discount": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "total_excluding_tax": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "starts_at": "2025-02-22T14:41:00Z",
                          "unit_allocations": [],
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "total": {
                          "amount": 9000,
                          "currency": "GBP",
                          "formatted": "£90.00"
                        },
                        "type": "deposit",
                        "voided_at": null
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "invoice detail (fully expanded)"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/invoice_single"
                }
              },
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/invoice_single"
                }
              }
            }
          },
          "404": {
            "description": "invoice not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Invoice was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "invoice not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              },
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "406": {
            "description": "pdf content not available",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_format",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The requested format (application/pdf) is not supported or currently available.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "pdf content not available"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              },
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/notes": {
      "get": {
        "summary": "List all Notes",
        "tags": [
          "Notes"
        ],
        "operationId": "note_list",
        "description": "Retrieve a list of all notes.\n\nRequired authorization scope: `public.note:read`\n",
        "security": [
          {
            "Bearer": [
              "public.note:read"
            ]
          },
          {
            "OAuth2": [
              "public.note:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "resource_id",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Filter by Resource ID (unit, contact, subscription, or task). Supports multiple values separated by comma.",
            "required": false
          },
          {
            "name": "resource_type",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "contact",
                  "unit",
                  "subscription",
                  "task"
                ]
              }
            },
            "description": "Filter by resource type. Supports multiple values separated by a comma.",
            "examples": {
              "single": {
                "value": [
                  "contact"
                ]
              },
              "multiple": {
                "value": [
                  "contact",
                  "unit"
                ]
              }
            },
            "required": false
          },
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "metadata",
            "in": "query",
            "style": "deepObject",
            "required": false,
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "example": {}
            },
            "description": "Filter by metadata. Use `metadata[key]=value` to filter by specific metadata keys."
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "list of notes",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "notes": [
                        {
                          "id": "note_195h6kfm9ro15lof",
                          "content": "This is a test note on a customer.",
                          "created_at": "2025-02-22T14:41:00Z",
                          "creator": {
                            "id": "tok_7f6e5fb4bb548dbc"
                          },
                          "metadata": {},
                          "resource": {
                            "id": "con_1234567890abcdef"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        {
                          "id": "note_e6705c4af27d9910",
                          "content": "This is a test note on a unit.",
                          "created_at": "2025-02-22T14:41:00Z",
                          "creator": {
                            "id": "tok_7f6e5fb4bb548dbc"
                          },
                          "metadata": {},
                          "resource": {
                            "id": "unit_8667dc92f0d56a80"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 2,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of notes"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/note_list"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create a Note",
        "tags": [
          "Notes"
        ],
        "operationId": "note_create",
        "description": "Create a new note.\n\nRequired authorization scope: `public.note:write`\n",
        "security": [
          {
            "Bearer": [
              "public.note:write"
            ]
          },
          {
            "OAuth2": [
              "public.note:write"
            ]
          }
        ],
        "parameters": [],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "201": {
            "description": "note successfully created",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "note": {
                        "id": "note_a1b2c3d4e5f67890",
                        "content": "Note content",
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "app_531844f4c4837d61"
                        },
                        "metadata": {
                          "external_id": "crm_12345",
                          "source": "api_import"
                        },
                        "resource": {
                          "id": "con_1234567890abcdef"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "note successfully created"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/note_single"
                }
              }
            }
          },
          "422": {
            "description": "invalid note",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "object at root is missing required properties: content, resource",
                            "pointer": null
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "invalid note"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotesCreate"
              },
              "examples": {
                "note_successfully_created": {
                  "summary": "note successfully created",
                  "value": {
                    "content": "Note content",
                    "resource": {
                      "id": "con_1234567890abcdef"
                    },
                    "metadata": {
                      "external_id": "crm_12345",
                      "source": "api_import"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/notes/{note_id}": {
      "parameters": [
        {
          "name": "note_id",
          "in": "path",
          "description": "The ID of the note to retrieve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Note",
        "tags": [
          "Notes"
        ],
        "operationId": "note_show",
        "description": "Retrieve a specific note by its ID.\n\nRequired authorization scope: `public.note:read`\n",
        "security": [
          {
            "Bearer": [
              "public.note:read"
            ]
          },
          {
            "OAuth2": [
              "public.note:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "note detail",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "note": {
                        "id": "note_195h6kfm9ro15lof",
                        "content": "This is a test note on a customer.",
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "tok_7f6e5fb4bb548dbc"
                        },
                        "metadata": {},
                        "resource": {
                          "id": "con_1234567890abcdef"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "note detail"
                  },
                  "expanded_contact": {
                    "value": {
                      "note": {
                        "id": "note_195h6kfm9ro15lof",
                        "content": "This is a test note on a customer.",
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "tok_7f6e5fb4bb548dbc",
                          "name": "API Integration"
                        },
                        "metadata": {},
                        "resource": {
                          "id": "con_1234567890abcdef",
                          "address": null,
                          "company_registration_number": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "customer@example.com",
                          "full_name": "Jane Doe",
                          "identity_check": {
                            "required": false,
                            "status": "not_attempted"
                          },
                          "marketing_source": null,
                          "metadata": {},
                          "phone_number": null,
                          "source": null,
                          "status": "lead",
                          "stripe_customer_id": null,
                          "tax_id": null,
                          "tenancies_count": 0,
                          "type": null,
                          "updated_at": "2025-02-22T14:41:00Z",
                          "use_case": null
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "note detail (expanded, resource: contact)"
                  },
                  "expanded_unit": {
                    "value": {
                      "note": {
                        "id": "note_e6705c4af27d9910",
                        "content": "This is a test note on a unit.",
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "tok_7f6e5fb4bb548dbc",
                          "name": "API Integration"
                        },
                        "metadata": {},
                        "resource": {
                          "id": "unit_8667dc92f0d56a80",
                          "created_at": "2025-02-22T14:41:00Z",
                          "reference_id": "A008",
                          "status": "available",
                          "unit_allocation": null,
                          "unit_type": {
                            "id": "utype_f18fc91387cdf710",
                            "_links": {
                              "sf:new_order": {
                                "href": "/sites/default-site-15-self-storage-units/order/contact-details?unit_type_slug=standard-storage-unit",
                                "title": "New order"
                              }
                            },
                            "created_at": "2025-02-22T14:41:00Z",
                            "dimensions": {
                              "height": 12,
                              "length": 11,
                              "measurement_unit": "ft",
                              "width": 10
                            },
                            "dynamic_pricing": false,
                            "images": {
                              "default": null
                            },
                            "live_prices": [
                              {
                                "billing_period": "monthly",
                                "price": {
                                  "amount": 1500,
                                  "currency": "GBP",
                                  "formatted": "£15.00"
                                },
                                "stripe_price_id": "price_unit_type_live_123"
                              }
                            ],
                            "name": "Standard Storage Unit",
                            "promotion": null,
                            "require_insurance_coverage": true,
                            "require_security_deposit": false,
                            "security_deposit": null,
                            "selling_points": [],
                            "size_description": "Can swing a cat quite comfortably",
                            "slug": "standard-storage-unit",
                            "status": "bookable",
                            "stripe_product_id": "prod_unit_type_test",
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "note detail (expanded, resource: unit)"
                  },
                  "expanded_subscription": {
                    "value": {
                      "note": {
                        "id": "note_b3c4d5e6f7a89012",
                        "content": "This is a test note on a subscription.",
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "tok_7f6e5fb4bb548dbc",
                          "name": "API Integration"
                        },
                        "metadata": {},
                        "resource": {
                          "id": "sub_abcdef1234567890",
                          "billing_period": "monthly",
                          "cancellation_reason": null,
                          "cancelled": false,
                          "created_at": "2025-02-22T14:41:00Z",
                          "current_period": {
                            "ends_at": null,
                            "starts_at": null
                          },
                          "ends_at": null,
                          "line_items": [],
                          "starts_at": "2025-02-22T14:41:00Z",
                          "stripe_subscription_id": null,
                          "stripe_subscription_schedule_id": null,
                          "tenancy": {
                            "id": "ten_8c957d38b021758d",
                            "created_at": "2025-02-22T14:41:00Z",
                            "ends_at": null,
                            "starts_at": "2025-02-22T14:41:00Z",
                            "unit_allocations": [],
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "note detail (expanded, resource: subscription)"
                  },
                  "expanded_task": {
                    "value": {
                      "note": {
                        "id": "note_d5e6f7a8b9c01234",
                        "content": "This is a test note on a task.",
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "tok_7f6e5fb4bb548dbc",
                          "name": "API Integration"
                        },
                        "metadata": {},
                        "resource": {
                          "id": "task_a1b2c3d4e5f67890",
                          "assignee": null,
                          "completed_at": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "creator": {
                            "id": "staff_48f196582178c161",
                            "created_at": "2025-02-22T14:41:00Z",
                            "email": "default_staff1@example.com",
                            "name": "John Doe",
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "description": null,
                          "due_at": null,
                          "metadata": {},
                          "resource": null,
                          "site": {
                            "id": "site_14b419f1096013f1",
                            "access_hours": null,
                            "address": null,
                            "created_at": "2025-02-22T14:41:00Z",
                            "description": null,
                            "directions": {
                              "google_maps_url": null
                            },
                            "images": {
                              "default": null
                            },
                            "name": "Site Name",
                            "opened_at": null,
                            "phone": "012345789",
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "status": "open",
                          "title": "Follow up task",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "note detail (expanded, resource: task)"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/note_single"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update a Note",
        "tags": [
          "Notes"
        ],
        "operationId": "note_update",
        "description": "Update an existing note.\n\nRequired authorization scope: `public.note:write`\n",
        "security": [
          {
            "Bearer": [
              "public.note:write"
            ]
          },
          {
            "OAuth2": [
              "public.note:write"
            ]
          }
        ],
        "parameters": [],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "Note updated",
            "content": {
              "application/json": {
                "examples": {
                  "note_successfully_updated": {
                    "value": {
                      "note": {
                        "id": "note_195h6kfm9ro15lof",
                        "content": "Updated note content.",
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "tok_7f6e5fb4bb548dbc"
                        },
                        "metadata": {
                          "source": "updated"
                        },
                        "resource": {
                          "id": "unit_8667dc92f0d56a80"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "note successfully updated"
                  },
                  "note_successfully_updated_content_only": {
                    "value": {
                      "note": {
                        "id": "note_195h6kfm9ro15lof",
                        "content": "Only content updated.",
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "tok_7f6e5fb4bb548dbc"
                        },
                        "metadata": {},
                        "resource": {
                          "id": "con_1234567890abcdef"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "note successfully updated content only"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/note_single"
                }
              }
            }
          },
          "404": {
            "description": "note not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Note was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "note not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "invalid request with empty content",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "Content can't be blank",
                            "pointer": "content"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "invalid request with empty content"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotesUpdate"
              },
              "examples": {
                "note_successfully_updated": {
                  "summary": "note successfully updated",
                  "value": {
                    "content": "Updated note content.",
                    "resource": {
                      "id": "unit_8667dc92f0d56a80"
                    },
                    "metadata": {
                      "source": "updated"
                    }
                  }
                },
                "note_successfully_updated_content_only": {
                  "summary": "note successfully updated content only",
                  "value": {
                    "content": "Only content updated."
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a Note",
        "tags": [
          "Notes"
        ],
        "operationId": "note_delete",
        "description": "Delete a note by its ID.\n\nRequired authorization scope: `public.note:write`\n",
        "security": [
          {
            "Bearer": [
              "public.note:write"
            ]
          },
          {
            "OAuth2": [
              "public.note:write"
            ]
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "note deleted",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "success": {
                        "message": "Note deleted successfully."
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "note deleted"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "404": {
            "description": "note not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Note was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "note not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/oauth2/token": {
      "post": {
        "summary": "Retrieve an Access Token",
        "tags": [
          "OAuth 2"
        ],
        "operationId": "oauth2_token",
        "description": "Retrieve an OAuth 2 Access Token.\n",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Access Token",
            "content": {
              "application/json": {
                "examples": {
                  "client_credentials": {
                    "value": {
                      "access_token": "_XVP5ehrV2pbjYmyx7B3vG0A3L2ZDHj5w1VVaJ9jfAM",
                      "token_type": "Bearer",
                      "expires_in": 7200,
                      "scope": "public.contact:write",
                      "created_at": 1740235260
                    },
                    "summary": "Access Token from Client Credentials grant"
                  },
                  "authorization_code": {
                    "value": {
                      "access_token": "K98aRY1o1pFsbUAb9w7-zBvaScT576_2Y1dO-YahXhE",
                      "token_type": "Bearer",
                      "expires_in": 7200,
                      "refresh_token": "BKneqgGehw7xSE9Fzm2aMP2AWg0cEHubsNOPFqNgAx4",
                      "scope": "public.contact:read public.contact:write",
                      "created_at": 1740235260
                    },
                    "summary": "Access Token from Authorization Code grant"
                  },
                  "refresh_token": {
                    "value": {
                      "access_token": "PBCvI2W7x0Y6vFTzaFDi2vIdlXhuNehCv9OMm9sacP4",
                      "token_type": "Bearer",
                      "expires_in": 1740242460,
                      "refresh_token": "bs51F__fUJgkQg2CjU8MyOHiQGhMupneZBkVfyefJYU",
                      "scope": "public.contact:read public.contact:write",
                      "created_at": 1740235260
                    },
                    "summary": "Access Token from Refresh Token"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/OAuth2TokenResponse"
                }
              }
            }
          },
          "401": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": "invalid_client",
                      "error_description": "Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method."
                    },
                    "summary": "Invalid Request"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/OAuth2Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OAuth2TokenRequest"
              },
              "examples": {
                "client_credentials": {
                  "summary": "Access Token from Client Credentials grant",
                  "value": {
                    "grant_type": "client_credentials",
                    "client_id": "ei5bQqk_qUqan8MYMarc2-Eqb48vdB-oc_qBBUjG7co",
                    "client_secret": "NlUuAoPDsKBhcCHc-I2Sa4nlPUaYm31nus6_OpiOzmQ",
                    "scope": "public.contact:write"
                  }
                },
                "access_code": {
                  "summary": "Access Token from Authorization Code grant",
                  "value": {
                    "client_id": "ei5bQqk_qUqan8MYMarc2-Eqb48vdB-oc_qBBUjG7co",
                    "client_secret": "NlUuAoPDsKBhcCHc-I2Sa4nlPUaYm31nus6_OpiOzmQ",
                    "code": "HwRIs8Xkte55uSjJBdwnpt_QtwdNMutjB-xMMcDVhfQ",
                    "grant_type": "authorization_code",
                    "redirect_uri": "https://app.stora.test"
                  }
                },
                "refresh_token": {
                  "summary": "Access Token from Refresh Token",
                  "value": {
                    "client_id": "ei5bQqk_qUqan8MYMarc2-Eqb48vdB-oc_qBBUjG7co",
                    "client_secret": "NlUuAoPDsKBhcCHc-I2Sa4nlPUaYm31nus6_OpiOzmQ",
                    "refresh_token": "xVpo3OwOebV9baOrztNAojGsNlkv4tvuTKoPWEDNDyA",
                    "grant_type": "refresh_token",
                    "scope": "public.contact:read public.contact:write"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/oauth2/token/info": {
      "get": {
        "summary": "Retrieve info for the Access Token",
        "tags": [
          "OAuth 2"
        ],
        "operationId": "oauth2_token_info",
        "description": "Retrieve an OAuth 2 Access Token information.\n",
        "security": [
          {
            "Bearer": []
          },
          {
            "OAuth2": []
          }
        ],
        "responses": {
          "200": {
            "description": "Access Token Info",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "scope": [
                        "public.contact:read",
                        "public.contact:write"
                      ],
                      "expires_in": 1740242460,
                      "application": {
                        "uid": "ei5bQqk_qUqan8MYMarc2-Eqb48vdB-oc_qBBUjG7co"
                      },
                      "created_at": 1740235260,
                      "operator": {
                        "name": "Stora"
                      }
                    },
                    "summary": "Access Token Info"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/OAuth2TokenInfo"
                }
              }
            }
          }
        }
      }
    },
    "/oauth2/introspect": {
      "post": {
        "summary": "Introspect an Access Token",
        "tags": [
          "OAuth 2"
        ],
        "operationId": "oauth2_token_introspect",
        "description": "Introspect an OAuth 2 Access Token using another Access Token.\n",
        "security": [
          {
            "Bearer": []
          },
          {
            "OAuth2": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Access Token Introspect",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "active": true,
                      "scope": "public.contact:read public.contact:write",
                      "client_id": "ei5bQqk_qUqan8MYMarc2-Eqb48vdB-oc_qBBUjG7co",
                      "token_type": "Bearer",
                      "iat": 1740235260,
                      "exp": 3480477720
                    },
                    "summary": "Access Token Introspect"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/OAuth2IntrospectResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OAuth2IntrospectRequest"
              },
              "examples": {
                "access_token_introspect": {
                  "summary": "Access Token Introspect",
                  "value": {
                    "token": "v88ZtIS248uE3c7ZhDdEbOfZkHSO69BxBhzPmEeCx2I"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/oauth2/revoke": {
      "post": {
        "summary": "Revoke an Access Token",
        "tags": [
          "OAuth 2"
        ],
        "operationId": "oauth2_token_revoke",
        "description": "Revoke an OAuth 2 Access Token using your Client Credentials.\n\nYou may pass either the access token or its refresh token as `token`.\n",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Revoke Access Token",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {},
                    "summary": "Revoke Access Token"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OAuth2TokenRevokeRequest"
              },
              "examples": {
                "access_token": {
                  "summary": "Revoke using an access token",
                  "value": {
                    "token": "eNDLzESXHDatsGA2pb1dgSVpmP0uPOVIkvuO4NREDBA",
                    "grant_type": "client_credentials",
                    "client_id": "ei5bQqk_qUqan8MYMarc2-Eqb48vdB-oc_qBBUjG7co",
                    "client_secret": "7BPdLtixgZbMpTu-EgXqyG5yaUn9QWo14XfoeUL0CKI"
                  }
                },
                "refresh_token": {
                  "summary": "Revoke using a refresh token",
                  "value": {
                    "token": "bs51F__fUJgkQg2CjU8MyOHiQGhMupneZBkVfyefJYU",
                    "grant_type": "client_credentials",
                    "client_id": "ei5bQqk_qUqan8MYMarc2-Eqb48vdB-oc_qBBUjG7co",
                    "client_secret": "7BPdLtixgZbMpTu-EgXqyG5yaUn9QWo14XfoeUL0CKI"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/orders/{order_id}/abandon": {
      "parameters": [
        {
          "name": "order_id",
          "in": "path",
          "description": "The ID of the order to abandon",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "summary": "Abandon an Order",
        "tags": [
          "Orders"
        ],
        "operationId": "order_abandon",
        "description": "Abandon an order that the customer is no longer expected to complete.\n\nIntended for customer-driven abandonment: use it to signal that the customer\nhas not returned to complete an order they began. It is at the operator's\ndiscretion when to treat an order as abandoned — whether after hours, days, or weeks.\nIt must not be used for operator-driven cancellations; a dedicated cancellation\nendpoint will be provided for that purpose.\n\nOnly orders in the `draft` or `finalized` status can be abandoned.\n\nRequired authorization scope: `public.order:write`\n",
        "security": [
          {
            "Bearer": [
              "public.order:write"
            ]
          },
          {
            "OAuth2": [
              "public.order:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "abandoned finalized order",
            "content": {
              "application/json": {
                "examples": {
                  "abandoned": {
                    "value": {
                      "order": {
                        "id": "order_942ae99a1fdc940e",
                        "billing_period": "monthly",
                        "contact": {
                          "id": "con_0ac0514ed0711462"
                        },
                        "contract_template": null,
                        "coupon": null,
                        "created_at": "2025-02-22T14:41:00Z",
                        "email_notifications": {
                          "booking_confirmation": true,
                          "move_in_day": true,
                          "payment_details": false
                        },
                        "line_items": [],
                        "metadata": {},
                        "one_time_total": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "one_time_total_excluding_tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "payment_method": "card",
                        "payment_url": null,
                        "purchase_order_number": null,
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "source": "public_api",
                        "starts_at": "2025-02-23T14:41:00Z",
                        "status": "abandoned",
                        "subscription": null,
                        "subtotal": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "tenancy": null,
                        "total": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "total_discount": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "total_excluding_tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://subdomain.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "response for an abandoned order"
                  },
                  "abandoned_finalized": {
                    "value": {
                      "order": {
                        "id": "order_942ae99a1fdc940e",
                        "billing_period": "monthly",
                        "contact": {
                          "id": "con_0ac0514ed0711462"
                        },
                        "contract_template": null,
                        "coupon": null,
                        "created_at": "2025-02-22T14:41:00Z",
                        "email_notifications": {
                          "booking_confirmation": true,
                          "move_in_day": true,
                          "payment_details": false
                        },
                        "line_items": [],
                        "metadata": {},
                        "one_time_total": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "one_time_total_excluding_tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "payment_method": "card",
                        "payment_url": null,
                        "purchase_order_number": null,
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "source": "public_api",
                        "starts_at": "2025-02-23T14:41:00Z",
                        "status": "abandoned",
                        "subscription": null,
                        "subtotal": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "tenancy": null,
                        "total": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "total_discount": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "total_excluding_tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://subdomain.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "response for an abandoned finalized order"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/order_single"
                }
              }
            }
          },
          "422": {
            "description": "invalid state of the order",
            "content": {
              "application/json": {
                "examples": {
                  "invalid": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "Order can not transition to `abandoned` from `completed`.",
                            "pointer": "order"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "response for invalid state of the order"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/orders/{order_id}/finalize": {
      "parameters": [
        {
          "name": "order_id",
          "in": "path",
          "description": "The ID of the order to finalize",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "summary": "Finalize an Order",
        "tags": [
          "Orders"
        ],
        "operationId": "order_finalize",
        "description": "Finalize an order to process it for payment.\n\nRequired authorization scope: `public.order:write`\n",
        "security": [
          {
            "Bearer": [
              "public.order:write"
            ]
          },
          {
            "OAuth2": [
              "public.order:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "201": {
            "description": "finalized order",
            "content": {
              "application/json": {
                "examples": {
                  "finalized": {
                    "value": {
                      "order": {
                        "id": "order_942ae99a1fdc940e",
                        "billing_period": "monthly",
                        "contact": {
                          "id": "con_0ac0514ed0711462"
                        },
                        "contract_template": null,
                        "coupon": null,
                        "created_at": "2025-02-22T14:41:00Z",
                        "email_notifications": {
                          "booking_confirmation": true,
                          "move_in_day": true,
                          "payment_details": false
                        },
                        "line_items": [
                          {
                            "id": "olitm_1001cbd3d5fec937"
                          },
                          {
                            "id": "olitm_260799c6b6b1a274"
                          },
                          {
                            "id": "olitm_47eba7938308c71d"
                          },
                          {
                            "id": "olitm_b202613e81c9101e"
                          }
                        ],
                        "metadata": {},
                        "one_time_total": {
                          "amount": 201998,
                          "currency": "GBP",
                          "formatted": "£2,019.98"
                        },
                        "one_time_total_excluding_tax": {
                          "amount": 201998,
                          "currency": "GBP",
                          "formatted": "£2,019.98"
                        },
                        "payment_method": "card",
                        "payment_url": "https://subdomain.stora.test/payments/eyJfcmFpbHMiOnsibWVzc2FnZSI6Ik9yZGVyOjllZjA3MTUxZjI0NzA3NTQiLCJleHAiOm51bGwsInB1ciI6ImJvb2tpbmcifX0=--64460a36d14f62a4c152eb3e317212a7c68fc375/pay",
                        "purchase_order_number": null,
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "source": "public_api",
                        "starts_at": "2025-02-23T14:41:00Z",
                        "status": "finalized",
                        "subscription": null,
                        "subtotal": {
                          "amount": 11998,
                          "currency": "GBP",
                          "formatted": "£119.98"
                        },
                        "tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "tenancy": null,
                        "total": {
                          "amount": 11998,
                          "currency": "GBP",
                          "formatted": "£119.98"
                        },
                        "total_discount": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "total_excluding_tax": {
                          "amount": 11998,
                          "currency": "GBP",
                          "formatted": "£119.98"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://subdomain.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "response for a finalized order"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/order_single"
                }
              }
            }
          },
          "422": {
            "description": "invalid state of the order",
            "content": {
              "application/json": {
                "examples": {
                  "invalid": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "Order can not be finalized in its current state (finalized)",
                            "pointer": "order"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "response for invalid state of the order"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrdersFinalize"
              },
              "examples": {
                "request": {
                  "summary": "request",
                  "value": {
                    "finalize": {
                      "cancel_redirect_url": "https://your-portal.com/orders/canceled"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/orders/{order_id}/line_items": {
      "parameters": [
        {
          "name": "order_id",
          "in": "path",
          "description": "The ID of the order",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "List all Line Items",
        "tags": [
          "Orders / Line Items"
        ],
        "operationId": "order_line_item_list",
        "description": "Retrieve a list of all line items for the order.\n\nRequired authorization scope: `public.order:read`\n",
        "security": [
          {
            "Bearer": [
              "public.order:read"
            ]
          },
          {
            "OAuth2": [
              "public.order:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "type",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "unit_type",
                  "protection",
                  "product",
                  "security_deposit"
                ]
              }
            },
            "description": "Filter by type. Supports multiple values separated by a comma.",
            "examples": {
              "single": {
                "value": [
                  "unit_type"
                ]
              },
              "multiple": {
                "value": [
                  "unit_type",
                  "protection"
                ]
              }
            },
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "list of line items",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "line_items": [
                        {
                          "id": "olitm_1001cbd3d5fec937",
                          "created_at": "2025-02-22T14:41:00Z",
                          "discount_total": {
                            "amount": 5000,
                            "currency": "GBP",
                            "formatted": "£50.00"
                          },
                          "item": {
                            "id": "utype_3b3aed5cca33b11d"
                          },
                          "price": {
                            "amount": 9999,
                            "currency": "GBP",
                            "formatted": "£99.99"
                          },
                          "quantity": 1,
                          "tax": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "total": {
                            "amount": 9999,
                            "currency": "GBP",
                            "formatted": "£99.99"
                          },
                          "total_excluding_tax": {
                            "amount": 9999,
                            "currency": "GBP",
                            "formatted": "£99.99"
                          },
                          "type": "unit_type",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        {
                          "id": "olitm_260799c6b6b1a274",
                          "created_at": "2025-02-22T14:41:00Z",
                          "discount_total": {
                            "amount": 1000,
                            "currency": "GBP",
                            "formatted": "£10.00"
                          },
                          "item": {
                            "id": "plvl_851681552a608245"
                          },
                          "price": {
                            "amount": 1999,
                            "currency": "GBP",
                            "formatted": "£19.99"
                          },
                          "quantity": 1,
                          "tax": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "total": {
                            "amount": 1999,
                            "currency": "GBP",
                            "formatted": "£19.99"
                          },
                          "total_excluding_tax": {
                            "amount": 1999,
                            "currency": "GBP",
                            "formatted": "£19.99"
                          },
                          "type": "protection",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        {
                          "id": "olitm_47eba7938308c71d",
                          "created_at": "2025-02-22T14:41:00Z",
                          "discount_total": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "item": {
                            "id": "prod_c4267b529ee675bd"
                          },
                          "price": {
                            "amount": 999,
                            "currency": "GBP",
                            "formatted": "£9.99"
                          },
                          "quantity": 2,
                          "tax": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "total": {
                            "amount": 1998,
                            "currency": "GBP",
                            "formatted": "£19.98"
                          },
                          "total_excluding_tax": {
                            "amount": 1998,
                            "currency": "GBP",
                            "formatted": "£19.98"
                          },
                          "type": "product",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        {
                          "id": "olitm_b202613e81c9101e",
                          "created_at": "2025-02-22T14:41:00Z",
                          "discount_total": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "item": {
                            "id": "utype_3b3aed5cca33b11d"
                          },
                          "price": {
                            "amount": 100000,
                            "currency": "GBP",
                            "formatted": "£1,000.00"
                          },
                          "quantity": 2,
                          "tax": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "total": {
                            "amount": 200000,
                            "currency": "GBP",
                            "formatted": "£2,000.00"
                          },
                          "total_excluding_tax": {
                            "amount": 200000,
                            "currency": "GBP",
                            "formatted": "£2,000.00"
                          },
                          "type": "security_deposit",
                          "updated_at": "2025-02-22T14:41:00Z"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 4,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of line items"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/order_line_item_list"
                }
              }
            }
          },
          "404": {
            "description": "order not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Order was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "order not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create a Line Item",
        "tags": [
          "Orders / Line Items"
        ],
        "operationId": "order_line_item_create",
        "description": "Create a new line item for the order. Create a new line item can be done only when the order is in draft status.\n\nRequired authorization scope: `public.order:write`\n",
        "security": [
          {
            "Bearer": [
              "public.order:write"
            ]
          },
          {
            "OAuth2": [
              "public.order:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "201": {
            "description": "line item successfully created",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "line_item": {
                        "id": "olitm_216f3087ddaf1234",
                        "created_at": "2025-02-22T14:41:00Z",
                        "discount_total": {
                          "amount": 1000,
                          "currency": "GBP",
                          "formatted": "£10.00"
                        },
                        "item": {
                          "id": "utype_3b3aed5cca33b11d"
                        },
                        "price": {
                          "amount": 1999,
                          "currency": "GBP",
                          "formatted": "£19.99"
                        },
                        "quantity": 1,
                        "tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "total": {
                          "amount": 1999,
                          "currency": "GBP",
                          "formatted": "£19.99"
                        },
                        "total_excluding_tax": {
                          "amount": 1999,
                          "currency": "GBP",
                          "formatted": "£19.99"
                        },
                        "type": "unit_type",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "line item successfully created"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/order_line_item_single"
                }
              }
            }
          },
          "409": {
            "description": "order is not in draft status",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "conflict",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The order must be in the draft status to modify its line items. The current status is completed.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "order is not in draft status"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "examples": {
                  "error_missing_item_id": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "Missing item ID",
                            "pointer": "/item/id"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "missing item id for a line item"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrdersLineItemsCreate"
              },
              "examples": {
                "order_line_item_create": {
                  "summary": "order line item create",
                  "value": {
                    "type": "unit_type",
                    "quantity": 1,
                    "price": {
                      "amount": 1999
                    },
                    "item": {
                      "id": "utype_3b3aed5cca33b11d"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/orders/{order_id}/line_items/{line_item_id}": {
      "parameters": [
        {
          "name": "order_id",
          "in": "path",
          "description": "The ID of the order",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "line_item_id",
          "in": "path",
          "description": "The ID of the line item",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "patch": {
        "summary": "Update a Line Item",
        "tags": [
          "Orders / Line Items"
        ],
        "operationId": "order_line_item_update",
        "description": "Update an existing line item. Only line items from orders in draft status can be updated.\n\nRequired authorization scope: `public.order:write`\n",
        "security": [
          {
            "Bearer": [
              "public.order:write"
            ]
          },
          {
            "OAuth2": [
              "public.order:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "line item successfully updated",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "line_item": {
                        "id": "olitm_1001cbd3d5fec937",
                        "created_at": "2025-02-22T14:41:00Z",
                        "discount_total": {
                          "amount": 1499,
                          "currency": "GBP",
                          "formatted": "£14.99"
                        },
                        "item": {
                          "id": "utype_3b3aed5cca33b11d"
                        },
                        "price": {
                          "amount": 1499,
                          "currency": "GBP",
                          "formatted": "£14.99"
                        },
                        "quantity": 2,
                        "tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "total": {
                          "amount": 2998,
                          "currency": "GBP",
                          "formatted": "£29.98"
                        },
                        "total_excluding_tax": {
                          "amount": 2998,
                          "currency": "GBP",
                          "formatted": "£29.98"
                        },
                        "type": "unit_type",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "line item successfully updated"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/order_line_item_single"
                }
              }
            }
          },
          "404": {
            "description": "line item not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Orders/Line Item was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "line item not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "order is not in draft status",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "conflict",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The order must be in the draft status to modify its line items. The current status is completed.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "order is not in draft status"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "examples": {
                  "empty_body": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "Line item params can't be blank",
                            "pointer": "line_item_params"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "empty body"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrdersLineItemsUpdate"
              },
              "examples": {
                "line_item_successfully_updated": {
                  "summary": "line item successfully updated",
                  "value": {
                    "quantity": 2,
                    "price": {
                      "amount": 1499
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a Line Item",
        "tags": [
          "Orders / Line Items"
        ],
        "operationId": "order_line_item_delete",
        "description": "Delete an existing line item. Only line items from orders in draft status can be removed.\n\nRequired authorization scope: `public.order:write`\n",
        "security": [
          {
            "Bearer": [
              "public.order:write"
            ]
          },
          {
            "OAuth2": [
              "public.order:write"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "line item deleted successfully",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "success": {
                        "message": "Line item deleted successfully."
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "line item deleted successfully"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "404": {
            "description": "line item not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Orders/Line Item was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "line item not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "order is not in draft status",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "conflict",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The order must be in the draft status to modify its line items. The current status is completed.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "order is not in draft status"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/orders/{order_id}/validate": {
      "parameters": [
        {
          "name": "order_id",
          "in": "path",
          "description": "The ID of the order to validate",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Validate an Order",
        "tags": [
          "Orders"
        ],
        "operationId": "order_validate",
        "description": "Validate an order to ensure it is ready to be finalized.\n\nRequired authorization scope: `public.order:read`\n",
        "security": [
          {
            "Bearer": [
              "public.order:read"
            ]
          },
          {
            "OAuth2": [
              "public.order:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "valid order",
            "content": {
              "application/json": {
                "examples": {
                  "valid": {
                    "value": {
                      "order": {
                        "id": "order_942ae99a1fdc940e",
                        "billing_period": "monthly",
                        "contact": {
                          "id": "con_0ac0514ed0711462"
                        },
                        "contract_template": null,
                        "coupon": null,
                        "created_at": "2025-02-22T14:41:00Z",
                        "email_notifications": {
                          "booking_confirmation": true,
                          "move_in_day": true,
                          "payment_details": false
                        },
                        "line_items": [
                          {
                            "id": "olitm_1001cbd3d5fec937"
                          },
                          {
                            "id": "olitm_260799c6b6b1a274"
                          },
                          {
                            "id": "olitm_47eba7938308c71d"
                          },
                          {
                            "id": "olitm_b202613e81c9101e"
                          }
                        ],
                        "metadata": {},
                        "one_time_total": {
                          "amount": 201998,
                          "currency": "GBP",
                          "formatted": "£2,019.98"
                        },
                        "one_time_total_excluding_tax": {
                          "amount": 201998,
                          "currency": "GBP",
                          "formatted": "£2,019.98"
                        },
                        "payment_method": "card",
                        "payment_url": null,
                        "purchase_order_number": null,
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "source": "public_api",
                        "starts_at": "2025-02-23T14:41:00Z",
                        "status": "draft",
                        "subscription": null,
                        "subtotal": {
                          "amount": 11998,
                          "currency": "GBP",
                          "formatted": "£119.98"
                        },
                        "tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "tenancy": null,
                        "total": {
                          "amount": 11998,
                          "currency": "GBP",
                          "formatted": "£119.98"
                        },
                        "total_discount": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "total_excluding_tax": {
                          "amount": 11998,
                          "currency": "GBP",
                          "formatted": "£119.98"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "response for a valid order"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/order_single"
                }
              }
            }
          },
          "422": {
            "description": "invalid order",
            "content": {
              "application/json": {
                "examples": {
                  "invalid": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "Starts at can't be blank",
                            "pointer": "starts_at"
                          },
                          {
                            "message": "Billing period must exist",
                            "pointer": "billing_period"
                          },
                          {
                            "message": "Contact must exist",
                            "pointer": "contact"
                          },
                          {
                            "message": "Line items must include at least one unit type line item",
                            "pointer": "line_items"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "response for invalid order"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/orders": {
      "get": {
        "summary": "List all Orders",
        "tags": [
          "Orders"
        ],
        "operationId": "order_list",
        "description": "Retrieve a list of all orders.\n\nRequired authorization scope: `public.order:read`\n",
        "security": [
          {
            "Bearer": [
              "public.order:read"
            ]
          },
          {
            "OAuth2": [
              "public.order:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "contact_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Contact IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "site_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Site IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          },
          {
            "name": "status",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "draft",
                  "finalized",
                  "completed",
                  "abandoned"
                ]
              }
            },
            "description": "Filter by status. Supports multiple values separated by a comma.",
            "examples": {
              "single": {
                "value": [
                  "draft"
                ]
              },
              "multiple": {
                "value": [
                  "finalized",
                  "completed"
                ]
              }
            },
            "required": false
          },
          {
            "name": "source",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "backoffice",
                  "storefront",
                  "storefront_multi_step",
                  "import",
                  "public_api",
                  "unspecified"
                ]
              }
            },
            "description": "Filter by source. Supports multiple values separated by a comma.",
            "examples": {
              "single": {
                "value": [
                  "backoffice"
                ]
              },
              "multiple": {
                "value": [
                  "storefront",
                  "public_api"
                ]
              }
            },
            "required": false
          },
          {
            "name": "billing_period",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "monthly",
                  "weekly",
                  "every_four_weeks",
                  "every_three_months",
                  "every_six_months",
                  "yearly",
                  "one_time"
                ]
              }
            },
            "description": "Filter by billing period. Supports multiple values separated by a comma.",
            "examples": {
              "single": {
                "value": [
                  "monthly"
                ]
              },
              "multiple": {
                "value": [
                  "monthly",
                  "weekly"
                ]
              }
            },
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "starts_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `starts` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "starts_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `starts` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "metadata",
            "in": "query",
            "style": "deepObject",
            "required": false,
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "example": {}
            },
            "description": "Filter by metadata. Use `metadata[key]=value` to filter by specific metadata keys."
          }
        ],
        "responses": {
          "200": {
            "description": "list of orders",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "orders": [
                        {
                          "id": "order_942ae99a1fdc940e",
                          "billing_period": "monthly",
                          "contact": {
                            "id": "con_0ac0514ed0711462"
                          },
                          "contract_template": {
                            "id": "ctpl_33ae8d0b2b371ba2"
                          },
                          "coupon": {
                            "id": "cpn_a26d0d4c582740c1"
                          },
                          "created_at": "2025-02-22T14:36:00Z",
                          "email_notifications": {
                            "booking_confirmation": true,
                            "move_in_day": true,
                            "payment_details": false
                          },
                          "line_items": [
                            {
                              "id": "olitm_1001cbd3d5fec937"
                            },
                            {
                              "id": "olitm_260799c6b6b1a274"
                            },
                            {
                              "id": "olitm_47eba7938308c71d"
                            },
                            {
                              "id": "olitm_b202613e81c9101e"
                            }
                          ],
                          "metadata": {},
                          "one_time_total": {
                            "amount": 201998,
                            "currency": "GBP",
                            "formatted": "£2,019.98"
                          },
                          "one_time_total_excluding_tax": {
                            "amount": 201998,
                            "currency": "GBP",
                            "formatted": "£2,019.98"
                          },
                          "payment_method": "card",
                          "payment_url": null,
                          "purchase_order_number": "PO987654321",
                          "site": {
                            "id": "site_14b419f1096013f1"
                          },
                          "source": "public_api",
                          "starts_at": "2025-02-23T14:41:00Z",
                          "status": "draft",
                          "subscription": null,
                          "subtotal": {
                            "amount": 11998,
                            "currency": "GBP",
                            "formatted": "£119.98"
                          },
                          "tax": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "tenancy": null,
                          "total": {
                            "amount": 5999,
                            "currency": "GBP",
                            "formatted": "£59.99"
                          },
                          "total_discount": {
                            "amount": 5999,
                            "currency": "GBP",
                            "formatted": "£59.99"
                          },
                          "total_excluding_tax": {
                            "amount": 5999,
                            "currency": "GBP",
                            "formatted": "£59.99"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        {
                          "id": "order_9b4d7b10f6b3e0d4",
                          "billing_period": null,
                          "contact": null,
                          "contract_template": null,
                          "coupon": null,
                          "created_at": "2025-02-22T14:31:00Z",
                          "email_notifications": {
                            "booking_confirmation": true,
                            "move_in_day": true,
                            "payment_details": false
                          },
                          "line_items": [],
                          "metadata": {},
                          "one_time_total": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "one_time_total_excluding_tax": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "payment_method": "card",
                          "payment_url": null,
                          "purchase_order_number": null,
                          "site": {
                            "id": "site_14b419f1096013f1"
                          },
                          "source": "public_api",
                          "starts_at": null,
                          "status": "draft",
                          "subscription": null,
                          "subtotal": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "tax": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "tenancy": null,
                          "total": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "total_discount": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "total_excluding_tax": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 2,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of orders"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/order_list"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create an Order",
        "tags": [
          "Orders"
        ],
        "operationId": "order_create",
        "description": "Create a new order.\n\nRequired authorization scope: `public.order:write`\n",
        "security": [
          {
            "Bearer": [
              "public.order:write"
            ]
          },
          {
            "OAuth2": [
              "public.order:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "201": {
            "description": "order successfully created",
            "content": {
              "application/json": {
                "examples": {
                  "normal": {
                    "value": {
                      "order": {
                        "id": "order_9ef07151f2470754",
                        "billing_period": "monthly",
                        "contact": {
                          "id": "con_0ac0514ed0711462"
                        },
                        "contract_template": {
                          "id": "ctpl_33ae8d0b2b371ba2"
                        },
                        "coupon": {
                          "id": "cpn_a26d0d4c582740c1"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "email_notifications": {
                          "booking_confirmation": false,
                          "move_in_day": false,
                          "payment_details": true
                        },
                        "line_items": [
                          {
                            "id": "olitm_216f3087ddaf7756"
                          },
                          {
                            "id": "olitm_164fba4304f78ca3"
                          },
                          {
                            "id": "olitm_1d4561fd880ff259"
                          },
                          {
                            "id": "olitm_63ec122061433484"
                          },
                          {
                            "id": "olitm_9470fad13481e779"
                          }
                        ],
                        "metadata": {
                          "source": "zapier",
                          "external_id": "abc_123"
                        },
                        "one_time_total": {
                          "amount": 11998,
                          "currency": "GBP",
                          "formatted": "£119.98"
                        },
                        "one_time_total_excluding_tax": {
                          "amount": 11998,
                          "currency": "GBP",
                          "formatted": "£119.98"
                        },
                        "payment_method": "card",
                        "payment_url": "https://acme.stora.test/payments/eyJfcmFpbHMiOnsibWVzc2FnZSI6Ik9yZGVyOjllZjA3MTUxZjI0NzA3NTQiLCJleHAiOm51bGwsInB1ciI6ImJvb2tpbmcifX0=--64460a36d14f62a4c152eb3e317212a7c68fc375/pay",
                        "purchase_order_number": "PO123456",
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "source": "public_api",
                        "starts_at": "2025-03-04T14:41:00Z",
                        "status": "finalized",
                        "subscription": null,
                        "subtotal": {
                          "amount": 6997,
                          "currency": "GBP",
                          "formatted": "£69.97"
                        },
                        "tax": {
                          "amount": 584,
                          "currency": "GBP",
                          "formatted": "£5.84"
                        },
                        "tenancy": null,
                        "total": {
                          "amount": 3498,
                          "currency": "GBP",
                          "formatted": "£34.98"
                        },
                        "total_discount": {
                          "amount": 3499,
                          "currency": "GBP",
                          "formatted": "£34.99"
                        },
                        "total_excluding_tax": {
                          "amount": 2914,
                          "currency": "GBP",
                          "formatted": "£29.14"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "order successfully created (full with new contact) and finalized"
                  },
                  "minimal": {
                    "value": {
                      "order": {
                        "id": "order_9ef07151f2470754",
                        "billing_period": null,
                        "contact": null,
                        "contract_template": null,
                        "coupon": null,
                        "created_at": "2025-02-22T14:41:00Z",
                        "email_notifications": {
                          "booking_confirmation": true,
                          "move_in_day": true,
                          "payment_details": false
                        },
                        "line_items": [],
                        "metadata": {},
                        "one_time_total": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "one_time_total_excluding_tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "payment_method": null,
                        "payment_url": null,
                        "purchase_order_number": null,
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "source": "public_api",
                        "starts_at": null,
                        "status": "draft",
                        "subscription": null,
                        "subtotal": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "tenancy": null,
                        "total": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "total_discount": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "total_excluding_tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "order successfully created (minimal)"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/order_single"
                }
              }
            }
          },
          "422": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "examples": {
                  "error_missing_item_id": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "Missing item ID for Line Item #0",
                            "pointer": "/line_items/0/item/id"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "missing item id for a line item"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrdersCreate"
              },
              "examples": {
                "order_created_full_with_new_contact_and_finalized": {
                  "summary": "order created (full with new contact) and finalized",
                  "value": {
                    "site": {
                      "id": "site_14b419f1096013f1"
                    },
                    "billing_period": "monthly",
                    "payment_method": "card",
                    "purchase_order_number": "PO123456",
                    "starts_at": "2025-03-04T14:41:00Z",
                    "emails": {
                      "booking_confirmation": false,
                      "move_in_day": false,
                      "payment_details": true
                    },
                    "coupon": {
                      "id": "cpn_a26d0d4c582740c1"
                    },
                    "contract_template": {
                      "id": "ctpl_33ae8d0b2b371ba2"
                    },
                    "contact": {
                      "full_name": "John Doe",
                      "email": "john@doe.com",
                      "tax_id": "123456789",
                      "phone_number": "+447525920754",
                      "address": {
                        "line_1": "123 Main St",
                        "line_2": "Apt 4B",
                        "city": "Anytown",
                        "postal_code": "12345",
                        "state": "CA",
                        "country_alpha2": "US"
                      },
                      "type": "company",
                      "marketing_source": "recommendation",
                      "source": "walkin",
                      "use_case": "more_space"
                    },
                    "finalize": {
                      "cancel_redirect_url": "https://your-portal.com/orders/canceled"
                    },
                    "metadata": {
                      "source": "zapier",
                      "external_id": "abc_123"
                    },
                    "line_items": [
                      {
                        "type": "unit_type",
                        "quantity": 1,
                        "price": {
                          "amount": 1999
                        },
                        "item": {
                          "id": "utype_3b3aed5cca33b11d"
                        }
                      },
                      {
                        "type": "protection",
                        "quantity": 1,
                        "price": {
                          "amount": 2999
                        },
                        "item": {
                          "id": "plvl_851681552a608245"
                        }
                      },
                      {
                        "type": "product",
                        "quantity": 1,
                        "price": {
                          "amount": 1999
                        },
                        "item": {
                          "id": "prod_c4267b529ee675bd"
                        }
                      },
                      {
                        "type": "product",
                        "quantity": 2,
                        "price": {
                          "amount": 999
                        },
                        "item": {
                          "id": "prod_0bc539e1087f3070"
                        }
                      },
                      {
                        "type": "security_deposit",
                        "quantity": 1,
                        "price": {
                          "amount": 10000
                        },
                        "item": {
                          "id": "utype_3b3aed5cca33b11d"
                        }
                      }
                    ]
                  }
                },
                "order_create_minimal": {
                  "summary": "order create (minimal)",
                  "value": {
                    "site": {
                      "id": "site_14b419f1096013f1"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/orders/{order_id}": {
      "parameters": [
        {
          "name": "order_id",
          "in": "path",
          "description": "The ID of the order to retrieve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show an Order",
        "tags": [
          "Orders"
        ],
        "operationId": "order_show",
        "description": "Retrieve a specific order by its ID.\n\nRequired authorization scope: `public.order:read`\n",
        "security": [
          {
            "Bearer": [
              "public.order:read"
            ]
          },
          {
            "OAuth2": [
              "public.order:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "order detail",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "order": {
                        "id": "order_942ae99a1fdc940e",
                        "billing_period": "monthly",
                        "contact": {
                          "id": "con_0ac0514ed0711462"
                        },
                        "contract_template": {
                          "id": "ctpl_33ae8d0b2b371ba2"
                        },
                        "coupon": {
                          "id": "cpn_a26d0d4c582740c1"
                        },
                        "created_at": "2025-02-22T14:36:00Z",
                        "email_notifications": {
                          "booking_confirmation": true,
                          "move_in_day": true,
                          "payment_details": false
                        },
                        "line_items": [
                          {
                            "id": "olitm_1001cbd3d5fec937"
                          },
                          {
                            "id": "olitm_260799c6b6b1a274"
                          },
                          {
                            "id": "olitm_47eba7938308c71d"
                          },
                          {
                            "id": "olitm_b202613e81c9101e"
                          }
                        ],
                        "metadata": {},
                        "one_time_total": {
                          "amount": 201998,
                          "currency": "GBP",
                          "formatted": "£2,019.98"
                        },
                        "one_time_total_excluding_tax": {
                          "amount": 201998,
                          "currency": "GBP",
                          "formatted": "£2,019.98"
                        },
                        "payment_method": "card",
                        "payment_url": null,
                        "purchase_order_number": "PO987654321",
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "source": "public_api",
                        "starts_at": "2025-02-23T14:41:00Z",
                        "status": "draft",
                        "subscription": null,
                        "subtotal": {
                          "amount": 11998,
                          "currency": "GBP",
                          "formatted": "£119.98"
                        },
                        "tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "tenancy": null,
                        "total": {
                          "amount": 5999,
                          "currency": "GBP",
                          "formatted": "£59.99"
                        },
                        "total_discount": {
                          "amount": 5999,
                          "currency": "GBP",
                          "formatted": "£59.99"
                        },
                        "total_excluding_tax": {
                          "amount": 5999,
                          "currency": "GBP",
                          "formatted": "£59.99"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "order detail"
                  },
                  "expanded": {
                    "value": {
                      "order": {
                        "id": "order_942ae99a1fdc940e",
                        "billing_period": "monthly",
                        "contact": {
                          "id": "con_0ac0514ed0711462",
                          "address": {
                            "city": "Testtown",
                            "country_alpha2": "GB",
                            "line_1": "1, Test Building",
                            "line_2": "Test St.",
                            "postal_code": "BT12 AAA",
                            "state": null
                          },
                          "company_registration_number": null,
                          "created_at": "2025-02-20T14:41:00Z",
                          "email": "john@doe.com",
                          "full_name": "John Doe",
                          "identity_check": {
                            "required": false,
                            "status": "not_attempted"
                          },
                          "marketing_source": "social_media",
                          "metadata": {},
                          "phone_number": "+447525920754",
                          "source": "phone",
                          "status": "customer",
                          "stripe_customer_id": "cus_SqaLe6rJhviOGm",
                          "tax_id": "GB123456789",
                          "tenancies_count": 1,
                          "type": "company",
                          "updated_at": "2025-02-22T14:41:00Z",
                          "use_case": "moving_home"
                        },
                        "contract_template": {
                          "id": "ctpl_33ae8d0b2b371ba2",
                          "created_at": "2025-02-22T14:41:00Z",
                          "name": "Sample Contract Template",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "coupon": {
                          "id": "cpn_a26d0d4c582740c1",
                          "auto_apply_to": {
                            "products": true,
                            "protections": true,
                            "subscriptions": false,
                            "unit_types": true
                          },
                          "billing_period": "monthly",
                          "code": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "duration": "repeating",
                          "max_redemptions": null,
                          "months": 2,
                          "name": "50% off first two months",
                          "percent": 50,
                          "public": true,
                          "title": null,
                          "type": "percentage",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "created_at": "2025-02-22T14:36:00Z",
                        "email_notifications": {
                          "booking_confirmation": true,
                          "move_in_day": true,
                          "payment_details": false
                        },
                        "line_items": [
                          {
                            "id": "olitm_1001cbd3d5fec937",
                            "created_at": "2025-02-22T14:41:00Z",
                            "discount_total": {
                              "amount": 5000,
                              "currency": "GBP",
                              "formatted": "£50.00"
                            },
                            "item": {
                              "id": "utype_3b3aed5cca33b11d",
                              "_links": {
                                "sf:new_order": {
                                  "href": "/sites/site-name-self-storage-units/order/contact-details?unit_type_slug=large",
                                  "title": "New order"
                                }
                              },
                              "created_at": "2025-02-22T14:41:00Z",
                              "dimensions": {
                                "height": 12,
                                "length": 11,
                                "measurement_unit": "ft",
                                "width": 10
                              },
                              "dynamic_pricing": false,
                              "images": {
                                "default": null
                              },
                              "live_prices": [
                                {
                                  "billing_period": "monthly",
                                  "price": {
                                    "amount": 5000,
                                    "currency": "GBP",
                                    "formatted": "£50.00"
                                  },
                                  "stripe_price_id": "price_order_unit_type_live_123"
                                }
                              ],
                              "name": "Large",
                              "promotion": null,
                              "require_insurance_coverage": true,
                              "require_security_deposit": false,
                              "security_deposit": null,
                              "selling_points": [],
                              "size_description": "Can swing a cat quite comfortably",
                              "slug": "large",
                              "status": "bookable",
                              "stripe_product_id": "prod_unit_type_test",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            "price": {
                              "amount": 9999,
                              "currency": "GBP",
                              "formatted": "£99.99"
                            },
                            "quantity": 1,
                            "tax": {
                              "amount": 833,
                              "currency": "GBP",
                              "formatted": "£8.33"
                            },
                            "total": {
                              "amount": 9999,
                              "currency": "GBP",
                              "formatted": "£99.99"
                            },
                            "total_excluding_tax": {
                              "amount": 9166,
                              "currency": "GBP",
                              "formatted": "£91.66"
                            },
                            "type": "unit_type",
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          {
                            "id": "olitm_260799c6b6b1a274",
                            "created_at": "2025-02-22T14:41:00Z",
                            "discount_total": {
                              "amount": 1000,
                              "currency": "GBP",
                              "formatted": "£10.00"
                            },
                            "item": {
                              "id": "plvl_851681552a608245",
                              "account_code": null,
                              "cover_level": {
                                "amount": 100000,
                                "currency": "GBP",
                                "formatted": "£1,000.00"
                              },
                              "created_at": "2025-02-22T14:41:00Z",
                              "public": true,
                              "stripe_product_id": "prod_insurance_test",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            "price": {
                              "amount": 1999,
                              "currency": "GBP",
                              "formatted": "£19.99"
                            },
                            "quantity": 1,
                            "tax": {
                              "amount": 167,
                              "currency": "GBP",
                              "formatted": "£1.67"
                            },
                            "total": {
                              "amount": 1999,
                              "currency": "GBP",
                              "formatted": "£19.99"
                            },
                            "total_excluding_tax": {
                              "amount": 1832,
                              "currency": "GBP",
                              "formatted": "£18.32"
                            },
                            "type": "protection",
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          {
                            "id": "olitm_47eba7938308c71d",
                            "created_at": "2025-02-22T14:41:00Z",
                            "discount_total": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "item": {
                              "id": "prod_c4267b529ee675bd",
                              "accounting_code": "CUSTOM-PRODUCT-1",
                              "category": {
                                "id": "pcat_3694743f2dd41938",
                                "name": "Merchandise"
                              },
                              "charge_type": "recurring",
                              "created_at": "2025-02-22T14:41:00Z",
                              "description": "Custom product description",
                              "images": {
                                "default": null
                              },
                              "name": "Custom Product",
                              "sku": null,
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            "price": {
                              "amount": 999,
                              "currency": "GBP",
                              "formatted": "£9.99"
                            },
                            "quantity": 2,
                            "tax": {
                              "amount": 333,
                              "currency": "GBP",
                              "formatted": "£3.33"
                            },
                            "total": {
                              "amount": 1998,
                              "currency": "GBP",
                              "formatted": "£19.98"
                            },
                            "total_excluding_tax": {
                              "amount": 1665,
                              "currency": "GBP",
                              "formatted": "£16.65"
                            },
                            "type": "product",
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          {
                            "id": "olitm_b202613e81c9101e",
                            "created_at": "2025-02-22T14:41:00Z",
                            "discount_total": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "item": {
                              "id": "utype_3b3aed5cca33b11d",
                              "_links": {
                                "sf:new_order": {
                                  "href": "/sites/site-name-self-storage-units/order/contact-details?unit_type_slug=large",
                                  "title": "New order"
                                }
                              },
                              "created_at": "2025-02-22T14:41:00Z",
                              "dimensions": {
                                "height": 12,
                                "length": 11,
                                "measurement_unit": "ft",
                                "width": 10
                              },
                              "dynamic_pricing": false,
                              "images": {
                                "default": null
                              },
                              "live_prices": [
                                {
                                  "billing_period": "monthly",
                                  "price": {
                                    "amount": 5000,
                                    "currency": "GBP",
                                    "formatted": "£50.00"
                                  },
                                  "stripe_price_id": "price_order_unit_type_live_123"
                                }
                              ],
                              "name": "Large",
                              "promotion": null,
                              "require_insurance_coverage": true,
                              "require_security_deposit": false,
                              "security_deposit": null,
                              "selling_points": [],
                              "size_description": "Can swing a cat quite comfortably",
                              "slug": "large",
                              "status": "bookable",
                              "stripe_product_id": "prod_unit_type_test",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            "price": {
                              "amount": 100000,
                              "currency": "GBP",
                              "formatted": "£1,000.00"
                            },
                            "quantity": 2,
                            "tax": {
                              "amount": 0,
                              "currency": "GBP",
                              "formatted": "£0.00"
                            },
                            "total": {
                              "amount": 200000,
                              "currency": "GBP",
                              "formatted": "£2,000.00"
                            },
                            "total_excluding_tax": {
                              "amount": 200000,
                              "currency": "GBP",
                              "formatted": "£2,000.00"
                            },
                            "type": "security_deposit",
                            "updated_at": "2025-02-22T14:41:00Z"
                          }
                        ],
                        "metadata": {},
                        "one_time_total": {
                          "amount": 201998,
                          "currency": "GBP",
                          "formatted": "£2,019.98"
                        },
                        "one_time_total_excluding_tax": {
                          "amount": 201665,
                          "currency": "GBP",
                          "formatted": "£2,016.65"
                        },
                        "payment_method": "card",
                        "payment_url": null,
                        "purchase_order_number": "PO987654321",
                        "site": {
                          "id": "site_14b419f1096013f1",
                          "access_hours": null,
                          "address": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "description": null,
                          "directions": {
                            "google_maps_url": null
                          },
                          "images": {
                            "default": null
                          },
                          "name": "Site Name",
                          "opened_at": null,
                          "phone": "012345789",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "source": "public_api",
                        "starts_at": "2025-02-23T14:41:00Z",
                        "status": "completed",
                        "subscription": {
                          "id": "sub_125c561ac05edfa1",
                          "billing_period": "monthly",
                          "cancellation_reason": "issue_cost",
                          "cancelled": false,
                          "created_at": "2025-02-22T14:41:00Z",
                          "current_period": {
                            "ends_at": null,
                            "starts_at": "2025-08-22T14:37:00Z"
                          },
                          "ends_at": null,
                          "line_items": [
                            {
                              "created_at": "2025-02-22T14:41:00Z",
                              "item": {
                                "id": "utype_3b3aed5cca33b11d",
                                "_links": {
                                  "sf:new_order": {
                                    "href": "/sites/site-name-self-storage-units/order/contact-details?unit_type_slug=large",
                                    "title": "New order"
                                  }
                                },
                                "created_at": "2025-02-22T14:41:00Z",
                                "dimensions": {
                                  "height": 12,
                                  "length": 11,
                                  "measurement_unit": "ft",
                                  "width": 10
                                },
                                "dynamic_pricing": false,
                                "images": {
                                  "default": null
                                },
                                "live_prices": [
                                  {
                                    "billing_period": "monthly",
                                    "price": {
                                      "amount": 5000,
                                      "currency": "GBP",
                                      "formatted": "£50.00"
                                    },
                                    "stripe_price_id": "price_order_unit_type_live_123"
                                  }
                                ],
                                "name": "Large",
                                "promotion": null,
                                "require_insurance_coverage": true,
                                "require_security_deposit": false,
                                "security_deposit": null,
                                "selling_points": [],
                                "size_description": "Can swing a cat quite comfortably",
                                "slug": "large",
                                "status": "bookable",
                                "stripe_product_id": "prod_unit_type_test",
                                "updated_at": "2025-02-22T14:41:00Z"
                              },
                              "price": {
                                "amount": 5000,
                                "currency": "GBP",
                                "formatted": "£50.00"
                              },
                              "quantity": 1,
                              "type": "unit_type",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            {
                              "created_at": "2025-02-22T14:41:00Z",
                              "item": {
                                "id": "plvl_851681552a608245",
                                "account_code": null,
                                "cover_level": {
                                  "amount": 100000,
                                  "currency": "GBP",
                                  "formatted": "£1,000.00"
                                },
                                "created_at": "2025-02-22T14:41:00Z",
                                "public": true,
                                "stripe_product_id": "prod_insurance_test",
                                "updated_at": "2025-02-22T14:41:00Z"
                              },
                              "price": {
                                "amount": 2000,
                                "currency": "GBP",
                                "formatted": "£20.00"
                              },
                              "quantity": 1,
                              "type": "protection",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            {
                              "created_at": "2025-02-22T14:41:00Z",
                              "item": {
                                "id": "prod_c4267b529ee675bd",
                                "accounting_code": "CUSTOM-PRODUCT-1",
                                "category": {
                                  "id": "pcat_3694743f2dd41938",
                                  "name": "Merchandise"
                                },
                                "charge_type": "recurring",
                                "created_at": "2025-02-22T14:41:00Z",
                                "description": "Custom product description",
                                "images": {
                                  "default": null
                                },
                                "name": "Custom Product",
                                "sku": null,
                                "updated_at": "2025-02-22T14:41:00Z"
                              },
                              "price": {
                                "amount": 12345,
                                "currency": "GBP",
                                "formatted": "£123.45"
                              },
                              "quantity": 1,
                              "type": "custom_product",
                              "updated_at": "2025-02-22T14:41:00Z"
                            }
                          ],
                          "starts_at": "2025-02-22T14:41:00Z",
                          "stripe_subscription_id": null,
                          "stripe_subscription_schedule_id": null,
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "subtotal": {
                          "amount": 11998,
                          "currency": "GBP",
                          "formatted": "£119.98"
                        },
                        "tax": {
                          "amount": 1333,
                          "currency": "GBP",
                          "formatted": "£13.33"
                        },
                        "tenancy": {
                          "id": "ten_acaf3269a573af74",
                          "created_at": "2025-02-22T14:41:00Z",
                          "ends_at": null,
                          "starts_at": "2025-02-22T14:41:00Z",
                          "unit_allocations": [
                            {
                              "id": "alloc_9a8b7c6d5e4f3210",
                              "created_at": "2025-02-22T14:41:00Z",
                              "granted_access_at": null,
                              "reserved_at": null,
                              "unit": {
                                "id": "unit_1e36123098e22cf8",
                                "created_at": "2025-02-22T14:41:00Z",
                                "reference_id": "A008",
                                "status": "available",
                                "unit_type": {
                                  "id": "utype_3b3aed5cca33b11d",
                                  "_links": {
                                    "sf:new_order": {
                                      "href": "/sites/site-name-self-storage-units/order/contact-details?unit_type_slug=large",
                                      "title": "New order"
                                    }
                                  },
                                  "created_at": "2025-02-22T14:41:00Z",
                                  "dimensions": {
                                    "height": 12,
                                    "length": 11,
                                    "measurement_unit": "ft",
                                    "width": 10
                                  },
                                  "dynamic_pricing": false,
                                  "images": {
                                    "default": null
                                  },
                                  "live_prices": [
                                    {
                                      "billing_period": "monthly",
                                      "price": {
                                        "amount": 5000,
                                        "currency": "GBP",
                                        "formatted": "£50.00"
                                      },
                                      "stripe_price_id": "price_order_unit_type_live_123"
                                    }
                                  ],
                                  "name": "Large",
                                  "promotion": null,
                                  "require_insurance_coverage": true,
                                  "require_security_deposit": false,
                                  "security_deposit": null,
                                  "selling_points": [],
                                  "size_description": "Can swing a cat quite comfortably",
                                  "slug": "large",
                                  "status": "bookable",
                                  "stripe_product_id": "prod_unit_type_test",
                                  "updated_at": "2025-02-22T14:41:00Z"
                                },
                                "updated_at": "2025-02-22T14:41:00Z"
                              },
                              "updated_at": "2025-02-22T14:41:00Z"
                            }
                          ],
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "total": {
                          "amount": 5999,
                          "currency": "GBP",
                          "formatted": "£59.99"
                        },
                        "total_discount": {
                          "amount": 5999,
                          "currency": "GBP",
                          "formatted": "£59.99"
                        },
                        "total_excluding_tax": {
                          "amount": 4999,
                          "currency": "GBP",
                          "formatted": "£49.99"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "order detail (fully expanded)"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/order_single"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update an Order",
        "tags": [
          "Orders"
        ],
        "operationId": "order_update",
        "description": "Update an existing order.\n\nRequired authorization scope: `public.order:write`\n",
        "security": [
          {
            "Bearer": [
              "public.order:write"
            ]
          },
          {
            "OAuth2": [
              "public.order:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "order successfully updated",
            "content": {
              "application/json": {
                "examples": {
                  "selected": {
                    "value": {
                      "order": {
                        "id": "order_942ae99a1fdc940e",
                        "billing_period": "monthly",
                        "contact": {
                          "id": "con_0ac0514ed0711462"
                        },
                        "contract_template": {
                          "id": "ctpl_33ae8d0b2b371ba2"
                        },
                        "coupon": {
                          "id": "cpn_a26d0d4c582740c1"
                        },
                        "created_at": "2025-02-22T14:36:00Z",
                        "email_notifications": {
                          "booking_confirmation": true,
                          "move_in_day": true,
                          "payment_details": false
                        },
                        "line_items": [
                          {
                            "id": "olitm_1001cbd3d5fec937"
                          }
                        ],
                        "metadata": {
                          "source": "updated"
                        },
                        "one_time_total": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "one_time_total_excluding_tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "payment_method": "bacs_debit",
                        "payment_url": null,
                        "purchase_order_number": "PO987654321",
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "source": "public_api",
                        "starts_at": "now",
                        "status": "draft",
                        "subscription": null,
                        "subtotal": {
                          "amount": 9999,
                          "currency": "GBP",
                          "formatted": "£99.99"
                        },
                        "tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "tenancy": null,
                        "total": {
                          "amount": 4999,
                          "currency": "GBP",
                          "formatted": "£49.99"
                        },
                        "total_discount": {
                          "amount": 5000,
                          "currency": "GBP",
                          "formatted": "£50.00"
                        },
                        "total_excluding_tax": {
                          "amount": 4999,
                          "currency": "GBP",
                          "formatted": "£49.99"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "update only selected attributes"
                  },
                  "remove_all_line_items": {
                    "value": {
                      "order": {
                        "id": "order_942ae99a1fdc940e",
                        "billing_period": "monthly",
                        "contact": {
                          "id": "con_0ac0514ed0711462"
                        },
                        "contract_template": {
                          "id": "ctpl_33ae8d0b2b371ba2"
                        },
                        "coupon": {
                          "id": "cpn_a26d0d4c582740c1"
                        },
                        "created_at": "2025-02-22T14:36:00Z",
                        "email_notifications": {
                          "booking_confirmation": true,
                          "move_in_day": true,
                          "payment_details": false
                        },
                        "line_items": [],
                        "metadata": {},
                        "one_time_total": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "one_time_total_excluding_tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "payment_method": "card",
                        "payment_url": null,
                        "purchase_order_number": "PO987654321",
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "source": "public_api",
                        "starts_at": "2025-02-23T14:41:00Z",
                        "status": "draft",
                        "subscription": null,
                        "subtotal": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "tenancy": null,
                        "total": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "total_discount": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "total_excluding_tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "remove all line items"
                  },
                  "remove_coupon_and_contract_template": {
                    "value": {
                      "order": {
                        "id": "order_942ae99a1fdc940e",
                        "billing_period": "monthly",
                        "contact": {
                          "id": "con_0ac0514ed0711462"
                        },
                        "contract_template": null,
                        "coupon": null,
                        "created_at": "2025-02-22T14:36:00Z",
                        "email_notifications": {
                          "booking_confirmation": true,
                          "move_in_day": true,
                          "payment_details": false
                        },
                        "line_items": [
                          {
                            "id": "olitm_1001cbd3d5fec937"
                          }
                        ],
                        "metadata": {},
                        "one_time_total": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "one_time_total_excluding_tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "payment_method": "card",
                        "payment_url": null,
                        "purchase_order_number": "PO987654321",
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "source": "public_api",
                        "starts_at": "2025-02-23T14:41:00Z",
                        "status": "draft",
                        "subscription": null,
                        "subtotal": {
                          "amount": 9999,
                          "currency": "GBP",
                          "formatted": "£99.99"
                        },
                        "tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "tenancy": null,
                        "total": {
                          "amount": 9999,
                          "currency": "GBP",
                          "formatted": "£99.99"
                        },
                        "total_discount": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "total_excluding_tax": {
                          "amount": 9999,
                          "currency": "GBP",
                          "formatted": "£99.99"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "remove coupon and contract template"
                  },
                  "add_new_line_item": {
                    "value": {
                      "order": {
                        "id": "order_942ae99a1fdc940e",
                        "billing_period": "monthly",
                        "contact": {
                          "id": "con_0ac0514ed0711462"
                        },
                        "contract_template": {
                          "id": "ctpl_33ae8d0b2b371ba2"
                        },
                        "coupon": {
                          "id": "cpn_a26d0d4c582740c1"
                        },
                        "created_at": "2025-02-22T14:36:00Z",
                        "email_notifications": {
                          "booking_confirmation": true,
                          "move_in_day": true,
                          "payment_details": false
                        },
                        "line_items": [
                          {
                            "id": "olitm_1001cbd3d5fec937"
                          },
                          {
                            "id": "olitm_216f3087ddaf7756"
                          }
                        ],
                        "metadata": {},
                        "one_time_total": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "one_time_total_excluding_tax": {
                          "amount": 0,
                          "currency": "GBP",
                          "formatted": "£0.00"
                        },
                        "payment_method": "card",
                        "payment_url": null,
                        "purchase_order_number": "PO987654321",
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "source": "public_api",
                        "starts_at": "2025-02-23T14:41:00Z",
                        "status": "draft",
                        "subscription": null,
                        "subtotal": {
                          "amount": 12998,
                          "currency": "GBP",
                          "formatted": "£129.98"
                        },
                        "tax": {
                          "amount": 1083,
                          "currency": "GBP",
                          "formatted": "£10.83"
                        },
                        "tenancy": null,
                        "total": {
                          "amount": 6499,
                          "currency": "GBP",
                          "formatted": "£64.99"
                        },
                        "total_discount": {
                          "amount": 6499,
                          "currency": "GBP",
                          "formatted": "£64.99"
                        },
                        "total_excluding_tax": {
                          "amount": 5416,
                          "currency": "GBP",
                          "formatted": "£54.16"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "add a new line item to existing ones"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/order_single"
                }
              }
            }
          },
          "404": {
            "description": "order not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Order was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "order not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrdersUpdate"
              },
              "examples": {
                "update_only_selected_attributes": {
                  "summary": "update only selected attributes",
                  "value": {
                    "starts_at": "now",
                    "payment_method": "bacs_debit",
                    "metadata": {
                      "source": "updated"
                    }
                  }
                },
                "remove_all_line_items": {
                  "summary": "remove all line items",
                  "value": {
                    "line_items": []
                  }
                },
                "remove_coupon_and_contract_template": {
                  "summary": "remove coupon and contract template",
                  "value": {
                    "coupon": null,
                    "contract_template": null
                  }
                },
                "add_a_new_line_item_to_existing_ones": {
                  "summary": "add a new line item to existing ones",
                  "value": {
                    "line_items": [
                      {
                        "id": "olitm_1001cbd3d5fec937"
                      },
                      {
                        "type": "protection",
                        "quantity": 1,
                        "price": {
                          "amount": 2999
                        },
                        "item": {
                          "id": "plvl_851681552a608245"
                        }
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete an Order",
        "tags": [
          "Orders"
        ],
        "operationId": "order_delete",
        "description": "Delete an order by its ID.\n\nRequired authorization scope: `public.order:write`\n",
        "security": [
          {
            "Bearer": [
              "public.order:write"
            ]
          },
          {
            "OAuth2": [
              "public.order:write"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "order successfully deleted",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "success": {
                        "message": "Order deleted successfully."
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "order successfully deleted"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "404": {
            "description": "order not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Order was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "order not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/product_categories": {
      "get": {
        "summary": "List all Product Categories",
        "tags": [
          "Product Categories"
        ],
        "operationId": "product_category_list",
        "description": "Retrieve a list of all product categories.\n\nRequired authorization scope: `public.product_category:read`\n",
        "security": [
          {
            "Bearer": [
              "public.product_category:read"
            ]
          },
          {
            "OAuth2": [
              "public.product_category:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "list all product categories",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "product_categories": [
                        {
                          "id": "pcat_643d3a52e2702246",
                          "name": "Access"
                        },
                        {
                          "id": "pcat_38a43d5e68a8dce5",
                          "name": "Boxes"
                        },
                        {
                          "id": "pcat_a434b3a5bc8102bc",
                          "name": "Charge/Fee"
                        },
                        {
                          "id": "pcat_9e54ee1becb431b2",
                          "name": "Locks"
                        },
                        {
                          "id": "pcat_3694743f2dd41938",
                          "name": "Merchandise"
                        },
                        {
                          "id": "pcat_cb9e95e7e8b778e0",
                          "name": "Packaging"
                        },
                        {
                          "id": "pcat_67276d8ef62c6bd3",
                          "name": "Padlocks"
                        },
                        {
                          "id": "pcat_655a65716deb3641",
                          "name": "Security"
                        },
                        {
                          "id": "pcat_a5562516b2fb85cd",
                          "name": "Services"
                        },
                        {
                          "id": "pcat_91e1c50b8dd88709",
                          "name": "Unit upgrades"
                        },
                        {
                          "id": "pcat_f88ad82d8b026b87",
                          "name": "Utilities"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 11,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list all product categories"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/product_category_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/product_categories/{product_category_id}": {
      "parameters": [
        {
          "name": "product_category_id",
          "in": "path",
          "description": "The ID of the product category to retrieve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Product Category",
        "tags": [
          "Product Categories"
        ],
        "operationId": "product_category_show",
        "description": "Retrieve a specific product category by its ID.\n\nRequired authorization scope: `public.product_category:read`\n",
        "security": [
          {
            "Bearer": [
              "public.product_category:read"
            ]
          },
          {
            "OAuth2": [
              "public.product_category:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "product category detail",
            "content": {
              "application/json": {
                "examples": {
                  "json": {
                    "value": {
                      "product_category": {
                        "id": "pcat_38a43d5e68a8dce5",
                        "name": "Boxes"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "product category detail"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/product_category_single"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/products/{product_id}/base_price": {
      "parameters": [
        {
          "name": "product_id",
          "in": "path",
          "description": "The ID of the product to set the base prices",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "summary": "Create Base Price for the Product",
        "tags": [
          "Products"
        ],
        "operationId": "product_base_price_create",
        "description": "Set base prices for the selected product.\n\nRequired authorization scope: `public.product:write`\n",
        "security": [
          {
            "Bearer": [
              "public.product:write"
            ]
          },
          {
            "OAuth2": [
              "public.product:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "201": {
            "description": "one_time product with created base prices",
            "content": {
              "application/json": {
                "examples": {
                  "recurring": {
                    "value": {
                      "product": {
                        "id": "prod_2af1a177df617f3c",
                        "accounting_code": "CUSTOM-PRODUCT-1",
                        "category": {
                          "id": "pcat_a434b3a5bc8102bc"
                        },
                        "charge_type": "recurring",
                        "created_at": "2025-02-22T14:41:00Z",
                        "description": "Custom product description",
                        "images": {
                          "default": null
                        },
                        "name": "Recurring Product",
                        "prices": [
                          {
                            "billing_period": "weekly",
                            "price": {
                              "amount": 999,
                              "currency": "GBP",
                              "formatted": "£9.99"
                            },
                            "stripe_price_id": "price_5ZRMiQmM3BfIzoTtNNQZpUnh"
                          },
                          {
                            "billing_period": "monthly",
                            "price": {
                              "amount": 3999,
                              "currency": "GBP",
                              "formatted": "£39.99"
                            },
                            "stripe_price_id": "price_1OFEj4jqBxezmkUMuPhySwmO"
                          }
                        ],
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "sku": null,
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "updated prices of recurring product"
                  },
                  "one_time": {
                    "value": {
                      "product": {
                        "id": "prod_82f059cc36dded80",
                        "accounting_code": "CUSTOM-PRODUCT-1",
                        "category": {
                          "id": "pcat_a434b3a5bc8102bc"
                        },
                        "charge_type": "one_time",
                        "created_at": "2025-02-22T14:41:00Z",
                        "description": "Custom product description",
                        "images": {
                          "default": null
                        },
                        "name": "One Time Product",
                        "prices": [
                          {
                            "billing_period": "one_time",
                            "price": {
                              "amount": 999,
                              "currency": "GBP",
                              "formatted": "£9.99"
                            },
                            "stripe_price_id": "price_1OFEj4jqBxezmkUMuPhySwmO"
                          }
                        ],
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "sku": null,
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "updated prices of one-time product"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/product_single"
                }
              }
            }
          },
          "422": {
            "description": "trying update one-time product with recurring prices",
            "content": {
              "application/json": {
                "examples": {
                  "recurring_failed": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "One time billing period is not allowed for recurring products",
                            "pointer": "one_time"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "trying update recurring product with one_time price"
                  },
                  "one_time_failed": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "One time billing period is required for one-time products",
                            "pointer": "one_time"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "trying update one-time product with recurring prices"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductBasePriceCreateRequest"
              },
              "examples": {
                "update_prices_for_recurring_product": {
                  "summary": "update prices for recurring product",
                  "value": {
                    "weekly": {
                      "amount": 999
                    },
                    "monthly": {
                      "amount": 3999
                    }
                  }
                },
                "update_prices_for_one-time_product": {
                  "summary": "update prices for one-time product",
                  "value": {
                    "one_time": {
                      "amount": 999
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/products": {
      "get": {
        "summary": "List all Products",
        "tags": [
          "Products"
        ],
        "operationId": "product_list",
        "description": "Retrieve a list of all products.\n\nRequired authorization scope: `public.product:read`\n",
        "security": [
          {
            "Bearer": [
              "public.product:read"
            ]
          },
          {
            "OAuth2": [
              "public.product:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "site_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Site IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          },
          {
            "name": "category_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Category IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "charge_type",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "one_time",
                  "recurring"
                ]
              }
            },
            "description": "Filter by charge_type. Supports multiple values separated by a comma.",
            "example": [
              "one_time"
            ],
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "list of products",
            "content": {
              "application/json": {
                "examples": {
                  "json": {
                    "value": {
                      "products": [
                        {
                          "id": "prod_2af1a177df617f3c",
                          "accounting_code": "CUSTOM-PRODUCT-1",
                          "category": {
                            "id": "pcat_a434b3a5bc8102bc"
                          },
                          "charge_type": "recurring",
                          "created_at": "2025-02-21T14:41:00Z",
                          "description": "Custom product description",
                          "images": {
                            "default": null
                          },
                          "name": "Recurring Product",
                          "prices": [
                            {
                              "billing_period": "monthly",
                              "price": {
                                "amount": 1000,
                                "currency": "GBP",
                                "formatted": "£10.00"
                              },
                              "stripe_price_id": "price_O7afgQy1NVctmTS9sGyROoUL"
                            }
                          ],
                          "site": {
                            "id": "site_14b419f1096013f1"
                          },
                          "sku": null,
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        {
                          "id": "prod_82f059cc36dded80",
                          "accounting_code": "CUSTOM-PRODUCT-1",
                          "category": {
                            "id": "pcat_a434b3a5bc8102bc"
                          },
                          "charge_type": "one_time",
                          "created_at": "2025-02-20T14:41:00Z",
                          "description": "Custom product description",
                          "images": {
                            "default": null
                          },
                          "name": "One Time Product",
                          "prices": [
                            {
                              "billing_period": "one_time",
                              "price": {
                                "amount": 2000,
                                "currency": "GBP",
                                "formatted": "£20.00"
                              },
                              "stripe_price_id": "price_yJbKiofvzKf1OvsYIAlQQNF0"
                            }
                          ],
                          "site": {
                            "id": "site_14b419f1096013f1"
                          },
                          "sku": null,
                          "updated_at": "2025-02-22T14:41:00Z"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 2,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of products"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/product_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/products/{product_id}": {
      "parameters": [
        {
          "name": "product_id",
          "in": "path",
          "description": "The ID of the product to retrieve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Product",
        "tags": [
          "Products"
        ],
        "operationId": "product_show",
        "description": "Retrieve a specific product by its ID.\n\nRequired authorization scope: `public.product:read`\n",
        "security": [
          {
            "Bearer": [
              "public.product:read"
            ]
          },
          {
            "OAuth2": [
              "public.product:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "product detail",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "product": {
                        "id": "prod_82f059cc36dded80",
                        "accounting_code": "CUSTOM-PRODUCT-1",
                        "category": {
                          "id": "pcat_a434b3a5bc8102bc"
                        },
                        "charge_type": "one_time",
                        "created_at": "2025-02-20T14:41:00Z",
                        "description": "Custom product description",
                        "images": {
                          "default": null
                        },
                        "name": "One Time Product",
                        "prices": [
                          {
                            "billing_period": "one_time",
                            "price": {
                              "amount": 2000,
                              "currency": "GBP",
                              "formatted": "£20.00"
                            },
                            "stripe_price_id": "price_yJbKiofvzKf1OvsYIAlQQNF0"
                          }
                        ],
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "sku": null,
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "product detail"
                  },
                  "expanded": {
                    "value": {
                      "product": {
                        "id": "prod_82f059cc36dded80",
                        "accounting_code": "CUSTOM-PRODUCT-1",
                        "category": {
                          "id": "pcat_a434b3a5bc8102bc",
                          "name": "Charge/Fee"
                        },
                        "charge_type": "one_time",
                        "created_at": "2025-02-20T14:41:00Z",
                        "description": "Custom product description",
                        "images": {
                          "default": {
                            "original": "https://public-api.stora.test/2025-09/images/eyJpZCI6InByb2RfODJmMDU5Y2MzNmRkZWQ4MCIsIm5hbWUiOiJkZWZhdWx0In0=--3aaf8bdd030eaefb234e76a0ecd711b89655c37d/product-photo.jpg",
                            "small": "https://public-api.stora.test/2025-09/images/eyJpZCI6InByb2RfODJmMDU5Y2MzNmRkZWQ4MCIsIm5hbWUiOiJkZWZhdWx0IiwidmFyaWFudCI6InNtYWxsIn0=--390c2e05521e913e20490deae14b5b577e90e107/product-photo.jpg",
                            "medium": "https://public-api.stora.test/2025-09/images/eyJpZCI6InByb2RfODJmMDU5Y2MzNmRkZWQ4MCIsIm5hbWUiOiJkZWZhdWx0IiwidmFyaWFudCI6Im1lZGl1bSJ9--7996e0105be28470f1b60814db5ebdc1e1aa0102/product-photo.jpg",
                            "large": "https://public-api.stora.test/2025-09/images/eyJpZCI6InByb2RfODJmMDU5Y2MzNmRkZWQ4MCIsIm5hbWUiOiJkZWZhdWx0IiwidmFyaWFudCI6ImxhcmdlIn0=--4bad7b91ab7671298a611861f68a379da2ca93e4/product-photo.jpg"
                          }
                        },
                        "name": "One Time Product",
                        "prices": [
                          {
                            "billing_period": "one_time",
                            "price": {
                              "amount": 2000,
                              "currency": "GBP",
                              "formatted": "£20.00"
                            },
                            "stripe_price_id": "price_yJbKiofvzKf1OvsYIAlQQNF0"
                          }
                        ],
                        "site": {
                          "id": "site_14b419f1096013f1",
                          "access_hours": null,
                          "address": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "description": null,
                          "directions": {
                            "google_maps_url": null
                          },
                          "images": {
                            "default": null
                          },
                          "name": "Site Name",
                          "opened_at": null,
                          "phone": "012345789",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "sku": null,
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "product detail (fully expanded)"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/product_single"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/protection_levels/{protection_level_id}/base_price": {
      "parameters": [
        {
          "name": "protection_level_id",
          "in": "path",
          "description": "The ID of the protection level to set the base prices",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "summary": "Create Base Price for the Protection Level",
        "tags": [
          "Protection Levels"
        ],
        "operationId": "protection_level_base_price_create",
        "description": "Set base prices for the selected protection level.\n\nRequired authorization scope: `public.protection_level:write`\n",
        "security": [
          {
            "Bearer": [
              "public.protection_level:write"
            ]
          },
          {
            "OAuth2": [
              "public.protection_level:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "201": {
            "description": "protection level with created base prices",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "protection_level": {
                        "id": "plvl_e8f3ad0a07e47566",
                        "account_code": null,
                        "cover_level": {
                          "amount": 2000000,
                          "currency": "GBP",
                          "formatted": "£20,000.00"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "prices": [
                          {
                            "billing_period": "weekly",
                            "price": {
                              "amount": 999,
                              "currency": "GBP",
                              "formatted": "£9.99"
                            },
                            "stripe_price_id": "price_OUZT099ynVSlgPkNEzRI55sK"
                          },
                          {
                            "billing_period": "monthly",
                            "price": {
                              "amount": 3999,
                              "currency": "GBP",
                              "formatted": "£39.99"
                            },
                            "stripe_price_id": "price_MwJrt3uovKQOBpbjwpGRdTz3"
                          }
                        ],
                        "public": true,
                        "stripe_product_id": "test_Sj6us30iGDiaXO",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "protection level with created base prices"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/protection_level_single"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BasePriceCreate"
              },
              "examples": {
                "protection_level_with_created_base_prices": {
                  "summary": "protection level with created base prices",
                  "value": {
                    "weekly": {
                      "amount": 999
                    },
                    "monthly": {
                      "amount": 3999
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/protection_levels": {
      "get": {
        "summary": "List all Protection Levels",
        "tags": [
          "Protection Levels"
        ],
        "operationId": "protection_level_list",
        "description": "Retrieve a list of all protection levels.\n\nRequired authorization scope: `public.protection_level:read`\n",
        "security": [
          {
            "Bearer": [
              "public.protection_level:read"
            ]
          },
          {
            "OAuth2": [
              "public.protection_level:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "list of protection levels",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "protection_levels": [
                        {
                          "id": "plvl_e8f3ad0a07e47566",
                          "account_code": null,
                          "cover_level": {
                            "amount": 2000000,
                            "currency": "GBP",
                            "formatted": "£20,000.00"
                          },
                          "created_at": "2025-02-22T14:41:00Z",
                          "prices": [
                            {
                              "billing_period": "weekly",
                              "price": {
                                "amount": 999,
                                "currency": "GBP",
                                "formatted": "£9.99"
                              },
                              "stripe_price_id": "price_123"
                            }
                          ],
                          "public": true,
                          "stripe_product_id": "test_Sj6us30iGDiaXO",
                          "updated_at": "2025-02-22T14:41:00Z"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 1,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of protection levels"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/protection_level_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/protection_levels/{protection_level_id}": {
      "parameters": [
        {
          "name": "protection_level_id",
          "in": "path",
          "description": "The ID of the protection level to retrieve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Protection Level",
        "tags": [
          "Protection Levels"
        ],
        "operationId": "protection_level_show",
        "description": "Retrieve a specific protection level by its ID.\n\nRequired authorization scope: `public.protection_level:read`\n",
        "security": [
          {
            "Bearer": [
              "public.protection_level:read"
            ]
          },
          {
            "OAuth2": [
              "public.protection_level:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "protection_level detail",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "protection_level": {
                        "id": "plvl_e8f3ad0a07e47566",
                        "account_code": null,
                        "cover_level": {
                          "amount": 2000000,
                          "currency": "GBP",
                          "formatted": "£20,000.00"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "prices": [
                          {
                            "billing_period": "weekly",
                            "price": {
                              "amount": 999,
                              "currency": "GBP",
                              "formatted": "£9.99"
                            },
                            "stripe_price_id": "price_123"
                          }
                        ],
                        "public": true,
                        "stripe_product_id": "test_Sj6us30iGDiaXO",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "protection_level detail"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/protection_level_single"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/sites": {
      "get": {
        "summary": "List all Sites",
        "tags": [
          "Sites"
        ],
        "operationId": "site_list",
        "description": "Retrieve a list of all sites.\n\nRequired authorization scope: `public.site:read`\n",
        "security": [
          {
            "Bearer": [
              "public.site:read"
            ]
          },
          {
            "OAuth2": [
              "public.site:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "name",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Search sites by name (fuzzy match). **BETA**",
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "list of sites",
            "content": {
              "application/json": {
                "examples": {
                  "json": {
                    "value": {
                      "sites": [
                        {
                          "id": "site_14b419f1096013f1",
                          "access_hours": {
                            "friday": {
                              "close": "18:00",
                              "open": "08:00",
                              "status": "set_hours"
                            },
                            "monday": {
                              "close": "18:00",
                              "open": "08:00",
                              "status": "set_hours"
                            },
                            "saturday": {
                              "close": "18:00",
                              "open": "08:00",
                              "status": "set_hours"
                            },
                            "sunday": {
                              "close": "18:00",
                              "open": "08:00",
                              "status": "set_hours"
                            },
                            "thursday": {
                              "close": "18:00",
                              "open": "08:00",
                              "status": "set_hours"
                            },
                            "tuesday": {
                              "close": "18:00",
                              "open": "08:00",
                              "status": "set_hours"
                            },
                            "wednesday": {
                              "close": "18:00",
                              "open": "08:00",
                              "status": "set_hours"
                            }
                          },
                          "address": {
                            "city": "Segfault Springs",
                            "line_1": "42 Hitchhiker's Lane",
                            "line_2": "Unit NaN",
                            "postal_code": "NULL00"
                          },
                          "created_at": "2025-02-20T14:41:00Z",
                          "description": "A site for all your Stack Overflow needs.",
                          "directions": {
                            "google_maps_url": "https://maps.google.com/?q=Stora+-+Self+Storage+Software"
                          },
                          "images": {
                            "default": null
                          },
                          "name": "The Stack Overflow Station",
                          "opened_at": "2025-02-24T14:41:00Z",
                          "phone": "012345789",
                          "updated_at": "2025-02-22T14:41:00Z"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 1,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of sites in JSON"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/site_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/sites/{site_id}": {
      "parameters": [
        {
          "name": "site_id",
          "in": "path",
          "description": "The ID of the site to retrieve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Site",
        "tags": [
          "Sites"
        ],
        "operationId": "site_show",
        "description": "Retrieve a specific site by its ID.\n\nRequired authorization scope: `public.site:read`\n",
        "security": [
          {
            "Bearer": [
              "public.site:read"
            ]
          },
          {
            "OAuth2": [
              "public.site:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "site detail in CSV",
            "content": {
              "application/json": {
                "examples": {
                  "json": {
                    "value": {
                      "site": {
                        "id": "site_14b419f1096013f1",
                        "access_hours": {
                          "friday": {
                            "close": "18:00",
                            "open": "08:00",
                            "status": "set_hours"
                          },
                          "monday": {
                            "close": "18:00",
                            "open": "08:00",
                            "status": "set_hours"
                          },
                          "saturday": {
                            "close": "18:00",
                            "open": "08:00",
                            "status": "set_hours"
                          },
                          "sunday": {
                            "close": "18:00",
                            "open": "08:00",
                            "status": "set_hours"
                          },
                          "thursday": {
                            "close": "18:00",
                            "open": "08:00",
                            "status": "set_hours"
                          },
                          "tuesday": {
                            "close": "18:00",
                            "open": "08:00",
                            "status": "set_hours"
                          },
                          "wednesday": {
                            "close": "18:00",
                            "open": "08:00",
                            "status": "set_hours"
                          }
                        },
                        "address": {
                          "city": "Segfault Springs",
                          "line_1": "42 Hitchhiker's Lane",
                          "line_2": "Unit NaN",
                          "postal_code": "NULL00"
                        },
                        "created_at": "2025-02-20T14:41:00Z",
                        "description": "A site for all your Stack Overflow needs.",
                        "directions": {
                          "google_maps_url": "https://maps.google.com/?q=Stora+-+Self+Storage+Software"
                        },
                        "images": {
                          "default": {
                            "original": "https://public-api.stora.test/2025-09/images/eyJpZCI6InNpdGVfMTRiNDE5ZjEwOTYwMTNmMSIsIm5hbWUiOiJkZWZhdWx0In0=--64460a36d14f62a4c152eb3e317212a7c68fc375/site-photo.jpg",
                            "small": "https://public-api.stora.test/2025-09/images/eyJpZCI6InNpdGVfMTRiNDE5ZjEwOTYwMTNmMSIsIm5hbWUiOiJkZWZhdWx0IiwidmFyaWFudCI6InNtYWxsIn0=--64460a36d14f62a4c152eb3e317212a7c68fc375/site-photo.jpg",
                            "medium": "https://public-api.stora.test/2025-09/images/eyJpZCI6InNpdGVfMTRiNDE5ZjEwOTYwMTNmMSIsIm5hbWUiOiJkZWZhdWx0IiwidmFyaWFudCI6Im1lZGl1bSJ9--64460a36d14f62a4c152eb3e317212a7c68fc375/site-photo.jpg",
                            "large": "https://public-api.stora.test/2025-09/images/eyJpZCI6InNpdGVfMTRiNDE5ZjEwOTYwMTNmMSIsIm5hbWUiOiJkZWZhdWx0IiwidmFyaWFudCI6ImxhcmdlIn0=--64460a36d14f62a4c152eb3e317212a7c68fc375/site-photo.jpg"
                          }
                        },
                        "name": "The Stack Overflow Station",
                        "opened_at": "2025-02-24T14:41:00Z",
                        "phone": "012345789",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "site detail in JSON"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/site_single"
                }
              },
              "text/csv": {
                "examples": {
                  "csv": {
                    "value": "﻿id,access_hours.friday.close,access_hours.friday.open,access_hours.friday.status,access_hours.monday.close,access_hours.monday.open,access_hours.monday.status,access_hours.saturday.close,access_hours.saturday.open,access_hours.saturday.status,access_hours.sunday.close,access_hours.sunday.open,access_hours.sunday.status,access_hours.thursday.close,access_hours.thursday.open,access_hours.thursday.status,access_hours.tuesday.close,access_hours.tuesday.open,access_hours.tuesday.status,access_hours.wednesday.close,access_hours.wednesday.open,access_hours.wednesday.status,address.city,address.line_1,address.line_2,address.postal_code,created_at,description,directions.google_maps_url,images.default,name,opened_at,phone,updated_at\nsite_14b419f1096013f1,18:00,08:00,set_hours,18:00,08:00,set_hours,18:00,08:00,set_hours,18:00,08:00,set_hours,18:00,08:00,set_hours,18:00,08:00,set_hours,18:00,08:00,set_hours,Segfault Springs,42 Hitchhiker's Lane,Unit NaN,NULL00,2025-02-20T14:41:00Z,A site for all your Stack Overflow needs.,https://maps.google.com/?q=Stora+-+Self+Storage+Software,,The Stack Overflow Station,2025-02-24T14:41:00Z,012345789,2025-02-22T14:41:00Z\n",
                    "summary": "site detail in CSV"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/staff": {
      "get": {
        "summary": "List all Staff",
        "tags": [
          "Staff"
        ],
        "operationId": "staff_list",
        "description": "Retrieve a list of all staff.\n\nRequired authorization scope: `public.staff:read`\n",
        "security": [
          {
            "Bearer": [
              "public.staff:read"
            ]
          },
          {
            "OAuth2": [
              "public.staff:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Search staff by name or email (fuzzy match). **BETA**",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "list of staff",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "staff": [
                        {
                          "id": "staff_947b3057d5df338e",
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "john@doe.com",
                          "name": "John Doe",
                          "updated_at": "2025-02-22T14:41:00Z"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 1,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of staff"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/staff_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/staff/{staff_id}": {
      "parameters": [
        {
          "name": "staff_id",
          "in": "path",
          "description": "The ID of the staff member to retrieve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Staff Member",
        "tags": [
          "Staff"
        ],
        "operationId": "staff_show",
        "description": "Retrieve a specific staff member by its ID.\n\nRequired authorization scope: `public.staff:read`\n",
        "security": [
          {
            "Bearer": [
              "public.staff:read"
            ]
          },
          {
            "OAuth2": [
              "public.staff:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "staff detail",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "staff": {
                        "id": "staff_947b3057d5df338e",
                        "created_at": "2025-02-22T14:41:00Z",
                        "email": "john@doe.com",
                        "name": "John Doe",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "staff detail"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/staff_single"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/subscriptions": {
      "get": {
        "summary": "List all Subscriptions",
        "tags": [
          "Subscriptions"
        ],
        "operationId": "subscription_list",
        "description": "Retrieve a list of all subscriptions.\n\nRequired authorization scope: `public.subscription:read`\n",
        "security": [
          {
            "Bearer": [
              "public.subscription:read"
            ]
          },
          {
            "OAuth2": [
              "public.subscription:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "contact_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Contact IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "list of subscriptions",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "subscriptions": [
                        {
                          "id": "sub_125c561ac05edfa1",
                          "billing_period": "monthly",
                          "cancellation_reason": null,
                          "cancelled": false,
                          "contact": {
                            "id": "con_195h6kfm9ro15lof"
                          },
                          "created_at": "2025-02-22T14:41:00Z",
                          "current_period": {
                            "ends_at": null,
                            "starts_at": "2025-08-22T14:37:00Z"
                          },
                          "ends_at": null,
                          "line_items": [
                            {
                              "created_at": "2025-02-22T14:41:00Z",
                              "item": {
                                "id": "utype_f18fc91387cdf710"
                              },
                              "price": {
                                "amount": 5000,
                                "currency": "GBP",
                                "formatted": "£50.00"
                              },
                              "quantity": 1,
                              "type": "unit_type",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            {
                              "created_at": "2025-02-22T14:41:00Z",
                              "item": {
                                "id": "plvl_dfaf0f9b464627e9"
                              },
                              "price": {
                                "amount": 2000,
                                "currency": "GBP",
                                "formatted": "£20.00"
                              },
                              "quantity": 1,
                              "type": "protection",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            {
                              "created_at": "2025-02-22T14:41:00Z",
                              "item": {
                                "id": "prod_d81f4b51313aa8e9"
                              },
                              "price": {
                                "amount": 12345,
                                "currency": "GBP",
                                "formatted": "£123.45"
                              },
                              "quantity": 1,
                              "type": "custom_product",
                              "updated_at": "2025-02-22T14:41:00Z"
                            }
                          ],
                          "order": {
                            "id": "order_8541ceb54c1b01f8"
                          },
                          "site": {
                            "id": "site_14b419f1096013f1"
                          },
                          "starts_at": "2025-02-22T14:41:00Z",
                          "stripe_subscription_id": null,
                          "stripe_subscription_schedule_id": null,
                          "tenancy": {
                            "id": "ten_acaf3269a573af74"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 1,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of subscriptions"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/subscription_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/subscriptions/{subscription_id}": {
      "parameters": [
        {
          "name": "subscription_id",
          "in": "path",
          "description": "The ID of the subscription",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Subscription",
        "tags": [
          "Subscriptions"
        ],
        "operationId": "subscription_show",
        "description": "Retrieve a specific subscription by its ID.\n\nRequired authorization scope: `public.subscription:read`\n",
        "security": [
          {
            "Bearer": [
              "public.subscription:read"
            ]
          },
          {
            "OAuth2": [
              "public.subscription:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "subscription detail",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "subscription": {
                        "id": "sub_125c561ac05edfa1",
                        "billing_period": "monthly",
                        "cancellation_reason": null,
                        "cancelled": false,
                        "contact": {
                          "id": "con_195h6kfm9ro15lof"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "current_period": {
                          "ends_at": null,
                          "starts_at": "2025-08-22T14:37:00Z"
                        },
                        "ends_at": null,
                        "line_items": [
                          {
                            "created_at": "2025-02-22T14:41:00Z",
                            "item": {
                              "id": "utype_f18fc91387cdf710"
                            },
                            "price": {
                              "amount": 5000,
                              "currency": "GBP",
                              "formatted": "£50.00"
                            },
                            "quantity": 1,
                            "type": "unit_type",
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          {
                            "created_at": "2025-02-22T14:41:00Z",
                            "item": {
                              "id": "plvl_dfaf0f9b464627e9"
                            },
                            "price": {
                              "amount": 2000,
                              "currency": "GBP",
                              "formatted": "£20.00"
                            },
                            "quantity": 1,
                            "type": "protection",
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          {
                            "created_at": "2025-02-22T14:41:00Z",
                            "item": {
                              "id": "prod_d81f4b51313aa8e9"
                            },
                            "price": {
                              "amount": 12345,
                              "currency": "GBP",
                              "formatted": "£123.45"
                            },
                            "quantity": 1,
                            "type": "custom_product",
                            "updated_at": "2025-02-22T14:41:00Z"
                          }
                        ],
                        "order": {
                          "id": "order_8541ceb54c1b01f8"
                        },
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "starts_at": "2025-02-22T14:41:00Z",
                        "stripe_subscription_id": null,
                        "stripe_subscription_schedule_id": null,
                        "tenancy": {
                          "id": "ten_acaf3269a573af74"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "subscription detail"
                  },
                  "expanded": {
                    "value": {
                      "subscription": {
                        "id": "sub_125c561ac05edfa1",
                        "billing_period": "monthly",
                        "cancellation_reason": null,
                        "cancelled": false,
                        "contact": {
                          "id": "con_195h6kfm9ro15lof",
                          "address": {
                            "city": "Testtown",
                            "country_alpha2": "GB",
                            "line_1": "1, Test Building",
                            "line_2": "Test St.",
                            "postal_code": "BT12 AAA",
                            "state": null
                          },
                          "company_registration_number": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "example@example.com",
                          "full_name": "John Doe",
                          "identity_check": {
                            "required": false,
                            "status": "not_attempted"
                          },
                          "marketing_source": null,
                          "metadata": {},
                          "phone_number": "+447525920754",
                          "source": null,
                          "status": "customer",
                          "stripe_customer_id": null,
                          "tax_id": "6559",
                          "tenancies_count": 1,
                          "type": null,
                          "updated_at": "2025-02-22T14:41:00Z",
                          "use_case": null
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "current_period": {
                          "ends_at": null,
                          "starts_at": "2025-08-22T14:37:00Z"
                        },
                        "ends_at": null,
                        "line_items": [
                          {
                            "created_at": "2025-02-22T14:41:00Z",
                            "item": {
                              "id": "utype_f18fc91387cdf710",
                              "_links": {
                                "sf:new_order": {
                                  "href": "/sites/default-site-24-self-storage-units/order/contact-details?unit_type_slug=large",
                                  "title": "New order"
                                }
                              },
                              "created_at": "2025-02-22T14:41:00Z",
                              "dimensions": {
                                "height": 12,
                                "length": 11,
                                "measurement_unit": "ft",
                                "width": 10
                              },
                              "dynamic_pricing": false,
                              "images": {
                                "default": null
                              },
                              "live_prices": [
                                {
                                  "billing_period": "monthly",
                                  "price": {
                                    "amount": 5000,
                                    "currency": "GBP",
                                    "formatted": "£50.00"
                                  },
                                  "stripe_price_id": "price_subscription_unit_type_live_123"
                                }
                              ],
                              "name": "Large",
                              "promotion": null,
                              "require_insurance_coverage": true,
                              "require_security_deposit": false,
                              "security_deposit": null,
                              "selling_points": [],
                              "size_description": "Can swing a cat quite comfortably",
                              "slug": "large",
                              "status": "bookable",
                              "stripe_product_id": "prod_unit_type_test",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            "price": {
                              "amount": 5000,
                              "currency": "GBP",
                              "formatted": "£50.00"
                            },
                            "quantity": 1,
                            "type": "unit_type",
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          {
                            "created_at": "2025-02-22T14:41:00Z",
                            "item": {
                              "id": "plvl_dfaf0f9b464627e9",
                              "account_code": null,
                              "cover_level": {
                                "amount": 100000,
                                "currency": "GBP",
                                "formatted": "£1,000.00"
                              },
                              "created_at": "2025-02-22T14:41:00Z",
                              "public": true,
                              "stripe_product_id": "prod_insurance_test",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            "price": {
                              "amount": 2000,
                              "currency": "GBP",
                              "formatted": "£20.00"
                            },
                            "quantity": 1,
                            "type": "protection",
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          {
                            "created_at": "2025-02-22T14:41:00Z",
                            "item": {
                              "id": "prod_d81f4b51313aa8e9",
                              "accounting_code": "CUSTOM-PRODUCT-1",
                              "category": {
                                "id": "pcat_3694743f2dd41938",
                                "name": "Merchandise"
                              },
                              "charge_type": "recurring",
                              "created_at": "2025-02-22T14:41:00Z",
                              "description": "Custom product description",
                              "images": {
                                "default": null
                              },
                              "name": "Custom Product",
                              "sku": null,
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            "price": {
                              "amount": 12345,
                              "currency": "GBP",
                              "formatted": "£123.45"
                            },
                            "quantity": 1,
                            "type": "custom_product",
                            "updated_at": "2025-02-22T14:41:00Z"
                          }
                        ],
                        "order": {
                          "id": "order_8541ceb54c1b01f8",
                          "billing_period": "monthly",
                          "contract_template": {
                            "id": "ctpl_33ae8d0b2b371ba2",
                            "created_at": "2025-02-22T14:41:00Z",
                            "name": "Sample Contract Template",
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "coupon": {
                            "id": "cpn_a26d0d4c582740c1",
                            "auto_apply_to": {
                              "products": false,
                              "protections": false,
                              "subscriptions": true,
                              "unit_types": false
                            },
                            "billing_period": "monthly",
                            "code": null,
                            "created_at": "2025-02-22T14:41:00Z",
                            "duration": "repeating",
                            "max_redemptions": null,
                            "months": 2,
                            "name": "50% off first two months",
                            "percent": 50,
                            "public": true,
                            "title": null,
                            "type": "percentage",
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "created_at": "2025-02-22T14:41:00Z",
                          "email_notifications": {
                            "booking_confirmation": true,
                            "move_in_day": true,
                            "payment_details": false
                          },
                          "line_items": [
                            {
                              "id": "olitm_1001cbd3d5fec937",
                              "created_at": "2025-02-22T14:41:00Z",
                              "discount_total": {
                                "amount": 2500,
                                "currency": "GBP",
                                "formatted": "£25.00"
                              },
                              "item": {
                                "id": "utype_f18fc91387cdf710",
                                "_links": {
                                  "sf:new_order": {
                                    "href": "/sites/default-site-24-self-storage-units/order/contact-details?unit_type_slug=large",
                                    "title": "New order"
                                  }
                                },
                                "created_at": "2025-02-22T14:41:00Z",
                                "dimensions": {
                                  "height": 12,
                                  "length": 11,
                                  "measurement_unit": "ft",
                                  "width": 10
                                },
                                "dynamic_pricing": false,
                                "images": {
                                  "default": null
                                },
                                "live_prices": [
                                  {
                                    "billing_period": "monthly",
                                    "price": {
                                      "amount": 5000,
                                      "currency": "GBP",
                                      "formatted": "£50.00"
                                    },
                                    "stripe_price_id": "price_subscription_unit_type_live_123"
                                  }
                                ],
                                "name": "Large",
                                "promotion": null,
                                "require_insurance_coverage": true,
                                "require_security_deposit": false,
                                "security_deposit": null,
                                "selling_points": [],
                                "size_description": "Can swing a cat quite comfortably",
                                "slug": "large",
                                "status": "bookable",
                                "stripe_product_id": "prod_unit_type_test",
                                "updated_at": "2025-02-22T14:41:00Z"
                              },
                              "price": {
                                "amount": 5000,
                                "currency": "GBP",
                                "formatted": "£50.00"
                              },
                              "quantity": 1,
                              "tax": {
                                "amount": 417,
                                "currency": "GBP",
                                "formatted": "£4.17"
                              },
                              "total": {
                                "amount": 5000,
                                "currency": "GBP",
                                "formatted": "£50.00"
                              },
                              "total_excluding_tax": {
                                "amount": 4583,
                                "currency": "GBP",
                                "formatted": "£45.83"
                              },
                              "type": "unit_type",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            {
                              "id": "olitm_260799c6b6b1a274",
                              "created_at": "2025-02-22T14:41:00Z",
                              "discount_total": {
                                "amount": 1000,
                                "currency": "GBP",
                                "formatted": "£10.00"
                              },
                              "item": {
                                "id": "plvl_dfaf0f9b464627e9",
                                "account_code": null,
                                "cover_level": {
                                  "amount": 100000,
                                  "currency": "GBP",
                                  "formatted": "£1,000.00"
                                },
                                "created_at": "2025-02-22T14:41:00Z",
                                "public": true,
                                "stripe_product_id": "prod_insurance_test",
                                "updated_at": "2025-02-22T14:41:00Z"
                              },
                              "price": {
                                "amount": 2000,
                                "currency": "GBP",
                                "formatted": "£20.00"
                              },
                              "quantity": 1,
                              "tax": {
                                "amount": 167,
                                "currency": "GBP",
                                "formatted": "£1.67"
                              },
                              "total": {
                                "amount": 2000,
                                "currency": "GBP",
                                "formatted": "£20.00"
                              },
                              "total_excluding_tax": {
                                "amount": 1833,
                                "currency": "GBP",
                                "formatted": "£18.33"
                              },
                              "type": "protection",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            {
                              "id": "olitm_47eba7938308c71d",
                              "created_at": "2025-02-22T14:41:00Z",
                              "discount_total": {
                                "amount": 6173,
                                "currency": "GBP",
                                "formatted": "£61.73"
                              },
                              "item": {
                                "id": "prod_d81f4b51313aa8e9",
                                "accounting_code": "CUSTOM-PRODUCT-1",
                                "category": {
                                  "id": "pcat_3694743f2dd41938",
                                  "name": "Merchandise"
                                },
                                "charge_type": "recurring",
                                "created_at": "2025-02-22T14:41:00Z",
                                "description": "Custom product description",
                                "images": {
                                  "default": null
                                },
                                "name": "Custom Product",
                                "sku": null,
                                "updated_at": "2025-02-22T14:41:00Z"
                              },
                              "price": {
                                "amount": 12345,
                                "currency": "GBP",
                                "formatted": "£123.45"
                              },
                              "quantity": 1,
                              "tax": {
                                "amount": 1029,
                                "currency": "GBP",
                                "formatted": "£10.29"
                              },
                              "total": {
                                "amount": 12345,
                                "currency": "GBP",
                                "formatted": "£123.45"
                              },
                              "total_excluding_tax": {
                                "amount": 11316,
                                "currency": "GBP",
                                "formatted": "£113.16"
                              },
                              "type": "product",
                              "updated_at": "2025-02-22T14:41:00Z"
                            }
                          ],
                          "metadata": {},
                          "one_time_total": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "one_time_total_excluding_tax": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "payment_method": "card",
                          "payment_url": null,
                          "purchase_order_number": null,
                          "source": "unspecified",
                          "starts_at": "2025-02-23T14:41:00Z",
                          "status": "draft",
                          "subtotal": {
                            "amount": 19345,
                            "currency": "GBP",
                            "formatted": "£193.45"
                          },
                          "tax": {
                            "amount": 1613,
                            "currency": "GBP",
                            "formatted": "£16.13"
                          },
                          "total": {
                            "amount": 9672,
                            "currency": "GBP",
                            "formatted": "£96.72"
                          },
                          "total_discount": {
                            "amount": 9673,
                            "currency": "GBP",
                            "formatted": "£96.73"
                          },
                          "total_excluding_tax": {
                            "amount": 8059,
                            "currency": "GBP",
                            "formatted": "£80.59"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "site": {
                          "id": "site_14b419f1096013f1",
                          "access_hours": null,
                          "address": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "description": null,
                          "directions": {
                            "google_maps_url": null
                          },
                          "images": {
                            "default": null
                          },
                          "name": "Site Name",
                          "opened_at": null,
                          "phone": "012345789",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "starts_at": "2025-02-22T14:41:00Z",
                        "stripe_subscription_id": null,
                        "stripe_subscription_schedule_id": null,
                        "tenancy": {
                          "id": "ten_acaf3269a573af74",
                          "created_at": "2025-02-22T14:41:00Z",
                          "ends_at": null,
                          "starts_at": "2025-02-22T14:41:00Z",
                          "unit_allocations": [
                            {
                              "id": "alloc_7d8e9f0a1b2c3d4e",
                              "created_at": "2025-02-22T14:41:00Z",
                              "granted_access_at": null,
                              "reserved_at": null,
                              "unit": {
                                "id": "unit_1e36123098e22cf8",
                                "created_at": "2025-02-22T14:41:00Z",
                                "reference_id": "A008",
                                "status": "available",
                                "unit_type": {
                                  "id": "utype_f18fc91387cdf710"
                                },
                                "updated_at": "2025-02-22T14:41:00Z"
                              },
                              "updated_at": "2025-02-22T14:41:00Z"
                            }
                          ],
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "subscription detail (fully expanded)"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/subscription_single"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/tasks/{task_id}/complete": {
      "parameters": [
        {
          "name": "task_id",
          "in": "path",
          "description": "The ID of the task to mark as complete",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "summary": "Complete a Task",
        "tags": [
          "Tasks"
        ],
        "operationId": "task_complete",
        "description": "Mark a task as complete.\n\nRequired authorization scope: `public.task:write`\n",
        "security": [
          {
            "Bearer": [
              "public.task:write"
            ]
          },
          {
            "OAuth2": [
              "public.task:write"
            ]
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "mark task as complete",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "task": {
                        "id": "task_195h6kfm9ro15lof",
                        "assignee": {
                          "id": "staff_947b3057d5df338e"
                        },
                        "completed_at": "2025-02-22T14:41:00Z",
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_947b3057d5df338e"
                        },
                        "description": "<p>This is a test task.</p>",
                        "due_at": "2025-02-24T14:41:00Z",
                        "metadata": {},
                        "resource": null,
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "status": "completed",
                        "title": "My Task",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "mark task as complete"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/task_single"
                }
              }
            }
          },
          "404": {
            "description": "task not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Task was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "task not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/tasks/{task_id}/open": {
      "parameters": [
        {
          "name": "task_id",
          "in": "path",
          "description": "The ID of the task to mark as open",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "summary": "Open a Task",
        "tags": [
          "Tasks"
        ],
        "operationId": "task_open",
        "description": "Mark a task as open.\n\nRequired authorization scope: `public.task:write`\n",
        "security": [
          {
            "Bearer": [
              "public.task:write"
            ]
          },
          {
            "OAuth2": [
              "public.task:write"
            ]
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "mark task as open",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "task": {
                        "id": "task_195h6kfm9ro15lof",
                        "assignee": {
                          "id": "staff_947b3057d5df338e"
                        },
                        "completed_at": null,
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_947b3057d5df338e"
                        },
                        "description": "<p>This is a test task.</p>",
                        "due_at": "2025-02-24T14:41:00Z",
                        "metadata": {},
                        "resource": null,
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "status": "open",
                        "title": "My Task",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "mark task as open"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/task_single"
                }
              }
            }
          },
          "404": {
            "description": "task not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Task was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "task not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/tasks": {
      "get": {
        "summary": "List all Tasks",
        "tags": [
          "Tasks"
        ],
        "operationId": "task_list",
        "description": "Retrieve a list of all tasks with the correct authorization scope.\n\nRequired authorization scope: `public.task:read`\n",
        "security": [
          {
            "Bearer": [
              "public.task:read"
            ]
          },
          {
            "OAuth2": [
              "public.task:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "due_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "status",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "open",
                  "completed"
                ]
              }
            },
            "description": "Filter by status. Supports multiple values separated by a comma.",
            "examples": {
              "single": {
                "value": [
                  "open"
                ]
              },
              "multiple": {
                "value": [
                  "open",
                  "completed"
                ]
              }
            },
            "required": false
          },
          {
            "name": "resource_id",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Filter by Resource ID (unit, subscription, or contact). Supports multiple values separated by comma.",
            "required": false
          },
          {
            "name": "assignee_id",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Filter by Assignee ID. Supports multiple values separated by comma. Use `unassigned` for tasks without an assignee.",
            "required": false
          },
          {
            "name": "metadata",
            "in": "query",
            "style": "deepObject",
            "required": false,
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "example": {}
            },
            "description": "Filter by metadata. Use `metadata[key]=value` to filter by specific metadata keys."
          },
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "due_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `due` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "due_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `due` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "list of tasks",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "tasks": [
                        {
                          "id": "task_195h6kfm9ro15lof",
                          "assignee": {
                            "id": "staff_06778802edebb94d"
                          },
                          "completed_at": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "creator": {
                            "id": "staff_06778802edebb94d"
                          },
                          "description": "<p>This is a test task.</p>",
                          "due_at": "2025-02-24T14:41:00Z",
                          "metadata": {},
                          "resource": {
                            "id": "unit_1e36123098e22cf8"
                          },
                          "site": {
                            "id": "site_14b419f1096013f1"
                          },
                          "status": "open",
                          "title": "My Task",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        {
                          "id": "task_e6705c4af27d9910",
                          "assignee": {
                            "id": "staff_06778802edebb94d"
                          },
                          "completed_at": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "creator": {
                            "id": "tok_7f6e5fb4bb548dbc"
                          },
                          "description": "This is a test task created by Access Token.",
                          "due_at": "2025-02-25T14:41:00Z",
                          "metadata": {},
                          "resource": {
                            "id": "unit_1e36123098e22cf8"
                          },
                          "site": {
                            "id": "site_14b419f1096013f1"
                          },
                          "status": "open",
                          "title": "Access Token Task",
                          "updated_at": "2025-02-22T14:41:00Z"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 2,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of tasks"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/task_list"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create a Task",
        "tags": [
          "Tasks"
        ],
        "operationId": "task_create",
        "description": "Create a new task.\n\nRequired authorization scope: `public.task:write`\n",
        "security": [
          {
            "Bearer": [
              "public.task:write"
            ]
          },
          {
            "OAuth2": [
              "public.task:write"
            ]
          }
        ],
        "parameters": [],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "201": {
            "description": "task successfully created (full with resource: contact)",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "task": {
                        "id": "task_a1b2c3d4e5f67890",
                        "assignee": {
                          "id": "staff_06778802edebb94d"
                        },
                        "completed_at": null,
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "app_531844f4c4837d61"
                        },
                        "description": "Task for a contact resource",
                        "due_at": "2025-02-27T14:41:00Z",
                        "metadata": {
                          "source": "api",
                          "external_id": "ext_123"
                        },
                        "resource": {
                          "id": "con_1234567890abcdef"
                        },
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "status": "open",
                        "title": "Contact Task",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "task successfully created (full with resource: contact)"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/task_single"
                }
              }
            }
          },
          "422": {
            "description": "invalid request with missing title",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "object at root is missing required properties: title",
                            "pointer": null
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "invalid request with missing title"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TasksCreate"
              },
              "examples": {
                "task_successfully_created_minimal": {
                  "summary": "task successfully created (minimal)",
                  "value": {
                    "title": "Task with minimal params"
                  }
                },
                "task_successfully_created_full_with_resource_unit": {
                  "summary": "task successfully created (full with resource: unit)",
                  "value": {
                    "title": "My new task",
                    "description": "Task description",
                    "due_at": "2025-02-25T14:41:00Z",
                    "assignee": {
                      "id": "staff_06778802edebb94d"
                    },
                    "site": {
                      "id": "site_14b419f1096013f1"
                    },
                    "resource": {
                      "id": "unit_1e36123098e22cf8"
                    },
                    "metadata": {
                      "source": "api",
                      "external_id": "ext_123"
                    }
                  }
                },
                "task_successfully_created_full_with_resource_subscription": {
                  "summary": "task successfully created (full with resource: subscription)",
                  "value": {
                    "title": "My new task",
                    "description": "Task description",
                    "due_at": "2025-02-25T14:41:00Z",
                    "assignee": {
                      "id": "staff_06778802edebb94d"
                    },
                    "site": {
                      "id": "site_14b419f1096013f1"
                    },
                    "resource": {
                      "id": "sub_abcdef1234567890"
                    }
                  }
                },
                "task_successfully_created_full_with_resource_contact": {
                  "summary": "task successfully created (full with resource: contact)",
                  "value": {
                    "title": "Contact Task",
                    "description": "Task for a contact resource",
                    "due_at": "2025-02-27T14:41:00Z",
                    "assignee": {
                      "id": "staff_06778802edebb94d"
                    },
                    "site": {
                      "id": "site_14b419f1096013f1"
                    },
                    "resource": {
                      "id": "con_1234567890abcdef"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/tasks/{task_id}": {
      "parameters": [
        {
          "name": "task_id",
          "in": "path",
          "description": "The ID of the task to retrieve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Task",
        "tags": [
          "Tasks"
        ],
        "operationId": "task_show",
        "description": "Retrieve a specific task by its ID.\n\nRequired authorization scope: `public.task:read`\n",
        "security": [
          {
            "Bearer": [
              "public.task:read"
            ]
          },
          {
            "OAuth2": [
              "public.task:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "task detail",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "task": {
                        "id": "task_195h6kfm9ro15lof",
                        "assignee": {
                          "id": "staff_06778802edebb94d"
                        },
                        "completed_at": null,
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_06778802edebb94d"
                        },
                        "description": "<p>This is a test task.</p>",
                        "due_at": "2025-02-24T14:41:00Z",
                        "metadata": {},
                        "resource": {
                          "id": "unit_1e36123098e22cf8"
                        },
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "status": "open",
                        "title": "My Task",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "task detail"
                  },
                  "expanded": {
                    "value": {
                      "task": {
                        "id": "task_195h6kfm9ro15lof",
                        "assignee": {
                          "id": "staff_06778802edebb94d",
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "john@doe.com",
                          "name": "John Doe",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "completed_at": null,
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_06778802edebb94d",
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "john@doe.com",
                          "name": "John Doe",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "description": "<p>This is a test task.</p>",
                        "due_at": "2025-02-24T14:41:00Z",
                        "metadata": {},
                        "resource": {
                          "id": "unit_1e36123098e22cf8",
                          "created_at": "2025-02-22T14:41:00Z",
                          "reference_id": "A008",
                          "status": "reserved",
                          "unit_allocation": null,
                          "unit_type": {
                            "id": "utype_f18fc91387cdf710",
                            "_links": {
                              "sf:new_order": {
                                "href": "/sites/default-site-28-self-storage-units/order/contact-details?unit_type_slug=large",
                                "title": "New order"
                              }
                            },
                            "created_at": "2025-02-22T14:41:00Z",
                            "dimensions": {
                              "height": 12,
                              "length": 11,
                              "measurement_unit": "ft",
                              "width": 10
                            },
                            "dynamic_pricing": false,
                            "images": {
                              "default": null
                            },
                            "live_prices": [
                              {
                                "billing_period": "monthly",
                                "price": {
                                  "amount": 1500,
                                  "currency": "GBP",
                                  "formatted": "£15.00"
                                },
                                "stripe_price_id": "price_unit_type_live_123"
                              }
                            ],
                            "name": "Large",
                            "promotion": null,
                            "require_insurance_coverage": true,
                            "require_security_deposit": false,
                            "security_deposit": null,
                            "selling_points": [],
                            "size_description": "Can swing a cat quite comfortably",
                            "slug": "large",
                            "status": "bookable",
                            "stripe_product_id": "prod_unit_type_test",
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "site": {
                          "id": "site_14b419f1096013f1",
                          "access_hours": null,
                          "address": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "description": null,
                          "directions": {
                            "google_maps_url": null
                          },
                          "images": {
                            "default": null
                          },
                          "name": "Site Name",
                          "opened_at": null,
                          "phone": "012345789",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "status": "open",
                        "title": "My Task",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "task detail (fully expanded, resource: unit)"
                  },
                  "contact": {
                    "value": {
                      "task": {
                        "id": "task_195h6kfm9ro15lof",
                        "assignee": {
                          "id": "staff_06778802edebb94d",
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "john@doe.com",
                          "name": "John Doe",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "completed_at": null,
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_06778802edebb94d",
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "john@doe.com",
                          "name": "John Doe",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "description": "<p>This is a test task.</p>",
                        "due_at": "2025-02-24T14:41:00Z",
                        "metadata": {},
                        "resource": {
                          "id": "con_1234567890abcdef",
                          "address": null,
                          "company_registration_number": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "default_customer@example.com",
                          "full_name": "Default Customer",
                          "identity_check": {
                            "required": false,
                            "status": "not_attempted"
                          },
                          "marketing_source": null,
                          "metadata": {},
                          "phone_number": null,
                          "source": null,
                          "status": "lead",
                          "stripe_customer_id": null,
                          "tax_id": null,
                          "tenancies_count": 0,
                          "type": null,
                          "updated_at": "2025-02-22T14:41:00Z",
                          "use_case": null
                        },
                        "site": {
                          "id": "site_14b419f1096013f1",
                          "access_hours": null,
                          "address": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "description": null,
                          "directions": {
                            "google_maps_url": null
                          },
                          "images": {
                            "default": null
                          },
                          "name": "Site Name",
                          "opened_at": null,
                          "phone": "012345789",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "status": "open",
                        "title": "My Task",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "task detail (fully expanded, resource: contact)"
                  },
                  "subscription": {
                    "value": {
                      "task": {
                        "id": "task_195h6kfm9ro15lof",
                        "assignee": {
                          "id": "staff_06778802edebb94d",
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "john@doe.com",
                          "name": "John Doe",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "completed_at": null,
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_06778802edebb94d",
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "john@doe.com",
                          "name": "John Doe",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "description": "<p>This is a test task.</p>",
                        "due_at": "2025-02-24T14:41:00Z",
                        "metadata": {},
                        "resource": {
                          "id": "sub_abcdef1234567890",
                          "billing_period": "monthly",
                          "cancellation_reason": null,
                          "cancelled": false,
                          "created_at": "2025-02-22T14:41:00Z",
                          "current_period": {
                            "ends_at": null,
                            "starts_at": null
                          },
                          "ends_at": null,
                          "line_items": [],
                          "starts_at": "2025-02-22T14:41:00Z",
                          "stripe_subscription_id": null,
                          "stripe_subscription_schedule_id": null,
                          "tenancy": {
                            "id": "ten_8be5de3000eb79ad",
                            "created_at": "2025-02-22T14:41:00Z",
                            "ends_at": null,
                            "starts_at": "2025-02-22T14:41:00Z",
                            "unit_allocations": [],
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "site": {
                          "id": "site_14b419f1096013f1",
                          "access_hours": null,
                          "address": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "description": null,
                          "directions": {
                            "google_maps_url": null
                          },
                          "images": {
                            "default": null
                          },
                          "name": "Site Name",
                          "opened_at": null,
                          "phone": "012345789",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "status": "open",
                        "title": "My Task",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "task detail (fully expanded, resource: subscription)"
                  },
                  "subscription_with_line_items": {
                    "value": {
                      "task": {
                        "id": "task_195h6kfm9ro15lof",
                        "assignee": {
                          "id": "staff_06778802edebb94d",
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "john@doe.com",
                          "name": "John Doe",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "completed_at": null,
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_06778802edebb94d",
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "john@doe.com",
                          "name": "John Doe",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "description": "<p>This is a test task.</p>",
                        "due_at": "2025-02-24T14:41:00Z",
                        "metadata": {},
                        "resource": {
                          "id": "sub_withlineitems123",
                          "billing_period": "monthly",
                          "cancellation_reason": null,
                          "cancelled": false,
                          "created_at": "2025-02-22T14:41:00Z",
                          "current_period": {
                            "ends_at": null,
                            "starts_at": null
                          },
                          "ends_at": null,
                          "line_items": [
                            {
                              "created_at": "2025-02-22T14:41:00Z",
                              "item": {
                                "id": "plvl_e8f3ad0a07e47566",
                                "account_code": null,
                                "cover_level": {
                                  "amount": 100000,
                                  "currency": "GBP",
                                  "formatted": "£1,000.00"
                                },
                                "created_at": "2025-02-22T14:41:00Z",
                                "public": true,
                                "stripe_product_id": null,
                                "updated_at": "2025-02-22T14:41:00Z"
                              },
                              "price": {
                                "amount": 429,
                                "currency": "GBP",
                                "formatted": "£4.29"
                              },
                              "quantity": 1,
                              "type": "protection",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            {
                              "created_at": "2025-02-22T14:41:00Z",
                              "item": {
                                "id": "prod_a1b2c3d4e5f67890",
                                "accounting_code": "CUSTOM-PRODUCT-1",
                                "category": {
                                  "id": "pcat_3694743f2dd41938",
                                  "name": "Merchandise"
                                },
                                "charge_type": "recurring",
                                "created_at": "2025-02-22T14:41:00Z",
                                "description": "Custom product description",
                                "images": {
                                  "default": null
                                },
                                "name": "Custom Product",
                                "sku": null,
                                "updated_at": "2025-02-22T14:41:00Z"
                              },
                              "price": {
                                "amount": 1,
                                "currency": "EUR",
                                "formatted": "€0.01"
                              },
                              "quantity": 1,
                              "type": "custom_product",
                              "updated_at": "2025-02-22T14:41:00Z"
                            }
                          ],
                          "starts_at": "2025-02-22T14:41:00Z",
                          "stripe_subscription_id": null,
                          "stripe_subscription_schedule_id": null,
                          "tenancy": {
                            "id": "ten_8be5de3000eb79ad",
                            "created_at": "2025-02-22T14:41:00Z",
                            "ends_at": null,
                            "starts_at": "2025-02-22T14:41:00Z",
                            "unit_allocations": [
                              {
                                "id": "alloc_f804be461f97c664",
                                "created_at": "2025-02-22T14:41:00Z",
                                "granted_access_at": null,
                                "reserved_at": null,
                                "unit": {
                                  "id": "unit_555536421ca9083a",
                                  "created_at": "2025-02-22T14:41:00Z",
                                  "reference_id": "A001",
                                  "status": "available",
                                  "unit_type": {
                                    "id": "utype_f18fc91387cdf710",
                                    "_links": {
                                      "sf:new_order": {
                                        "href": "/sites/default-site-31-self-storage-units/order/contact-details?unit_type_slug=large",
                                        "title": "New order"
                                      }
                                    },
                                    "created_at": "2025-02-22T14:41:00Z",
                                    "dimensions": {
                                      "height": 12,
                                      "length": 11,
                                      "measurement_unit": "ft",
                                      "width": 10
                                    },
                                    "dynamic_pricing": false,
                                    "images": {
                                      "default": null
                                    },
                                    "live_prices": [
                                      {
                                        "billing_period": "monthly",
                                        "price": {
                                          "amount": 1500,
                                          "currency": "GBP",
                                          "formatted": "£15.00"
                                        },
                                        "stripe_price_id": "price_unit_type_live_123"
                                      }
                                    ],
                                    "name": "Large",
                                    "promotion": null,
                                    "require_insurance_coverage": true,
                                    "require_security_deposit": false,
                                    "security_deposit": null,
                                    "selling_points": [],
                                    "size_description": "Can swing a cat quite comfortably",
                                    "slug": "large",
                                    "status": "bookable",
                                    "stripe_product_id": "prod_unit_type_test",
                                    "updated_at": "2025-02-22T14:41:00Z"
                                  },
                                  "updated_at": "2025-02-22T14:41:00Z"
                                },
                                "updated_at": "2025-02-22T14:41:00Z"
                              }
                            ],
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "site": {
                          "id": "site_14b419f1096013f1",
                          "access_hours": null,
                          "address": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "description": null,
                          "directions": {
                            "google_maps_url": null
                          },
                          "images": {
                            "default": null
                          },
                          "name": "Site Name",
                          "opened_at": null,
                          "phone": "012345789",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "status": "open",
                        "title": "My Task",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "task detail (fully expanded, resource: subscription with line items)"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/task_single"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update a Task",
        "tags": [
          "Tasks"
        ],
        "operationId": "task_update",
        "description": "Update an existing task.\n\nRequired authorization scope: `public.task:write`\n",
        "security": [
          {
            "Bearer": [
              "public.task:write"
            ]
          },
          {
            "OAuth2": [
              "public.task:write"
            ]
          }
        ],
        "parameters": [],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "Task updated",
            "content": {
              "application/json": {
                "examples": {
                  "task_successfully_updated": {
                    "value": {
                      "task": {
                        "id": "task_195h6kfm9ro15lof",
                        "assignee": {
                          "id": "staff_06778802edebb94d"
                        },
                        "completed_at": null,
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_06778802edebb94d"
                        },
                        "description": "Updated description for the task.",
                        "due_at": "2025-02-25T14:41:00Z",
                        "metadata": {
                          "source": "api",
                          "external_id": "ext_456"
                        },
                        "resource": {
                          "id": "unit_1e36123098e22cf8"
                        },
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "status": "open",
                        "title": "Updated Task Title",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "task successfully updated"
                  },
                  "task_successfully_updated_to_remove_associations": {
                    "value": {
                      "task": {
                        "id": "task_195h6kfm9ro15lof",
                        "assignee": null,
                        "completed_at": null,
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_06778802edebb94d"
                        },
                        "description": "<p>This is a test task.</p>",
                        "due_at": "2025-02-24T14:41:00Z",
                        "metadata": {},
                        "resource": null,
                        "site": null,
                        "status": "open",
                        "title": "My Task",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "task successfully updated to remove associations"
                  },
                  "task_successfully_updated_with_description_null": {
                    "value": {
                      "task": {
                        "id": "task_195h6kfm9ro15lof",
                        "assignee": {
                          "id": "staff_06778802edebb94d"
                        },
                        "completed_at": null,
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_06778802edebb94d"
                        },
                        "description": null,
                        "due_at": "2025-02-24T14:41:00Z",
                        "metadata": {},
                        "resource": {
                          "id": "unit_1e36123098e22cf8"
                        },
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "status": "open",
                        "title": "My Task",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "task successfully updated with description null"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/task_single"
                }
              }
            }
          },
          "404": {
            "description": "task not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Task was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "task not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "invalid request with invalid due_at",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "value at `/due_at` does not match format: date-time",
                            "pointer": "/due_at"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "invalid request with invalid due_at"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TasksUpdate"
              },
              "examples": {
                "task_successfully_updated": {
                  "summary": "task successfully updated",
                  "value": {
                    "title": "Updated Task Title",
                    "description": "Updated description for the task.",
                    "due_at": "2025-02-25T14:41:00Z",
                    "assignee": {
                      "id": "staff_06778802edebb94d"
                    },
                    "site": {
                      "id": "site_14b419f1096013f1"
                    },
                    "resource": {
                      "id": "unit_1e36123098e22cf8"
                    },
                    "metadata": {
                      "source": "api",
                      "external_id": "ext_456"
                    }
                  }
                },
                "task_successfully_updated_to_remove_associations": {
                  "summary": "task successfully updated to remove associations",
                  "value": {
                    "site": null,
                    "assignee": null,
                    "resource": null
                  }
                },
                "task_successfully_updated_with_description_null": {
                  "summary": "task successfully updated with description null",
                  "value": {
                    "description": null
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a Task",
        "tags": [
          "Tasks"
        ],
        "operationId": "task_delete",
        "description": "Delete a task by its ID.\n\nRequired authorization scope: `public.task:write`\n",
        "security": [
          {
            "Bearer": [
              "public.task:write"
            ]
          },
          {
            "OAuth2": [
              "public.task:write"
            ]
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "task deleted",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "success": {
                        "message": "Task deleted successfully."
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "task deleted"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "404": {
            "description": "task not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Task was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "task not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/tenancies": {
      "get": {
        "summary": "List all Tenancies",
        "tags": [
          "Tenancies"
        ],
        "operationId": "tenancy_list",
        "description": "Retrieve a list of all tenancies.\n\nRequired authorization scope: `public.tenancy:read`\n",
        "security": [
          {
            "Bearer": [
              "public.tenancy:read"
            ]
          },
          {
            "OAuth2": [
              "public.tenancy:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "list of tenancies",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "tenancies": [
                        {
                          "id": "ten_acaf3269a573af74",
                          "contact": {
                            "id": "con_195h6kfm9ro15lof"
                          },
                          "created_at": "2025-02-22T14:41:00Z",
                          "ends_at": null,
                          "order": {
                            "id": "order_cada48ee700021aa"
                          },
                          "site": {
                            "id": "site_14b419f1096013f1"
                          },
                          "starts_at": "2025-02-22T14:41:00Z",
                          "subscription": {
                            "id": "sub_125c561ac05edfa1"
                          },
                          "unit_allocations": [
                            {
                              "id": "alloc_5f7475758314968d"
                            }
                          ],
                          "updated_at": "2025-02-22T14:41:00Z"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 1,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of tenancies"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/tenancy_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/tenancies/{tenancy_id}": {
      "parameters": [
        {
          "name": "tenancy_id",
          "in": "path",
          "description": "The ID of the tenancy",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Tenancy",
        "tags": [
          "Tenancies"
        ],
        "operationId": "tenancy_show",
        "description": "Retrieve a specific tenancy by its ID.\n\nRequired authorization scope: `public.tenancy:read`\n",
        "security": [
          {
            "Bearer": [
              "public.tenancy:read"
            ]
          },
          {
            "OAuth2": [
              "public.tenancy:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "tenancy detail",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "tenancy": {
                        "id": "ten_acaf3269a573af74",
                        "contact": {
                          "id": "con_195h6kfm9ro15lof"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "ends_at": null,
                        "order": {
                          "id": "order_cada48ee700021aa"
                        },
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "starts_at": "2025-02-22T14:41:00Z",
                        "subscription": {
                          "id": "sub_125c561ac05edfa1"
                        },
                        "unit_allocations": [
                          {
                            "id": "alloc_5f7475758314968d"
                          }
                        ],
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "tenancy detail"
                  },
                  "expanded": {
                    "value": {
                      "tenancy": {
                        "id": "ten_acaf3269a573af74",
                        "contact": {
                          "id": "con_195h6kfm9ro15lof",
                          "address": {
                            "city": "Testtown",
                            "country_alpha2": "GB",
                            "line_1": "1, Test Building",
                            "line_2": "Test St.",
                            "postal_code": "BT12 AAA",
                            "state": null
                          },
                          "company_registration_number": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "example@example.com",
                          "full_name": "John Doe",
                          "identity_check": {
                            "required": false,
                            "status": "not_attempted"
                          },
                          "marketing_source": null,
                          "metadata": {},
                          "phone_number": "+447525920754",
                          "source": null,
                          "status": "customer",
                          "stripe_customer_id": null,
                          "tax_id": "6559",
                          "tenancies_count": 1,
                          "type": null,
                          "updated_at": "2025-02-22T14:41:00Z",
                          "use_case": null
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "ends_at": null,
                        "order": {
                          "id": "order_cada48ee700021aa",
                          "billing_period": "monthly",
                          "contract_template": {
                            "id": "ctpl_33ae8d0b2b371ba2",
                            "created_at": "2025-02-22T14:41:00Z",
                            "name": "Sample Contract Template",
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "coupon": {
                            "id": "cpn_a26d0d4c582740c1",
                            "auto_apply_to": {
                              "products": false,
                              "protections": false,
                              "subscriptions": true,
                              "unit_types": false
                            },
                            "billing_period": "monthly",
                            "code": null,
                            "created_at": "2025-02-22T14:41:00Z",
                            "duration": "repeating",
                            "max_redemptions": null,
                            "months": 2,
                            "name": "50% off first two months",
                            "percent": 50,
                            "public": true,
                            "title": null,
                            "type": "percentage",
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "created_at": "2025-02-22T14:41:00Z",
                          "email_notifications": {
                            "booking_confirmation": true,
                            "move_in_day": true,
                            "payment_details": false
                          },
                          "line_items": [
                            {
                              "id": "olitm_1001cbd3d5fec937",
                              "created_at": "2025-02-22T14:41:00Z",
                              "discount_total": {
                                "amount": 2500,
                                "currency": "GBP",
                                "formatted": "£25.00"
                              },
                              "item": {
                                "id": "utype_f18fc91387cdf710",
                                "_links": {
                                  "sf:new_order": {
                                    "href": "/sites/default-site-42-self-storage-units/order/contact-details?unit_type_slug=large",
                                    "title": "New order"
                                  }
                                },
                                "created_at": "2025-02-22T14:41:00Z",
                                "dimensions": {
                                  "height": 12,
                                  "length": 11,
                                  "measurement_unit": "ft",
                                  "width": 10
                                },
                                "dynamic_pricing": false,
                                "images": {
                                  "default": null
                                },
                                "live_prices": [
                                  {
                                    "billing_period": "monthly",
                                    "price": {
                                      "amount": 5000,
                                      "currency": "GBP",
                                      "formatted": "£50.00"
                                    },
                                    "stripe_price_id": "price_tenancy_unit_type_live_123"
                                  }
                                ],
                                "name": "Large",
                                "promotion": null,
                                "require_insurance_coverage": true,
                                "require_security_deposit": false,
                                "security_deposit": null,
                                "selling_points": [],
                                "size_description": "Can swing a cat quite comfortably",
                                "slug": "large",
                                "status": "bookable",
                                "stripe_product_id": "prod_unit_type_test",
                                "updated_at": "2025-02-22T14:41:00Z"
                              },
                              "price": {
                                "amount": 5000,
                                "currency": "GBP",
                                "formatted": "£50.00"
                              },
                              "quantity": 1,
                              "tax": {
                                "amount": 417,
                                "currency": "GBP",
                                "formatted": "£4.17"
                              },
                              "total": {
                                "amount": 5000,
                                "currency": "GBP",
                                "formatted": "£50.00"
                              },
                              "total_excluding_tax": {
                                "amount": 4583,
                                "currency": "GBP",
                                "formatted": "£45.83"
                              },
                              "type": "unit_type",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            {
                              "id": "olitm_260799c6b6b1a274",
                              "created_at": "2025-02-22T14:41:00Z",
                              "discount_total": {
                                "amount": 1000,
                                "currency": "GBP",
                                "formatted": "£10.00"
                              },
                              "item": {
                                "id": "plvl_dfaf0f9b464627e9",
                                "account_code": null,
                                "cover_level": {
                                  "amount": 100000,
                                  "currency": "GBP",
                                  "formatted": "£1,000.00"
                                },
                                "created_at": "2025-02-22T14:41:00Z",
                                "public": true,
                                "stripe_product_id": "prod_insurance_test",
                                "updated_at": "2025-02-22T14:41:00Z"
                              },
                              "price": {
                                "amount": 2000,
                                "currency": "GBP",
                                "formatted": "£20.00"
                              },
                              "quantity": 1,
                              "tax": {
                                "amount": 167,
                                "currency": "GBP",
                                "formatted": "£1.67"
                              },
                              "total": {
                                "amount": 2000,
                                "currency": "GBP",
                                "formatted": "£20.00"
                              },
                              "total_excluding_tax": {
                                "amount": 1833,
                                "currency": "GBP",
                                "formatted": "£18.33"
                              },
                              "type": "protection",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            {
                              "id": "olitm_47eba7938308c71d",
                              "created_at": "2025-02-22T14:41:00Z",
                              "discount_total": {
                                "amount": 6173,
                                "currency": "GBP",
                                "formatted": "£61.73"
                              },
                              "item": {
                                "id": "prod_d81f4b51313aa8e9",
                                "accounting_code": "CUSTOM-PRODUCT-1",
                                "category": {
                                  "id": "pcat_3694743f2dd41938",
                                  "name": "Merchandise"
                                },
                                "charge_type": "recurring",
                                "created_at": "2025-02-22T14:41:00Z",
                                "description": "Custom product description",
                                "images": {
                                  "default": null
                                },
                                "name": "Custom Product",
                                "sku": null,
                                "updated_at": "2025-02-22T14:41:00Z"
                              },
                              "price": {
                                "amount": 12345,
                                "currency": "GBP",
                                "formatted": "£123.45"
                              },
                              "quantity": 1,
                              "tax": {
                                "amount": 1029,
                                "currency": "GBP",
                                "formatted": "£10.29"
                              },
                              "total": {
                                "amount": 12345,
                                "currency": "GBP",
                                "formatted": "£123.45"
                              },
                              "total_excluding_tax": {
                                "amount": 11316,
                                "currency": "GBP",
                                "formatted": "£113.16"
                              },
                              "type": "product",
                              "updated_at": "2025-02-22T14:41:00Z"
                            }
                          ],
                          "metadata": {},
                          "one_time_total": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "one_time_total_excluding_tax": {
                            "amount": 0,
                            "currency": "GBP",
                            "formatted": "£0.00"
                          },
                          "payment_method": "card",
                          "payment_url": null,
                          "purchase_order_number": null,
                          "source": "unspecified",
                          "starts_at": "2025-02-23T14:41:00Z",
                          "status": "draft",
                          "subtotal": {
                            "amount": 19345,
                            "currency": "GBP",
                            "formatted": "£193.45"
                          },
                          "tax": {
                            "amount": 1613,
                            "currency": "GBP",
                            "formatted": "£16.13"
                          },
                          "total": {
                            "amount": 9672,
                            "currency": "GBP",
                            "formatted": "£96.72"
                          },
                          "total_discount": {
                            "amount": 9673,
                            "currency": "GBP",
                            "formatted": "£96.73"
                          },
                          "total_excluding_tax": {
                            "amount": 8059,
                            "currency": "GBP",
                            "formatted": "£80.59"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "site": {
                          "id": "site_14b419f1096013f1",
                          "access_hours": null,
                          "address": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "description": null,
                          "directions": {
                            "google_maps_url": null
                          },
                          "images": {
                            "default": null
                          },
                          "name": "Site Name",
                          "opened_at": null,
                          "phone": "012345789",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "starts_at": "2025-02-22T14:41:00Z",
                        "subscription": {
                          "id": "sub_125c561ac05edfa1",
                          "billing_period": "monthly",
                          "cancellation_reason": "issue_cost",
                          "cancelled": false,
                          "created_at": "2025-02-22T14:41:00Z",
                          "current_period": {
                            "ends_at": null,
                            "starts_at": "2025-08-22T14:37:00Z"
                          },
                          "ends_at": null,
                          "line_items": [
                            {
                              "created_at": "2025-02-22T14:41:00Z",
                              "item": {
                                "id": "utype_f18fc91387cdf710",
                                "_links": {
                                  "sf:new_order": {
                                    "href": "/sites/default-site-42-self-storage-units/order/contact-details?unit_type_slug=large",
                                    "title": "New order"
                                  }
                                },
                                "created_at": "2025-02-22T14:41:00Z",
                                "dimensions": {
                                  "height": 12,
                                  "length": 11,
                                  "measurement_unit": "ft",
                                  "width": 10
                                },
                                "dynamic_pricing": false,
                                "images": {
                                  "default": null
                                },
                                "live_prices": [
                                  {
                                    "billing_period": "monthly",
                                    "price": {
                                      "amount": 5000,
                                      "currency": "GBP",
                                      "formatted": "£50.00"
                                    },
                                    "stripe_price_id": "price_tenancy_unit_type_live_123"
                                  }
                                ],
                                "name": "Large",
                                "promotion": null,
                                "require_insurance_coverage": true,
                                "require_security_deposit": false,
                                "security_deposit": null,
                                "selling_points": [],
                                "size_description": "Can swing a cat quite comfortably",
                                "slug": "large",
                                "status": "bookable",
                                "stripe_product_id": "prod_unit_type_test",
                                "updated_at": "2025-02-22T14:41:00Z"
                              },
                              "price": {
                                "amount": 5000,
                                "currency": "GBP",
                                "formatted": "£50.00"
                              },
                              "quantity": 1,
                              "type": "unit_type",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            {
                              "created_at": "2025-02-22T14:41:00Z",
                              "item": {
                                "id": "plvl_dfaf0f9b464627e9",
                                "account_code": null,
                                "cover_level": {
                                  "amount": 100000,
                                  "currency": "GBP",
                                  "formatted": "£1,000.00"
                                },
                                "created_at": "2025-02-22T14:41:00Z",
                                "public": true,
                                "stripe_product_id": "prod_insurance_test",
                                "updated_at": "2025-02-22T14:41:00Z"
                              },
                              "price": {
                                "amount": 2000,
                                "currency": "GBP",
                                "formatted": "£20.00"
                              },
                              "quantity": 1,
                              "type": "protection",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            {
                              "created_at": "2025-02-22T14:41:00Z",
                              "item": {
                                "id": "prod_d81f4b51313aa8e9",
                                "accounting_code": "CUSTOM-PRODUCT-1",
                                "category": {
                                  "id": "pcat_3694743f2dd41938",
                                  "name": "Merchandise"
                                },
                                "charge_type": "recurring",
                                "created_at": "2025-02-22T14:41:00Z",
                                "description": "Custom product description",
                                "images": {
                                  "default": null
                                },
                                "name": "Custom Product",
                                "sku": null,
                                "updated_at": "2025-02-22T14:41:00Z"
                              },
                              "price": {
                                "amount": 12345,
                                "currency": "GBP",
                                "formatted": "£123.45"
                              },
                              "quantity": 1,
                              "type": "custom_product",
                              "updated_at": "2025-02-22T14:41:00Z"
                            }
                          ],
                          "starts_at": "2025-02-22T14:41:00Z",
                          "stripe_subscription_id": null,
                          "stripe_subscription_schedule_id": null,
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "unit_allocations": [
                          {
                            "id": "alloc_5f7475758314968d",
                            "created_at": "2025-02-22T14:41:00Z",
                            "granted_access_at": null,
                            "reserved_at": null,
                            "unit": {
                              "id": "unit_1e36123098e22cf8",
                              "created_at": "2025-02-22T14:41:00Z",
                              "reference_id": "A008",
                              "status": "available",
                              "unit_type": {
                                "id": "utype_f18fc91387cdf710",
                                "_links": {
                                  "sf:new_order": {
                                    "href": "/sites/default-site-42-self-storage-units/order/contact-details?unit_type_slug=large",
                                    "title": "New order"
                                  }
                                },
                                "created_at": "2025-02-22T14:41:00Z",
                                "dimensions": {
                                  "height": 12,
                                  "length": 11,
                                  "measurement_unit": "ft",
                                  "width": 10
                                },
                                "dynamic_pricing": false,
                                "images": {
                                  "default": null
                                },
                                "live_prices": [
                                  {
                                    "billing_period": "monthly",
                                    "price": {
                                      "amount": 5000,
                                      "currency": "GBP",
                                      "formatted": "£50.00"
                                    },
                                    "stripe_price_id": "price_tenancy_unit_type_live_123"
                                  }
                                ],
                                "name": "Large",
                                "promotion": null,
                                "require_insurance_coverage": true,
                                "require_security_deposit": false,
                                "security_deposit": null,
                                "selling_points": [],
                                "size_description": "Can swing a cat quite comfortably",
                                "slug": "large",
                                "status": "bookable",
                                "stripe_product_id": "prod_unit_type_test",
                                "updated_at": "2025-02-22T14:41:00Z"
                              },
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            "updated_at": "2025-02-22T14:41:00Z"
                          }
                        ],
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "tenancy detail (fully expanded)"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/tenancy_single"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/timeline/events": {
      "post": {
        "summary": "Create an Event",
        "tags": [
          "Timeline / Events"
        ],
        "operationId": "timeline_event_create",
        "description": "Create a new timeline event from an external source. \n\n**Check the template you want to use to see which required pre-defined variables it includes. Custom variables are not enforced on creation.**\n\nRequired authorization scope: `public.timeline_event:write`\n",
        "security": [
          {
            "Bearer": [
              "public.timeline_event:write"
            ]
          },
          {
            "OAuth2": [
              "public.timeline_event:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "201": {
            "description": "event created",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "event": {
                        "id": "aevt_327151655672f2cc",
                        "contact": {
                          "id": "con_9bc5a9d2d8302840"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "app_99b90b9d208a137b"
                        },
                        "description": "CRM deal moved to Negotiation stage",
                        "external": {
                          "id": "deal_98442",
                          "url": "https://crm.example.com/deals/98442"
                        },
                        "invoice": null,
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "source": {
                          "id": "tsrc_126b43585fea94ad"
                        },
                        "subscription": null,
                        "template": {
                          "id": "aetpl_6b92d7693eb7e8e9"
                        },
                        "tenancy": null,
                        "unit": null,
                        "unit_type": null,
                        "updated_at": "2025-02-22T14:41:00Z",
                        "variables": {
                          "deal_name": "10x10 Unit — 12 months",
                          "previous_state": "Qualified",
                          "new_state": "Negotiation"
                        }
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "event created"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/timeline_event_single"
                }
              }
            }
          },
          "422": {
            "description": "validation error",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "validation error"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TimelineEventsCreate"
              },
              "examples": {
                "create_event": {
                  "summary": "create event",
                  "value": {
                    "source": {
                      "id": "tsrc_126b43585fea94ad"
                    },
                    "template": {
                      "id": "aetpl_6b92d7693eb7e8e9"
                    },
                    "contact": {
                      "id": "con_9bc5a9d2d8302840"
                    },
                    "site": {
                      "id": "site_14b419f1096013f1"
                    },
                    "description": "CRM deal moved to Negotiation stage",
                    "external": {
                      "id": "deal_98442",
                      "url": "https://crm.example.com/deals/98442"
                    },
                    "variables": {
                      "deal_name": "10x10 Unit — 12 months",
                      "previous_state": "Qualified",
                      "new_state": "Negotiation"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/timeline/events/{event_id}": {
      "parameters": [
        {
          "name": "event_id",
          "in": "path",
          "description": "The ID of the timeline event to retrieve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "patch": {
        "summary": "Update an Event",
        "tags": [
          "Timeline / Events"
        ],
        "operationId": "timeline_event_update",
        "description": "Update an existing timeline event.\n\nRequired authorization scope: `public.timeline_event:write`\n",
        "security": [
          {
            "Bearer": [
              "public.timeline_event:write"
            ]
          },
          {
            "OAuth2": [
              "public.timeline_event:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "event updated",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "event": {
                        "id": "aevt_33db60b5d4e7f7b3",
                        "contact": {
                          "id": "con_9bc5a9d2d8302840"
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "app_99b90b9d208a137b"
                        },
                        "description": "Deal closed — contract signed",
                        "external": {
                          "id": "deal_98442",
                          "url": "https://crm.example.com/deals/98442"
                        },
                        "invoice": null,
                        "site": null,
                        "source": {
                          "id": "tsrc_126b43585fea94ad"
                        },
                        "subscription": null,
                        "template": {
                          "id": "aetpl_6b92d7693eb7e8e9"
                        },
                        "tenancy": null,
                        "unit": null,
                        "unit_type": null,
                        "updated_at": "2025-02-22T14:41:00Z",
                        "variables": {
                          "deal_name": "10x10 Unit — 12 months",
                          "previous_state": "Negotiation",
                          "new_state": "Closed Won"
                        }
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "event updated"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/timeline_event_single"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TimelineEventsUpdate"
              },
              "examples": {
                "update_event": {
                  "summary": "update event",
                  "value": {
                    "source": {
                      "id": "tsrc_126b43585fea94ad"
                    },
                    "template": {
                      "id": "aetpl_6b92d7693eb7e8e9"
                    },
                    "contact": {
                      "id": "con_9bc5a9d2d8302840"
                    },
                    "description": "Deal closed — contract signed",
                    "external": {
                      "id": "deal_98442",
                      "url": "https://crm.example.com/deals/98442"
                    },
                    "variables": {
                      "deal_name": "10x10 Unit — 12 months",
                      "previous_state": "Negotiation",
                      "new_state": "Closed Won"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete an Event",
        "tags": [
          "Timeline / Events"
        ],
        "operationId": "timeline_event_delete",
        "description": "Permanently delete a timeline event.\n\nRequired authorization scope: `public.timeline_event:write`\n",
        "security": [
          {
            "Bearer": [
              "public.timeline_event:write"
            ]
          },
          {
            "OAuth2": [
              "public.timeline_event:write"
            ]
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "event deleted",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "success": {
                        "message": "Event deleted successfully."
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "event deleted"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/timeline/sources": {
      "get": {
        "summary": "List all Sources",
        "tags": [
          "Timeline / Sources"
        ],
        "operationId": "timeline_source_list",
        "description": "Retrieve a list of all sources (both global and operator-specific).\n\nRequired authorization scope: `public.timeline_source:read`\n",
        "security": [
          {
            "Bearer": [
              "public.timeline_source:read"
            ]
          },
          {
            "OAuth2": [
              "public.timeline_source:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "list of sources",
            "content": {
              "application/json": {
                "examples": {
                  "json": {
                    "value": {
                      "sources": [
                        {
                          "id": "tsrc_14b419f1096013f1",
                          "created_at": "2025-02-20T14:41:00Z",
                          "global": false,
                          "name": "My CRM",
                          "updated_at": "2025-02-22T14:41:00Z",
                          "website_url": "https://my-crm.example.com"
                        },
                        {
                          "id": "tsrc_24c519f1096013f2",
                          "created_at": "2025-02-19T14:41:00Z",
                          "global": true,
                          "name": "Messaging App",
                          "updated_at": "2025-02-22T14:41:00Z",
                          "website_url": "https://messagingapp.com"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 2,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of sources in JSON"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/timeline_source_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/timeline/sources/{source_id}": {
      "parameters": [
        {
          "name": "source_id",
          "in": "path",
          "description": "The ID of the source to retrieve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Source",
        "tags": [
          "Timeline / Sources"
        ],
        "operationId": "timeline_source_show",
        "description": "Retrieve a specific source by its ID.\n\nRequired authorization scope: `public.timeline_source:read`\n",
        "security": [
          {
            "Bearer": [
              "public.timeline_source:read"
            ]
          },
          {
            "OAuth2": [
              "public.timeline_source:read"
            ]
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "source detail",
            "content": {
              "application/json": {
                "examples": {
                  "json": {
                    "value": {
                      "source": {
                        "id": "tsrc_14b419f1096013f1",
                        "created_at": "2025-02-20T14:41:00Z",
                        "global": false,
                        "name": "My CRM",
                        "updated_at": "2025-02-22T14:41:00Z",
                        "website_url": "https://my-crm.example.com"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "source detail in JSON"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/timeline_source_single"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/timeline/templates": {
      "get": {
        "summary": "List all Templates",
        "tags": [
          "Timeline / Templates"
        ],
        "operationId": "timeline_template_list",
        "description": "Retrieve a list of all templates.\n\nTemplates define the message format for timeline events. The `message` field contains the default English Liquid template that will be translated. The `variables` object describes which variables are available to render the complete message — `predefined` are predefined system variables, `custom` are user-defined.\n\nVariables are not enforced, as we do not want to block events that have incomplete data.\n\nRequired authorization scope: `public.timeline_template:read`\n",
        "security": [
          {
            "Bearer": [
              "public.timeline_template:read"
            ]
          },
          {
            "OAuth2": [
              "public.timeline_template:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "list of templates",
            "content": {
              "application/json": {
                "examples": {
                  "json": {
                    "value": {
                      "templates": [
                        {
                          "id": "aetpl_14b419f1096013f1",
                          "created_at": "2025-02-20T14:41:00Z",
                          "global": true,
                          "message": "sent campaign '{{ campaign_name }}'{% if global_context %} for {{ contact }}{% endif %}.",
                          "name": "Sent Campaign",
                          "updated_at": "2025-02-22T14:41:00Z",
                          "variables": {
                            "custom": [
                              "campaign_name"
                            ],
                            "predefined": [
                              "contact"
                            ]
                          }
                        },
                        {
                          "id": "aetpl_24c519f1096013f2",
                          "created_at": "2025-02-19T14:41:00Z",
                          "global": true,
                          "message": "recorded {% if global_context %} {{ contact }} opened{% else %} opening of{% endif %} '{{ campaign_name }}'.",
                          "name": "Email Opened",
                          "updated_at": "2025-02-22T14:41:00Z",
                          "variables": {
                            "custom": [
                              "campaign_name"
                            ],
                            "predefined": [
                              "contact"
                            ]
                          }
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 2,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of templates in JSON"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/timeline_template_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/timeline/templates/{template_id}": {
      "parameters": [
        {
          "name": "template_id",
          "in": "path",
          "description": "The ID of the template to retrieve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Template",
        "tags": [
          "Timeline / Templates"
        ],
        "operationId": "timeline_template_show",
        "description": "Retrieve a specific template by its ID.\n\nRequired authorization scope: `public.timeline_template:read`\n",
        "security": [
          {
            "Bearer": [
              "public.timeline_template:read"
            ]
          },
          {
            "OAuth2": [
              "public.timeline_template:read"
            ]
          }
        ],
        "x-mint": {
          "metadata": {
            "tag": "Beta"
          }
        },
        "responses": {
          "200": {
            "description": "template detail",
            "content": {
              "application/json": {
                "examples": {
                  "json": {
                    "value": {
                      "template": {
                        "id": "aetpl_14b419f1096013f1",
                        "created_at": "2025-02-20T14:41:00Z",
                        "global": true,
                        "message": "sent campaign '{{ campaign_name }}'{% if global_context %} for {{ contact }}{% endif %}.",
                        "name": "Sent Campaign",
                        "updated_at": "2025-02-22T14:41:00Z",
                        "variables": {
                          "custom": [
                            "campaign_name"
                          ],
                          "predefined": [
                            "contact"
                          ]
                        }
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "template detail in JSON"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/timeline_template_single"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/unit_allocations": {
      "get": {
        "summary": "List all Unit Allocations",
        "tags": [
          "Unit Allocations"
        ],
        "operationId": "unit_allocation_list",
        "description": "Retrieve a list of all unit allocations.\n\nRequired authorization scope: `public.unit_allocation:read`\n",
        "security": [
          {
            "Bearer": [
              "public.unit_allocation:read"
            ]
          },
          {
            "OAuth2": [
              "public.unit_allocation:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "contact_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Contact IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "tenancy_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Tenancy IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "unit_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Unit IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "site_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Site IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "reserved_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `reserved` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "reserved_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `reserved` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "granted_access_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `granted_access` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "granted_access_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `granted_access` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "list of unit allocations",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "unit_allocations": [
                        {
                          "id": "alloc_a1b2c3d4e5f6g7h8",
                          "created_at": "2025-02-22T14:41:00Z",
                          "granted_access_at": "2025-01-20T14:00:00Z",
                          "reserved_at": "2025-01-15T10:00:00Z",
                          "tenancy": {
                            "id": "ten_acaf3269a573af74"
                          },
                          "unit": {
                            "id": "unit_1e36123098e22cf8"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 1,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of unit allocations"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/unit_allocation_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/unit_allocations/{unit_allocation_id}": {
      "parameters": [
        {
          "name": "unit_allocation_id",
          "in": "path",
          "description": "The ID of the unit allocation",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Unit Allocation",
        "tags": [
          "Unit Allocations"
        ],
        "operationId": "unit_allocation_show",
        "description": "Retrieve a specific unit allocation by its ID.\n\nRequired authorization scope: `public.unit_allocation:read`\n",
        "security": [
          {
            "Bearer": [
              "public.unit_allocation:read"
            ]
          },
          {
            "OAuth2": [
              "public.unit_allocation:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "unit allocation detail",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "unit_allocation": {
                        "id": "alloc_a1b2c3d4e5f6g7h8",
                        "created_at": "2025-02-22T14:41:00Z",
                        "granted_access_at": "2025-01-20T14:00:00Z",
                        "reserved_at": "2025-01-15T10:00:00Z",
                        "tenancy": {
                          "id": "ten_acaf3269a573af74"
                        },
                        "unit": {
                          "id": "unit_1e36123098e22cf8"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "unit allocation detail"
                  },
                  "expanded": {
                    "value": {
                      "unit_allocation": {
                        "id": "alloc_a1b2c3d4e5f6g7h8",
                        "created_at": "2025-02-22T14:41:00Z",
                        "granted_access_at": "2025-01-20T14:00:00Z",
                        "reserved_at": "2025-01-15T10:00:00Z",
                        "tenancy": {
                          "id": "ten_acaf3269a573af74",
                          "contact": {
                            "id": "con_195h6kfm9ro15lof",
                            "address": null,
                            "company_registration_number": null,
                            "created_at": "2025-02-22T14:41:00Z",
                            "email": "default_customer@example.com",
                            "full_name": "Default Customer",
                            "identity_check": {
                              "required": false,
                              "status": "not_attempted"
                            },
                            "marketing_source": null,
                            "metadata": {},
                            "phone_number": null,
                            "source": null,
                            "status": "customer",
                            "stripe_customer_id": null,
                            "tax_id": null,
                            "tenancies_count": 1,
                            "type": null,
                            "updated_at": "2025-02-22T14:41:00Z",
                            "use_case": null
                          },
                          "created_at": "2025-02-22T14:41:00Z",
                          "ends_at": null,
                          "order": null,
                          "site": {
                            "id": "site_14b419f1096013f1",
                            "access_hours": null,
                            "address": null,
                            "created_at": "2025-02-22T14:41:00Z",
                            "description": null,
                            "directions": {
                              "google_maps_url": null
                            },
                            "images": {
                              "default": null
                            },
                            "name": "Site Name",
                            "opened_at": null,
                            "phone": "012345789",
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "starts_at": "2025-02-22T14:41:00Z",
                          "subscription": {
                            "id": "sub_125c561ac05edfa1",
                            "billing_period": "monthly",
                            "cancellation_reason": "issue_cost",
                            "cancelled": false,
                            "created_at": "2025-02-22T14:41:00Z",
                            "current_period": {
                              "ends_at": null,
                              "starts_at": null
                            },
                            "ends_at": null,
                            "line_items": [],
                            "starts_at": "2025-02-22T14:41:00Z",
                            "stripe_subscription_id": null,
                            "stripe_subscription_schedule_id": null,
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "unit": {
                          "id": "unit_1e36123098e22cf8",
                          "created_at": "2025-02-22T14:41:00Z",
                          "reference_id": "A001",
                          "status": "available",
                          "unit_type": {
                            "id": "utype_f18fc91387cdf710",
                            "_links": {
                              "sf:new_order": {
                                "href": "/sites/site-name-self-storage-units/order/contact-details?unit_type_slug=large",
                                "title": "New order"
                              }
                            },
                            "created_at": "2025-02-22T14:41:00Z",
                            "dimensions": {
                              "height": 12,
                              "length": 11,
                              "measurement_unit": "ft",
                              "width": 10
                            },
                            "dynamic_pricing": false,
                            "images": {
                              "default": null
                            },
                            "live_prices": [
                              {
                                "billing_period": "monthly",
                                "price": {
                                  "amount": 1500,
                                  "currency": "GBP",
                                  "formatted": "£15.00"
                                },
                                "stripe_price_id": "price_unit_type_live_123"
                              }
                            ],
                            "name": "Large",
                            "promotion": null,
                            "require_insurance_coverage": true,
                            "require_security_deposit": false,
                            "security_deposit": null,
                            "selling_points": [],
                            "size_description": "Can swing a cat quite comfortably",
                            "slug": "large",
                            "status": "bookable",
                            "stripe_product_id": "prod_unit_type_test",
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "unit allocation detail (fully expanded)"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/unit_allocation_single"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/unit_types/{unit_type_id}/base_price": {
      "parameters": [
        {
          "name": "unit_type_id",
          "in": "path",
          "description": "The ID of the unit type to set the base prices",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "summary": "Create Base Price for the Unit Type",
        "tags": [
          "Unit Types"
        ],
        "operationId": "unit_type_base_price_create",
        "description": "Set base prices for the selected unit type.\n\nRequired authorization scope: `public.unit_type:write`\n",
        "security": [
          {
            "Bearer": [
              "public.unit_type:write"
            ]
          },
          {
            "OAuth2": [
              "public.unit_type:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "201": {
            "description": "unit type with created base prices",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "unit_type": {
                        "id": "utype_f18fc91387cdf710",
                        "_links": {
                          "sf:new_order": {
                            "href": "/sites/site-name-self-storage-units/order/contact-details?unit_type_slug=large",
                            "title": "New order"
                          }
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "dimensions": {
                          "height": 12,
                          "length": 11,
                          "measurement_unit": "ft",
                          "width": 10
                        },
                        "dynamic_pricing": false,
                        "images": {
                          "default": null
                        },
                        "live_prices": [
                          {
                            "billing_period": "monthly",
                            "price": {
                              "amount": 3999,
                              "currency": "GBP",
                              "formatted": "£39.99"
                            },
                            "stripe_price_id": "price_MwJrt3uovKQOBpbjwpGRdTz3"
                          }
                        ],
                        "name": "Large",
                        "prices": [
                          {
                            "billing_period": "weekly",
                            "price": {
                              "amount": 999,
                              "currency": "GBP",
                              "formatted": "£9.99"
                            },
                            "stripe_price_id": "price_OUZT099ynVSlgPkNEzRI55sK"
                          },
                          {
                            "billing_period": "monthly",
                            "price": {
                              "amount": 3999,
                              "currency": "GBP",
                              "formatted": "£39.99"
                            },
                            "stripe_price_id": "price_MwJrt3uovKQOBpbjwpGRdTz3"
                          }
                        ],
                        "promotion": null,
                        "require_insurance_coverage": true,
                        "require_security_deposit": false,
                        "security_deposit": null,
                        "selling_points": [],
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "size_description": "Can swing a cat quite comfortably",
                        "slug": "large",
                        "status": "bookable",
                        "stripe_product_id": "test_Sj6uOSWhCLm5et",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "unit type with created base prices"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/unit_type_single"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BasePriceCreate"
              },
              "examples": {
                "unit_type_with_created_base_prices": {
                  "summary": "unit type with created base prices",
                  "value": {
                    "weekly": {
                      "amount": 999
                    },
                    "monthly": {
                      "amount": 3999
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/unit_types": {
      "get": {
        "summary": "List all Unit Types",
        "tags": [
          "Unit Types"
        ],
        "operationId": "unit_type_list",
        "description": "Retrieve a list of all unit types.\n\nRequired authorization scope: `public.unit_type:read`\n",
        "security": [
          {
            "Bearer": [
              "public.unit_type:read"
            ]
          },
          {
            "OAuth2": [
              "public.unit_type:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "name",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "site_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Site IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "list of unit types",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "unit_types": [
                        {
                          "id": "utype_f18fc91387cdf710",
                          "_links": {
                            "sf:new_order": {
                              "href": "/sites/site-name-self-storage-units/order/contact-details?unit_type_slug=standard-storage-unit",
                              "title": "New order"
                            }
                          },
                          "created_at": "2025-02-22T14:41:00Z",
                          "dimensions": {
                            "height": 11,
                            "length": 12,
                            "measurement_unit": "ft",
                            "width": 10
                          },
                          "dynamic_pricing": true,
                          "images": {
                            "default": null
                          },
                          "live_prices": [
                            {
                              "billing_period": "weekly",
                              "price": {
                                "amount": 1500,
                                "currency": "GBP",
                                "formatted": "£15.00"
                              },
                              "stripe_price_id": "price_weekly_123"
                            }
                          ],
                          "name": "Standard Storage Unit",
                          "prices": [
                            {
                              "billing_period": "weekly",
                              "price": {
                                "amount": 1500,
                                "currency": "GBP",
                                "formatted": "£15.00"
                              },
                              "stripe_price_id": "price_weekly_123"
                            }
                          ],
                          "promotion": {
                            "id": "cpn_promo_abc123"
                          },
                          "require_insurance_coverage": true,
                          "require_security_deposit": true,
                          "security_deposit": {
                            "amount": 5000,
                            "currency": "GBP",
                            "formatted": "£50.00"
                          },
                          "selling_points": [
                            "Spacious",
                            "Affordable",
                            "Secure"
                          ],
                          "site": {
                            "id": "site_14b419f1096013f1"
                          },
                          "size_description": "10x12 ft",
                          "slug": "standard-storage-unit",
                          "status": "bookable",
                          "stripe_product_id": "test_Sj6uOSWhCLm5et",
                          "updated_at": "2025-02-22T14:41:00Z"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 1,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of unit types"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/unit_type_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/unit_types/{unit_type_id}": {
      "parameters": [
        {
          "name": "unit_type_id",
          "in": "path",
          "description": "The ID of the unit type to retrieve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Unit Type",
        "tags": [
          "Unit Types"
        ],
        "operationId": "unit_type_show",
        "description": "Retrieve a specific unit type by its ID.\n\nRequired authorization scope: `public.unit_type:read`\n",
        "security": [
          {
            "Bearer": [
              "public.unit_type:read"
            ]
          },
          {
            "OAuth2": [
              "public.unit_type:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "unit type detail",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "unit_type": {
                        "id": "utype_f18fc91387cdf710",
                        "_links": {
                          "sf:new_order": {
                            "href": "/sites/site-name-self-storage-units/order/contact-details?unit_type_slug=standard-storage-unit",
                            "title": "New order"
                          }
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "dimensions": {
                          "height": 11,
                          "length": 12,
                          "measurement_unit": "ft",
                          "width": 10
                        },
                        "dynamic_pricing": false,
                        "images": {
                          "default": null
                        },
                        "live_prices": [
                          {
                            "billing_period": "weekly",
                            "price": {
                              "amount": 1500,
                              "currency": "GBP",
                              "formatted": "£15.00"
                            },
                            "stripe_price_id": "price_weekly_123"
                          }
                        ],
                        "name": "Standard Storage Unit",
                        "prices": [
                          {
                            "billing_period": "weekly",
                            "price": {
                              "amount": 1500,
                              "currency": "GBP",
                              "formatted": "£15.00"
                            },
                            "stripe_price_id": "price_weekly_123"
                          }
                        ],
                        "promotion": {
                          "id": "cpn_promo_abc123"
                        },
                        "require_insurance_coverage": true,
                        "require_security_deposit": true,
                        "security_deposit": {
                          "amount": 5000,
                          "currency": "GBP",
                          "formatted": "£50.00"
                        },
                        "selling_points": [
                          "Spacious",
                          "Affordable",
                          "Secure"
                        ],
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "size_description": "10x12 ft",
                        "slug": "standard-storage-unit",
                        "status": "bookable",
                        "stripe_product_id": "test_Sj6uOSWhCLm5et",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "unit type detail"
                  },
                  "expanded": {
                    "value": {
                      "unit_type": {
                        "id": "utype_f18fc91387cdf710",
                        "_links": {
                          "sf:new_order": {
                            "href": "/sites/site-name-self-storage-units/order/contact-details?unit_type_slug=standard-storage-unit",
                            "title": "New order"
                          }
                        },
                        "created_at": "2025-02-22T14:41:00Z",
                        "dimensions": {
                          "height": 11,
                          "length": 12,
                          "measurement_unit": "ft",
                          "width": 10
                        },
                        "dynamic_pricing": false,
                        "images": {
                          "default": {
                            "original": "https://public-api.stora.test/2025-09/images/eyJpZCI6InV0eXBlX2YxOGZjOTEzODdjZGY3MTAiLCJuYW1lIjoiZGVmYXVsdCJ9--64460a36d14f62a4c152eb3e317212a7c68fc375/unit-type-photo.jpg",
                            "small": "https://public-api.stora.test/2025-09/images/eyJpZCI6InV0eXBlX2YxOGZjOTEzODdjZGY3MTAiLCJuYW1lIjoiZGVmYXVsdCIsInZhcmlhbnQiOiJzbWFsbCJ9--64460a36d14f62a4c152eb3e317212a7c68fc375/unit-type-photo.jpg",
                            "medium": "https://public-api.stora.test/2025-09/images/eyJpZCI6InV0eXBlX2YxOGZjOTEzODdjZGY3MTAiLCJuYW1lIjoiZGVmYXVsdCIsInZhcmlhbnQiOiJtZWRpdW0ifQ==--64460a36d14f62a4c152eb3e317212a7c68fc375/unit-type-photo.jpg",
                            "large": "https://public-api.stora.test/2025-09/images/eyJpZCI6InV0eXBlX2YxOGZjOTEzODdjZGY3MTAiLCJuYW1lIjoiZGVmYXVsdCIsInZhcmlhbnQiOiJsYXJnZSJ9--64460a36d14f62a4c152eb3e317212a7c68fc375/unit-type-photo.jpg"
                          }
                        },
                        "live_prices": [
                          {
                            "billing_period": "weekly",
                            "price": {
                              "amount": 1500,
                              "currency": "GBP",
                              "formatted": "£15.00"
                            },
                            "stripe_price_id": "price_weekly_123"
                          }
                        ],
                        "name": "Standard Storage Unit",
                        "prices": [
                          {
                            "billing_period": "weekly",
                            "price": {
                              "amount": 1500,
                              "currency": "GBP",
                              "formatted": "£15.00"
                            },
                            "stripe_price_id": "price_weekly_123"
                          }
                        ],
                        "promotion": {
                          "id": "cpn_promo_abc123",
                          "auto_apply_to": {
                            "products": false,
                            "protections": false,
                            "subscriptions": true,
                            "unit_types": false
                          },
                          "billing_period": null,
                          "code": "5OFF",
                          "created_at": "2025-02-22T14:41:00Z",
                          "duration": "once",
                          "max_redemptions": null,
                          "months": null,
                          "name": "Summer Sale",
                          "percent": 50,
                          "public": false,
                          "title": "50% off your first month",
                          "type": "percentage",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "require_insurance_coverage": true,
                        "require_security_deposit": true,
                        "security_deposit": {
                          "amount": 5000,
                          "currency": "GBP",
                          "formatted": "£50.00"
                        },
                        "selling_points": [
                          "Spacious",
                          "Affordable",
                          "Secure"
                        ],
                        "site": {
                          "id": "site_14b419f1096013f1",
                          "access_hours": null,
                          "address": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "description": null,
                          "directions": {
                            "google_maps_url": null
                          },
                          "images": {
                            "default": null
                          },
                          "name": "Site Name",
                          "opened_at": null,
                          "phone": "012345789",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "size_description": "10x12 ft",
                        "slug": "standard-storage-unit",
                        "status": "bookable",
                        "stripe_product_id": "test_Sj6uOSWhCLm5et",
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "unit type detail (fully expanded)"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/unit_type_single"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/units/{unit_id}/deallocate": {
      "parameters": [
        {
          "name": "unit_id",
          "in": "path",
          "description": "The ID of the unit to deallocate",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "summary": "Deallocate a Unit",
        "tags": [
          "Units"
        ],
        "operationId": "unit_deallocate",
        "description": "Deallocate a unit.\n\n**Requirements:**\n- The unit status must be one of: `reserved`, `occupied`, `overlock`, `repossessed`\n\nRequired authorization scope: `public.unit:write`\n",
        "security": [
          {
            "Bearer": [
              "public.unit:write"
            ]
          },
          {
            "OAuth2": [
              "public.unit:write"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "unit deallocated successfully",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "unit": {
                        "id": "unit_1e36123098e22cf8",
                        "created_at": "2025-02-22T14:41:00Z",
                        "reference_id": "UNIT-001",
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "status": "available",
                        "unit_allocation": null,
                        "unit_type": {
                          "id": "utype_f18fc91387cdf710"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "unit deallocated successfully"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/unit_single"
                }
              }
            }
          },
          "404": {
            "description": "unit not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Unit was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "unit not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "unit cannot be deallocated",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "Unit cannot be deallocated. Current status: 'available'",
                            "pointer": "unit_id"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "unit cannot be deallocated"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/units/{unit_id}/grant_access": {
      "parameters": [
        {
          "name": "unit_id",
          "in": "path",
          "description": "The ID of the unit to grant access to",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "summary": "Grant Access to a Unit",
        "tags": [
          "Units"
        ],
        "operationId": "unit_grant_access",
        "description": "Grant immediate access to the provided tenancy, transitioning the unit to `occupied` status.\n\n- If the unit is `reserved`, access is granted for the existing reservation. The unit must be reserved for the same tenancy provided in the request.\n\nRequired authorization scope: `public.unit:write`\n",
        "security": [
          {
            "Bearer": [
              "public.unit:write"
            ]
          },
          {
            "OAuth2": [
              "public.unit:write"
            ]
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "access granted successfully",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "unit": {
                        "id": "unit_1e36123098e22cf8",
                        "created_at": "2025-02-22T14:41:00Z",
                        "reference_id": "UNIT-001",
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "status": "occupied",
                        "unit_allocation": {
                          "id": "alloc_5f7475758314968d"
                        },
                        "unit_type": {
                          "id": "utype_f18fc91387cdf710"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "access granted successfully"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/unit_single"
                }
              }
            }
          },
          "422": {
            "description": "unit reserved for another tenancy",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "Tenancy Unit is reserved for tenancy 'ten_acaf3269a573af74'",
                            "pointer": "/tenancy_id"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "unit reserved for another tenancy"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnitsGrantAccess"
              },
              "examples": {
                "request": {
                  "summary": "request",
                  "value": {
                    "tenancy_id": "ten_acaf3269a573af74"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/units/overlock": {
      "post": {
        "summary": "Overlock Units by Contact",
        "tags": [
          "Units"
        ],
        "operationId": "units_overlock",
        "description": "Overlock all occupied units for a contact.\n\n**Requirements:**\n- The contact must have occupied units that can be overlocked\n\nRequired authorization scope: `public.unit:write`\n",
        "security": [
          {
            "Bearer": [
              "public.unit:write"
            ]
          },
          {
            "OAuth2": [
              "public.unit:write"
            ]
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "units overlocked successfully",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "success": {
                        "message": "2 customer units were successfully overlocked."
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "unit_ids": [
                          "unit_1e36123098e22cf8",
                          "unit_2e36123098e22cf8"
                        ],
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "units overlocked successfully"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/UnitOverlockSuccess"
                }
              }
            }
          },
          "404": {
            "description": "contact not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Contact was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "contact not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "contact has no overlockable units",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "Contact has no occupied units that can be overlocked.",
                            "pointer": "/contact_id"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "contact has no overlockable units"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnitsOverlock"
              },
              "examples": {
                "request": {
                  "summary": "request",
                  "value": {
                    "contact_id": "con_0ac0514ed0711462"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/units/remove_overlock": {
      "post": {
        "summary": "Remove Overlock from Units by Contact",
        "tags": [
          "Units"
        ],
        "operationId": "units_remove_overlock",
        "description": "Remove overlock from all overlocked units for a contact.\n\n**Requirements:**\n- The contact must have overlocked units that can have overlock removed\n\nRequired authorization scope: `public.unit:write`\n",
        "security": [
          {
            "Bearer": [
              "public.unit:write"
            ]
          },
          {
            "OAuth2": [
              "public.unit:write"
            ]
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "units overlock removed successfully",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "success": {
                        "message": "Overlock was successfully removed from 2 customer units."
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "unit_ids": [
                          "unit_1e36123098e22cf8",
                          "unit_2e36123098e22cf8"
                        ],
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "units overlock removed successfully"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/UnitRemoveOverlockSuccess"
                }
              }
            }
          },
          "404": {
            "description": "contact not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Contact was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "contact not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "contact has no overlocked units with removable overlock",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "Contact has no overlocked units that can have overlock removed.",
                            "pointer": "/contact_id"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "contact has no overlocked units with removable overlock"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnitsRemoveOverlock"
              },
              "examples": {
                "request": {
                  "summary": "request",
                  "value": {
                    "contact_id": "con_0ac0514ed0711462"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/units/{unit_id}/reserve": {
      "parameters": [
        {
          "name": "unit_id",
          "in": "path",
          "description": "The ID of the unit to reserve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "summary": "Reserve a Unit",
        "tags": [
          "Units"
        ],
        "operationId": "unit_reserve",
        "description": "Reserve a unit for a tenancy.\n\nThe unit will be reserved for the specified tenancy until the move-in date,\nat which point access can be granted.\n\n**Requirements:**\n- The unit must be in \"available\" status\n- The tenancy must not have started yet (move-in date must be in the future)\n\nRequired authorization scope: `public.unit:write`\n",
        "security": [
          {
            "Bearer": [
              "public.unit:write"
            ]
          },
          {
            "OAuth2": [
              "public.unit:write"
            ]
          }
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "unit reserved successfully",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "unit": {
                        "id": "unit_1e36123098e22cf8",
                        "created_at": "2025-02-22T14:41:00Z",
                        "reference_id": "UNIT-001",
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "status": "reserved",
                        "unit_allocation": {
                          "id": "alloc_52e81a952ab37314"
                        },
                        "unit_type": {
                          "id": "utype_f18fc91387cdf710"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "unit reserved successfully"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/unit_single"
                }
              }
            }
          },
          "404": {
            "description": "tenancy not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Subscription was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "tenancy not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "tenancy already started",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "invalid_content",
                        "details": [
                          {
                            "message": "Tenancy Tenancy has already started. Move-in date must be in the future.",
                            "pointer": "/tenancy_id"
                          }
                        ],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The request body content is not valid.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "tenancy already started"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnitsReserve"
              },
              "examples": {
                "request": {
                  "summary": "request",
                  "value": {
                    "tenancy_id": "ten_acaf3269a573af74"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/units": {
      "get": {
        "summary": "List all Units",
        "tags": [
          "Units"
        ],
        "operationId": "unit_list",
        "description": "Retrieve a list of all units.\n\nRequired authorization scope: `public.unit:read`\n",
        "security": [
          {
            "Bearer": [
              "public.unit:read"
            ]
          },
          {
            "OAuth2": [
              "public.unit:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "unit_type_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Unit Type IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "site_id",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Filter by Site IDs. Supports multiple values separated by a comma.",
            "required": false
          },
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          },
          {
            "name": "status",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "available",
                  "reserved",
                  "occupied",
                  "overlock",
                  "repossessed",
                  "unavailable"
                ]
              }
            },
            "description": "The current status of the unit. Supports multiple values separated by a comma.",
            "examples": {
              "single": {
                "value": [
                  "reserved"
                ]
              },
              "multiple": {
                "value": [
                  "available",
                  "repossessed"
                ]
              }
            },
            "required": false
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Search units by reference ID (fuzzy match). **BETA**",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "list of units",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "units": [
                        {
                          "id": "unit_1e36123098e22cf8",
                          "created_at": "2025-02-22T14:41:00Z",
                          "reference_id": "UNIT-001",
                          "site": {
                            "id": "site_14b419f1096013f1"
                          },
                          "status": "available",
                          "unit_allocation": null,
                          "unit_type": {
                            "id": "utype_f18fc91387cdf710"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 1,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of units"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/unit_list"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/units/{unit_id}": {
      "parameters": [
        {
          "name": "unit_id",
          "in": "path",
          "description": "The ID of the unit to retrieve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Unit",
        "tags": [
          "Units"
        ],
        "operationId": "unit_show",
        "description": "Retrieve a specific unit by its ID.\n\nRequired authorization scope: `public.unit:read`\n",
        "security": [
          {
            "Bearer": [
              "public.unit:read"
            ]
          },
          {
            "OAuth2": [
              "public.unit:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "unit detail",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "unit": {
                        "id": "unit_1e36123098e22cf8",
                        "created_at": "2025-02-22T14:41:00Z",
                        "reference_id": "UNIT-001",
                        "site": {
                          "id": "site_14b419f1096013f1"
                        },
                        "status": "available",
                        "unit_allocation": null,
                        "unit_type": {
                          "id": "utype_f18fc91387cdf710"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "unit detail"
                  },
                  "expanded": {
                    "value": {
                      "unit": {
                        "id": "unit_1e36123098e22cf8",
                        "created_at": "2025-02-22T14:41:00Z",
                        "reference_id": "UNIT-001",
                        "site": {
                          "id": "site_14b419f1096013f1",
                          "access_hours": null,
                          "address": null,
                          "created_at": "2025-02-22T14:41:00Z",
                          "description": null,
                          "directions": {
                            "google_maps_url": null
                          },
                          "images": {
                            "default": null
                          },
                          "name": "Site Name",
                          "opened_at": null,
                          "phone": "012345789",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "status": "available",
                        "unit_allocation": {
                          "id": "alloc_a1b2c3d4e5f6g7h8",
                          "created_at": "2025-02-22T14:41:00Z",
                          "granted_access_at": null,
                          "reserved_at": "2025-01-15T10:00:00Z",
                          "tenancy": {
                            "id": "ten_acaf3269a573af74",
                            "contact": {
                              "id": "con_208d6fa205baf380",
                              "address": null,
                              "company_registration_number": null,
                              "created_at": "2025-02-22T14:41:00Z",
                              "email": "default_customer35@example.com",
                              "full_name": "John Doe",
                              "identity_check": {
                                "required": false,
                                "status": "not_attempted"
                              },
                              "marketing_source": null,
                              "metadata": {},
                              "phone_number": null,
                              "source": null,
                              "status": "customer",
                              "stripe_customer_id": null,
                              "tax_id": null,
                              "tenancies_count": 1,
                              "type": null,
                              "updated_at": "2025-02-22T14:41:00Z",
                              "use_case": null
                            },
                            "created_at": "2025-02-22T14:41:00Z",
                            "ends_at": null,
                            "order": {
                              "id": "order_8541ceb54c1b01f8",
                              "billing_period": "monthly",
                              "contract_template": null,
                              "coupon": null,
                              "created_at": "2025-02-22T14:41:00Z",
                              "email_notifications": {
                                "booking_confirmation": true,
                                "move_in_day": true,
                                "payment_details": false
                              },
                              "line_items": [],
                              "metadata": {},
                              "one_time_total": {
                                "amount": 0,
                                "currency": "GBP",
                                "formatted": "£0.00"
                              },
                              "one_time_total_excluding_tax": {
                                "amount": 0,
                                "currency": "GBP",
                                "formatted": "£0.00"
                              },
                              "payment_method": "card",
                              "payment_url": null,
                              "purchase_order_number": null,
                              "source": "unspecified",
                              "starts_at": "2025-02-23T14:41:00Z",
                              "status": "draft",
                              "subtotal": {
                                "amount": 0,
                                "currency": "GBP",
                                "formatted": "£0.00"
                              },
                              "tax": {
                                "amount": 0,
                                "currency": "GBP",
                                "formatted": "£0.00"
                              },
                              "total": {
                                "amount": 0,
                                "currency": "GBP",
                                "formatted": "£0.00"
                              },
                              "total_discount": {
                                "amount": 0,
                                "currency": "GBP",
                                "formatted": "£0.00"
                              },
                              "total_excluding_tax": {
                                "amount": 0,
                                "currency": "GBP",
                                "formatted": "£0.00"
                              },
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            "site": {
                              "id": "site_14b419f1096013f1",
                              "access_hours": null,
                              "address": null,
                              "created_at": "2025-02-22T14:41:00Z",
                              "description": null,
                              "directions": {
                                "google_maps_url": null
                              },
                              "images": {
                                "default": null
                              },
                              "name": "Site Name",
                              "opened_at": null,
                              "phone": "012345789",
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            "starts_at": "2025-02-22T14:41:00Z",
                            "subscription": {
                              "id": "sub_f7d4fea53ccdefe0",
                              "billing_period": "monthly",
                              "cancellation_reason": null,
                              "cancelled": false,
                              "created_at": "2025-02-22T14:41:00Z",
                              "current_period": {
                                "ends_at": null,
                                "starts_at": null
                              },
                              "ends_at": null,
                              "line_items": [],
                              "starts_at": "2025-02-22T14:41:00Z",
                              "stripe_subscription_id": null,
                              "stripe_subscription_schedule_id": null,
                              "updated_at": "2025-02-22T14:41:00Z"
                            },
                            "updated_at": "2025-02-22T14:41:00Z"
                          },
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "unit_type": {
                          "id": "utype_f18fc91387cdf710",
                          "_links": {
                            "sf:new_order": {
                              "href": "/sites/site-name-self-storage-units/order/contact-details?unit_type_slug=standard-storage-unit",
                              "title": "New order"
                            }
                          },
                          "created_at": "2025-02-22T14:41:00Z",
                          "dimensions": {
                            "height": 12,
                            "length": 11,
                            "measurement_unit": "ft",
                            "width": 10
                          },
                          "dynamic_pricing": false,
                          "images": {
                            "default": null
                          },
                          "live_prices": [
                            {
                              "billing_period": "monthly",
                              "price": {
                                "amount": 1500,
                                "currency": "GBP",
                                "formatted": "£15.00"
                              },
                              "stripe_price_id": "price_unit_type_live_123"
                            }
                          ],
                          "name": "Standard Storage Unit",
                          "promotion": null,
                          "require_insurance_coverage": true,
                          "require_security_deposit": false,
                          "security_deposit": null,
                          "selling_points": [],
                          "size_description": "Can swing a cat quite comfortably",
                          "slug": "standard-storage-unit",
                          "status": "bookable",
                          "stripe_product_id": "prod_unit_type_test",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "updated_at": "2025-02-22T14:41:00Z"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "unit detail (fully expanded)"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/unit_single"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/webhook_endpoints/{webhook_endpoint_id}/disable": {
      "parameters": [
        {
          "name": "webhook_endpoint_id",
          "in": "path",
          "description": "The ID of the webhook endpoint to disable",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "summary": "Disable a Webhook Endpoint",
        "tags": [
          "Webhook Endpoints"
        ],
        "operationId": "webhook_endpoint_disable",
        "description": "Disable a webhook endpoint.\n\nRequired authorization scope: `public.webhook_endpoint:write`\n",
        "security": [
          {
            "Bearer": [
              "public.webhook_endpoint:write"
            ]
          },
          {
            "OAuth2": [
              "public.webhook_endpoint:write"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "disable webhook endpoint",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "endpoint": {
                        "id": "we_195h6kfm9ro15lof",
                        "api_version": "2025-09",
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_06778802edebb94d"
                        },
                        "description": "Test webhook endpoint",
                        "disabled_at": "2025-02-22T14:41:00Z",
                        "event_types": [
                          "credit_note.created"
                        ],
                        "metadata": {},
                        "name": "My Webhook",
                        "secret": null,
                        "status": "disabled",
                        "updated_at": "2025-02-22T14:41:00Z",
                        "url": "https://example.com/webhook"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "disable webhook endpoint"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/webhook_endpoint_single"
                }
              }
            }
          },
          "403": {
            "description": "webhook endpoint managed by authorized application",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "forbidden",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "This webhook endpoint is managed by Zapier and cannot be modified through this access token",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "webhook endpoint managed by authorized application"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "webhook endpoint not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Webhook/Endpoint was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "webhook endpoint not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/webhook_endpoints/{webhook_endpoint_id}/enable": {
      "parameters": [
        {
          "name": "webhook_endpoint_id",
          "in": "path",
          "description": "The ID of the webhook endpoint to enable",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "summary": "Enable a Webhook Endpoint",
        "tags": [
          "Webhook Endpoints"
        ],
        "operationId": "webhook_endpoint_enable",
        "description": "Enable a webhook endpoint.\n\nRequired authorization scope: `public.webhook_endpoint:write`\n",
        "security": [
          {
            "Bearer": [
              "public.webhook_endpoint:write"
            ]
          },
          {
            "OAuth2": [
              "public.webhook_endpoint:write"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "enable webhook endpoint",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "endpoint": {
                        "id": "we_195h6kfm9ro15lof",
                        "api_version": "2025-09",
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_06778802edebb94d"
                        },
                        "description": "Test webhook endpoint",
                        "disabled_at": null,
                        "event_types": [
                          "credit_note.created"
                        ],
                        "metadata": {},
                        "name": "My Webhook",
                        "secret": null,
                        "status": "enabled",
                        "updated_at": "2025-02-22T14:41:00Z",
                        "url": "https://example.com/webhook"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "enable webhook endpoint"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/webhook_endpoint_single"
                }
              }
            }
          },
          "403": {
            "description": "webhook endpoint managed by authorized application",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "forbidden",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "This webhook endpoint is managed by Zapier and cannot be modified through this access token",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "webhook endpoint managed by authorized application"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "webhook endpoint not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Webhook/Endpoint was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "webhook endpoint not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/webhook_endpoints": {
      "get": {
        "summary": "List all Webhook Endpoints",
        "tags": [
          "Webhook Endpoints"
        ],
        "operationId": "webhook_endpoint_list",
        "description": "Retrieve a list of all webhook endpoints.\n\nRequired authorization scope: `public.webhook_endpoint:read`\n",
        "security": [
          {
            "Bearer": [
              "public.webhook_endpoint:read"
            ]
          },
          {
            "OAuth2": [
              "public.webhook_endpoint:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Pagination: Page number",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Pagination: Limit number of items per page.",
            "required": false
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at"
              ]
            },
            "description": "Sorting by attribute. Default `created_at`",
            "required": false
          },
          {
            "name": "sort_direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            },
            "description": "Sorting by `ASC` or `DESC` direction. Default `DESC`",
            "required": false
          },
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          },
          {
            "name": "status",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "disabled",
                  "enabled"
                ]
              }
            },
            "description": "Filter by status. Supports multiple values separated by a comma.",
            "examples": {
              "single": {
                "value": [
                  "enabled"
                ]
              },
              "multiple": {
                "value": [
                  "enabled",
                  "disabled"
                ]
              }
            },
            "required": false
          },
          {
            "name": "metadata",
            "in": "query",
            "style": "deepObject",
            "required": false,
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "example": {}
            },
            "description": "Filter by metadata. Use `metadata[key]=value` to filter by specific metadata keys."
          },
          {
            "name": "created_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `created` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_after",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` after (including given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          },
          {
            "name": "updated_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Filters results to `updated` before (excluding given date) the given ISO 8601 timestamp (e.g., `2025-01-12T15:30:00Z`).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "list of webhook endpoints",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "endpoints": [
                        {
                          "id": "we_195h6kfm9ro15lof",
                          "api_version": "2025-09",
                          "created_at": "2025-02-22T14:41:00Z",
                          "creator": {
                            "id": "staff_06778802edebb94d"
                          },
                          "description": "Test webhook endpoint",
                          "disabled_at": null,
                          "event_types": [
                            "credit_note.created"
                          ],
                          "metadata": {},
                          "name": "My Webhook",
                          "secret": null,
                          "status": "enabled",
                          "updated_at": "2025-02-22T14:41:00Z",
                          "url": "https://example.com/webhook"
                        }
                      ],
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ],
                        "pagination": {
                          "count": 1,
                          "last": 1,
                          "limit": 50,
                          "next": null,
                          "page": 1,
                          "pages": 1,
                          "prev": null
                        }
                      }
                    },
                    "summary": "list of webhook endpoints"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/webhook_endpoint_list"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create a Webhook Endpoint",
        "tags": [
          "Webhook Endpoints"
        ],
        "operationId": "webhook_endpoint_create",
        "description": "Create a new webhook endpoint to receive event notifications.\n\nRequired authorization scope: `public.webhook_endpoint:write`\n",
        "security": [
          {
            "Bearer": [
              "public.webhook_endpoint:write"
            ]
          },
          {
            "OAuth2": [
              "public.webhook_endpoint:write"
            ]
          }
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "webhook endpoint created",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "endpoint": {
                        "id": "we_c72a94b59dc380a4",
                        "api_version": "2025-09",
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "app_531844f4c4837d61"
                        },
                        "description": "A new webhook endpoint",
                        "disabled_at": null,
                        "event_types": [
                          "credit_note.created"
                        ],
                        "metadata": {
                          "source": "zapier",
                          "external_id": "abc_123"
                        },
                        "name": "My New Webhook",
                        "secret": "01a9d2bc4f2301b5313a961ba198b0b900ea49478f9ba86fc8b409a5703a8131",
                        "status": "enabled",
                        "updated_at": "2025-02-22T14:41:00Z",
                        "url": "https://example.com/new_webhook"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "webhook endpoint created"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/webhook_endpoint_single"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEndpointsCreate"
              },
              "examples": {
                "webhook_endpoint_create": {
                  "summary": "webhook endpoint create",
                  "value": {
                    "name": "My New Webhook",
                    "api_version": "2025-09",
                    "url": "https://example.com/new_webhook",
                    "event_types": [
                      "credit_note.created"
                    ],
                    "description": "A new webhook endpoint",
                    "metadata": {
                      "source": "zapier",
                      "external_id": "abc_123"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/2025-09/webhook_endpoints/{webhook_endpoint_id}": {
      "parameters": [
        {
          "name": "webhook_endpoint_id",
          "in": "path",
          "description": "The public ID of the webhook endpoint to retrieve",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Show a Webhook Endpoint",
        "tags": [
          "Webhook Endpoints"
        ],
        "operationId": "webhook_endpoint_show",
        "description": "Retrieve the details of a specific webhook endpoint by its ID.\n\nRequired authorization scope: `public.webhook_endpoint:read`\n",
        "security": [
          {
            "Bearer": [
              "public.webhook_endpoint:read"
            ]
          },
          {
            "OAuth2": [
              "public.webhook_endpoint:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "expand",
            "explode": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "This endpoint supports expandable responses. For more, see the [documentation page](https://docs.stora.co/2025-09/guides/responses#expanding-responses).",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "webhook endpoint details",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "endpoint": {
                        "id": "we_195h6kfm9ro15lof",
                        "api_version": "2025-09",
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_06778802edebb94d",
                          "created_at": "2025-02-22T14:41:00Z",
                          "email": "john@doe.com",
                          "name": "John Doe",
                          "updated_at": "2025-02-22T14:41:00Z"
                        },
                        "description": "Test webhook endpoint",
                        "disabled_at": null,
                        "event_types": [
                          "credit_note.created"
                        ],
                        "metadata": {},
                        "name": "My Webhook",
                        "secret": null,
                        "status": "enabled",
                        "updated_at": "2025-02-22T14:41:00Z",
                        "url": "https://example.com/webhook"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "webhook endpoint details"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/webhook_endpoint_single"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update a Webhook Endpoint",
        "tags": [
          "Webhook Endpoints"
        ],
        "operationId": "webhook_endpoint_update",
        "description": "Update an existing webhook endpoint.\n\nRequired authorization scope: `public.webhook_endpoint:write`\n",
        "security": [
          {
            "Bearer": [
              "public.webhook_endpoint:write"
            ]
          },
          {
            "OAuth2": [
              "public.webhook_endpoint:write"
            ]
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "webhook endpoint updated",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "endpoint": {
                        "id": "we_195h6kfm9ro15lof",
                        "api_version": "2025-09",
                        "created_at": "2025-02-22T14:41:00Z",
                        "creator": {
                          "id": "staff_06778802edebb94d"
                        },
                        "description": "An updated webhook endpoint",
                        "disabled_at": null,
                        "event_types": [
                          "credit_note.created"
                        ],
                        "metadata": {
                          "source": "updated"
                        },
                        "name": "Updated Webhook Name",
                        "secret": null,
                        "status": "enabled",
                        "updated_at": "2025-02-22T14:41:00Z",
                        "url": "https://example.com/updated_webhook"
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "webhook endpoint updated"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/webhook_endpoint_single"
                }
              }
            }
          },
          "403": {
            "description": "webhook endpoint managed by authorized application",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "forbidden",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "This webhook endpoint is managed by Zapier and cannot be modified through this access token",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "webhook endpoint managed by authorized application"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "webhook endpoint not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Webhook/Endpoint was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "webhook endpoint not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEndpointsUpdate"
              },
              "examples": {
                "webhook_endpoint_update": {
                  "summary": "webhook endpoint update",
                  "value": {
                    "name": "Updated Webhook Name",
                    "url": "https://example.com/updated_webhook",
                    "event_types": [
                      "credit_note.created"
                    ],
                    "description": "An updated webhook endpoint",
                    "metadata": {
                      "source": "updated"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a Webhook Endpoint",
        "tags": [
          "Webhook Endpoints"
        ],
        "operationId": "webhook_endpoint_delete",
        "description": "Delete a webhook endpoint by its ID.\n\nRequired authorization scope: `public.webhook_endpoint:write`\n",
        "security": [
          {
            "Bearer": [
              "public.webhook_endpoint:write"
            ]
          },
          {
            "OAuth2": [
              "public.webhook_endpoint:write"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "webhook endpoint deleted",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "success": {
                        "message": "Webhook endpoint deleted successfully."
                      },
                      "meta": {
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "curies": [
                          {
                            "name": "bo",
                            "href": "https://app.stora.test{rel}",
                            "templated": true,
                            "title": "Backoffice"
                          },
                          {
                            "name": "sf",
                            "href": "https://acme.stora.test{rel}",
                            "templated": true,
                            "title": "Storefront"
                          }
                        ]
                      }
                    },
                    "summary": "webhook endpoint deleted"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "403": {
            "description": "webhook endpoint managed by authorized application",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "forbidden",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "This webhook endpoint is managed by Zapier and cannot be modified through this access token",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "webhook endpoint managed by authorized application"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "webhook endpoint not found",
            "content": {
              "application/json": {
                "examples": {
                  "default": {
                    "value": {
                      "error": {
                        "code": "resource_not_found",
                        "details": [],
                        "links": [
                          {
                            "kind": "open_api",
                            "name": "OpenAPI specification",
                            "url": "https://docs.stora.test/2025-09/openapi.json"
                          },
                          {
                            "kind": "documentation",
                            "name": "Errors",
                            "url": "https://docs.stora.test/2025-09/guides/errors"
                          }
                        ],
                        "message": "The Webhook/Endpoint was not found.",
                        "request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
                        "type": "invalid_request_error"
                      }
                    },
                    "summary": "webhook endpoint not found"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  },
  "webhooks": {
    "contact.churned": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "contact.churned"
          }
        },
        "operationId": "webhook_contact.churned",
        "summary": "contact.churned",
        "description": "Triggered when a contact churns.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookContactChurned"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "contact.converted": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "contact.converted"
          }
        },
        "operationId": "webhook_contact.converted",
        "summary": "contact.converted",
        "description": "Triggered when a contact converts to a customer.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookContactConverted"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "contact.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "contact.created"
          }
        },
        "operationId": "webhook_contact.created",
        "summary": "contact.created",
        "description": "Triggered when a contact is created.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookContactCreated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "contact.updated": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "contact.updated"
          }
        },
        "operationId": "webhook_contact.updated",
        "summary": "contact.updated",
        "description": "Triggered when the contact is updated.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookContactUpdated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "contract.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "contract.created"
          }
        },
        "operationId": "webhook_contract.created",
        "summary": "contract.created",
        "description": "Triggered when a contract is created.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookContractCreated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "contract.signed": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "contract.signed"
          }
        },
        "operationId": "webhook_contract.signed",
        "summary": "contract.signed",
        "description": "Triggered when a contract is signed.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookContractSigned"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "coupon.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "coupon.created"
          }
        },
        "operationId": "webhook_coupon.created",
        "summary": "coupon.created",
        "description": "Triggered when a coupon is created.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookCouponCreated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "coupon.updated": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "coupon.updated"
          }
        },
        "operationId": "webhook_coupon.updated",
        "summary": "coupon.updated",
        "description": "Triggered when the coupon is updated.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookCouponUpdated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "credit_note.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "credit_note.created"
          }
        },
        "operationId": "webhook_credit_note.created",
        "summary": "credit_note.created",
        "description": "Triggered when a new credit is created.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookCreditNoteCreated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "credit_note.updated": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "credit_note.updated"
          }
        },
        "operationId": "webhook_credit_note.updated",
        "summary": "credit_note.updated",
        "description": "Triggered when a credit note is updated.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookCreditNoteUpdated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "deal.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "deal.created"
          }
        },
        "operationId": "webhook_deal.created",
        "summary": "deal.created",
        "description": "Triggered when a deal is created.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookDealCreated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "deal.lost": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "deal.lost"
          }
        },
        "operationId": "webhook_deal.lost",
        "summary": "deal.lost",
        "description": "Triggered when a deal is lost.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookDealLost"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "deal.reopened": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "deal.reopened"
          }
        },
        "operationId": "webhook_deal.reopened",
        "summary": "deal.reopened",
        "description": "Triggered when a deal is reopened",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookDealReopened"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "deal.stage_changed": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "deal.stage_changed"
          }
        },
        "operationId": "webhook_deal.stage_changed",
        "summary": "deal.stage_changed",
        "description": "Triggered when a deal's stage changes. Fires on every stage transition, including the first time a deal enters its initial stage on creation. In that case, this event is emitted alongside `deal.created`.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookDealStageChanged"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "deal.updated": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "deal.updated"
          }
        },
        "operationId": "webhook_deal.updated",
        "summary": "deal.updated",
        "description": "Triggered when a deal is updated.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookDealUpdated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "deal.won": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "deal.won"
          }
        },
        "operationId": "webhook_deal.won",
        "summary": "deal.won",
        "description": "Triggered when a deal is won.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookDealWon"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "identity_verification.cancelled": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "identity_verification.cancelled"
          }
        },
        "operationId": "webhook_identity_verification.cancelled",
        "summary": "identity_verification.cancelled",
        "description": "Triggered when an identity verification is cancelled",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookIdentityVerificationCancelled"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "identity_verification.failed": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "identity_verification.failed"
          }
        },
        "operationId": "webhook_identity_verification.failed",
        "summary": "identity_verification.failed",
        "description": "Triggered when an identity verification failed",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookIdentityVerificationFailed"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "identity_verification.processing": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "identity_verification.processing"
          }
        },
        "operationId": "webhook_identity_verification.processing",
        "summary": "identity_verification.processing",
        "description": "Triggered when an identity verification is processing",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookIdentityVerificationProcessing"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "identity_verification.succeeded": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "identity_verification.succeeded"
          }
        },
        "operationId": "webhook_identity_verification.succeeded",
        "summary": "identity_verification.succeeded",
        "description": "Triggered when an identity verification succeeded",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookIdentityVerificationSucceeded"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "invoice.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "invoice.created"
          }
        },
        "operationId": "webhook_invoice.created",
        "summary": "invoice.created",
        "description": "Triggered when a new invoice is created.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookInvoiceCreated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "invoice.finalized": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "invoice.finalized"
          }
        },
        "operationId": "webhook_invoice.finalized",
        "summary": "invoice.finalized",
        "description": "Triggered when an invoice is finalized.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookInvoiceFinalized"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "invoice.marked_uncollectible": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "invoice.marked_uncollectible"
          }
        },
        "operationId": "webhook_invoice.marked_uncollectible",
        "summary": "invoice.marked_uncollectible",
        "description": "Triggered when an invoice is marked as uncollectible.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookInvoiceMarkedUncollectible"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "invoice.paid": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "invoice.paid"
          }
        },
        "operationId": "webhook_invoice.paid",
        "summary": "invoice.paid",
        "description": "Triggered when an invoice is mark as paid.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookInvoicePaid"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "invoice.updated": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "invoice.updated"
          }
        },
        "operationId": "webhook_invoice.updated",
        "summary": "invoice.updated",
        "description": "Triggered when an invoice is updated.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookInvoiceUpdated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "note.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "note.created"
          }
        },
        "operationId": "webhook_note.created",
        "summary": "note.created",
        "description": "Triggered when a note is created.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookNoteCreated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "note.updated": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "note.updated"
          }
        },
        "operationId": "webhook_note.updated",
        "summary": "note.updated",
        "description": "Triggered when a note is updated.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookNoteUpdated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "order.abandoned": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "order.abandoned"
          }
        },
        "operationId": "webhook_order.abandoned",
        "summary": "order.abandoned",
        "description": "Triggered when an order is abandoned.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookOrderAbandoned"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "order.completed": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "order.completed"
          }
        },
        "operationId": "webhook_order.completed",
        "summary": "order.completed",
        "description": "Triggered when the order is completed.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookOrderCompleted"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "order.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "order.created"
          }
        },
        "operationId": "webhook_order.created",
        "summary": "order.created",
        "description": "Triggered when a new order is created.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookOrderCreated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "order.finalized": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "order.finalized"
          }
        },
        "operationId": "webhook_order.finalized",
        "summary": "order.finalized",
        "description": "Triggered when a new order is finalized (ready to be paid).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookOrderFinalized"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "protection_level.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "protection_level.created"
          }
        },
        "operationId": "webhook_protection_level.created",
        "summary": "protection_level.created",
        "description": "Triggered when a protection level is created.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookProtectionLevelCreated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "protection_level.updated": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "protection_level.updated"
          }
        },
        "operationId": "webhook_protection_level.updated",
        "summary": "protection_level.updated",
        "description": "Triggered when a protection level is updated.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookProtectionLevelUpdated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "subscription.cancelled": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "subscription.cancelled"
          }
        },
        "operationId": "webhook_subscription.cancelled",
        "summary": "subscription.cancelled",
        "description": "Triggered when the subscription is cancelled.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookSubscriptionCancelled"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "subscription.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "subscription.created"
          }
        },
        "operationId": "webhook_subscription.created",
        "summary": "subscription.created",
        "description": "Triggered when the subscription is created.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookSubscriptionCreated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "subscription.ended": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "subscription.ended"
          }
        },
        "operationId": "webhook_subscription.ended",
        "summary": "subscription.ended",
        "description": "Triggered when the subscription is ended.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookSubscriptionEnded"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "subscription.resumed": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "subscription.resumed"
          }
        },
        "operationId": "webhook_subscription.resumed",
        "summary": "subscription.resumed",
        "description": "Triggered when a cancellation is undone and the subscription is resumed.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookSubscriptionResumed"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "subscription.started": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "subscription.started"
          }
        },
        "operationId": "webhook_subscription.started",
        "summary": "subscription.started",
        "description": "Triggered when the subscription is started.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookSubscriptionStarted"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "task.completed": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "task.completed"
          }
        },
        "operationId": "webhook_task.completed",
        "summary": "task.completed",
        "description": "Triggered when the task is completed.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookTaskCompleted"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "task.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "task.created"
          }
        },
        "operationId": "webhook_task.created",
        "summary": "task.created",
        "description": "Triggered when a task is created.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookTaskCreated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "task.reopened": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "task.reopened"
          }
        },
        "operationId": "webhook_task.reopened",
        "summary": "task.reopened",
        "description": "Triggered when a completed task is reopened.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookTaskReopened"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "task.updated": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "task.updated"
          }
        },
        "operationId": "webhook_task.updated",
        "summary": "task.updated",
        "description": "Triggered when a task is updated.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookTaskUpdated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "tenancy.auto_reservation.failed": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "tenancy.auto_reservation.failed"
          }
        },
        "operationId": "webhook_tenancy.auto_reservation.failed",
        "summary": "tenancy.auto_reservation.failed",
        "description": "Triggered when no requested units can be automatically reserved for a tenancy.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookTenancyAutoReservationFailed"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "tenancy.auto_reservation.partially_succeeded": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "tenancy.auto_reservation.partially_succeeded"
          }
        },
        "operationId": "webhook_tenancy.auto_reservation.partially_succeeded",
        "summary": "tenancy.auto_reservation.partially_succeeded",
        "description": "Triggered when some, but not all, requested units are automatically reserved for a tenancy.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookTenancyAutoReservationPartiallySucceeded"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "tenancy.auto_reservation.succeeded": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "tenancy.auto_reservation.succeeded"
          }
        },
        "operationId": "webhook_tenancy.auto_reservation.succeeded",
        "summary": "tenancy.auto_reservation.succeeded",
        "description": "Triggered when all requested units are automatically reserved for a tenancy.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookTenancyAutoReservationSucceeded"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "tenancy.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "tenancy.created"
          }
        },
        "operationId": "webhook_tenancy.created",
        "summary": "tenancy.created",
        "description": "Triggered when a tenancy is created.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookTenancyCreated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "tenancy.started": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "tenancy.started"
          }
        },
        "operationId": "webhook_tenancy.started",
        "summary": "tenancy.started",
        "description": "Triggered when the tenancy is started.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookTenancyStarted"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "unit_type.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "unit_type.created"
          }
        },
        "operationId": "webhook_unit_type.created",
        "summary": "unit_type.created",
        "description": "Triggered when a unit type is created.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookUnitTypeCreated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "unit_type.updated": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "unit_type.updated"
          }
        },
        "operationId": "webhook_unit_type.updated",
        "summary": "unit_type.updated",
        "description": "Triggered when a unit type is updated.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookUnitTypeUpdated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "unit.available": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "unit.available"
          }
        },
        "operationId": "webhook_unit.available",
        "summary": "unit.available",
        "description": "Triggered when a unit is made available.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookUnitAvailable"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "unit.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "unit.created"
          }
        },
        "operationId": "webhook_unit.created",
        "summary": "unit.created",
        "description": "Triggered when a unit is created.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookUnitCreated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "unit.deallocated": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "unit.deallocated"
          }
        },
        "operationId": "webhook_unit.deallocated",
        "summary": "unit.deallocated",
        "description": "Triggered when a unit is deallocated.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookUnitDeallocated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "unit.occupied": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "unit.occupied"
          }
        },
        "operationId": "webhook_unit.occupied",
        "summary": "unit.occupied",
        "description": "Triggered when a unit is occupied.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookUnitOccupied"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "unit.overlocked": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "unit.overlocked"
          }
        },
        "operationId": "webhook_unit.overlocked",
        "summary": "unit.overlocked",
        "description": "Triggered when a unit is overlocked.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookUnitOverlocked"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "unit.repossessed": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "unit.repossessed"
          }
        },
        "operationId": "webhook_unit.repossessed",
        "summary": "unit.repossessed",
        "description": "Triggered when a unit is repossessed.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookUnitRepossessed"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "unit.reserved": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "unit.reserved"
          }
        },
        "operationId": "webhook_unit.reserved",
        "summary": "unit.reserved",
        "description": "Triggered when a unit is reserved.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookUnitReserved"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "unit.unavailable": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "unit.unavailable"
          }
        },
        "operationId": "webhook_unit.unavailable",
        "summary": "unit.unavailable",
        "description": "Triggered when a unit is made unavailable.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookUnitUnavailable"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    },
    "unit.updated": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "unit.updated"
          }
        },
        "operationId": "webhook_unit.updated",
        "summary": "unit.updated",
        "description": "Triggered when a unit is updated.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookUnitUpdated"
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "Return a `2XX` (`200`, `201`, ...) status to indicate that the data was received successfully."
          },
          "3XX": {
            "description": "When a `3XX` status is returned, the webhook will be retried."
          },
          "4XX": {
            "description": "When a `4XX` (`400`, `401`, ...) status is returned, the webhook will be retried."
          },
          "5XX": {
            "description": "When a `5XX` status is returned, the webhook will be retried."
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://public-api.stora.co",
      "description": "Production"
    }
  ],
  "components": {
    "securitySchemes": {
      "Bearer": {
        "description": "Bearer Token necessary to use API",
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "token"
      },
      "OAuth2": {
        "type": "oauth2",
        "description": "OAuth 2 authentication",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "/oauth2/token",
            "scopes": {
              "public.access_token:read": "Access Token (Read)",
              "public.application:read": "Application (Read)",
              "public.contact:read": "Contact (Read)",
              "public.contact:write": "Contact (Write)",
              "public.contract:read": "Contract (Read)",
              "public.contract_template:read": "Contract Template (Read)",
              "public.coupon:read": "Coupon (Read)",
              "public.credit_note:read": "Credit Note (Read)",
              "public.deal:read": "Deal (Read)",
              "public.deal:write": "Deal (Write)",
              "public.deal_stage:read": "Deal Stage (Read)",
              "public.identity_verification:read": "Identity Verification (Read)",
              "public.invoice:read": "Invoice (Read)",
              "public.note:read": "Note (Read)",
              "public.note:write": "Note (Write)",
              "public.order:read": "Order (Read)",
              "public.order:write": "Order (Write)",
              "public.product:read": "Product (Read)",
              "public.product:write": "Product (Write)",
              "public.product_category:read": "Product Category (Read)",
              "public.protection_level:read": "Protection Level (Read)",
              "public.protection_level:write": "Protection Level (Write)",
              "public.site:read": "Site (Read)",
              "public.staff:read": "Staff (Read)",
              "public.subscription:read": "Subscription (Read)",
              "public.task:read": "Task (Read)",
              "public.task:write": "Task (Write)",
              "public.tenancy:read": "Tenancy (Read)",
              "public.timeline_event:read": "Timeline Event (Read)",
              "public.timeline_event:write": "Timeline Event (Write)",
              "public.timeline_source:read": "Timeline Source (Read)",
              "public.timeline_template:read": "Timeline Template (Read)",
              "public.unit:read": "Unit (Read)",
              "public.unit:write": "Unit (Write)",
              "public.unit_allocation:read": "Unit Allocation (Read)",
              "public.unit_type:read": "Unit Type (Read)",
              "public.unit_type:write": "Unit Type (Write)",
              "public.webhook_endpoint:read": "Webhook Endpoint (Read)",
              "public.webhook_endpoint:write": "Webhook Endpoint (Write)"
            }
          },
          "authorizationCode": {
            "authorizationUrl": "https://app.stora.co/oauth2/authorize",
            "tokenUrl": "/oauth2/token",
            "scopes": {
              "public.access_token:read": "Access Token (Read)",
              "public.application:read": "Application (Read)",
              "public.contact:read": "Contact (Read)",
              "public.contact:write": "Contact (Write)",
              "public.contract:read": "Contract (Read)",
              "public.contract_template:read": "Contract Template (Read)",
              "public.coupon:read": "Coupon (Read)",
              "public.credit_note:read": "Credit Note (Read)",
              "public.deal:read": "Deal (Read)",
              "public.deal:write": "Deal (Write)",
              "public.deal_stage:read": "Deal Stage (Read)",
              "public.identity_verification:read": "Identity Verification (Read)",
              "public.invoice:read": "Invoice (Read)",
              "public.note:read": "Note (Read)",
              "public.note:write": "Note (Write)",
              "public.order:read": "Order (Read)",
              "public.order:write": "Order (Write)",
              "public.product:read": "Product (Read)",
              "public.product:write": "Product (Write)",
              "public.product_category:read": "Product Category (Read)",
              "public.protection_level:read": "Protection Level (Read)",
              "public.protection_level:write": "Protection Level (Write)",
              "public.site:read": "Site (Read)",
              "public.staff:read": "Staff (Read)",
              "public.subscription:read": "Subscription (Read)",
              "public.task:read": "Task (Read)",
              "public.task:write": "Task (Write)",
              "public.tenancy:read": "Tenancy (Read)",
              "public.timeline_event:read": "Timeline Event (Read)",
              "public.timeline_event:write": "Timeline Event (Write)",
              "public.timeline_source:read": "Timeline Source (Read)",
              "public.timeline_template:read": "Timeline Template (Read)",
              "public.unit:read": "Unit (Read)",
              "public.unit:write": "Unit (Write)",
              "public.unit_allocation:read": "Unit Allocation (Read)",
              "public.unit_type:read": "Unit Type (Read)",
              "public.unit_type:write": "Unit Type (Write)",
              "public.webhook_endpoint:read": "Webhook Endpoint (Read)",
              "public.webhook_endpoint:write": "Webhook Endpoint (Write)"
            }
          }
        }
      }
    },
    "schemas": {
      "contact_list": {
        "type": "object",
        "description": "List of Contacts",
        "additionalProperties": false,
        "properties": {
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Contact"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "contact_single": {
        "type": "object",
        "description": "Single Contact",
        "additionalProperties": false,
        "properties": {
          "contact": {
            "$ref": "#/components/schemas/Contact"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "site_list": {
        "type": "object",
        "description": "List of Sites",
        "additionalProperties": false,
        "properties": {
          "sites": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Site"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "site_single": {
        "type": "object",
        "description": "Single Site",
        "additionalProperties": false,
        "properties": {
          "site": {
            "$ref": "#/components/schemas/Site"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "unit_type_list": {
        "type": "object",
        "description": "List of Unit Types",
        "additionalProperties": false,
        "properties": {
          "unit_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnitType"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "contract_list": {
        "type": "object",
        "description": "List of Contracts",
        "additionalProperties": false,
        "properties": {
          "contracts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Contract"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "contract_single": {
        "type": "object",
        "description": "Single Contract",
        "additionalProperties": false,
        "properties": {
          "contract": {
            "$ref": "#/components/schemas/Contract"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "contract_template_list": {
        "type": "object",
        "description": "List of Contract Templates",
        "additionalProperties": false,
        "properties": {
          "contract_templates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContractTemplate"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "unit_type_single": {
        "type": "object",
        "description": "Single Unit Type",
        "additionalProperties": false,
        "properties": {
          "unit_type": {
            "$ref": "#/components/schemas/UnitType"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "unit_list": {
        "type": "object",
        "description": "List of Units",
        "additionalProperties": false,
        "properties": {
          "units": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Unit"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "unit_single": {
        "type": "object",
        "description": "Single Unit",
        "additionalProperties": false,
        "properties": {
          "unit": {
            "$ref": "#/components/schemas/Unit"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "invoice_list": {
        "type": "object",
        "description": "List of Invoices",
        "additionalProperties": false,
        "properties": {
          "invoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Invoice"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "invoice_single": {
        "type": "object",
        "description": "Single Invoice",
        "additionalProperties": false,
        "properties": {
          "invoice": {
            "$ref": "#/components/schemas/Invoice"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "protection_level_list": {
        "type": "object",
        "description": "List of Protection Levels",
        "additionalProperties": false,
        "properties": {
          "protection_levels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProtectionLevel"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "protection_level_single": {
        "type": "object",
        "description": "Single Protection Level",
        "additionalProperties": false,
        "properties": {
          "protection_level": {
            "$ref": "#/components/schemas/ProtectionLevel"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "coupon_list": {
        "type": "object",
        "description": "List of Coupons",
        "additionalProperties": false,
        "properties": {
          "coupons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Coupon"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "coupon_single": {
        "type": "object",
        "description": "Single Coupon",
        "additionalProperties": false,
        "properties": {
          "coupon": {
            "$ref": "#/components/schemas/Coupon"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "deal_list": {
        "type": "object",
        "description": "List of Deals",
        "additionalProperties": false,
        "properties": {
          "deals": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Deal"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "deal_single": {
        "type": "object",
        "description": "Single Deal",
        "additionalProperties": false,
        "properties": {
          "deal": {
            "$ref": "#/components/schemas/Deal"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "deal_stage_list": {
        "type": "object",
        "description": "List of Deal Stages",
        "additionalProperties": false,
        "properties": {
          "stages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealStage"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "deal_stage_single": {
        "type": "object",
        "description": "Single Deal Stage",
        "additionalProperties": false,
        "properties": {
          "stage": {
            "$ref": "#/components/schemas/DealStage"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "note_list": {
        "type": "object",
        "description": "List of Notes",
        "additionalProperties": false,
        "properties": {
          "notes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Note"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "note_single": {
        "type": "object",
        "description": "Single Note",
        "additionalProperties": false,
        "properties": {
          "note": {
            "$ref": "#/components/schemas/Note"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "product_list": {
        "type": "object",
        "description": "List of Products",
        "additionalProperties": false,
        "properties": {
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Product"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "product_single": {
        "type": "object",
        "description": "Single Product",
        "additionalProperties": false,
        "properties": {
          "product": {
            "$ref": "#/components/schemas/Product"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "product_category_list": {
        "type": "object",
        "description": "List of Product Categories",
        "additionalProperties": false,
        "properties": {
          "product_categories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductCategory"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "product_category_single": {
        "type": "object",
        "description": "Single Product Category",
        "additionalProperties": false,
        "properties": {
          "product_category": {
            "$ref": "#/components/schemas/ProductCategory"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "credit_note_list": {
        "type": "object",
        "description": "List of Credit Notes",
        "additionalProperties": false,
        "properties": {
          "credit_notes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreditNote"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "credit_note_single": {
        "type": "object",
        "description": "Single Credit Note",
        "additionalProperties": false,
        "properties": {
          "credit_note": {
            "$ref": "#/components/schemas/CreditNote"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "identity_verification_list": {
        "type": "object",
        "description": "List of Identity Verifications",
        "additionalProperties": false,
        "properties": {
          "identity_verifications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdentityVerification"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "identity_verification_single": {
        "type": "object",
        "description": "Single Identity Verification",
        "additionalProperties": false,
        "properties": {
          "identity_verification": {
            "$ref": "#/components/schemas/IdentityVerification"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "order_list": {
        "type": "object",
        "description": "List of Orders",
        "additionalProperties": false,
        "properties": {
          "orders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "order_single": {
        "type": "object",
        "description": "Single Order",
        "additionalProperties": false,
        "properties": {
          "order": {
            "$ref": "#/components/schemas/Order"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "order_line_item_list": {
        "type": "object",
        "description": "List of Order Line Items",
        "additionalProperties": false,
        "properties": {
          "line_items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderLineItem"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "order_line_item_single": {
        "type": "object",
        "description": "Single Order Line Item",
        "additionalProperties": false,
        "properties": {
          "line_item": {
            "$ref": "#/components/schemas/OrderLineItem"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "task_list": {
        "type": "object",
        "description": "List of Tasks",
        "additionalProperties": false,
        "properties": {
          "tasks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Task"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "task_single": {
        "type": "object",
        "description": "Single Task",
        "additionalProperties": false,
        "properties": {
          "task": {
            "$ref": "#/components/schemas/Task"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "tenancy_list": {
        "type": "object",
        "description": "List of Tenancies",
        "additionalProperties": false,
        "properties": {
          "tenancies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tenancy"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "tenancy_single": {
        "type": "object",
        "description": "Single Tenancy",
        "additionalProperties": false,
        "properties": {
          "tenancy": {
            "$ref": "#/components/schemas/Tenancy"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "unit_allocation_list": {
        "type": "object",
        "description": "List of Unit Allocations",
        "additionalProperties": false,
        "properties": {
          "unit_allocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnitAllocation"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "unit_allocation_single": {
        "type": "object",
        "description": "Single Unit Allocation",
        "additionalProperties": false,
        "properties": {
          "unit_allocation": {
            "$ref": "#/components/schemas/UnitAllocation"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "staff_list": {
        "type": "object",
        "description": "List of Staff",
        "additionalProperties": false,
        "properties": {
          "staff": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Staff"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "staff_single": {
        "type": "object",
        "description": "Single Staff",
        "additionalProperties": false,
        "properties": {
          "staff": {
            "$ref": "#/components/schemas/Staff"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "subscription_list": {
        "type": "object",
        "description": "List of Subscriptions",
        "additionalProperties": false,
        "properties": {
          "subscriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Subscription"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "subscription_single": {
        "type": "object",
        "description": "Single Subscription",
        "additionalProperties": false,
        "properties": {
          "subscription": {
            "$ref": "#/components/schemas/Subscription"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "timeline_source_list": {
        "type": "object",
        "description": "List of Timeline Sources",
        "additionalProperties": false,
        "properties": {
          "sources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimelineSource"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "timeline_source_single": {
        "type": "object",
        "description": "Single Timeline Source",
        "additionalProperties": false,
        "properties": {
          "source": {
            "$ref": "#/components/schemas/TimelineSource"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "timeline_template_list": {
        "type": "object",
        "description": "List of Timeline Templates",
        "additionalProperties": false,
        "properties": {
          "templates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimelineTemplate"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "timeline_template_single": {
        "type": "object",
        "description": "Single Timeline Template",
        "additionalProperties": false,
        "properties": {
          "template": {
            "$ref": "#/components/schemas/TimelineTemplate"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "timeline_event_single": {
        "type": "object",
        "description": "Single Timeline Event",
        "additionalProperties": false,
        "properties": {
          "event": {
            "$ref": "#/components/schemas/TimelineEvent"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "webhook_endpoint_list": {
        "type": "object",
        "description": "List of Webhook Endpoints",
        "additionalProperties": false,
        "properties": {
          "endpoints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebhookEndpoint"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/MetaWithPagination"
          }
        }
      },
      "webhook_endpoint_single": {
        "type": "object",
        "description": "Single Webhook Endpoint",
        "additionalProperties": false,
        "properties": {
          "endpoint": {
            "$ref": "#/components/schemas/WebhookEndpoint"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "Meta": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "description": "Unique request identifier."
          },
          "curies": {
            "type": "array",
            "description": "CURIE definitions for resolving namespaced link relations.",
            "items": {
              "$ref": "#/components/schemas/Curie"
            }
          }
        }
      },
      "Links": {
        "type": "object",
        "description": "Links related to the resource.",
        "additionalProperties": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "href": {
              "type": "string",
              "description": "Relative path for API links, relative path for CURIE links."
            },
            "method": {
              "type": "string",
              "description": "Available only for API links. Other links use always `get`.",
              "enum": [
                "get",
                "post",
                "patch",
                "delete"
              ]
            },
            "title": {
              "type": "string",
              "description": "Human-readable label for the link."
            },
            "reference": {
              "type": [
                "string",
                "null"
              ],
              "description": "OpenAPI reference for API links. Component schema for self links, path operation for action links."
            }
          }
        }
      },
      "Curie": {
        "type": "object",
        "description": "CURIE definition for resolving namespaced link relations.",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "description": "CURIE prefix name",
            "enum": [
              "bo",
              "sf"
            ]
          },
          "href": {
            "type": "string",
            "description": "URI template for resolving the CURIE."
          },
          "templated": {
            "type": "boolean",
            "description": "Whether the href is a URI template."
          },
          "title": {
            "type": "string",
            "description": "Human-readable title."
          }
        }
      },
      "WebhookMeta": {
        "type": "object",
        "description": "Webhook event metadata.",
        "additionalProperties": false,
        "properties": {
          "curies": {
            "$ref": "#/components/schemas/Meta/properties/curies"
          }
        }
      },
      "MetaWithPagination": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "pagination": {
                "$ref": "#/components/schemas/Pagination"
              }
            }
          },
          {
            "$ref": "#/components/schemas/Meta"
          }
        ]
      },
      "Pagination": {
        "type": "object",
        "description": "Pagination",
        "additionalProperties": false,
        "properties": {
          "count": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Total number of items. The `null` value is used with countless pagination (used for faster response on large datasets)."
          },
          "last": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Last page number."
          },
          "limit": {
            "type": "integer",
            "description": "Number of items per page."
          },
          "next": {
            "type": [
              "integer",
              "null"
            ]
          },
          "page": {
            "type": "integer",
            "description": "Current page."
          },
          "pages": {
            "type": "integer",
            "description": "Total number of pages."
          },
          "prev": {
            "type": [
              "integer",
              "null"
            ]
          }
        }
      },
      "Contact": {
        "type": "object",
        "description": "Contact",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the contact.",
            "pattern": "^con_"
          },
          "address": {
            "$ref": "#/components/schemas/ContactsCreate/properties/address"
          },
          "email": {
            "type": "string",
            "description": "Email address of the contact.",
            "format": "email"
          },
          "full_name": {
            "type": "string",
            "description": "Full name of the contact."
          },
          "marketing_source": {
            "type": [
              "string",
              "null"
            ],
            "description": "Source of marketing for the contact.",
            "enum": [
              "used_before",
              "recommendation",
              "received_leaflet",
              "seen_building_signs",
              "seen_advert",
              "facebook_marketplace",
              "google_search",
              "other_online_search",
              "social_media",
              "email",
              "radio",
              "other",
              null
            ]
          },
          "phone_number": {
            "type": [
              "string",
              "null"
            ],
            "description": "Phone number of the contact."
          },
          "source": {
            "type": [
              "string",
              "null"
            ],
            "description": "Source of the contact information.",
            "enum": [
              "pre_open",
              "incomplete_booking",
              "registered_interest",
              "price_interest",
              "quotation_request",
              "booking",
              "popup",
              "external_enquiry",
              "phone",
              "walkin",
              "import",
              "other",
              null
            ]
          },
          "tax_id": {
            "type": [
              "string",
              "null"
            ],
            "description": "Tax identification number of the contact."
          },
          "company_registration_number": {
            "type": [
              "string",
              "null"
            ],
            "description": "Company registration number of the contact."
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "Type of the contact (e.g., domestic, company).",
            "enum": [
              "domestic",
              "company",
              "student",
              "charity",
              "local_authority",
              null
            ]
          },
          "use_case": {
            "type": [
              "string",
              "null"
            ],
            "description": "Use case for the contact.",
            "enum": [
              "business_needs",
              "moving_home",
              "more_space",
              "refurb",
              "travelling",
              "other",
              null
            ]
          },
          "status": {
            "type": "string",
            "description": "Status of the contact. Derived from the contact's tenancy — `lead` (no tenancies, default state), `customer` (at least one active tenancy), `churned` (all tenancies have ended).",
            "enum": [
              "lead",
              "customer",
              "churned"
            ]
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "stripe_customer_id": {
            "type": [
              "string",
              "null"
            ],
            "description": "Stripe Customer identifier associated with the contact."
          },
          "tenancies_count": {
            "description": "Number of tenancies associated with the contact.",
            "type": "integer"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the contact."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the contact."
          },
          "identity_check": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "required": {
                "type": "boolean",
                "description": "Whether the contact is required to complete identity verification based on the operator's checkin settings."
              },
              "status": {
                "type": "string",
                "description": "Status of the contact's latest identity verification. `not_attempted` is unique to this field (infers no identity verification resource yet exists for this contact).",
                "enum": [
                  "failed",
                  "processing",
                  "succeeded",
                  "cancelled",
                  "not_attempted"
                ]
              }
            }
          }
        }
      },
      "Site": {
        "type": "object",
        "description": "Site",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the site."
          },
          "name": {
            "type": "string",
            "description": "Name of the site."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the site."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the site."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the site."
          },
          "phone": {
            "type": [
              "string",
              "null"
            ],
            "description": "Phone number of the site."
          },
          "opened_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "Date and time when the site was/will be opened."
          },
          "directions": {
            "type": [
              "object",
              "null"
            ],
            "description": "Directions to the site.",
            "additionalProperties": false,
            "properties": {
              "google_maps_url": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "URL to Google Maps for the site."
              }
            }
          },
          "images": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "default": {
                "type": [
                  "object",
                  "null"
                ],
                "additionalProperties": false,
                "properties": {
                  "original": {
                    "type": "string",
                    "format": "uri",
                    "description": "Original unresized image."
                  },
                  "small": {
                    "type": "string",
                    "format": "uri",
                    "description": "Resized to max 250x250px."
                  },
                  "medium": {
                    "type": "string",
                    "format": "uri",
                    "description": "Resized to max 500x500px."
                  },
                  "large": {
                    "type": "string",
                    "format": "uri",
                    "description": "Resized to max 1000x1000px."
                  }
                }
              }
            }
          },
          "access_hours": {
            "type": [
              "object",
              "null"
            ],
            "description": "Access hours for the site.",
            "additionalProperties": false,
            "properties": {
              "monday": {
                "$ref": "#/components/schemas/SiteAccessHoursDay"
              },
              "tuesday": {
                "$ref": "#/components/schemas/SiteAccessHoursDay"
              },
              "wednesday": {
                "$ref": "#/components/schemas/SiteAccessHoursDay"
              },
              "thursday": {
                "$ref": "#/components/schemas/SiteAccessHoursDay"
              },
              "friday": {
                "$ref": "#/components/schemas/SiteAccessHoursDay"
              },
              "saturday": {
                "$ref": "#/components/schemas/SiteAccessHoursDay"
              },
              "sunday": {
                "$ref": "#/components/schemas/SiteAccessHoursDay"
              }
            }
          },
          "address": {
            "type": [
              "object",
              "null"
            ],
            "description": "Address of the site.",
            "additionalProperties": false,
            "properties": {
              "line_1": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "First line of the address."
              },
              "line_2": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Second line of the address (optional)."
              },
              "city": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "City of the site."
              },
              "postal_code": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Postal code of the site."
              }
            }
          }
        }
      },
      "UnitType": {
        "type": "object",
        "description": "Unit Type",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^utype_",
            "description": "Unique identifier for the unit type."
          },
          "name": {
            "type": "string",
            "description": "Name of the unit type."
          },
          "status": {
            "enum": [
              "bookable",
              "hidden",
              "lead_capture"
            ],
            "type": "string"
          },
          "slug": {
            "type": "string",
            "description": "URL-friendly identifier for the unit type, typically used in web addresses."
          },
          "size_description": {
            "type": "string",
            "description": "Description of the size of the unit type."
          },
          "selling_points": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of selling points for the unit type."
          },
          "stripe_product_id": {
            "type": "string",
            "description": "Stripe Product ID associated with the unit type, used for payment processing."
          },
          "require_insurance_coverage": {
            "type": "boolean",
            "description": "Indicates whether insurance coverage is required for this unit type."
          },
          "require_security_deposit": {
            "type": "boolean",
            "description": "Indicates whether a security deposit is required for this unit type."
          },
          "promotion": {
            "description": "Promotional coupon associated with the unit type. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Coupon"
              },
              {
                "type": "null"
              }
            ]
          },
          "site": {
            "description": "Site associated with the unit type. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Site"
          },
          "dynamic_pricing": {
            "type": "boolean",
            "description": "Indicates whether dynamic pricing is enabled for this unit type."
          },
          "live_prices": {
            "type": "array",
            "description": "Current source price used by storefront pricing. Returns the active dynamic price when one applies; otherwise returns the base storefront price. Promotions, discounts, and tax-exclusive variants are not applied.",
            "items": {
              "$ref": "#/components/schemas/Price"
            }
          },
          "dimensions": {
            "type": "object",
            "description": "Dimensions of the unit type.",
            "properties": {
              "length": {
                "type": "number",
                "description": "Length of the unit in feet."
              },
              "width": {
                "type": "number",
                "description": "Width of the unit in feet."
              },
              "height": {
                "type": "number",
                "description": "Height of the unit in feet."
              },
              "measurement_unit": {
                "enum": [
                  "ft",
                  "m"
                ],
                "type": "string"
              }
            }
          },
          "security_deposit": {
            "description": "Security deposit amount for the unit type.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Money"
              },
              {
                "type": "null"
              }
            ]
          },
          "images": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "default": {
                "type": [
                  "object",
                  "null"
                ],
                "additionalProperties": false,
                "properties": {
                  "original": {
                    "type": "string",
                    "format": "uri",
                    "description": "Original unresized image."
                  },
                  "small": {
                    "type": "string",
                    "format": "uri",
                    "description": "Resized to max 250x250px."
                  },
                  "medium": {
                    "type": "string",
                    "format": "uri",
                    "description": "Resized to max 500x500px."
                  },
                  "large": {
                    "type": "string",
                    "format": "uri",
                    "description": "Resized to max 1000x1000px."
                  }
                }
              }
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time for the unit type."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time for the unit type."
          },
          "prices": {
            "type": "array",
            "description": "List of prices associated with the unit type, including different pricing options.",
            "items": {
              "$ref": "#/components/schemas/Price"
            }
          },
          "_links": {
            "$ref": "#/components/schemas/Links"
          }
        }
      },
      "Unit": {
        "type": "object",
        "description": "Unit",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the unit.",
            "pattern": "^unit_"
          },
          "site": {
            "description": "Site associated with the unit. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Site"
          },
          "unit_type": {
            "description": "Unit type associated with the unit. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/UnitType"
          },
          "reference_id": {
            "type": "string",
            "description": "Reference identifier for the unit."
          },
          "status": {
            "enum": [
              "available",
              "occupied",
              "overlock",
              "repossessed",
              "reserved",
              "unavailable"
            ],
            "description": "Status of the unit.",
            "type": "string"
          },
          "unit_allocation": {
            "description": "Current allocation for the unit. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/UnitAllocation"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time for the unit."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time for the unit."
          }
        }
      },
      "SiteAccessHoursDay": {
        "type": "object",
        "description": "Access Hours Day",
        "additionalProperties": false,
        "properties": {
          "status": {
            "enum": [
              "set_hours",
              "appointment",
              "closed"
            ],
            "type": "string"
          },
          "open": {
            "type": [
              "string",
              "null"
            ],
            "description": "Opening time in HH:MM format. Has `null` for `appointment` or `closed` status."
          },
          "close": {
            "type": [
              "string",
              "null"
            ],
            "description": "Closing time in HH:MM format. Has `null` for `appointment` or `closed` status."
          }
        }
      },
      "Contract": {
        "type": "object",
        "description": "Contract",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the contract."
          },
          "name": {
            "type": "string",
            "description": "Name of the contract."
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "signed",
              "voided",
              "declined",
              "deleted"
            ],
            "description": "Status of the contract."
          },
          "sent_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When the contract was sent to the customer."
          },
          "signed_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When the contract was signed."
          },
          "contact": {
            "description": "Contact associated with the contract. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Contact"
          },
          "tenancy": {
            "description": "Tenancy associated with the contract. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Tenancy"
          },
          "contract_template": {
            "description": "Contract template used to generate this contract. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/ContractTemplate"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the contract."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the contract."
          },
          "_links": {
            "$ref": "#/components/schemas/Links"
          }
        }
      },
      "ContractTemplate": {
        "type": "object",
        "description": "Contract Template",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the contract template."
          },
          "name": {
            "type": "string",
            "description": "Name of the contract template."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the contract template."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the contract template."
          }
        }
      },
      "ProtectionLevel": {
        "type": "object",
        "description": "Protection Level",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^plvl_",
            "description": "Unique identifier for the protection level."
          },
          "stripe_product_id": {
            "type": "string",
            "description": "Stripe Product ID associated with the protection level, used for payment processing."
          },
          "cover_level": {
            "$ref": "#/components/schemas/Money",
            "description": "Monetary value representing the cover level of the protection."
          },
          "account_code": {
            "type": [
              "string",
              "null"
            ],
            "description": "Account code associated with the protection level."
          },
          "public": {
            "type": "boolean",
            "description": "Indicates whether the protection level is available for selection."
          },
          "prices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Price"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the protection level."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the protection level."
          }
        }
      },
      "Coupon": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/CouponPercentage"
          },
          {
            "$ref": "#/components/schemas/CouponAmount"
          },
          {
            "description": "ID-only reference (unexpanded)",
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^cpn_"
              }
            }
          }
        ]
      },
      "CouponPercentage": {
        "type": "object",
        "description": "Coupon with percentage discount",
        "additionalProperties": false,
        "required": [
          "type"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^cpn_",
            "description": "Unique identifier for the coupon."
          },
          "type": {
            "const": "percentage",
            "description": "Type of the coupon, which is `percentage` in this case."
          },
          "percent": {
            "type": "number",
            "description": "Percentage discount provided by the coupon. E.g. 20 for a 20% discount."
          },
          "name": {
            "type": "string",
            "description": "Name of the coupon."
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "description": "Unique code for the coupon for non-public coupons."
          },
          "title": {
            "type": [
              "string",
              "null"
            ],
            "description": "Title of the coupon."
          },
          "public": {
            "type": "boolean",
            "description": "Indicates if the coupon is publicly available for any contact to use. When set to `true`, the `code` field is not used."
          },
          "max_redemptions": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Maximum number of times the coupon can be redeemed."
          },
          "duration": {
            "enum": [
              "once",
              "forever",
              "repeating"
            ],
            "description": "Duration of the coupon.",
            "type": "string"
          },
          "billing_period": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "monthly",
              "weekly",
              "every_four_weeks",
              "every_three_months",
              "every_six_months",
              "yearly",
              "one_time",
              null
            ],
            "description": "Used for `repeating` duration."
          },
          "months": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Number of months the coupon is valid for, applicable for `repeating` duration."
          },
          "auto_apply_to": {
            "$ref": "#/components/schemas/CouponAutoApplyTo"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the coupon."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the coupon."
          }
        }
      },
      "CouponAmount": {
        "type": "object",
        "description": "Coupon with fixed amount discount",
        "additionalProperties": false,
        "required": [
          "type"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^cpn_",
            "description": "Unique identifier for the coupon."
          },
          "type": {
            "const": "amount",
            "description": "Type of the coupon, which is `amount` in this case."
          },
          "amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Amount deducted from the price when the coupon is applied."
          },
          "name": {
            "type": "string",
            "description": "Name of the coupon."
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "description": "Unique code for the coupon for non-public coupons."
          },
          "title": {
            "type": [
              "string",
              "null"
            ],
            "description": "Title of the coupon."
          },
          "public": {
            "type": "boolean",
            "description": "Indicates if the coupon is publicly available for any contact to use. When set to `true`, the `code` field is not used."
          },
          "max_redemptions": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Maximum number of times the coupon can be redeemed."
          },
          "duration": {
            "enum": [
              "once",
              "forever",
              "repeating"
            ],
            "description": "Duration of the coupon.",
            "type": "string"
          },
          "billing_period": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "monthly",
              "weekly",
              "every_four_weeks",
              "every_three_months",
              "every_six_months",
              "yearly",
              "one_time",
              null
            ],
            "description": "Used for `repeating` duration."
          },
          "months": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Number of months the coupon is valid for, applicable for `repeating` duration."
          },
          "auto_apply_to": {
            "$ref": "#/components/schemas/CouponAutoApplyTo"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the coupon."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the coupon."
          }
        }
      },
      "CouponAutoApplyTo": {
        "type": "object",
        "description": "Defines how the coupon should be auto-applied when used on an order.",
        "additionalProperties": false,
        "properties": {
          "unit_types": {
            "type": "boolean",
            "description": "Whether the coupon applies to unit type line items."
          },
          "protections": {
            "type": "boolean",
            "description": "Whether the coupon applies to protection line items."
          },
          "products": {
            "type": "boolean",
            "description": "Whether the coupon applies to product line items."
          },
          "subscriptions": {
            "type": "boolean",
            "description": "Whether the coupon applies to the subscription."
          }
        }
      },
      "Product": {
        "type": "object",
        "description": "Product",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^prod_",
            "description": "Unique identifier for the product."
          },
          "site": {
            "description": "Site associated with the product. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Site"
          },
          "name": {
            "type": "string",
            "description": "Name of the product."
          },
          "sku": {
            "type": [
              "string",
              "null"
            ],
            "description": "Stock keeping unit (SKU) of the product."
          },
          "description": {
            "type": "string",
            "description": "Detailed description of the product."
          },
          "category": {
            "description": "Category associated with the product. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/ProductCategory"
          },
          "charge_type": {
            "enum": [
              "one_time",
              "recurring"
            ],
            "description": "Type of charge for the product.",
            "type": "string"
          },
          "accounting_code": {
            "type": [
              "string",
              "null"
            ],
            "description": "Accounting code associated with the product, if any."
          },
          "prices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Price"
            }
          },
          "images": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "default": {
                "type": [
                  "object",
                  "null"
                ],
                "additionalProperties": false,
                "properties": {
                  "original": {
                    "type": "string",
                    "format": "uri",
                    "description": "Original unresized image."
                  },
                  "small": {
                    "type": "string",
                    "format": "uri",
                    "description": "Resized to max 250x250px."
                  },
                  "medium": {
                    "type": "string",
                    "format": "uri",
                    "description": "Resized to max 500x500px."
                  },
                  "large": {
                    "type": "string",
                    "format": "uri",
                    "description": "Resized to max 1000x1000px."
                  }
                }
              }
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the product."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the product."
          }
        }
      },
      "ProductBasePriceCreateRequest": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/BasePriceCreate"
          },
          {
            "$ref": "#/components/schemas/OneTimeBasePriceCreate"
          }
        ]
      },
      "ProductCategory": {
        "type": "object",
        "description": "Product Category",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the product category."
          },
          "name": {
            "type": "string",
            "description": "Name of the product category."
          }
        }
      },
      "Order": {
        "type": "object",
        "description": "Order",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the order."
          },
          "billing_period": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "monthly",
              "weekly",
              "every_four_weeks",
              "every_three_months",
              "every_six_months",
              "yearly",
              "one_time",
              null
            ]
          },
          "contact": {
            "description": "Contact associated with the order. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Contact"
              },
              {
                "type": "null"
              }
            ]
          },
          "source": {
            "description": "Source of the order.",
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "backoffice",
              "storefront",
              "storefront_multi_step",
              "import",
              "public_api",
              "unspecified"
            ]
          },
          "site": {
            "description": "Site associated with the order. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Site"
          },
          "tenancy": {
            "description": "Tenancy associated with the order. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Tenancy"
              },
              {
                "type": "null"
              }
            ]
          },
          "subscription": {
            "description": "Subscription associated with the order. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Subscription"
              },
              {
                "type": "null"
              }
            ]
          },
          "contract_template": {
            "description": "Contract template associated with the order. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ContractTemplate"
              },
              {
                "type": "null"
              }
            ]
          },
          "coupon": {
            "description": "Coupon associated with the order. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Coupon"
              },
              {
                "type": "null"
              }
            ]
          },
          "email_notifications": {
            "type": "object",
            "description": "Email notifications settings for the order.",
            "additionalProperties": false,
            "properties": {
              "booking_confirmation": {
                "type": "boolean",
                "description": "Whether to send the booking confirmation email."
              },
              "move_in_day": {
                "type": "boolean",
                "description": "Whether to send the move-in day email."
              },
              "payment_details": {
                "type": "boolean",
                "description": "Whether to send the email with a link to complete payment when the order is finalized."
              }
            }
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "line_items": {
            "type": "array",
            "description": "List of line items in the order.",
            "items": {
              "description": "Line item associated with the order. **Expandable** (shows only ID when not expanded).",
              "$ref": "#/components/schemas/OrderLineItem"
            }
          },
          "payment_method": {
            "type": [
              "string",
              "null"
            ],
            "description": "Payment method used for the order."
          },
          "payment_url": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri",
            "description": "URL for payment processing. Available only when the order is finalized."
          },
          "purchase_order_number": {
            "type": [
              "string",
              "null"
            ],
            "description": "Purchase order number associated with the order."
          },
          "starts_at": {
            "type": [
              "string",
              "null"
            ],
            "description": "Start date and time of the order. `now` indicates the order will start immediately after finalization."
          },
          "status": {
            "type": "string",
            "description": "Status of the order.",
            "enum": [
              "draft",
              "finalized",
              "completed",
              "abandoned"
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the order."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the order."
          },
          "tax": {
            "$ref": "#/components/schemas/Money",
            "description": "Total cost of tax."
          },
          "subtotal": {
            "$ref": "#/components/schemas/Money",
            "description": "Gross cost of order before applying taxes and discounts."
          },
          "total": {
            "$ref": "#/components/schemas/Money",
            "description": "Gross cost of order after applying taxes and discounts."
          },
          "total_excluding_tax": {
            "$ref": "#/components/schemas/Money",
            "description": "Gross cost of order before applying taxes and after applying discounts."
          },
          "total_discount": {
            "$ref": "#/components/schemas/Money",
            "description": "Discount total towards order."
          },
          "one_time_total": {
            "$ref": "#/components/schemas/Money",
            "description": "Gross cost of one off products after applying taxes and discounts."
          },
          "one_time_total_excluding_tax": {
            "$ref": "#/components/schemas/Money",
            "description": "Gross cost of one off products before applying taxes and after applying discounts."
          }
        }
      },
      "OrderLineItem": {
        "type": "object",
        "description": "Order Line Item",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the order line item."
          },
          "item": {
            "description": "Item associated with the line item. Can be a Unit type, Protection level, or Product. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/UnitType"
              },
              {
                "$ref": "#/components/schemas/ProtectionLevel"
              },
              {
                "$ref": "#/components/schemas/Product"
              },
              {
                "type": "null"
              }
            ]
          },
          "price": {
            "$ref": "#/components/schemas/Money",
            "description": "Per-item cost of line item."
          },
          "quantity": {
            "type": "integer",
            "description": "Quantity of the item in the order line item."
          },
          "type": {
            "type": "string",
            "enum": [
              "unit_type",
              "protection",
              "product",
              "security_deposit"
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the order line item."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the order line item."
          },
          "total": {
            "$ref": "#/components/schemas/Money",
            "description": "Gross cost of line item."
          },
          "tax": {
            "$ref": "#/components/schemas/Money",
            "description": "Total cost of taxes."
          },
          "total_excluding_tax": {
            "$ref": "#/components/schemas/Money",
            "description": "Total cost of line item before applying taxes."
          },
          "discount_total": {
            "$ref": "#/components/schemas/Money",
            "description": "Discount towards line item."
          }
        }
      },
      "SubscriptionLineItem": {
        "type": "object",
        "description": "Subscription Line Item",
        "additionalProperties": false,
        "properties": {
          "item": {
            "description": "Item associated with the subscription line item. **Expandable** (shows only ID when not expanded).",
            "additionalProperties": true,
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              }
            }
          },
          "price": {
            "$ref": "#/components/schemas/Money",
            "description": "Price of the subscription line item per unit."
          },
          "quantity": {
            "type": "integer",
            "description": "Quantity of the item in the subscription line item."
          },
          "type": {
            "type": "string",
            "enum": [
              "protection",
              "unit_type",
              "custom_product"
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the subscription line item."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the subscription line item."
          }
        }
      },
      "Error": {
        "type": "object",
        "description": "Error",
        "additionalProperties": false,
        "properties": {
          "error": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string",
                "description": "Short code that represents the error."
              },
              "type": {
                "enum": [
                  "invalid_request_error",
                  "api_error"
                ],
                "description": "Type of error returned.",
                "type": "string"
              },
              "message": {
                "type": "string",
                "description": "Human-readable message providing brief information about the error."
              },
              "links": {
                "type": "array",
                "description": "Link(s) to Stora developer resources",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Name of Stora documentation"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri",
                      "description": "URL to Stora documentation"
                    },
                    "kind": {
                      "type": "string",
                      "description": "Kind of Stora documentation"
                    }
                  }
                }
              },
              "details": {
                "type": "array",
                "description": "Array of error details.",
                "items": {
                  "$ref": "#/components/schemas/ErrorDetail"
                }
              },
              "request_id": {
                "type": "string",
                "description": "Unique request identifier."
              }
            }
          }
        }
      },
      "ErrorDetail": {
        "type": "object",
        "description": "ErrorDetail",
        "additionalProperties": false,
        "properties": {
          "message": {
            "type": "string",
            "description": "Human-readable message providing detailed information about the error."
          },
          "pointer": {
            "type": [
              "string",
              "null"
            ],
            "description": "Points to the request field that caused the error:\n- String starting with '/': Exact path of the problematic field.\n- String starting without '/': General hint, cannot pinpoint exact field.\n- null: Error cannot be mapped to any specific field.\n"
          }
        }
      },
      "Success": {
        "type": "object",
        "description": "Generic Success Response",
        "additionalProperties": false,
        "properties": {
          "success": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "message": {
                "type": "string",
                "description": "Human-readable message providing brief information about the success."
              }
            }
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "UnitRemoveOverlockSuccess": {
        "type": "object",
        "description": "Unit Remove Overlock Success Response",
        "additionalProperties": false,
        "properties": {
          "success": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "message": {
                "type": "string",
                "description": "Human-readable message providing brief information about the success."
              }
            }
          },
          "meta": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "request_id": {
                "$ref": "#/components/schemas/Meta/properties/request_id"
              },
              "curies": {
                "$ref": "#/components/schemas/Meta/properties/curies"
              },
              "unit_ids": {
                "type": "array",
                "description": "Public IDs of units that had overlock removed.",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "UnitOverlockSuccess": {
        "type": "object",
        "description": "Unit Overlock Success Response",
        "additionalProperties": false,
        "properties": {
          "success": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "message": {
                "type": "string",
                "description": "Human-readable message providing brief information about the success."
              }
            }
          },
          "meta": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "request_id": {
                "$ref": "#/components/schemas/Meta/properties/request_id"
              },
              "curies": {
                "$ref": "#/components/schemas/Meta/properties/curies"
              },
              "unit_ids": {
                "type": "array",
                "description": "Public IDs of units that were overlocked.",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "Metadata": {
        "type": "object",
        "description": "Set of key-value pairs for storing additional information. [Learn more about metadata.](https://docs.stora.co/2025-09/guides/metadata)",
        "additionalProperties": {
          "type": "string"
        }
      },
      "Money": {
        "type": "object",
        "description": "Money",
        "additionalProperties": false,
        "properties": {
          "amount": {
            "type": "integer",
            "description": "Amount of money in the smallest currency unit (e.g., cents for USD)."
          },
          "currency": {
            "enum": [
              "AED",
              "AUD",
              "BGN",
              "BRL",
              "CAD",
              "CHF",
              "CZK",
              "DKK",
              "EUR",
              "GBP",
              "HKD",
              "HUF",
              "MXN",
              "MYR",
              "NOK",
              "NZD",
              "PLN",
              "RON",
              "SEK",
              "SGD",
              "THB",
              "USD"
            ],
            "description": "ISO 4217 currency code.",
            "type": "string"
          },
          "formatted": {
            "type": "string",
            "description": "Formatted string representation of the money amount, including the currency symbol."
          }
        }
      },
      "IdentityVerification": {
        "type": "object",
        "description": "Identity Verification",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the identity verification."
          },
          "contact": {
            "description": "Contact associated with the identity verification. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Contact"
          },
          "status": {
            "type": "string",
            "enum": [
              "failed",
              "processing",
              "succeeded",
              "cancelled"
            ],
            "description": "Status of the identity verification."
          },
          "error_code": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "abandoned",
              "consent_declined",
              "country_not_supported",
              "device_not_supported",
              "document_expired",
              "document_type_not_supported",
              "document_unverified_other",
              "email_unverified_other",
              "email_verification_declined",
              "id_number_insufficient_document_data",
              "id_number_mismatch",
              "id_number_unverified_other",
              "phone_unverified_other",
              "phone_verification_declined",
              "selfie_document_missing_photo",
              "selfie_face_mismatch",
              "selfie_manipulated",
              "selfie_unverified_other",
              "under_supported_age",
              null
            ],
            "description": "Error classification code. Present when status is `failed`; `null` otherwise."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the identity verification."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last updated date and time of the identity verification."
          }
        }
      },
      "Invoice": {
        "type": "object",
        "description": "Invoice",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the invoice."
          },
          "number": {
            "type": "string",
            "description": "Identification number for the invoice."
          },
          "type": {
            "type": "string",
            "enum": [
              "subscription",
              "ad_hoc",
              "deposit"
            ],
            "description": "Invoice's type."
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "deleted",
              "open",
              "paid",
              "uncollectible",
              "void"
            ],
            "description": "Status of the invoice."
          },
          "period_start": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "Date and time for start of invoice period."
          },
          "period_end": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "Date and time for end of invoice period."
          },
          "created_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "Creation date and time of the invoice."
          },
          "finalized_at": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ],
            "description": "Date and time for when invoice was finalized."
          },
          "paid_at": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ],
            "description": "Date and time for when invoice was paid."
          },
          "voided_at": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ],
            "description": "Date and time for when invoice was cancelled without deletion."
          },
          "purchase_order_number": {
            "type": [
              "string",
              "null"
            ],
            "description": "Identification number for the purchase order."
          },
          "total": {
            "$ref": "#/components/schemas/Money",
            "description": "Gross cost of order after applying taxes and discounts."
          },
          "subtotal": {
            "$ref": "#/components/schemas/Money",
            "description": "Gross cost of order before applying taxes and discounts."
          },
          "tax": {
            "$ref": "#/components/schemas/Money",
            "description": "Total cost of taxes."
          },
          "amount_paid": {
            "$ref": "#/components/schemas/Money",
            "description": "Total amount towards invoice paid."
          },
          "amount_due": {
            "$ref": "#/components/schemas/Money"
          },
          "pre_payment_credit_notes_amount": {
            "description": "Amount credited prior payment.",
            "$ref": "#/components/schemas/Money"
          },
          "post_payment_credit_notes_amount": {
            "description": "Amount credited after payment.",
            "$ref": "#/components/schemas/Money"
          },
          "contact": {
            "description": "Contact associated with the invoice. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Contact"
          },
          "site": {
            "description": "Site associated with the invoice. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Site"
          },
          "tenancy": {
            "description": "Tenancy associated with the invoice. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Tenancy"
              },
              {
                "type": "null"
              }
            ]
          },
          "subscription": {
            "description": "Subscription associated with the invoice. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Subscription"
              },
              {
                "type": "null"
              }
            ]
          },
          "line_items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceLineItem"
            }
          }
        }
      },
      "InvoiceLineItem": {
        "type": "object",
        "description": "Invoice Line Item",
        "additionalProperties": false,
        "properties": {
          "description": {
            "type": "string",
            "description": "Name of the line item product."
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "unit",
              "protection",
              "recurring_product",
              "one_time_product",
              null
            ],
            "description": "Type of the line item product."
          },
          "accounting_code": {
            "type": "string",
            "description": "Unique account identifier."
          },
          "quantity": {
            "type": "integer",
            "description": "Quantity of product."
          },
          "proration": {
            "type": "boolean",
            "description": "Time based distribution."
          },
          "total": {
            "$ref": "#/components/schemas/Money",
            "description": "Gross cost of line item."
          },
          "price": {
            "$ref": "#/components/schemas/Money",
            "description": "Per-item cost of line item."
          },
          "tax": {
            "$ref": "#/components/schemas/Money",
            "description": "Total cost of taxes."
          },
          "total_excluding_tax": {
            "$ref": "#/components/schemas/Money",
            "description": "Total cost of line item before applying taxes."
          },
          "discount_total": {
            "$ref": "#/components/schemas/Money",
            "description": "Discount towards line item."
          }
        }
      },
      "Note": {
        "type": "object",
        "description": "Note",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the note.",
            "pattern": "^note_"
          },
          "content": {
            "type": "string",
            "description": "Content of the note."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the note."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the note."
          },
          "resource": {
            "description": "Resource associated with the note. Can be a Unit, Contact, Subscription or Task. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Unit"
              },
              {
                "$ref": "#/components/schemas/Contact"
              },
              {
                "$ref": "#/components/schemas/Subscription"
              },
              {
                "$ref": "#/components/schemas/Task"
              }
            ]
          },
          "creator": {
            "description": "Creator of the note. Can be Staff, Access Token or Application. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Staff"
              },
              {
                "$ref": "#/components/schemas/AccessToken"
              },
              {
                "$ref": "#/components/schemas/Application"
              }
            ]
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          }
        }
      },
      "Price": {
        "type": "object",
        "description": "Price",
        "additionalProperties": false,
        "properties": {
          "price": {
            "$ref": "#/components/schemas/Money",
            "description": "Price for the specified billing period."
          },
          "billing_period": {
            "enum": [
              "monthly",
              "weekly",
              "every_four_weeks",
              "every_three_months",
              "every_six_months",
              "yearly",
              "one_time"
            ],
            "description": "Billing period for the price.",
            "type": "string"
          },
          "stripe_price_id": {
            "type": "string",
            "description": "Stripe Price ID associated with this price, used for payment processing."
          }
        }
      },
      "CreditNote": {
        "type": "object",
        "description": "Credit Notes",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the credit note."
          },
          "number": {
            "type": "string",
            "description": "Identification number for the credit note."
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "deposit_refund",
              "post_payment",
              "pre_payment",
              null
            ],
            "description": "Credit note's type."
          },
          "reason": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "deposit_refund",
              "duplicate",
              "fraudulent",
              "order_change",
              "product_unsatisfactory",
              "other",
              null
            ],
            "description": "Reason for issuing the credit note."
          },
          "invoice": {
            "description": "Invoice associated with the credit note. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Invoice"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "issued",
              "void"
            ],
            "description": "Status of the credit note."
          },
          "total": {
            "$ref": "#/components/schemas/Money",
            "description": "Total value of credit note after applying taxes and discounts."
          },
          "subtotal": {
            "$ref": "#/components/schemas/Money",
            "description": "Total value of credit note before applying taxes and discounts."
          },
          "contact": {
            "description": "Contact associated with the credit note. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Contact"
          },
          "site": {
            "description": "Site associated with the credit note. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Site"
              },
              {
                "type": "null"
              }
            ]
          },
          "line_items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreditNoteLineItem"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the credit note."
          }
        }
      },
      "CreditNoteLineItem": {
        "type": "object",
        "description": "Credit Note Line Item",
        "additionalProperties": false,
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the line item product."
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "invoice_line_item",
              "custom_line_item",
              "deposit",
              null
            ],
            "description": "Type of the line item product."
          },
          "quantity": {
            "type": "integer",
            "description": "Quantity of product."
          },
          "amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Gross cost of line item."
          },
          "price": {
            "$ref": "#/components/schemas/Money",
            "description": "Per-item cost of line item."
          },
          "tax": {
            "$ref": "#/components/schemas/Money",
            "description": "Total cost of taxes."
          },
          "discount_total": {
            "$ref": "#/components/schemas/Money",
            "description": "Discount towards line item."
          }
        }
      },
      "Task": {
        "type": "object",
        "description": "Task",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the task.",
            "pattern": "^task_"
          },
          "title": {
            "type": "string",
            "description": "Title of the task."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "format": "html",
            "description": "Optional description of the task."
          },
          "due_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "Due date and time for the task."
          },
          "completed_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "Completion date and time for the task."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the task."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the task."
          },
          "status": {
            "type": "string",
            "description": "Status of the task.",
            "enum": [
              "open",
              "completed"
            ]
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "resource": {
            "description": "Resource associated with the task. Can be a Unit, Contact, or Subscription. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Unit"
              },
              {
                "$ref": "#/components/schemas/Contact"
              },
              {
                "$ref": "#/components/schemas/Subscription"
              },
              {
                "type": "null"
              }
            ]
          },
          "site": {
            "description": "Site associated with the task. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Site"
              },
              {
                "type": "null"
              }
            ]
          },
          "assignee": {
            "description": "Staff member assigned to the task. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Staff"
              },
              {
                "type": "null"
              }
            ]
          },
          "creator": {
            "description": "Creator of the task. Can be Staff, Access Token, or Application. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Staff"
              },
              {
                "$ref": "#/components/schemas/AccessToken"
              },
              {
                "$ref": "#/components/schemas/Application"
              }
            ]
          }
        }
      },
      "Tenancy": {
        "type": "object",
        "description": "Tenancy",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the tenancy."
          },
          "starts_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time for start of the tenancy period."
          },
          "ends_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "Date and time for end of the tenancy period."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time for the tenancy."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time for the tenancy."
          },
          "subscription": {
            "description": "Subscription associated with the tenancy. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Subscription"
          },
          "contact": {
            "description": "Contact associated with the tenancy. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Contact"
          },
          "site": {
            "description": "Site associated with the tenancy. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Site"
          },
          "order": {
            "description": "Order associated with the tenancy. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Order"
              },
              {
                "type": "null"
              }
            ]
          },
          "unit_allocations": {
            "type": [
              "array",
              "null"
            ],
            "description": "Allocated units associated with the tenancy. **Expandable** (shows only ID when not expanded).",
            "items": {
              "$ref": "#/components/schemas/UnitAllocation"
            }
          }
        }
      },
      "UnitAllocation": {
        "type": "object",
        "description": "Unit Allocation",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the unit allocation.",
            "pattern": "^alloc_"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time."
          },
          "reserved_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "Date and time when the unit was reserved for the customer. A reserved unit is held for the customer but they do not yet have access. This field is null if the unit was allocated directly without a reservation phase."
          },
          "granted_access_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "Date and time when the customer was granted access to the unit (move-in date). This marks when the customer can physically access their unit. This field is null if access has not yet been granted."
          },
          "unit": {
            "description": "Unit associated with this allocation. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Unit"
          },
          "tenancy": {
            "description": "Tenancy associated with this allocation. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Tenancy"
          }
        }
      },
      "Staff": {
        "type": "object",
        "description": "Staff",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^staff_",
            "description": "Unique identifier for the staff member."
          },
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "Email address of the staff member."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the staff."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the staff."
          }
        }
      },
      "AccessToken": {
        "type": "object",
        "description": "Access Token",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^tok_",
            "description": "Unique identifier for the access token."
          },
          "name": {
            "type": "string",
            "description": "Name of the access token."
          }
        }
      },
      "Application": {
        "type": "object",
        "description": "Application",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^app_",
            "description": "Unique identifier for the application."
          },
          "name": {
            "type": "string",
            "description": "Name of the application."
          }
        }
      },
      "Subscription": {
        "type": "object",
        "description": "Subscription",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the subscription.",
            "pattern": "^sub_"
          },
          "starts_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "Date and time for start of the subscription period."
          },
          "ends_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "Date and time for end of the subscription period."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the subscription."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the subscription."
          },
          "current_period": {
            "type": "object",
            "description": "Current subscription period.",
            "additionalProperties": false,
            "properties": {
              "starts_at": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time",
                "description": "Date and time for start of the subscription period."
              },
              "ends_at": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time",
                "description": "Date and time for end of the subscription period."
              }
            }
          },
          "stripe_subscription_id": {
            "type": [
              "string",
              "null"
            ],
            "description": "Id for the Stripe Subscription Id linked to the subscription."
          },
          "cancelled": {
            "type": "boolean",
            "description": "Indicates whether subscription is cancelled."
          },
          "cancellation_reason": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "move_out_not_needed",
              "move_out_seasonal",
              "move_out_business",
              "issue_cost",
              "issue_location",
              "issue_security",
              "issue_quality",
              "issue_accessibility",
              "issue_cleanliness",
              "issue_unsuitable",
              "new_sub_date_change",
              "new_sub_unit_type_change",
              "new_sub_payment_method_change",
              "new_sub_incorrect_cancellation",
              "new_sub_billing_period_change",
              "eviction",
              "no_show",
              "alternative_found",
              "other",
              null
            ],
            "description": "Reason for subscription cancellation."
          },
          "stripe_subscription_schedule_id": {
            "type": [
              "string",
              "null"
            ],
            "description": "Id for Stripe Subscription Schedule associated with the subscription."
          },
          "contact": {
            "description": "Contact associated with the subscription. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Contact"
          },
          "site": {
            "description": "Site associated with the subscription. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Site"
          },
          "order": {
            "description": "Order associated with the subscription. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Order"
          },
          "tenancy": {
            "description": "Tenancy associated with the subscription. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Tenancy"
          },
          "billing_period": {
            "type": "string",
            "enum": [
              "monthly",
              "weekly",
              "every_four_weeks",
              "every_three_months",
              "every_six_months",
              "yearly",
              "one_time"
            ]
          },
          "line_items": {
            "type": "array",
            "description": "List of line items in the subscription.",
            "items": {
              "$ref": "#/components/schemas/SubscriptionLineItem"
            }
          }
        }
      },
      "TimelineSource": {
        "type": "object",
        "description": "Source",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^tsrc_",
            "description": "Unique identifier for the source."
          },
          "name": {
            "type": "string",
            "description": "Name of the source."
          },
          "website_url": {
            "type": "string",
            "format": "uri",
            "description": "Website URL of the source."
          },
          "global": {
            "type": "boolean",
            "description": "Whether this is a global source (not owned by a specific operator)."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the source."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the source."
          }
        }
      },
      "TimelineTemplate": {
        "type": "object",
        "description": "Template",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^aetpl_",
            "description": "Unique identifier for the template."
          },
          "name": {
            "type": "string",
            "description": "Name of the template."
          },
          "message": {
            "type": "string",
            "description": "Default English Liquid message template that will be translated."
          },
          "variables": {
            "type": "object",
            "description": "Variables available to render the complete message. Variables are not enforced, as we do not want to block events that have incomplete data.",
            "additionalProperties": false,
            "properties": {
              "predefined": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "contact",
                    "site",
                    "subscription",
                    "tenancy",
                    "unit",
                    "invoice",
                    "unit_type"
                  ]
                },
                "description": "Predefined system variables (e.g. contact, site, unit)."
              },
              "custom": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "User-defined custom variables."
              }
            }
          },
          "global": {
            "type": "boolean",
            "description": "Whether this template is available for all."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the template."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the template."
          }
        }
      },
      "TimelineEvent": {
        "type": "object",
        "description": "Event",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^aevt_",
            "description": "Unique identifier for the event."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Free-text note displayed alongside the event in the timeline."
          },
          "external": {
            "type": [
              "object",
              "null"
            ],
            "description": "Metadata from the originating system.",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Identifier from the originating system (e.g., your internal record ID)."
              },
              "url": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "uri",
                "description": "Link to the resource in the originating system. Displayed as a clickable link in the timeline."
              }
            }
          },
          "variables": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Key-value pairs used to render the template message. Keys must match the template's defined variables."
          },
          "source": {
            "description": "Source associated with the event. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/TimelineSource"
          },
          "template": {
            "description": "Template associated with the event. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/TimelineTemplate"
          },
          "contact": {
            "description": "Contact associated with the event. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Contact"
              },
              {
                "type": "null"
              }
            ]
          },
          "site": {
            "description": "Site associated with the event. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Site"
              },
              {
                "type": "null"
              }
            ]
          },
          "subscription": {
            "description": "Subscription associated with the event. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Subscription"
              },
              {
                "type": "null"
              }
            ]
          },
          "tenancy": {
            "description": "Tenancy associated with the event. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Tenancy"
              },
              {
                "type": "null"
              }
            ]
          },
          "unit": {
            "description": "Unit associated with the event. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Unit"
              },
              {
                "type": "null"
              }
            ]
          },
          "invoice": {
            "description": "Invoice associated with the event. **Expandable** (shows only ID when not expanded). Only persisted when the template uses the `invoice` variable.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Invoice"
              },
              {
                "type": "null"
              }
            ]
          },
          "unit_type": {
            "description": "Unit type associated with the event. **Expandable** (shows only ID when not expanded). Only persisted when the template uses the `unit_type` variable.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/UnitType"
              },
              {
                "type": "null"
              }
            ]
          },
          "creator": {
            "description": "The access token or application that created this event. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/AccessToken"
              },
              {
                "$ref": "#/components/schemas/Application"
              }
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "When the event occurred."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "When the event was last updated."
          }
        }
      },
      "Deal": {
        "type": "object",
        "description": "Deal",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the deal."
          },
          "name": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the deal."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the deal."
          },
          "value_estimate": {
            "type": [
              "null",
              "string"
            ],
            "deprecated": true,
            "description": "**Deprecated — will be removed. Use `note` instead.** Estimate of the total value of this deal to the operator. Can reflect storage fees alone, or the combined value of storage, insurance, and any additional services included in the deal."
          },
          "note": {
            "type": [
              "null",
              "string"
            ],
            "description": "Free-text note for the deal. Displayed under 'Deal value estimate' in Backoffice."
          },
          "status": {
            "type": "string",
            "enum": [
              "open",
              "won",
              "lost"
            ],
            "description": "Status of the deal."
          },
          "lost_reason": {
            "type": [
              "null",
              "string"
            ],
            "enum": [
              "accessibility_concern",
              "better_deal_elsewhere",
              "chose_competitor",
              "contract_terms",
              "decided_not_to_use_storage",
              "didnt_respond",
              "due_to_unstaffed_site",
              "facility_condition",
              "financial_reasons",
              "lack_of_response",
              "location_issues",
              "needs_extra_services",
              "no_longer_needed",
              "poor_customer_service",
              "price_concerns",
              "security_concerns",
              "size_availability",
              "timing",
              "unable_to_reach_customer",
              "unable_to_take_deliveries",
              "other",
              null
            ],
            "description": "Reason for loss of deal if lost."
          },
          "site": {
            "description": "Site associated with the deal. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Site"
              },
              {
                "type": "null"
              }
            ]
          },
          "contact": {
            "description": "Contact associated with the deal. **Expandable** (shows only ID when not expanded).",
            "$ref": "#/components/schemas/Contact"
          },
          "starts_at": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ],
            "description": "Start date of the deal."
          },
          "assignee": {
            "description": "Staff member assigned to the deal. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Staff"
              },
              {
                "type": "null"
              }
            ]
          },
          "creator": {
            "description": "Creator of the deal. Can be Staff, Access Token or Application. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Staff"
              },
              {
                "$ref": "#/components/schemas/AccessToken"
              },
              {
                "$ref": "#/components/schemas/Application"
              }
            ]
          },
          "stage": {
            "description": "Stage that the deal is currently in. **Expandable** (shows only ID when not expanded). Shows stage data with id omitted if the stage is deleted, noted by `- (Deleted)` in the `name` field.",
            "$ref": "#/components/schemas/DealStage"
          },
          "line_items": {
            "type": "array",
            "description": "List of line items associated with the deal. Each item references either a unit type or a protection level.",
            "items": {
              "description": "Line item associated with the deal.",
              "$ref": "#/components/schemas/DealLineItem"
            }
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          }
        }
      },
      "DealStage": {
        "type": "object",
        "description": "Stage",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the stage."
          },
          "name": {
            "type": "string"
          },
          "position": {
            "description": "Numerical position in which the stage is placed in the defined deal journey.",
            "type": "integer"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the stage."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the stage."
          }
        }
      },
      "DealLineItem": {
        "type": "object",
        "description": "Deal Line Item",
        "additionalProperties": false,
        "properties": {
          "item": {
            "description": "Item associated with the line item. Can be a Unit type or Protection level. **Expandable** (shows only ID when not expanded).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/UnitType"
              },
              {
                "$ref": "#/components/schemas/ProtectionLevel"
              },
              {
                "type": "null"
              }
            ]
          },
          "quantity": {
            "type": "integer",
            "description": "Quantity of the item in the deal line item."
          },
          "type": {
            "type": "string",
            "description": "The kind of line item.",
            "enum": [
              "unit_type",
              "protection"
            ]
          }
        }
      },
      "OAuth2ClientCredentialsRequest": {
        "type": "object",
        "description": "OAuth 2 Client Credentials Request",
        "additionalProperties": false,
        "required": [
          "grant_type",
          "client_id",
          "client_secret",
          "scope"
        ],
        "properties": {
          "grant_type": {
            "type": "string",
            "description": "OAuth 2 Grant Type.",
            "const": "client_credentials"
          },
          "client_id": {
            "type": "string",
            "description": "OAuth 2 Client ID."
          },
          "client_secret": {
            "type": "string",
            "description": "OAuth 2 Client Secret."
          },
          "scope": {
            "type": "string",
            "description": "OAuth 2 Scopes separated by space."
          }
        }
      },
      "OAuth2RefreshTokenRequest": {
        "type": "object",
        "description": "OAuth 2 Refresh Token Request",
        "additionalProperties": false,
        "required": [
          "grant_type",
          "client_id",
          "client_secret",
          "refresh_token"
        ],
        "properties": {
          "grant_type": {
            "type": "string",
            "description": "OAuth 2 Grant Type.",
            "const": "refresh_token"
          },
          "client_id": {
            "type": "string",
            "description": "OAuth 2 Client ID."
          },
          "client_secret": {
            "type": "string",
            "description": "OAuth 2 Client Secret."
          },
          "scope": {
            "$ref": "#/components/schemas/OAuth2ClientCredentialsRequest/properties/scope"
          },
          "refresh_token": {
            "type": "string",
            "description": "OAuth 2 Refresh Token."
          }
        }
      },
      "OAuth2AuthorizationCodeRequest": {
        "type": "object",
        "description": "OAuth 2 Authorization Code Request",
        "additionalProperties": false,
        "required": [
          "grant_type",
          "client_id",
          "client_secret",
          "code",
          "redirect_uri"
        ],
        "properties": {
          "grant_type": {
            "type": "string",
            "description": "OAuth 2 Grant Type.",
            "const": "authorization_code"
          },
          "client_id": {
            "type": "string",
            "description": "OAuth 2 Client ID."
          },
          "client_secret": {
            "type": "string",
            "description": "OAuth 2 Client Secret."
          },
          "redirect_uri": {
            "type": "string",
            "format": "uri",
            "description": "OAuth 2 Redirect URI."
          },
          "code": {
            "type": "string",
            "description": "OAuth 2 Authorization Code provided by authenticated user in the callback to `redirect_uri`."
          },
          "code_verifier": {
            "type": "string",
            "description": "OAuth 2 Code Verifier for [PKCE flow](https://tools.ietf.org/html/rfc7636)."
          }
        }
      },
      "OAuth2TokenRequest": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/OAuth2ClientCredentialsRequest"
          },
          {
            "$ref": "#/components/schemas/OAuth2RefreshTokenRequest"
          },
          {
            "$ref": "#/components/schemas/OAuth2AuthorizationCodeRequest"
          }
        ],
        "discriminator": {
          "propertyName": "grant_type",
          "mapping": {
            "client_credentials": "#/components/schemas/OAuth2ClientCredentialsRequest",
            "refresh_token": "#/components/schemas/OAuth2RefreshTokenRequest",
            "authorization_code": "#/components/schemas/OAuth2AuthorizationCodeRequest"
          }
        }
      },
      "OAuth2TokenResponse": {
        "type": "object",
        "description": "OAuth 2 Token Response",
        "additionalProperties": false,
        "properties": {
          "access_token": {
            "type": "string",
            "description": "OAuth 2 Access Token."
          },
          "token_type": {
            "type": "string",
            "description": "OAuth 2 Token Type.",
            "const": "Bearer"
          },
          "expires_in": {
            "type": "integer",
            "description": "OAuth 2 Access Token Expiration Time in Seconds."
          },
          "scope": {
            "$ref": "#/components/schemas/OAuth2ClientCredentialsRequest/properties/scope"
          },
          "created_at": {
            "type": "integer",
            "description": "OAuth 2 Access Token Creation Time."
          },
          "refresh_token": {
            "type": [
              "string",
              "null"
            ],
            "description": "OAuth 2 Refresh Token. Available only for Authorization Code Grant Type."
          }
        }
      },
      "OAuth2TokenInfo": {
        "type": "object",
        "description": "OAuth 2 Token Info",
        "additionalProperties": false,
        "properties": {
          "scope": {
            "description": "OAuth 2 Scopes.",
            "type": "array",
            "items": {
              "type": "string",
              "description": "OAuth 2 Scope name."
            }
          },
          "expires_in": {
            "$ref": "#/components/schemas/OAuth2TokenResponse/properties/expires_in"
          },
          "created_at": {
            "$ref": "#/components/schemas/OAuth2TokenResponse/properties/created_at"
          },
          "application": {
            "type": "object",
            "description": "OAuth 2 Client Application.",
            "additionalProperties": false,
            "properties": {
              "uid": {
                "type": "string",
                "description": "OAuth 2 Client Application UID."
              }
            }
          },
          "operator": {
            "type": "object",
            "description": "Operator associated with the Token.",
            "additionalProperties": false,
            "properties": {
              "name": {
                "type": "string"
              }
            }
          }
        }
      },
      "OAuth2IntrospectRequest": {
        "type": "object",
        "description": "OAuth 2 Introspect Request",
        "additionalProperties": false,
        "properties": {
          "token": {
            "type": "string",
            "description": "OAuth 2 Access Token."
          }
        }
      },
      "OAuth2IntrospectResponse": {
        "type": "object",
        "description": "OAuth 2 Introspect Response",
        "additionalProperties": false,
        "properties": {
          "active": {
            "type": "boolean"
          },
          "scope": {
            "$ref": "#/components/schemas/OAuth2ClientCredentialsRequest/properties/scope"
          },
          "client_id": {
            "$ref": "#/components/schemas/OAuth2ClientCredentialsRequest/properties/client_id"
          },
          "token_type": {
            "$ref": "#/components/schemas/OAuth2TokenResponse/properties/token_type"
          },
          "iat": {
            "type": "integer"
          },
          "exp": {
            "type": "integer"
          }
        }
      },
      "OAuth2TokenRevokeRequest": {
        "type": "object",
        "description": "OAuth 2 Token Revoke Request",
        "additionalProperties": false,
        "required": [
          "grant_type",
          "client_id",
          "client_secret",
          "token"
        ],
        "properties": {
          "grant_type": {
            "$ref": "#/components/schemas/OAuth2ClientCredentialsRequest/properties/grant_type"
          },
          "client_id": {
            "$ref": "#/components/schemas/OAuth2ClientCredentialsRequest/properties/client_id"
          },
          "client_secret": {
            "$ref": "#/components/schemas/OAuth2ClientCredentialsRequest/properties/client_secret"
          },
          "token": {
            "$ref": "#/components/schemas/OAuth2TokenResponse/properties/access_token"
          }
        }
      },
      "OAuth2Error": {
        "type": "object",
        "description": "OAuth 2 Error",
        "additionalProperties": false,
        "required": [
          "error",
          "error_description"
        ],
        "properties": {
          "error": {
            "type": "string"
          },
          "error_description": {
            "type": "string"
          }
        }
      },
      "WebhookEndpoint": {
        "type": "object",
        "description": "Webhook Endpoint",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the webhook endpoint."
          },
          "name": {
            "type": "string",
            "description": "Name of the webhook endpoint."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Optional description of the webhook endpoint."
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "The HTTPS URL where webhook events will be sent."
          },
          "api_version": {
            "type": "string",
            "description": "The API version to use when sending webhook payloads.",
            "enum": [
              "2025-09"
            ]
          },
          "event_types": {
            "type": "array",
            "description": "List of event types this endpoint is subscribed to.",
            "items": {
              "type": "string",
              "enum": [
                "contact.churned",
                "contact.converted",
                "contact.created",
                "contact.updated",
                "contract.created",
                "contract.signed",
                "coupon.created",
                "coupon.updated",
                "credit_note.created",
                "credit_note.updated",
                "deal.created",
                "deal.lost",
                "deal.reopened",
                "deal.stage_changed",
                "deal.updated",
                "deal.won",
                "identity_verification.cancelled",
                "identity_verification.failed",
                "identity_verification.processing",
                "identity_verification.succeeded",
                "invoice.created",
                "invoice.finalized",
                "invoice.marked_uncollectible",
                "invoice.paid",
                "invoice.updated",
                "note.created",
                "note.updated",
                "order.abandoned",
                "order.completed",
                "order.created",
                "order.finalized",
                "protection_level.created",
                "protection_level.updated",
                "subscription.cancelled",
                "subscription.created",
                "subscription.ended",
                "subscription.resumed",
                "subscription.started",
                "task.completed",
                "task.created",
                "task.reopened",
                "task.updated",
                "tenancy.auto_reservation.failed",
                "tenancy.auto_reservation.partially_succeeded",
                "tenancy.auto_reservation.succeeded",
                "tenancy.created",
                "tenancy.started",
                "unit.available",
                "unit.created",
                "unit.deallocated",
                "unit.occupied",
                "unit.overlocked",
                "unit.repossessed",
                "unit.reserved",
                "unit.unavailable",
                "unit.updated",
                "unit_type.created",
                "unit_type.updated"
              ]
            }
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "secret": {
            "type": [
              "string",
              "null"
            ],
            "description": "Secret used to sign webhook payloads for verification. Exposed only on creation, otherwise returns `null`."
          },
          "status": {
            "type": "string",
            "description": "Status of the webhook endpoint.",
            "enum": [
              "disabled",
              "enabled"
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the webhook endpoint."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last update date and time of the webhook endpoint."
          },
          "disabled_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "Date and time when the webhook endpoint was disabled, `null` if enabled."
          },
          "creator": {
            "description": "Creator of the webhook endpoint. Can be Staff, Access Token, or Application.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Staff"
              },
              {
                "$ref": "#/components/schemas/AccessToken"
              },
              {
                "$ref": "#/components/schemas/Application"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "WebhookOrderCreated": {
        "type": "object",
        "description": "Order Created Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "order.created",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "order": {
                    "$ref": "#/components/schemas/Order"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookOrderFinalized": {
        "type": "object",
        "description": "Order Finalized Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "order.finalized",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "order": {
                    "$ref": "#/components/schemas/Order"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookOrderCompleted": {
        "type": "object",
        "description": "Order Completed Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "order.completed",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "order": {
                    "$ref": "#/components/schemas/Order"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookCreditNoteCreated": {
        "type": "object",
        "description": "Credit Note Created Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "credit_note.created",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "credit_note": {
                    "$ref": "#/components/schemas/CreditNote"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookCreditNoteUpdated": {
        "type": "object",
        "description": "Credit Note Updated Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "credit_note.updated",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "credit_note": {
                    "$ref": "#/components/schemas/CreditNote"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookContactCreated": {
        "type": "object",
        "description": "Contact Created Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "contact.created",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "contact": {
                    "$ref": "#/components/schemas/Contact"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookInvoiceCreated": {
        "type": "object",
        "description": "Invoice Created Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "invoice.created",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "invoice": {
                    "$ref": "#/components/schemas/Invoice"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookSubscriptionStarted": {
        "type": "object",
        "description": "Subscripton Started Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "subscription.started",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "subscription": {
                    "$ref": "#/components/schemas/Subscription"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookContactUpdated": {
        "type": "object",
        "description": "Contact Updated Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "contact.updated",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "contact": {
                    "$ref": "#/components/schemas/Contact"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookSubscriptionCancelled": {
        "type": "object",
        "description": "Subscription Cancelled Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "subscription.cancelled",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "subscription": {
                    "$ref": "#/components/schemas/Subscription"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookSubscriptionEnded": {
        "type": "object",
        "description": "Subscription Ended Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "subscription.ended",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "subscription": {
                    "$ref": "#/components/schemas/Subscription"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookSubscriptionCreated": {
        "type": "object",
        "description": "Subscription Created Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "subscription.created",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "subscription": {
                    "$ref": "#/components/schemas/Subscription"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookSubscriptionResumed": {
        "type": "object",
        "description": "Subscription Resumed Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "subscription.resumed",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "subscription": {
                    "$ref": "#/components/schemas/Subscription"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookTenancyStarted": {
        "type": "object",
        "description": "Tenancy Started Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "tenancy.started",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "tenancy": {
                    "$ref": "#/components/schemas/Tenancy"
                  },
                  "subscription": {
                    "$ref": "#/components/schemas/Tenancy",
                    "deprecated": true,
                    "description": "**Deprecated — will be removed in a future API version.** Duplicate of `tenancy` retained for backwards compatibility with existing webhook consumers."
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookTenancyCreated": {
        "type": "object",
        "description": "Tenancy Created Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "tenancy.created",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "tenancy": {
                    "$ref": "#/components/schemas/Tenancy"
                  },
                  "subscription": {
                    "$ref": "#/components/schemas/Tenancy",
                    "deprecated": true,
                    "description": "**Deprecated — will be removed in a future API version.** Duplicate of `tenancy` retained for backwards compatibility with existing webhook consumers."
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookUnitCreated": {
        "type": "object",
        "description": "Unit Created Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "unit.created",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "unit": {
                    "$ref": "#/components/schemas/Unit"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookUnitUpdated": {
        "type": "object",
        "description": "Unit Updated Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "unit.updated",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "unit": {
                    "$ref": "#/components/schemas/Unit"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookUnitAvailable": {
        "type": "object",
        "description": "Unit Available Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "unit.available",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "unit": {
                    "$ref": "#/components/schemas/Unit"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookUnitUnavailable": {
        "type": "object",
        "description": "Unit Unavailable Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "unit.unavailable",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "unit": {
                    "$ref": "#/components/schemas/Unit"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookUnitOccupied": {
        "type": "object",
        "description": "Unit Occupied Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "unit.occupied",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "unit": {
                    "$ref": "#/components/schemas/Unit"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookUnitReserved": {
        "type": "object",
        "description": "Unit Reserved Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "unit.reserved",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "unit": {
                    "$ref": "#/components/schemas/Unit"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookUnitRepossessed": {
        "type": "object",
        "description": "Unit Repossessed Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "unit.repossessed",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "unit": {
                    "$ref": "#/components/schemas/Unit"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookUnitOverlocked": {
        "type": "object",
        "description": "Unit Overlocked Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "unit.overlocked",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "unit": {
                    "$ref": "#/components/schemas/Unit"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookUnitDeallocated": {
        "type": "object",
        "description": "Unit Deallocated Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "unit.deallocated",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "unit": {
                    "$ref": "#/components/schemas/Unit"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookInvoicePaid": {
        "type": "object",
        "description": "Invoice Paid Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "invoice.paid",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "invoice": {
                    "$ref": "#/components/schemas/Invoice"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookInvoiceFinalized": {
        "type": "object",
        "description": "Invoice Finalized Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "invoice.finalized",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "invoice": {
                    "$ref": "#/components/schemas/Invoice"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookInvoiceMarkedUncollectible": {
        "type": "object",
        "description": "Invoice Marked Uncollectible Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "invoice.marked_uncollectible",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "invoice": {
                    "$ref": "#/components/schemas/Invoice"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookInvoiceUpdated": {
        "type": "object",
        "description": "Invoice Updated Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "invoice.updated",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "invoice": {
                    "$ref": "#/components/schemas/Invoice"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookProtectionLevelCreated": {
        "type": "object",
        "description": "Protection Level Created Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "protection_level.created",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "protection_level": {
                    "$ref": "#/components/schemas/ProtectionLevel"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookUnitTypeCreated": {
        "type": "object",
        "description": "Unit Type Created Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "unit_type.created",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "unit_type": {
                    "$ref": "#/components/schemas/UnitType"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookUnitTypeUpdated": {
        "type": "object",
        "description": "Unit Type Updated Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "unit_type.updated",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "unit_type": {
                    "$ref": "#/components/schemas/UnitType"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookProtectionLevelUpdated": {
        "type": "object",
        "description": "Protection Level Updated Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "protection_level.updated",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "protection_level": {
                    "$ref": "#/components/schemas/ProtectionLevel"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookCouponCreated": {
        "type": "object",
        "description": "Coupon Created Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "coupon.created",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "coupon": {
                    "$ref": "#/components/schemas/Coupon"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookCouponUpdated": {
        "type": "object",
        "description": "Coupon Updated Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "coupon.updated",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "coupon": {
                    "$ref": "#/components/schemas/Coupon"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookTaskCreated": {
        "type": "object",
        "description": "Task Created Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "task.created",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "task": {
                    "$ref": "#/components/schemas/Task"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookTaskCompleted": {
        "type": "object",
        "description": "Task Completed Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "task.completed",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "task": {
                    "$ref": "#/components/schemas/Task"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookTaskUpdated": {
        "type": "object",
        "description": "Task Updated Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "task.updated",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "task": {
                    "$ref": "#/components/schemas/Task"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookTaskReopened": {
        "type": "object",
        "description": "Task Reopened Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "task.reopened",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "task": {
                    "$ref": "#/components/schemas/Task"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookNoteUpdated": {
        "type": "object",
        "description": "Note Updated Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "note.updated",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "note": {
                    "$ref": "#/components/schemas/Note"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookNoteCreated": {
        "type": "object",
        "description": "Note Created Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "note.created",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "note": {
                    "$ref": "#/components/schemas/Note"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookDealCreated": {
        "type": "object",
        "description": "Deal Created Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "deal.created",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "deal": {
                    "$ref": "#/components/schemas/Deal"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookDealUpdated": {
        "type": "object",
        "description": "Deal Updated Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "deal.updated",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "deal": {
                    "$ref": "#/components/schemas/Deal"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookDealWon": {
        "type": "object",
        "description": "Deal Won Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "deal.won",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "deal": {
                    "$ref": "#/components/schemas/Deal"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookDealLost": {
        "type": "object",
        "description": "Deal Lost Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "deal.lost",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "deal": {
                    "$ref": "#/components/schemas/Deal"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookDealReopened": {
        "type": "object",
        "description": "Deal Reopened Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "deal.reopened",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "deal": {
                    "$ref": "#/components/schemas/Deal"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookContractSigned": {
        "type": "object",
        "description": "Contract Signed Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "contract.signed",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "contract": {
                    "$ref": "#/components/schemas/Contract"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookContractCreated": {
        "type": "object",
        "description": "Contract Created Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "contract.created",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "contract": {
                    "$ref": "#/components/schemas/Contract"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookIdentityVerificationSucceeded": {
        "type": "object",
        "description": "Identity Verification Succeeded Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "identity_verification.succeeded",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "identity_verification": {
                    "$ref": "#/components/schemas/IdentityVerification"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookIdentityVerificationFailed": {
        "type": "object",
        "description": "Identity Verification Failed Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "identity_verification.failed",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "identity_verification": {
                    "$ref": "#/components/schemas/IdentityVerification"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookIdentityVerificationProcessing": {
        "type": "object",
        "description": "Identity Verification Processing Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "identity_verification.processing",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "identity_verification": {
                    "$ref": "#/components/schemas/IdentityVerification"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookIdentityVerificationCancelled": {
        "type": "object",
        "description": "Identity Verification Cancelled Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "identity_verification.cancelled",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "identity_verification": {
                    "$ref": "#/components/schemas/IdentityVerification"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookContactConverted": {
        "type": "object",
        "description": "Contact Converted Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "contact.converted",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "contact": {
                    "$ref": "#/components/schemas/Contact"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookContactChurned": {
        "type": "object",
        "description": "Contact Churned Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "contact.churned",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "contact": {
                    "$ref": "#/components/schemas/Contact"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookDealStageChanged": {
        "type": "object",
        "description": "Deal Stage Changed Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "deal.stage_changed",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "deal": {
                    "$ref": "#/components/schemas/Deal"
                  },
                  "change": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Details of the stage transition.",
                    "properties": {
                      "changed_at": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Timestamp when the deal's stage changed."
                      },
                      "previous_stage": {
                        "description": "The stage the deal was in before the change. `null` when the deal entered its first stage. If the previous stage has since been archived, the object is returned without an `id` and its `name` is suffixed with ` - (Deleted)`.",
                        "oneOf": [
                          {
                            "$ref": "#/components/schemas/DealStage"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "current_stage": {
                        "description": "The deal's new stage.",
                        "$ref": "#/components/schemas/DealStage"
                      }
                    }
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookOrderAbandoned": {
        "type": "object",
        "description": "Order Abandoned Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "order.abandoned",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "order": {
                    "$ref": "#/components/schemas/Order"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookTenancyAutoReservationSucceeded": {
        "type": "object",
        "description": "Tenancy Auto Reservation Succeeded Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "tenancy.auto_reservation.succeeded",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "tenancy": {
                    "$ref": "#/components/schemas/Tenancy"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookTenancyAutoReservationFailed": {
        "type": "object",
        "description": "Tenancy Auto Reservation Failed Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "tenancy.auto_reservation.failed",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "tenancy": {
                    "$ref": "#/components/schemas/Tenancy"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "WebhookTenancyAutoReservationPartiallySucceeded": {
        "type": "object",
        "description": "Tenancy Auto Reservation Partially Succeeded Webhook Body",
        "additionalProperties": false,
        "properties": {
          "event": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the webhook event."
              },
              "type": {
                "const": "tenancy.auto_reservation.partially_succeeded",
                "description": "Event type."
              },
              "api_version": {
                "type": "string",
                "enum": [
                  "2025-09"
                ],
                "description": "API version for the payload structure."
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the event was created."
              },
              "data": {
                "type": "object",
                "additionalProperties": false,
                "description": "Webhook payload.",
                "properties": {
                  "tenancy": {
                    "$ref": "#/components/schemas/Tenancy"
                  }
                }
              },
              "meta": {
                "$ref": "#/components/schemas/WebhookMeta"
              }
            }
          }
        }
      },
      "BasePriceCreate": {
        "type": "object",
        "required": [],
        "properties": {
          "monthly": {
            "type": "object",
            "required": [
              "amount"
            ],
            "properties": {
              "amount": {
                "type": "integer",
                "description": "The amount of money in the smallest currency unit (e.g., cents for USD)."
              }
            },
            "additionalProperties": false
          },
          "weekly": {
            "type": "object",
            "required": [
              "amount"
            ],
            "properties": {
              "amount": {
                "type": "integer",
                "description": "The amount of money in the smallest currency unit (e.g., cents for USD)."
              }
            },
            "additionalProperties": false
          },
          "every_four_weeks": {
            "type": "object",
            "required": [
              "amount"
            ],
            "properties": {
              "amount": {
                "type": "integer",
                "description": "The amount of money in the smallest currency unit (e.g., cents for USD)."
              }
            },
            "additionalProperties": false
          },
          "every_three_months": {
            "type": "object",
            "required": [
              "amount"
            ],
            "properties": {
              "amount": {
                "type": "integer",
                "description": "The amount of money in the smallest currency unit (e.g., cents for USD)."
              }
            },
            "additionalProperties": false
          },
          "every_six_months": {
            "type": "object",
            "required": [
              "amount"
            ],
            "properties": {
              "amount": {
                "type": "integer",
                "description": "The amount of money in the smallest currency unit (e.g., cents for USD)."
              }
            },
            "additionalProperties": false
          },
          "yearly": {
            "type": "object",
            "required": [
              "amount"
            ],
            "properties": {
              "amount": {
                "type": "integer",
                "description": "The amount of money in the smallest currency unit (e.g., cents for USD)."
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false,
        "description": "Base prices available for recurring billing periods (Protection Levels, Unit Types, and Products)."
      },
      "ContactsCreate": {
        "type": "object",
        "required": [
          "email"
        ],
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "description": "The contact's email address"
          },
          "full_name": {
            "type": [
              "string",
              "null"
            ],
            "description": "The contact's name"
          },
          "phone_number": {
            "type": [
              "string",
              "null"
            ],
            "description": "The contact's phone number"
          },
          "tax_id": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 30,
            "description": "The contact's tax ID"
          },
          "company_registration_number": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 30,
            "description": "The contact's company registration number"
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "The type of contact",
            "enum": [
              "domestic",
              "company",
              "student",
              "charity",
              "local_authority"
            ]
          },
          "source": {
            "type": [
              "string",
              "null"
            ],
            "description": "The source of the contact data",
            "enum": [
              "pre_open",
              "incomplete_booking",
              "registered_interest",
              "price_interest",
              "quotation_request",
              "booking",
              "popup",
              "external_enquiry",
              "phone",
              "walkin",
              "import",
              "other"
            ]
          },
          "marketing_source": {
            "type": [
              "string",
              "null"
            ],
            "description": "What channel did the contact find us through",
            "enum": [
              "used_before",
              "recommendation",
              "received_leaflet",
              "seen_building_signs",
              "seen_advert",
              "facebook_marketplace",
              "google_search",
              "other_online_search",
              "social_media",
              "email",
              "radio",
              "other"
            ]
          },
          "use_case": {
            "type": [
              "string",
              "null"
            ],
            "description": "Why does the contact require storage",
            "enum": [
              "business_needs",
              "moving_home",
              "more_space",
              "refurb",
              "travelling",
              "other"
            ]
          },
          "address": {
            "type": [
              "object",
              "null"
            ],
            "required": [],
            "properties": {
              "line_1": {
                "type": "string",
                "description": "Line 1"
              },
              "line_2": {
                "type": "string",
                "description": "Line 2"
              },
              "city": {
                "type": "string",
                "description": "City"
              },
              "state": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "State or province, ISO 3166-2 only"
              },
              "country_alpha2": {
                "type": "string",
                "description": "Country Alpha 2",
                "enum": [
                  "AD",
                  "AE",
                  "AF",
                  "AG",
                  "AI",
                  "AL",
                  "AM",
                  "AO",
                  "AQ",
                  "AR",
                  "AS",
                  "AT",
                  "AU",
                  "AW",
                  "AX",
                  "AZ",
                  "BA",
                  "BB",
                  "BD",
                  "BE",
                  "BF",
                  "BG",
                  "BH",
                  "BI",
                  "BJ",
                  "BL",
                  "BM",
                  "BN",
                  "BO",
                  "BQ",
                  "BR",
                  "BS",
                  "BT",
                  "BV",
                  "BW",
                  "BY",
                  "BZ",
                  "CA",
                  "CC",
                  "CD",
                  "CF",
                  "CG",
                  "CH",
                  "CI",
                  "CK",
                  "CL",
                  "CM",
                  "CN",
                  "CO",
                  "CR",
                  "CU",
                  "CV",
                  "CW",
                  "CX",
                  "CY",
                  "CZ",
                  "DE",
                  "DJ",
                  "DK",
                  "DM",
                  "DO",
                  "DZ",
                  "EC",
                  "EE",
                  "EG",
                  "EH",
                  "ER",
                  "ES",
                  "ET",
                  "FI",
                  "FJ",
                  "FK",
                  "FM",
                  "FO",
                  "FR",
                  "GA",
                  "GB",
                  "GD",
                  "GE",
                  "GF",
                  "GG",
                  "GH",
                  "GI",
                  "GL",
                  "GM",
                  "GN",
                  "GP",
                  "GQ",
                  "GR",
                  "GS",
                  "GT",
                  "GU",
                  "GW",
                  "GY",
                  "HK",
                  "HM",
                  "HN",
                  "HR",
                  "HT",
                  "HU",
                  "ID",
                  "IE",
                  "IL",
                  "IM",
                  "IN",
                  "IO",
                  "IQ",
                  "IR",
                  "IS",
                  "IT",
                  "JE",
                  "JM",
                  "JO",
                  "JP",
                  "KE",
                  "KG",
                  "KH",
                  "KI",
                  "KM",
                  "KN",
                  "KP",
                  "KR",
                  "KW",
                  "KY",
                  "KZ",
                  "LA",
                  "LB",
                  "LC",
                  "LI",
                  "LK",
                  "LR",
                  "LS",
                  "LT",
                  "LU",
                  "LV",
                  "LY",
                  "MA",
                  "MC",
                  "MD",
                  "ME",
                  "MF",
                  "MG",
                  "MH",
                  "MK",
                  "ML",
                  "MM",
                  "MN",
                  "MO",
                  "MP",
                  "MQ",
                  "MR",
                  "MS",
                  "MT",
                  "MU",
                  "MV",
                  "MW",
                  "MX",
                  "MY",
                  "MZ",
                  "NA",
                  "NC",
                  "NE",
                  "NF",
                  "NG",
                  "NI",
                  "NL",
                  "NO",
                  "NP",
                  "NR",
                  "NU",
                  "NZ",
                  "OM",
                  "PA",
                  "PE",
                  "PF",
                  "PG",
                  "PH",
                  "PK",
                  "PL",
                  "PM",
                  "PN",
                  "PR",
                  "PS",
                  "PT",
                  "PW",
                  "PY",
                  "QA",
                  "RE",
                  "RO",
                  "RS",
                  "RU",
                  "RW",
                  "SA",
                  "SB",
                  "SC",
                  "SD",
                  "SE",
                  "SG",
                  "SH",
                  "SI",
                  "SJ",
                  "SK",
                  "SL",
                  "SM",
                  "SN",
                  "SO",
                  "SR",
                  "SS",
                  "ST",
                  "SV",
                  "SX",
                  "SY",
                  "SZ",
                  "TC",
                  "TD",
                  "TF",
                  "TG",
                  "TH",
                  "TJ",
                  "TK",
                  "TL",
                  "TM",
                  "TN",
                  "TO",
                  "TR",
                  "TT",
                  "TV",
                  "TW",
                  "TZ",
                  "UA",
                  "UG",
                  "UM",
                  "US",
                  "UY",
                  "UZ",
                  "VA",
                  "VC",
                  "VE",
                  "VG",
                  "VI",
                  "VN",
                  "VU",
                  "WF",
                  "WS",
                  "YE",
                  "YT",
                  "ZA",
                  "ZM",
                  "ZW"
                ]
              },
              "postal_code": {
                "type": "string",
                "description": "Postal code"
              }
            },
            "additionalProperties": false,
            "description": "Address"
          },
          "metadata": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "maxProperties": 20,
            "description": "Set of key-value pairs for storing additional information on the contact. [Learn more about metadata.](https://docs.stora.co/2025-09/guides/metadata)"
          }
        },
        "additionalProperties": false,
        "description": "Create Contact Request"
      },
      "ContactsUpdate": {
        "type": "object",
        "required": [],
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "description": "The contact's email address"
          },
          "full_name": {
            "type": [
              "string",
              "null"
            ],
            "description": "The contact's name"
          },
          "phone_number": {
            "type": [
              "string",
              "null"
            ],
            "description": "The contact's phone number"
          },
          "tax_id": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 30,
            "description": "The contact's tax ID"
          },
          "company_registration_number": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 30,
            "description": "The contact's company registration number"
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "The type of contact",
            "enum": [
              "domestic",
              "company",
              "student",
              "charity",
              "local_authority"
            ]
          },
          "source": {
            "type": [
              "string",
              "null"
            ],
            "description": "The source of the contact data",
            "enum": [
              "pre_open",
              "incomplete_booking",
              "registered_interest",
              "price_interest",
              "quotation_request",
              "booking",
              "popup",
              "external_enquiry",
              "phone",
              "walkin",
              "import",
              "other"
            ]
          },
          "marketing_source": {
            "type": [
              "string",
              "null"
            ],
            "description": "What channel did the contact find us through",
            "enum": [
              "used_before",
              "recommendation",
              "received_leaflet",
              "seen_building_signs",
              "seen_advert",
              "facebook_marketplace",
              "google_search",
              "other_online_search",
              "social_media",
              "email",
              "radio",
              "other"
            ]
          },
          "use_case": {
            "type": [
              "string",
              "null"
            ],
            "description": "Why does the contact require storage",
            "enum": [
              "business_needs",
              "moving_home",
              "more_space",
              "refurb",
              "travelling",
              "other"
            ]
          },
          "address": {
            "type": [
              "object",
              "null"
            ],
            "required": [],
            "properties": {
              "line_1": {
                "type": "string",
                "description": "Line 1"
              },
              "line_2": {
                "type": "string",
                "description": "Line 2"
              },
              "city": {
                "type": "string",
                "description": "City"
              },
              "state": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "State or province, ISO 3166-2 only"
              },
              "country_alpha2": {
                "type": "string",
                "description": "Country Alpha 2",
                "enum": [
                  "AD",
                  "AE",
                  "AF",
                  "AG",
                  "AI",
                  "AL",
                  "AM",
                  "AO",
                  "AQ",
                  "AR",
                  "AS",
                  "AT",
                  "AU",
                  "AW",
                  "AX",
                  "AZ",
                  "BA",
                  "BB",
                  "BD",
                  "BE",
                  "BF",
                  "BG",
                  "BH",
                  "BI",
                  "BJ",
                  "BL",
                  "BM",
                  "BN",
                  "BO",
                  "BQ",
                  "BR",
                  "BS",
                  "BT",
                  "BV",
                  "BW",
                  "BY",
                  "BZ",
                  "CA",
                  "CC",
                  "CD",
                  "CF",
                  "CG",
                  "CH",
                  "CI",
                  "CK",
                  "CL",
                  "CM",
                  "CN",
                  "CO",
                  "CR",
                  "CU",
                  "CV",
                  "CW",
                  "CX",
                  "CY",
                  "CZ",
                  "DE",
                  "DJ",
                  "DK",
                  "DM",
                  "DO",
                  "DZ",
                  "EC",
                  "EE",
                  "EG",
                  "EH",
                  "ER",
                  "ES",
                  "ET",
                  "FI",
                  "FJ",
                  "FK",
                  "FM",
                  "FO",
                  "FR",
                  "GA",
                  "GB",
                  "GD",
                  "GE",
                  "GF",
                  "GG",
                  "GH",
                  "GI",
                  "GL",
                  "GM",
                  "GN",
                  "GP",
                  "GQ",
                  "GR",
                  "GS",
                  "GT",
                  "GU",
                  "GW",
                  "GY",
                  "HK",
                  "HM",
                  "HN",
                  "HR",
                  "HT",
                  "HU",
                  "ID",
                  "IE",
                  "IL",
                  "IM",
                  "IN",
                  "IO",
                  "IQ",
                  "IR",
                  "IS",
                  "IT",
                  "JE",
                  "JM",
                  "JO",
                  "JP",
                  "KE",
                  "KG",
                  "KH",
                  "KI",
                  "KM",
                  "KN",
                  "KP",
                  "KR",
                  "KW",
                  "KY",
                  "KZ",
                  "LA",
                  "LB",
                  "LC",
                  "LI",
                  "LK",
                  "LR",
                  "LS",
                  "LT",
                  "LU",
                  "LV",
                  "LY",
                  "MA",
                  "MC",
                  "MD",
                  "ME",
                  "MF",
                  "MG",
                  "MH",
                  "MK",
                  "ML",
                  "MM",
                  "MN",
                  "MO",
                  "MP",
                  "MQ",
                  "MR",
                  "MS",
                  "MT",
                  "MU",
                  "MV",
                  "MW",
                  "MX",
                  "MY",
                  "MZ",
                  "NA",
                  "NC",
                  "NE",
                  "NF",
                  "NG",
                  "NI",
                  "NL",
                  "NO",
                  "NP",
                  "NR",
                  "NU",
                  "NZ",
                  "OM",
                  "PA",
                  "PE",
                  "PF",
                  "PG",
                  "PH",
                  "PK",
                  "PL",
                  "PM",
                  "PN",
                  "PR",
                  "PS",
                  "PT",
                  "PW",
                  "PY",
                  "QA",
                  "RE",
                  "RO",
                  "RS",
                  "RU",
                  "RW",
                  "SA",
                  "SB",
                  "SC",
                  "SD",
                  "SE",
                  "SG",
                  "SH",
                  "SI",
                  "SJ",
                  "SK",
                  "SL",
                  "SM",
                  "SN",
                  "SO",
                  "SR",
                  "SS",
                  "ST",
                  "SV",
                  "SX",
                  "SY",
                  "SZ",
                  "TC",
                  "TD",
                  "TF",
                  "TG",
                  "TH",
                  "TJ",
                  "TK",
                  "TL",
                  "TM",
                  "TN",
                  "TO",
                  "TR",
                  "TT",
                  "TV",
                  "TW",
                  "TZ",
                  "UA",
                  "UG",
                  "UM",
                  "US",
                  "UY",
                  "UZ",
                  "VA",
                  "VC",
                  "VE",
                  "VG",
                  "VI",
                  "VN",
                  "VU",
                  "WF",
                  "WS",
                  "YE",
                  "YT",
                  "ZA",
                  "ZM",
                  "ZW"
                ]
              },
              "postal_code": {
                "type": "string",
                "description": "Postal code"
              }
            },
            "additionalProperties": false,
            "description": "Address"
          },
          "metadata": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "maxProperties": 20,
            "description": "Set of key-value pairs for storing additional information on the contact. [Learn more about metadata.](https://docs.stora.co/2025-09/guides/metadata)"
          }
        },
        "additionalProperties": false,
        "description": "Update Contact Request"
      },
      "DealsLose": {
        "type": "object",
        "required": [
          "lost_reason"
        ],
        "properties": {
          "lost_reason": {
            "type": "string",
            "enum": [
              "accessibility_concern",
              "better_deal_elsewhere",
              "chose_competitor",
              "contract_terms",
              "decided_not_to_use_storage",
              "didnt_respond",
              "due_to_unstaffed_site",
              "facility_condition",
              "financial_reasons",
              "lack_of_response",
              "location_issues",
              "needs_extra_services",
              "no_longer_needed",
              "poor_customer_service",
              "price_concerns",
              "security_concerns",
              "size_availability",
              "timing",
              "unable_to_reach_customer",
              "unable_to_take_deliveries",
              "other"
            ],
            "description": "The reason the deal was lost."
          }
        },
        "additionalProperties": false,
        "description": "Lose a deal"
      },
      "DealsReopen": {
        "type": "object",
        "required": [],
        "properties": {
          "assignee": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^staff_",
                "description": "The ID of the staff member to assign to the deal"
              }
            },
            "additionalProperties": false
          },
          "stage": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^dstg_",
                "description": "The ID of the stage to place the deal in"
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false,
        "description": "Reopen Deal Request"
      },
      "DealsCreate": {
        "type": "object",
        "required": [
          "name",
          "contact",
          "stage"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the deal"
          },
          "contact": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^con_",
                "description": "The ID of the contact associated with the deal"
              }
            },
            "additionalProperties": false
          },
          "stage": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^dstg_",
                "description": "The ID of the stage associated with the deal"
              }
            },
            "additionalProperties": false
          },
          "assignee": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^staff_",
                "description": "The ID of the staff member assigned to the deal"
              }
            },
            "additionalProperties": false
          },
          "site": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^site_",
                "description": "The ID of the site associated with the deal"
              }
            },
            "additionalProperties": false
          },
          "note": {
            "type": [
              "string",
              "null"
            ],
            "description": "Free-text note for the deal. Displayed under 'Deal value estimate' in Backoffice."
          },
          "starts_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "The intended move-in date"
          },
          "metadata": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "maxProperties": 20,
            "description": "Set of key-value pairs for storing additional information on the deal. [Learn more about metadata.](https://docs.stora.co/2025-09/guides/metadata)"
          },
          "line_items": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/DealsLineItemsUnitType"
                },
                {
                  "$ref": "#/components/schemas/DealsLineItemsProtection"
                }
              ],
              "discriminator": {
                "propertyName": "type",
                "mapping": {
                  "unit_type": "#/components/schemas/DealsLineItemsUnitType",
                  "protection": "#/components/schemas/DealsLineItemsProtection"
                }
              }
            },
            "maxItems": 2,
            "description": "List of line items for the deal. At most one item per type is allowed."
          }
        },
        "additionalProperties": false,
        "description": "Create Deal Request"
      },
      "DealsUpdate": {
        "type": "object",
        "required": [],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the deal"
          },
          "contact": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^con_",
                "description": "The ID of the contact associated with the deal"
              }
            },
            "additionalProperties": false
          },
          "stage": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^dstg_",
                "description": "The ID of the stage associated with the deal"
              }
            },
            "additionalProperties": false
          },
          "assignee": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^staff_",
                "description": "The ID of the staff member assigned to the deal"
              }
            },
            "additionalProperties": false,
            "description": "To remove the association, set assignee to null."
          },
          "site": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^site_",
                "description": "The ID of the site associated with the deal"
              }
            },
            "additionalProperties": false,
            "description": "To remove the association, set site to null."
          },
          "note": {
            "type": [
              "string",
              "null"
            ],
            "description": "Free-text note for the deal. Displayed under 'Deal value estimate' in Backoffice. To remove the existing value, set to null."
          },
          "starts_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "The intended move-in date. To remove the existing move-in date, set to null."
          },
          "metadata": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "maxProperties": 20,
            "description": "Set of key-value pairs for storing additional information on the deal. [Learn more about metadata.](https://docs.stora.co/2025-09/guides/metadata)"
          },
          "line_items": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/DealsLineItemsUnitType"
                },
                {
                  "$ref": "#/components/schemas/DealsLineItemsProtection"
                }
              ],
              "discriminator": {
                "propertyName": "type",
                "mapping": {
                  "unit_type": "#/components/schemas/DealsLineItemsUnitType",
                  "protection": "#/components/schemas/DealsLineItemsProtection"
                }
              }
            },
            "maxItems": 2,
            "description": "Skip this property (do not include it inside the request) if you don't want to update the line items. Existing line items not included here in the update request will be removed. To remove all line items, provide an empty array. At most one item per type is allowed."
          }
        },
        "additionalProperties": false,
        "description": "Update Deal Request"
      },
      "DealsLineItemsProtection": {
        "type": "object",
        "required": [
          "type",
          "item"
        ],
        "properties": {
          "type": {
            "const": "protection",
            "type": "string",
            "description": "Identifies the line item as a protection level."
          },
          "item": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^plvl_",
                "description": "The ID of the referenced protection level."
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false,
        "description": "Deal Protection Line Item"
      },
      "DealsLineItemsUnitType": {
        "type": "object",
        "required": [
          "type",
          "item"
        ],
        "properties": {
          "type": {
            "const": "unit_type",
            "type": "string",
            "description": "Identifies the line item as a unit type."
          },
          "item": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^utype_",
                "description": "The ID of the referenced unit type."
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false,
        "description": "Deal Unit Type Line Item"
      },
      "NotesCreate": {
        "type": "object",
        "required": [
          "content",
          "resource"
        ],
        "properties": {
          "content": {
            "type": "string",
            "description": "The content of the note"
          },
          "resource": {
            "oneOf": [
              {
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^unit_",
                    "description": "The ID of the unit associated with the note"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^con_",
                    "description": "The ID of the contact associated with the note"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^sub_",
                    "description": "The ID of the subscription associated with the note"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^task_",
                    "description": "The ID of the task associated with the note"
                  }
                },
                "additionalProperties": false
              }
            ]
          },
          "metadata": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "maxProperties": 20,
            "description": "Set of key-value pairs for storing additional information on the note. [Learn more about metadata.](https://docs.stora.co/2025-09/guides/metadata)"
          }
        },
        "additionalProperties": false,
        "description": "Create Note Request"
      },
      "NotesUpdate": {
        "type": "object",
        "required": [],
        "properties": {
          "content": {
            "type": "string",
            "description": "The content of the note"
          },
          "resource": {
            "oneOf": [
              {
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^con_",
                    "description": "The ID of the contact associated with the note"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^unit_",
                    "description": "The ID of the unit associated with the note"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^sub_",
                    "description": "The ID of the subscription associated with the note"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^task_",
                    "description": "The ID of the task associated with the note"
                  }
                },
                "additionalProperties": false
              }
            ]
          },
          "metadata": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "maxProperties": 20,
            "description": "Set of key-value pairs for storing additional information on the note. [Learn more about metadata.](https://docs.stora.co/2025-09/guides/metadata)"
          }
        },
        "additionalProperties": false,
        "description": "Update Note Request"
      },
      "OneTimeBasePriceCreate": {
        "type": "object",
        "required": [
          "one_time"
        ],
        "properties": {
          "one_time": {
            "type": "object",
            "required": [
              "amount"
            ],
            "properties": {
              "amount": {
                "type": "integer",
                "description": "The amount of money in the smallest currency unit (e.g., cents for USD)."
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false,
        "description": "The one-time base price is available only for one-time products."
      },
      "OrdersCreate": {
        "type": "object",
        "required": [
          "site"
        ],
        "properties": {
          "billing_period": {
            "type": "string",
            "enum": [
              "monthly",
              "weekly",
              "every_four_weeks",
              "every_three_months",
              "every_six_months",
              "yearly"
            ]
          },
          "payment_method": {
            "type": "string",
            "enum": [
              "card",
              "bacs_debit",
              "sepa_debit",
              "au_becs_debit",
              "us_bank_account"
            ]
          },
          "purchase_order_number": {
            "type": "string",
            "description": "The purchase order number associated with the order."
          },
          "starts_at": {
            "type": "string",
            "description": "The start date (`date-time` format) or `now` to indicate the order should start immediately after finalization."
          },
          "site": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "The site ID where the order is being created."
              }
            },
            "additionalProperties": false
          },
          "emails": {
            "type": "object",
            "required": [],
            "properties": {
              "booking_confirmation": {
                "type": "boolean",
                "description": "If true, a booking confirmation email will be sent to the contact.",
                "default": true,
                "deprecated": true
              },
              "move_in_day": {
                "type": "boolean",
                "description": "If true, a move-in day email will be sent to the contact.",
                "default": true,
                "deprecated": true
              },
              "payment_details": {
                "type": "boolean",
                "description": "If true, an email with a link to complete payment will be sent to the contact when the order is finalized.",
                "default": false,
                "deprecated": true
              }
            },
            "additionalProperties": false,
            "description": "Configure email notifications for the order. **Deprecated**, use the `email_notifications` field.",
            "deprecated": true
          },
          "email_notifications": {
            "type": "object",
            "required": [],
            "properties": {
              "booking_confirmation": {
                "type": "boolean",
                "description": "If true, a booking confirmation email will be sent to the contact.",
                "default": true
              },
              "move_in_day": {
                "type": "boolean",
                "description": "If true, a move-in day email will be sent to the contact.",
                "default": true
              },
              "payment_details": {
                "type": "boolean",
                "description": "If true, an email with a link to complete payment will be sent to the contact when the order is finalized.",
                "default": false
              }
            },
            "additionalProperties": false,
            "description": "Configure email notifications for the order"
          },
          "contact": {
            "type": "object",
            "required": [],
            "properties": {
              "id": {
                "type": "string",
                "description": "The contact's ID. If provided, other contact fields will be used to update the contact."
              },
              "email": {
                "type": "string",
                "format": "email",
                "description": "The contact's email address"
              },
              "full_name": {
                "type": "string",
                "description": "The contact's name"
              },
              "phone_number": {
                "type": "string",
                "description": "The contact's phone number"
              },
              "tax_id": {
                "type": "string",
                "maxLength": 30,
                "description": "The contact's tax ID"
              },
              "company_registration_number": {
                "type": "string",
                "maxLength": 30,
                "description": "The contact's company registration number"
              },
              "type": {
                "type": "string",
                "description": "The type of contact",
                "enum": [
                  "domestic",
                  "company",
                  "student",
                  "charity",
                  "local_authority"
                ]
              },
              "source": {
                "type": "string",
                "description": "The source of the contact data",
                "enum": [
                  "pre_open",
                  "incomplete_booking",
                  "registered_interest",
                  "price_interest",
                  "quotation_request",
                  "booking",
                  "popup",
                  "external_enquiry",
                  "phone",
                  "walkin",
                  "import",
                  "other"
                ]
              },
              "marketing_source": {
                "type": "string",
                "description": "What channel did the contact find us through",
                "enum": [
                  "used_before",
                  "recommendation",
                  "received_leaflet",
                  "seen_building_signs",
                  "seen_advert",
                  "facebook_marketplace",
                  "google_search",
                  "other_online_search",
                  "social_media",
                  "email",
                  "radio",
                  "other"
                ]
              },
              "use_case": {
                "type": "string",
                "description": "Why does the contact require storage",
                "enum": [
                  "business_needs",
                  "moving_home",
                  "more_space",
                  "refurb",
                  "travelling",
                  "other"
                ]
              },
              "address": {
                "type": "object",
                "required": [],
                "properties": {
                  "line_1": {
                    "type": "string",
                    "description": "Line 1"
                  },
                  "line_2": {
                    "type": "string",
                    "description": "Line 2"
                  },
                  "city": {
                    "type": "string",
                    "description": "City"
                  },
                  "state": {
                    "type": "string",
                    "description": "State or province"
                  },
                  "country_alpha2": {
                    "type": "string",
                    "description": "Country Alpha 2",
                    "enum": [
                      "AD",
                      "AE",
                      "AF",
                      "AG",
                      "AI",
                      "AL",
                      "AM",
                      "AO",
                      "AQ",
                      "AR",
                      "AS",
                      "AT",
                      "AU",
                      "AW",
                      "AX",
                      "AZ",
                      "BA",
                      "BB",
                      "BD",
                      "BE",
                      "BF",
                      "BG",
                      "BH",
                      "BI",
                      "BJ",
                      "BL",
                      "BM",
                      "BN",
                      "BO",
                      "BQ",
                      "BR",
                      "BS",
                      "BT",
                      "BV",
                      "BW",
                      "BY",
                      "BZ",
                      "CA",
                      "CC",
                      "CD",
                      "CF",
                      "CG",
                      "CH",
                      "CI",
                      "CK",
                      "CL",
                      "CM",
                      "CN",
                      "CO",
                      "CR",
                      "CU",
                      "CV",
                      "CW",
                      "CX",
                      "CY",
                      "CZ",
                      "DE",
                      "DJ",
                      "DK",
                      "DM",
                      "DO",
                      "DZ",
                      "EC",
                      "EE",
                      "EG",
                      "EH",
                      "ER",
                      "ES",
                      "ET",
                      "FI",
                      "FJ",
                      "FK",
                      "FM",
                      "FO",
                      "FR",
                      "GA",
                      "GB",
                      "GD",
                      "GE",
                      "GF",
                      "GG",
                      "GH",
                      "GI",
                      "GL",
                      "GM",
                      "GN",
                      "GP",
                      "GQ",
                      "GR",
                      "GS",
                      "GT",
                      "GU",
                      "GW",
                      "GY",
                      "HK",
                      "HM",
                      "HN",
                      "HR",
                      "HT",
                      "HU",
                      "ID",
                      "IE",
                      "IL",
                      "IM",
                      "IN",
                      "IO",
                      "IQ",
                      "IR",
                      "IS",
                      "IT",
                      "JE",
                      "JM",
                      "JO",
                      "JP",
                      "KE",
                      "KG",
                      "KH",
                      "KI",
                      "KM",
                      "KN",
                      "KP",
                      "KR",
                      "KW",
                      "KY",
                      "KZ",
                      "LA",
                      "LB",
                      "LC",
                      "LI",
                      "LK",
                      "LR",
                      "LS",
                      "LT",
                      "LU",
                      "LV",
                      "LY",
                      "MA",
                      "MC",
                      "MD",
                      "ME",
                      "MF",
                      "MG",
                      "MH",
                      "MK",
                      "ML",
                      "MM",
                      "MN",
                      "MO",
                      "MP",
                      "MQ",
                      "MR",
                      "MS",
                      "MT",
                      "MU",
                      "MV",
                      "MW",
                      "MX",
                      "MY",
                      "MZ",
                      "NA",
                      "NC",
                      "NE",
                      "NF",
                      "NG",
                      "NI",
                      "NL",
                      "NO",
                      "NP",
                      "NR",
                      "NU",
                      "NZ",
                      "OM",
                      "PA",
                      "PE",
                      "PF",
                      "PG",
                      "PH",
                      "PK",
                      "PL",
                      "PM",
                      "PN",
                      "PR",
                      "PS",
                      "PT",
                      "PW",
                      "PY",
                      "QA",
                      "RE",
                      "RO",
                      "RS",
                      "RU",
                      "RW",
                      "SA",
                      "SB",
                      "SC",
                      "SD",
                      "SE",
                      "SG",
                      "SH",
                      "SI",
                      "SJ",
                      "SK",
                      "SL",
                      "SM",
                      "SN",
                      "SO",
                      "SR",
                      "SS",
                      "ST",
                      "SV",
                      "SX",
                      "SY",
                      "SZ",
                      "TC",
                      "TD",
                      "TF",
                      "TG",
                      "TH",
                      "TJ",
                      "TK",
                      "TL",
                      "TM",
                      "TN",
                      "TO",
                      "TR",
                      "TT",
                      "TV",
                      "TW",
                      "TZ",
                      "UA",
                      "UG",
                      "UM",
                      "US",
                      "UY",
                      "UZ",
                      "VA",
                      "VC",
                      "VE",
                      "VG",
                      "VI",
                      "VN",
                      "VU",
                      "WF",
                      "WS",
                      "YE",
                      "YT",
                      "ZA",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "postal_code": {
                    "type": "string",
                    "description": "Postal code"
                  }
                },
                "additionalProperties": false,
                "description": "Address"
              }
            },
            "additionalProperties": false
          },
          "coupon": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "ID of the coupon that should be applied to the order"
              }
            },
            "additionalProperties": false
          },
          "contract_template": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "ID of the contract template that should be used for the order"
              }
            },
            "additionalProperties": false
          },
          "line_items": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "type",
                "quantity",
                "price"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "unit_type",
                    "protection",
                    "product",
                    "security_deposit"
                  ]
                },
                "quantity": {
                  "type": "integer"
                },
                "price": {
                  "type": "object",
                  "required": [
                    "amount"
                  ],
                  "properties": {
                    "amount": {
                      "type": "integer"
                    }
                  },
                  "additionalProperties": false
                },
                "item": {
                  "type": "object",
                  "required": [
                    "id"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          },
          "finalize": {
            "type": "object",
            "required": [
              "cancel_redirect_url"
            ],
            "properties": {
              "cancel_redirect_url": {
                "type": "string",
                "description": "The URL to redirect the contact to if they cancel the payment, or `default` to use the storefront payment URL.",
                "oneOf": [
                  {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^https://"
                  },
                  {
                    "const": "default"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "When this object is present, the order will be finalized, and the Payment URL will be returned. The order won't be stored if the finalization fails (for example, due to validation)."
          },
          "metadata": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "maxProperties": 20,
            "description": "Set of key-value pairs for storing additional information on the order. [Learn more about metadata.](https://docs.stora.co/2025-09/guides/metadata)"
          }
        },
        "additionalProperties": false,
        "description": "Create an order"
      },
      "OrdersFinalize": {
        "type": "object",
        "required": [
          "finalize"
        ],
        "properties": {
          "finalize": {
            "type": "object",
            "required": [
              "cancel_redirect_url"
            ],
            "properties": {
              "cancel_redirect_url": {
                "type": "string",
                "description": "The URL to redirect the contact to if they cancel the payment, or `default` to use the storefront payment URL.",
                "oneOf": [
                  {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^https://"
                  },
                  {
                    "const": "default"
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false,
        "description": "Create an order"
      },
      "OrdersLineItemsCreate": {
        "type": "object",
        "required": [
          "type",
          "quantity",
          "price"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "unit_type",
              "protection",
              "product",
              "security_deposit"
            ]
          },
          "quantity": {
            "type": "integer"
          },
          "price": {
            "type": "object",
            "required": [
              "amount"
            ],
            "properties": {
              "amount": {
                "type": "integer"
              }
            },
            "additionalProperties": false
          },
          "item": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false,
        "description": "Create a line item"
      },
      "OrdersLineItemsUpdate": {
        "type": "object",
        "required": [],
        "properties": {
          "quantity": {
            "type": "integer"
          },
          "price": {
            "type": "object",
            "required": [
              "amount"
            ],
            "properties": {
              "amount": {
                "type": "integer"
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false,
        "description": "Update a line item"
      },
      "OrdersLineItemUpdate": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "To keep an existing line item unchanged, include its ID only."
          },
          "quantity": {
            "$ref": "#/components/schemas/OrdersLineItemsUpdate/properties/quantity"
          },
          "price": {
            "$ref": "#/components/schemas/OrdersLineItemsUpdate/properties/price"
          }
        },
        "additionalProperties": false,
        "description": "Update a line item"
      },
      "OrdersUpdate": {
        "type": "object",
        "required": [],
        "properties": {
          "billing_period": {
            "type": "string",
            "enum": [
              "monthly",
              "weekly",
              "every_four_weeks",
              "every_three_months",
              "every_six_months",
              "yearly"
            ],
            "description": "Changing the billing period **will not update prices** for line items. Ensure that line item prices are correct for the new billing period."
          },
          "payment_method": {
            "type": "string",
            "enum": [
              "card",
              "bacs_debit",
              "sepa_debit",
              "au_becs_debit",
              "us_bank_account"
            ]
          },
          "purchase_order_number": {
            "type": "string",
            "description": "The purchase order number associated with the order."
          },
          "starts_at": {
            "type": "string",
            "description": "The start date (`date-time` format) or `now` to indicate the order should start immediately after finalization."
          },
          "emails": {
            "type": "object",
            "required": [],
            "properties": {
              "booking_confirmation": {
                "type": "boolean",
                "description": "If true, a booking confirmation email will be sent to the contact.",
                "deprecated": true
              },
              "move_in_day": {
                "type": "boolean",
                "description": "If true, a move-in day email will be sent to the contact.",
                "deprecated": true
              },
              "payment_details": {
                "type": "boolean",
                "description": "If true, an email with a link to complete payment will be sent to the contact when the order is finalized.",
                "deprecated": true
              }
            },
            "additionalProperties": false,
            "description": "Configure email notifications for the order. **Deprecated**, use the `email_notifications` field.",
            "deprecated": true
          },
          "email_notifications": {
            "type": "object",
            "required": [],
            "properties": {
              "booking_confirmation": {
                "type": "boolean",
                "description": "If true, a booking confirmation email will be sent to the contact."
              },
              "move_in_day": {
                "type": "boolean",
                "description": "If true, a move-in day email will be sent to the contact."
              },
              "payment_details": {
                "type": "boolean",
                "description": "If true, an email with a link to complete payment will be sent to the contact when the order is finalized."
              }
            },
            "additionalProperties": false,
            "description": "Configure email notifications for the order"
          },
          "contact": {
            "type": "object",
            "required": [],
            "properties": {
              "id": {
                "type": "string",
                "description": "The contact's ID. If provided, other contact fields will be used to update the contact."
              },
              "email": {
                "type": "string",
                "format": "email",
                "description": "The contact's email address"
              },
              "full_name": {
                "type": "string",
                "description": "The contact's name"
              },
              "phone_number": {
                "type": "string",
                "description": "The contact's phone number"
              },
              "tax_id": {
                "type": "string",
                "maxLength": 30,
                "description": "The contact's tax ID"
              },
              "company_registration_number": {
                "type": "string",
                "maxLength": 30,
                "description": "The contact's company registration number"
              },
              "type": {
                "type": "string",
                "description": "The type of contact",
                "enum": [
                  "domestic",
                  "company",
                  "student",
                  "charity",
                  "local_authority"
                ]
              },
              "source": {
                "type": "string",
                "description": "The source of the contact data",
                "enum": [
                  "pre_open",
                  "incomplete_booking",
                  "registered_interest",
                  "price_interest",
                  "quotation_request",
                  "booking",
                  "popup",
                  "external_enquiry",
                  "phone",
                  "walkin",
                  "import",
                  "other"
                ]
              },
              "marketing_source": {
                "type": "string",
                "description": "What channel did the contact find us through",
                "enum": [
                  "used_before",
                  "recommendation",
                  "received_leaflet",
                  "seen_building_signs",
                  "seen_advert",
                  "facebook_marketplace",
                  "google_search",
                  "other_online_search",
                  "social_media",
                  "email",
                  "radio",
                  "other"
                ]
              },
              "use_case": {
                "type": "string",
                "description": "Why does the contact require storage",
                "enum": [
                  "business_needs",
                  "moving_home",
                  "more_space",
                  "refurb",
                  "travelling",
                  "other"
                ]
              },
              "address": {
                "type": "object",
                "required": [],
                "properties": {
                  "line_1": {
                    "type": "string",
                    "description": "Line 1"
                  },
                  "line_2": {
                    "type": "string",
                    "description": "Line 2"
                  },
                  "city": {
                    "type": "string",
                    "description": "City"
                  },
                  "state": {
                    "type": "string",
                    "description": "State or province"
                  },
                  "country_alpha2": {
                    "type": "string",
                    "description": "Country Alpha 2",
                    "enum": [
                      "AD",
                      "AE",
                      "AF",
                      "AG",
                      "AI",
                      "AL",
                      "AM",
                      "AO",
                      "AQ",
                      "AR",
                      "AS",
                      "AT",
                      "AU",
                      "AW",
                      "AX",
                      "AZ",
                      "BA",
                      "BB",
                      "BD",
                      "BE",
                      "BF",
                      "BG",
                      "BH",
                      "BI",
                      "BJ",
                      "BL",
                      "BM",
                      "BN",
                      "BO",
                      "BQ",
                      "BR",
                      "BS",
                      "BT",
                      "BV",
                      "BW",
                      "BY",
                      "BZ",
                      "CA",
                      "CC",
                      "CD",
                      "CF",
                      "CG",
                      "CH",
                      "CI",
                      "CK",
                      "CL",
                      "CM",
                      "CN",
                      "CO",
                      "CR",
                      "CU",
                      "CV",
                      "CW",
                      "CX",
                      "CY",
                      "CZ",
                      "DE",
                      "DJ",
                      "DK",
                      "DM",
                      "DO",
                      "DZ",
                      "EC",
                      "EE",
                      "EG",
                      "EH",
                      "ER",
                      "ES",
                      "ET",
                      "FI",
                      "FJ",
                      "FK",
                      "FM",
                      "FO",
                      "FR",
                      "GA",
                      "GB",
                      "GD",
                      "GE",
                      "GF",
                      "GG",
                      "GH",
                      "GI",
                      "GL",
                      "GM",
                      "GN",
                      "GP",
                      "GQ",
                      "GR",
                      "GS",
                      "GT",
                      "GU",
                      "GW",
                      "GY",
                      "HK",
                      "HM",
                      "HN",
                      "HR",
                      "HT",
                      "HU",
                      "ID",
                      "IE",
                      "IL",
                      "IM",
                      "IN",
                      "IO",
                      "IQ",
                      "IR",
                      "IS",
                      "IT",
                      "JE",
                      "JM",
                      "JO",
                      "JP",
                      "KE",
                      "KG",
                      "KH",
                      "KI",
                      "KM",
                      "KN",
                      "KP",
                      "KR",
                      "KW",
                      "KY",
                      "KZ",
                      "LA",
                      "LB",
                      "LC",
                      "LI",
                      "LK",
                      "LR",
                      "LS",
                      "LT",
                      "LU",
                      "LV",
                      "LY",
                      "MA",
                      "MC",
                      "MD",
                      "ME",
                      "MF",
                      "MG",
                      "MH",
                      "MK",
                      "ML",
                      "MM",
                      "MN",
                      "MO",
                      "MP",
                      "MQ",
                      "MR",
                      "MS",
                      "MT",
                      "MU",
                      "MV",
                      "MW",
                      "MX",
                      "MY",
                      "MZ",
                      "NA",
                      "NC",
                      "NE",
                      "NF",
                      "NG",
                      "NI",
                      "NL",
                      "NO",
                      "NP",
                      "NR",
                      "NU",
                      "NZ",
                      "OM",
                      "PA",
                      "PE",
                      "PF",
                      "PG",
                      "PH",
                      "PK",
                      "PL",
                      "PM",
                      "PN",
                      "PR",
                      "PS",
                      "PT",
                      "PW",
                      "PY",
                      "QA",
                      "RE",
                      "RO",
                      "RS",
                      "RU",
                      "RW",
                      "SA",
                      "SB",
                      "SC",
                      "SD",
                      "SE",
                      "SG",
                      "SH",
                      "SI",
                      "SJ",
                      "SK",
                      "SL",
                      "SM",
                      "SN",
                      "SO",
                      "SR",
                      "SS",
                      "ST",
                      "SV",
                      "SX",
                      "SY",
                      "SZ",
                      "TC",
                      "TD",
                      "TF",
                      "TG",
                      "TH",
                      "TJ",
                      "TK",
                      "TL",
                      "TM",
                      "TN",
                      "TO",
                      "TR",
                      "TT",
                      "TV",
                      "TW",
                      "TZ",
                      "UA",
                      "UG",
                      "UM",
                      "US",
                      "UY",
                      "UZ",
                      "VA",
                      "VC",
                      "VE",
                      "VG",
                      "VI",
                      "VN",
                      "VU",
                      "WF",
                      "WS",
                      "YE",
                      "YT",
                      "ZA",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "postal_code": {
                    "type": "string",
                    "description": "Postal code"
                  }
                },
                "additionalProperties": false,
                "description": "Address"
              }
            },
            "additionalProperties": false
          },
          "coupon": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "ID of the coupon that should be applied to the order."
              }
            },
            "additionalProperties": false,
            "description": "To remove the association, set this to `null`."
          },
          "contract_template": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "ID of the contract template that should be used for the order."
              }
            },
            "additionalProperties": false,
            "description": "To remove the association, set this to `null`."
          },
          "line_items": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/OrdersLineItemUpdate"
                },
                {
                  "$ref": "#/components/schemas/OrdersLineItemsCreate"
                }
              ]
            },
            "description": "Skip this property (do not include it inside the request) if you don't want to update the line items. Existing Line Items not included here in the update request will be removed. To remove all line items, provide an empty array."
          },
          "metadata": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "maxProperties": 20,
            "description": "Set of key-value pairs for storing additional information on the order. [Learn more about metadata.](https://docs.stora.co/2025-09/guides/metadata)"
          }
        },
        "additionalProperties": false,
        "description": "Update an order"
      },
      "TasksCreate": {
        "type": "object",
        "required": [
          "title"
        ],
        "properties": {
          "title": {
            "type": "string",
            "description": "The title of the task"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Optional description for the task"
          },
          "due_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "The due date and time for the task"
          },
          "site": {
            "type": [
              "object",
              "null"
            ],
            "required": [],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^site_",
                "description": "The ID of the site associated with the task"
              }
            },
            "additionalProperties": false
          },
          "assignee": {
            "type": [
              "object",
              "null"
            ],
            "required": [],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^staff_",
                "description": "The ID of the staff member assigned to the task"
              }
            },
            "additionalProperties": false
          },
          "metadata": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "maxProperties": 20,
            "description": "Set of key-value pairs for storing additional information on the task. [Learn more about metadata.](https://docs.stora.co/2025-09/guides/metadata)"
          },
          "resource": {
            "oneOf": [
              {
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^unit_",
                    "description": "The ID of the unit associated with the task"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^con_",
                    "description": "The ID of the contact associated with the task"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^sub_",
                    "description": "The ID of the subscription associated with the task"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Create Task Request"
      },
      "TasksUpdate": {
        "type": "object",
        "required": [],
        "properties": {
          "title": {
            "type": "string",
            "description": "The title of the task"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Optional description for the task, to remove existing description set to null"
          },
          "due_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "The due date and time for the task, to remove existing due date set to null"
          },
          "site": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^site_",
                "description": "The ID of the site associated with the task"
              }
            },
            "additionalProperties": false,
            "description": "To remove the association, set site to null"
          },
          "assignee": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^staff_",
                "description": "The ID of the staff member assigned to the task, to remove the association, set assignee to null"
              }
            },
            "additionalProperties": false
          },
          "metadata": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "maxProperties": 20,
            "description": "Set of key-value pairs for storing additional information on the task. [Learn more about metadata.](https://docs.stora.co/2025-09/guides/metadata)"
          },
          "resource": {
            "oneOf": [
              {
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^unit_",
                    "description": "The ID of the unit associated with the task"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^con_",
                    "description": "The ID of the contact associated with the task"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^sub_",
                    "description": "The ID of the subscription associated with the task"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Update Task Request"
      },
      "TimelineEventsCreate": {
        "type": "object",
        "required": [
          "source",
          "template"
        ],
        "properties": {
          "source": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^tsrc_",
                "description": "The ID of the source"
              }
            },
            "additionalProperties": false
          },
          "template": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^aetpl_",
                "description": "The ID of the template"
              }
            },
            "additionalProperties": false
          },
          "contact": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^con_"
              }
            },
            "additionalProperties": false
          },
          "site": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^site_"
              }
            },
            "additionalProperties": false
          },
          "subscription": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^sub_"
              }
            },
            "additionalProperties": false
          },
          "tenancy": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^ten_"
              }
            },
            "additionalProperties": false
          },
          "unit": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^unit_"
              }
            },
            "additionalProperties": false
          },
          "invoice": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^inv_"
              }
            },
            "additionalProperties": false
          },
          "unit_type": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^utype_"
              }
            },
            "additionalProperties": false
          },
          "created_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "external": {
            "type": [
              "object",
              "null"
            ],
            "required": [],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "url": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "uri",
                "pattern": "^https://"
              }
            },
            "additionalProperties": false
          },
          "variables": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "maxProperties": 20
          }
        },
        "additionalProperties": false,
        "description": "Create Event Request"
      },
      "TimelineEventsUpdate": {
        "type": "object",
        "required": [],
        "properties": {
          "source": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^tsrc_",
                "description": "The ID of the source"
              }
            },
            "additionalProperties": false
          },
          "template": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^aetpl_",
                "description": "The ID of the template"
              }
            },
            "additionalProperties": false
          },
          "contact": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^con_"
              }
            },
            "additionalProperties": false
          },
          "site": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^site_"
              }
            },
            "additionalProperties": false
          },
          "subscription": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^sub_"
              }
            },
            "additionalProperties": false
          },
          "tenancy": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^ten_"
              }
            },
            "additionalProperties": false
          },
          "unit": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^unit_"
              }
            },
            "additionalProperties": false
          },
          "invoice": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^inv_"
              }
            },
            "additionalProperties": false
          },
          "unit_type": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^utype_"
              }
            },
            "additionalProperties": false
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "external": {
            "type": [
              "object",
              "null"
            ],
            "required": [],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "url": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "uri",
                "pattern": "^https://"
              }
            },
            "additionalProperties": false
          },
          "variables": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "maxProperties": 20
          }
        },
        "additionalProperties": false,
        "description": "Update Event Request"
      },
      "UnitsGrantAccess": {
        "type": "object",
        "required": [
          "tenancy_id"
        ],
        "properties": {
          "tenancy_id": {
            "type": "string",
            "pattern": "^ten_",
            "description": "The ID of the tenancy to grant access for"
          }
        },
        "additionalProperties": false,
        "description": "Grant Access Unit Request"
      },
      "UnitsOverlock": {
        "type": "object",
        "required": [
          "contact_id"
        ],
        "properties": {
          "contact_id": {
            "type": "string",
            "description": "The contact ID to overlock occupied units for"
          }
        },
        "additionalProperties": false,
        "description": "Overlock Units Request"
      },
      "UnitsRemoveOverlock": {
        "type": "object",
        "required": [
          "contact_id"
        ],
        "properties": {
          "contact_id": {
            "type": "string",
            "description": "The contact ID to remove overlock from overlocked units for"
          }
        },
        "additionalProperties": false,
        "description": "Remove Overlock Units Request"
      },
      "UnitsReserve": {
        "type": "object",
        "required": [
          "tenancy_id"
        ],
        "properties": {
          "tenancy_id": {
            "type": "string",
            "pattern": "^ten_",
            "description": "The ID of the tenancy to reserve the unit for"
          }
        },
        "additionalProperties": false,
        "description": "Reserve Unit Request"
      },
      "WebhookEndpointsCreate": {
        "type": "object",
        "required": [
          "name",
          "api_version",
          "url",
          "event_types"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the webhook endpoint"
          },
          "api_version": {
            "type": "string",
            "enum": [
              "2025-09"
            ],
            "description": "The API version for the webhook endpoint"
          },
          "url": {
            "type": "string",
            "format": "uri",
            "pattern": "^https://",
            "description": "The URL to which the webhook payloads will be delivered"
          },
          "event_types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "contact.churned",
                "contact.converted",
                "contact.created",
                "contact.updated",
                "contract.created",
                "contract.signed",
                "coupon.created",
                "coupon.updated",
                "credit_note.created",
                "credit_note.updated",
                "deal.created",
                "deal.lost",
                "deal.reopened",
                "deal.stage_changed",
                "deal.updated",
                "deal.won",
                "identity_verification.cancelled",
                "identity_verification.failed",
                "identity_verification.processing",
                "identity_verification.succeeded",
                "invoice.created",
                "invoice.finalized",
                "invoice.marked_uncollectible",
                "invoice.paid",
                "invoice.updated",
                "note.created",
                "note.updated",
                "order.abandoned",
                "order.completed",
                "order.created",
                "order.finalized",
                "protection_level.created",
                "protection_level.updated",
                "subscription.cancelled",
                "subscription.created",
                "subscription.ended",
                "subscription.resumed",
                "subscription.started",
                "task.completed",
                "task.created",
                "task.reopened",
                "task.updated",
                "tenancy.auto_reservation.failed",
                "tenancy.auto_reservation.partially_succeeded",
                "tenancy.auto_reservation.succeeded",
                "tenancy.created",
                "tenancy.started",
                "unit.available",
                "unit.created",
                "unit.deallocated",
                "unit.occupied",
                "unit.overlocked",
                "unit.repossessed",
                "unit.reserved",
                "unit.unavailable",
                "unit.updated",
                "unit_type.created",
                "unit_type.updated"
              ]
            },
            "description": "A list of event types that the webhook endpoint will listen to",
            "minItems": 1
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Optional description for the webhook endpoint"
          },
          "metadata": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "maxProperties": 20,
            "description": "Set of key-value pairs for storing additional information on the webhook endpoint. [Learn more about metadata.](https://docs.stora.co/2025-09/guides/metadata)"
          }
        },
        "additionalProperties": false,
        "description": "Create Webhook Endpoint Request"
      },
      "WebhookEndpointsUpdate": {
        "type": "object",
        "required": [],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the webhook endpoint"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Optional description for the webhook endpoint"
          },
          "url": {
            "type": "string",
            "format": "uri",
            "pattern": "^https://",
            "description": "The URL to which the webhook payloads will be delivered"
          },
          "event_types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "contact.churned",
                "contact.converted",
                "contact.created",
                "contact.updated",
                "contract.created",
                "contract.signed",
                "coupon.created",
                "coupon.updated",
                "credit_note.created",
                "credit_note.updated",
                "deal.created",
                "deal.lost",
                "deal.reopened",
                "deal.stage_changed",
                "deal.updated",
                "deal.won",
                "identity_verification.cancelled",
                "identity_verification.failed",
                "identity_verification.processing",
                "identity_verification.succeeded",
                "invoice.created",
                "invoice.finalized",
                "invoice.marked_uncollectible",
                "invoice.paid",
                "invoice.updated",
                "note.created",
                "note.updated",
                "order.abandoned",
                "order.completed",
                "order.created",
                "order.finalized",
                "protection_level.created",
                "protection_level.updated",
                "subscription.cancelled",
                "subscription.created",
                "subscription.ended",
                "subscription.resumed",
                "subscription.started",
                "task.completed",
                "task.created",
                "task.reopened",
                "task.updated",
                "tenancy.auto_reservation.failed",
                "tenancy.auto_reservation.partially_succeeded",
                "tenancy.auto_reservation.succeeded",
                "tenancy.created",
                "tenancy.started",
                "unit.available",
                "unit.created",
                "unit.deallocated",
                "unit.occupied",
                "unit.overlocked",
                "unit.repossessed",
                "unit.reserved",
                "unit.unavailable",
                "unit.updated",
                "unit_type.created",
                "unit_type.updated"
              ]
            },
            "description": "A list of event types that the webhook endpoint will listen to",
            "minItems": 1
          },
          "metadata": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "maxProperties": 20,
            "description": "Set of key-value pairs for storing additional information on the webhook endpoint. [Learn more about metadata.](https://docs.stora.co/2025-09/guides/metadata)"
          }
        },
        "additionalProperties": false,
        "description": "Update Webhook Endpoint Request"
      }
    }
  }
}