{
  "openapi" : "3.1.0",
  "info" : {
    "title" : "Wink API",
    "description" : "Welcome to the Wink API — a programmer-friendly way to manage, sell and book travel\ninventory on the Wink platform. See the **Overview** page (under **API**) for the full\nintroduction, intended audience, testing, and versioning.\n# Webhooks API\nManage webhook subscriptions for a managing entity — endpoints, subscribed event types, signing\nsecrets — and inspect the outbox: events addressed to the entity, per-endpoint deliveries and their\nattempts, with redelivery, cancel and test-event operations.\n\nThe **Webhooks** section below documents every event Wink POSTs to your endpoint: the JSON body\n(`WebhookEnvelope` with an event-specific `object`), the `Wink-*` headers, the HMAC signature scheme\nand the retry policy.\n\n",
    "contact" : {
      "name" : "Contact",
      "email" : "hi@wink.travel"
    },
    "version" : "0.0.0-TEST",
    "x-logo" : {
      "backgroundColor" : "#FFFFFF",
      "altText" : "wink",
      "url" : "https://res.cloudinary.com/traveliko/image/upload/c_scale,h_129/v1653285543/wink/logo_text_white.svg"
    }
  },
  "externalDocs" : {
    "description" : "Documentation",
    "url" : "https://wink.travel/getting-started/how-to-use/"
  },
  "servers" : [ {
    "url" : "https://api.wink.travel",
    "description" : "Endpoint"
  } ],
  "tags" : [ {
    "name" : "Webhook",
    "description" : "Use the Webhook API to create webhooks to interface with the TripPay API.",
    "externalDocs" : {
      "description" : "Try it in Scalar",
      "url" : "https://api.wink.travel/scalar#webhooks/tag/webhook"
    }
  }, {
    "name" : "Webhook deliveries",
    "externalDocs" : {
      "description" : "Try it in Scalar",
      "url" : "https://api.wink.travel/scalar#webhooks/tag/webhook-deliveries"
    }
  }, {
    "name" : "Webhook events",
    "externalDocs" : {
      "description" : "Try it in Scalar",
      "url" : "https://api.wink.travel/scalar#webhooks/tag/webhook-events"
    }
  } ],
  "paths" : {
    "/api/managing-entity/{managingEntityIdentifier}/webhook/{id}" : {
      "get" : {
        "tags" : [ "Webhook" ],
        "summary" : "Show",
        "description" : "Returns a single webhook by its identifier within the given managing entity.",
        "operationId" : "load-webhook",
        "parameters" : [ {
          "name" : "managingEntityIdentifier",
          "in" : "path",
          "description" : "Identifier of the managing entity that owns the webhook",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69"
        }, {
          "name" : "id",
          "in" : "path",
          "description" : "Unique webhook identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47"
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "default" : "2.0.0",
            "enum" : [ "2.0" ]
          }
        }, {
          "name" : "Accept",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "enum" : [ "application/json" ],
            "default" : null
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request — missing or invalid request parameter or body",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized — authentication is required or the session has expired",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden — authenticated but lacking the required permission or scope",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "404" : {
            "description" : "Not Found — the requested resource does not exist",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "405" : {
            "description" : "Method Not Allowed — the HTTP verb is not supported on this endpoint",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "409" : {
            "description" : "Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "415" : {
            "description" : "Unsupported Media Type — use application/json",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error — an unexpected failure occurred on the server",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "503" : {
            "description" : "Service Unavailable — a downstream dependency is unreachable",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "200" : {
            "description" : "Webhook matching the given identifier",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WebhookLightweight"
                },
                "example" : {
                  "createdDate" : "2026-01-14T09:30:00",
                  "enabled" : true,
                  "eventList" : [ "booking.created" ],
                  "eventUrl" : "https://api.example.com/webhooks/wink/events",
                  "id" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
                  "lastUpdate" : "2026-02-03T16:45:12",
                  "name" : "Booking confirmation sync",
                  "ownerIdentifier" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
                  "ownerName" : "The Siam Residences, Bangkok",
                  "userIdentifier" : "c3a9f2e1-8b4d-4c7a-a1e2-5f0b6d9e2c84",
                  "version" : 3
                }
              }
            }
          }
        },
        "security" : [ {
          "oauth2ClientCredentials" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "Webhook" ],
        "summary" : "Delete",
        "description" : "Permanently removes the webhook identified by its id from the managing entity.",
        "operationId" : "delete-webhook",
        "parameters" : [ {
          "name" : "managingEntityIdentifier",
          "in" : "path",
          "description" : "Identifier of the managing entity that owns the webhook",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69"
        }, {
          "name" : "id",
          "in" : "path",
          "description" : "Unique webhook identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47"
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "default" : "2.0.0",
            "enum" : [ "2.0" ]
          }
        }, {
          "name" : "Accept",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "enum" : [ "application/json" ],
            "default" : null
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request — missing or invalid request parameter or body",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized — authentication is required or the session has expired",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden — authenticated but lacking the required permission or scope",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "404" : {
            "description" : "Not Found — the requested resource does not exist",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "405" : {
            "description" : "Method Not Allowed — the HTTP verb is not supported on this endpoint",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "409" : {
            "description" : "Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "415" : {
            "description" : "Unsupported Media Type — use application/json",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error — an unexpected failure occurred on the server",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "503" : {
            "description" : "Service Unavailable — a downstream dependency is unreachable",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "200" : {
            "description" : "Webhook deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/RemoveEntryResponse"
                },
                "example" : {
                  "id" : "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
                  "message" : "Property marked as deleted. Can be restored within 30 days.",
                  "success" : true
                }
              }
            }
          }
        },
        "security" : [ {
          "oauth2ClientCredentials" : [ ]
        } ]
      },
      "patch" : {
        "tags" : [ "Webhook" ],
        "summary" : "Update",
        "description" : "Applies the supplied changes to an existing webhook identified by its id and returns the updated record.",
        "operationId" : "update-webhook",
        "parameters" : [ {
          "name" : "managingEntityIdentifier",
          "in" : "path",
          "description" : "Identifier of the managing entity that owns the webhook",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69"
        }, {
          "name" : "id",
          "in" : "path",
          "description" : "Unique webhook identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47"
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "default" : "2.0.0",
            "enum" : [ "2.0" ]
          }
        } ],
        "requestBody" : {
          "description" : "Updated webhook configuration with revised target callback URL and subscribed event types",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpsertWebhookRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request — missing or invalid request parameter or body",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized — authentication is required or the session has expired",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden — authenticated but lacking the required permission or scope",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "404" : {
            "description" : "Not Found — the requested resource does not exist",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "405" : {
            "description" : "Method Not Allowed — the HTTP verb is not supported on this endpoint",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "409" : {
            "description" : "Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "415" : {
            "description" : "Unsupported Media Type — use application/json",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error — an unexpected failure occurred on the server",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "503" : {
            "description" : "Service Unavailable — a downstream dependency is unreachable",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "200" : {
            "description" : "Updated webhook record",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WebhookLightweight"
                },
                "example" : {
                  "createdDate" : "2026-01-14T09:30:00",
                  "enabled" : true,
                  "eventList" : [ "booking.created" ],
                  "eventUrl" : "https://api.example.com/webhooks/wink/events",
                  "id" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
                  "lastUpdate" : "2026-02-03T16:45:12",
                  "name" : "Booking confirmation sync",
                  "ownerIdentifier" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
                  "ownerName" : "The Siam Residences, Bangkok",
                  "userIdentifier" : "c3a9f2e1-8b4d-4c7a-a1e2-5f0b6d9e2c84",
                  "version" : 3
                }
              }
            }
          }
        },
        "security" : [ {
          "oauth2ClientCredentials" : [ ]
        } ]
      }
    },
    "/api/managing-entity/{managingEntityIdentifier}/webhook/list" : {
      "get" : {
        "tags" : [ "Webhook" ],
        "summary" : "List",
        "description" : "Returns every webhook registered by the given managing entity.",
        "operationId" : "show-webhooks",
        "parameters" : [ {
          "name" : "managingEntityIdentifier",
          "in" : "path",
          "description" : "Identifier of the managing entity whose webhooks to list",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69"
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "default" : "2.0.0",
            "enum" : [ "2.0" ]
          }
        }, {
          "name" : "Accept",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "enum" : [ "application/json" ],
            "default" : null
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request — missing or invalid request parameter or body",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized — authentication is required or the session has expired",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden — authenticated but lacking the required permission or scope",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "404" : {
            "description" : "Not Found — the requested resource does not exist",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "405" : {
            "description" : "Method Not Allowed — the HTTP verb is not supported on this endpoint",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "409" : {
            "description" : "Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "415" : {
            "description" : "Unsupported Media Type — use application/json",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error — an unexpected failure occurred on the server",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "503" : {
            "description" : "Service Unavailable — a downstream dependency is unreachable",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "200" : {
            "description" : "Webhooks belonging to the managing entity",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/WebhookLightweight"
                  }
                },
                "example" : [ {
                  "createdDate" : "2026-01-14T09:30:00",
                  "enabled" : true,
                  "eventList" : [ "booking.created" ],
                  "eventUrl" : "https://api.example.com/webhooks/wink/events",
                  "id" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
                  "lastUpdate" : "2026-02-03T16:45:12",
                  "name" : "Booking confirmation sync",
                  "ownerIdentifier" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
                  "ownerName" : "The Siam Residences, Bangkok",
                  "userIdentifier" : "c3a9f2e1-8b4d-4c7a-a1e2-5f0b6d9e2c84",
                  "version" : 3
                } ]
              }
            }
          }
        },
        "security" : [ {
          "oauth2ClientCredentials" : [ ]
        } ]
      }
    },
    "/api/managing-entity/{managingEntityIdentifier}/webhook/event/{eventId}" : {
      "get" : {
        "tags" : [ "Webhook events" ],
        "summary" : "Show event",
        "description" : "One outbox event including the exact JSON body delivered to subscribers.",
        "operationId" : "load-event",
        "parameters" : [ {
          "name" : "managingEntityIdentifier",
          "in" : "path",
          "description" : "Managing entity",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69"
        }, {
          "name" : "eventId",
          "in" : "path",
          "description" : "Event identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47"
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "default" : "2.0.0",
            "enum" : [ "2.0" ]
          }
        }, {
          "name" : "Accept",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "enum" : [ "application/json" ],
            "default" : null
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request — missing or invalid request parameter or body",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized — authentication is required or the session has expired",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden — authenticated but lacking the required permission or scope",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "404" : {
            "description" : "Not Found — the requested resource does not exist",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "405" : {
            "description" : "Method Not Allowed — the HTTP verb is not supported on this endpoint",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "409" : {
            "description" : "Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "415" : {
            "description" : "Unsupported Media Type — use application/json",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error — an unexpected failure occurred on the server",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "503" : {
            "description" : "Service Unavailable — a downstream dependency is unreachable",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "200" : {
            "description" : "The event",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WebhookEventLightweight"
                },
                "example" : {
                  "family" : "booking",
                  "producer" : "inventory",
                  "type" : "booking.create"
                }
              }
            }
          }
        },
        "security" : [ {
          "oauth2ClientCredentials" : [ ]
        } ]
      }
    },
    "/api/managing-entity/{managingEntityIdentifier}/webhook/event/list" : {
      "get" : {
        "tags" : [ "Webhook" ],
        "summary" : "List events",
        "description" : "Returns the full set of subscribable event types as identifier/name pairs, so callers know which triggers a webhook can listen for.",
        "operationId" : "show-webhook-events",
        "parameters" : [ {
          "name" : "managingEntityIdentifier",
          "in" : "path",
          "description" : "Identifier of the managing entity in whose context the events are listed",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69"
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "default" : "2.0.0",
            "enum" : [ "2.0" ]
          }
        }, {
          "name" : "Accept",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "enum" : [ "application/json" ],
            "default" : null
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request — missing or invalid request parameter or body",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized — authentication is required or the session has expired",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden — authenticated but lacking the required permission or scope",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "404" : {
            "description" : "Not Found — the requested resource does not exist",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "405" : {
            "description" : "Method Not Allowed — the HTTP verb is not supported on this endpoint",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "409" : {
            "description" : "Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "415" : {
            "description" : "Unsupported Media Type — use application/json",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error — an unexpected failure occurred on the server",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "503" : {
            "description" : "Service Unavailable — a downstream dependency is unreachable",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "200" : {
            "description" : "Complete list of subscribable webhook event types",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/KeyValuePair"
                  }
                },
                "example" : [ {
                  "label" : "Hotel & Resort",
                  "value" : "HOTEL"
                } ]
              }
            }
          }
        },
        "security" : [ {
          "oauth2ClientCredentials" : [ ]
        } ]
      }
    },
    "/api/managing-entity/{managingEntityIdentifier}/webhook/delivery/{deliveryId}" : {
      "get" : {
        "tags" : [ "Webhook deliveries" ],
        "summary" : "Show delivery",
        "description" : "One delivery, including its full attempt history.",
        "operationId" : "load-delivery",
        "parameters" : [ {
          "name" : "managingEntityIdentifier",
          "in" : "path",
          "description" : "Managing entity",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69"
        }, {
          "name" : "deliveryId",
          "in" : "path",
          "description" : "Delivery identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47"
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "default" : "2.0.0",
            "enum" : [ "2.0" ]
          }
        }, {
          "name" : "Accept",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "enum" : [ "application/json" ],
            "default" : null
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request — missing or invalid request parameter or body",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized — authentication is required or the session has expired",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden — authenticated but lacking the required permission or scope",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "404" : {
            "description" : "Not Found — the requested resource does not exist",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "405" : {
            "description" : "Method Not Allowed — the HTTP verb is not supported on this endpoint",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "409" : {
            "description" : "Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "415" : {
            "description" : "Unsupported Media Type — use application/json",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error — an unexpected failure occurred on the server",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "503" : {
            "description" : "Service Unavailable — a downstream dependency is unreachable",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "200" : {
            "description" : "The delivery",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WebhookDeliveryLightweight"
                },
                "example" : {
                  "type" : "booking.create"
                }
              }
            }
          }
        },
        "security" : [ {
          "oauth2ClientCredentials" : [ ]
        } ]
      }
    },
    "/api/managing-entity/{managingEntityIdentifier}/webhook" : {
      "post" : {
        "tags" : [ "Webhook" ],
        "summary" : "Create",
        "description" : "Registers a new webhook subscription for the managing entity and returns the persisted record. The `secret` is returned only in this response.",
        "operationId" : "create-webhook",
        "parameters" : [ {
          "name" : "managingEntityIdentifier",
          "in" : "path",
          "description" : "Identifier of the managing entity that will own the webhook",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69"
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "default" : "2.0.0",
            "enum" : [ "2.0" ]
          }
        } ],
        "requestBody" : {
          "description" : "Webhook configuration including the target callback URL and the list of event types to subscribe to",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpsertWebhookRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request — missing or invalid request parameter or body",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized — authentication is required or the session has expired",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden — authenticated but lacking the required permission or scope",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "404" : {
            "description" : "Not Found — the requested resource does not exist",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "405" : {
            "description" : "Method Not Allowed — the HTTP verb is not supported on this endpoint",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "409" : {
            "description" : "Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "415" : {
            "description" : "Unsupported Media Type — use application/json",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error — an unexpected failure occurred on the server",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "503" : {
            "description" : "Service Unavailable — a downstream dependency is unreachable",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "201" : {
            "description" : "Webhook created. The `secret` is returned only in this response.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CreateWebhookResponse"
                }
              }
            }
          }
        },
        "security" : [ {
          "oauth2ClientCredentials" : [ ]
        } ]
      }
    },
    "/api/managing-entity/{managingEntityIdentifier}/webhook/{id}/test" : {
      "post" : {
        "tags" : [ "Webhook deliveries" ],
        "summary" : "Send test event",
        "description" : "Writes a synthetic, already-DISPATCHED outbox letter addressed to the caller and one PENDING delivery for the chosen webhook, bypassing fan-out. Use this to verify a subscriber endpoint end to end.",
        "operationId" : "send-test-event",
        "parameters" : [ {
          "name" : "managingEntityIdentifier",
          "in" : "path",
          "description" : "Managing entity",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69"
        }, {
          "name" : "id",
          "in" : "path",
          "description" : "Webhook identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47"
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "default" : "2.0.0",
            "enum" : [ "2.0" ]
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request — missing or invalid request parameter or body",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized — authentication is required or the session has expired",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden — authenticated but lacking the required permission or scope",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "404" : {
            "description" : "Not Found — the requested resource does not exist",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "405" : {
            "description" : "Method Not Allowed — the HTTP verb is not supported on this endpoint",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "409" : {
            "description" : "Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "415" : {
            "description" : "Unsupported Media Type — use application/json",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error — an unexpected failure occurred on the server",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "503" : {
            "description" : "Service Unavailable — a downstream dependency is unreachable",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "201" : {
            "description" : "The test event",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WebhookEventLightweight"
                }
              }
            }
          }
        },
        "security" : [ {
          "oauth2ClientCredentials" : [ ]
        } ]
      }
    },
    "/api/managing-entity/{managingEntityIdentifier}/webhook/{id}/rotate-secret" : {
      "post" : {
        "tags" : [ "Webhook" ],
        "summary" : "Rotate secret",
        "description" : "Generates a new signing secret. The previous secret keeps verifying deliveries for 24 hours so you can roll your servers; both signatures are present in `Wink-Signature` during that window.",
        "operationId" : "rotate-secret",
        "parameters" : [ {
          "name" : "managingEntityIdentifier",
          "in" : "path",
          "description" : "Identifier of the managing entity that owns the webhook",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69"
        }, {
          "name" : "id",
          "in" : "path",
          "description" : "Unique webhook identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47"
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "default" : "2.0.0",
            "enum" : [ "2.0" ]
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request — missing or invalid request parameter or body",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized — authentication is required or the session has expired",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden — authenticated but lacking the required permission or scope",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "404" : {
            "description" : "Not Found — the requested resource does not exist",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "405" : {
            "description" : "Method Not Allowed — the HTTP verb is not supported on this endpoint",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "409" : {
            "description" : "Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "415" : {
            "description" : "Unsupported Media Type — use application/json",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error — an unexpected failure occurred on the server",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "503" : {
            "description" : "Service Unavailable — a downstream dependency is unreachable",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "200" : {
            "description" : "New secret (shown once)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CreateWebhookResponse"
                },
                "example" : {
                  "secret" : "whsec_dGVzdC1zZWNyZXQtdmFsdWUtZm9yLWRvY3M",
                  "webhook" : {
                    "createdDate" : "2026-01-14T09:30:00",
                    "enabled" : true,
                    "eventList" : [ "booking.created" ],
                    "eventUrl" : "https://api.example.com/webhooks/wink/events",
                    "id" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
                    "lastUpdate" : "2026-02-03T16:45:12",
                    "name" : "Booking confirmation sync",
                    "ownerIdentifier" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
                    "ownerName" : "The Siam Residences, Bangkok",
                    "userIdentifier" : "c3a9f2e1-8b4d-4c7a-a1e2-5f0b6d9e2c84",
                    "version" : 3
                  }
                }
              }
            }
          }
        },
        "security" : [ {
          "oauth2ClientCredentials" : [ ]
        } ]
      }
    },
    "/api/managing-entity/{managingEntityIdentifier}/webhook/{id}/redeliver-dead" : {
      "post" : {
        "tags" : [ "Webhook deliveries" ],
        "summary" : "Redeliver dead",
        "description" : "Bulk-resets every DEAD delivery for one webhook back to PENDING, due immediately.",
        "operationId" : "redeliver-dead",
        "parameters" : [ {
          "name" : "managingEntityIdentifier",
          "in" : "path",
          "description" : "Managing entity",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69"
        }, {
          "name" : "id",
          "in" : "path",
          "description" : "Webhook identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47"
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "default" : "2.0.0",
            "enum" : [ "2.0" ]
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request — missing or invalid request parameter or body",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized — authentication is required or the session has expired",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden — authenticated but lacking the required permission or scope",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "404" : {
            "description" : "Not Found — the requested resource does not exist",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "405" : {
            "description" : "Method Not Allowed — the HTTP verb is not supported on this endpoint",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "409" : {
            "description" : "Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "415" : {
            "description" : "Unsupported Media Type — use application/json",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error — an unexpected failure occurred on the server",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "503" : {
            "description" : "Service Unavailable — a downstream dependency is unreachable",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "200" : {
            "description" : "Count of deliveries reset",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/KeyValuePair"
                },
                "example" : {
                  "label" : "Hotel & Resort",
                  "value" : "HOTEL"
                }
              }
            }
          }
        },
        "security" : [ {
          "oauth2ClientCredentials" : [ ]
        } ]
      }
    },
    "/api/managing-entity/{managingEntityIdentifier}/webhook/event/grid" : {
      "post" : {
        "tags" : [ "Webhook events" ],
        "summary" : "Search events",
        "description" : "Pages through the outbox events addressed to this managing entity (all subscriptions). Filter on `type`, `status`, `occurredAt`.",
        "operationId" : "search-events",
        "parameters" : [ {
          "name" : "managingEntityIdentifier",
          "in" : "path",
          "description" : "Managing entity",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69"
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "default" : "2.0.0",
            "enum" : [ "2.0" ]
          }
        } ],
        "requestBody" : {
          "description" : "Pagination, sorting and filters (type, status, occurredAt)",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/State"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request — missing or invalid request parameter or body",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized — authentication is required or the session has expired",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden — authenticated but lacking the required permission or scope",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "404" : {
            "description" : "Not Found — the requested resource does not exist",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "405" : {
            "description" : "Method Not Allowed — the HTTP verb is not supported on this endpoint",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "409" : {
            "description" : "Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "415" : {
            "description" : "Unsupported Media Type — use application/json",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error — an unexpected failure occurred on the server",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "503" : {
            "description" : "Service Unavailable — a downstream dependency is unreachable",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "200" : {
            "description" : "Page of events",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PageResponseWebhookEventLightweight"
                },
                "example" : {
                  "content" : [ {
                    "family" : "booking",
                    "producer" : "inventory",
                    "type" : "booking.create"
                  } ],
                  "first" : true,
                  "last" : false,
                  "number" : 0,
                  "numberOfElements" : 20,
                  "size" : 20,
                  "totalElements" : 1234,
                  "totalPages" : 62
                }
              }
            }
          }
        },
        "security" : [ {
          "oauth2ClientCredentials" : [ ]
        } ]
      }
    },
    "/api/managing-entity/{managingEntityIdentifier}/webhook/delivery/{deliveryId}/redeliver" : {
      "post" : {
        "tags" : [ "Webhook deliveries" ],
        "summary" : "Redeliver",
        "description" : "Resets a single DEAD or CANCELLED delivery back to PENDING, due immediately. Rejects a delivery that is already scheduled (PENDING/RETRYING).",
        "operationId" : "redeliver",
        "parameters" : [ {
          "name" : "managingEntityIdentifier",
          "in" : "path",
          "description" : "Managing entity",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69"
        }, {
          "name" : "deliveryId",
          "in" : "path",
          "description" : "Delivery identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47"
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "default" : "2.0.0",
            "enum" : [ "2.0" ]
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request — missing or invalid request parameter or body",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized — authentication is required or the session has expired",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden — authenticated but lacking the required permission or scope",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "404" : {
            "description" : "Not Found — the requested resource does not exist",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "405" : {
            "description" : "Method Not Allowed — the HTTP verb is not supported on this endpoint",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "409" : {
            "description" : "Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "415" : {
            "description" : "Unsupported Media Type — use application/json",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error — an unexpected failure occurred on the server",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "503" : {
            "description" : "Service Unavailable — a downstream dependency is unreachable",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "200" : {
            "description" : "The delivery, now PENDING",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WebhookDeliveryLightweight"
                },
                "example" : {
                  "type" : "booking.create"
                }
              }
            }
          }
        },
        "security" : [ {
          "oauth2ClientCredentials" : [ ]
        } ]
      }
    },
    "/api/managing-entity/{managingEntityIdentifier}/webhook/delivery/{deliveryId}/cancel" : {
      "post" : {
        "tags" : [ "Webhook deliveries" ],
        "summary" : "Cancel",
        "description" : "Cancels a delivery so it will not be attempted again unless redelivered. Rejects a delivery that already succeeded.",
        "operationId" : "cancel",
        "parameters" : [ {
          "name" : "managingEntityIdentifier",
          "in" : "path",
          "description" : "Managing entity",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69"
        }, {
          "name" : "deliveryId",
          "in" : "path",
          "description" : "Delivery identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47"
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "default" : "2.0.0",
            "enum" : [ "2.0" ]
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request — missing or invalid request parameter or body",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized — authentication is required or the session has expired",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden — authenticated but lacking the required permission or scope",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "404" : {
            "description" : "Not Found — the requested resource does not exist",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "405" : {
            "description" : "Method Not Allowed — the HTTP verb is not supported on this endpoint",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "409" : {
            "description" : "Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "415" : {
            "description" : "Unsupported Media Type — use application/json",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error — an unexpected failure occurred on the server",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "503" : {
            "description" : "Service Unavailable — a downstream dependency is unreachable",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "200" : {
            "description" : "The delivery, now CANCELLED",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WebhookDeliveryLightweight"
                },
                "example" : {
                  "type" : "booking.create"
                }
              }
            }
          }
        },
        "security" : [ {
          "oauth2ClientCredentials" : [ ]
        } ]
      }
    },
    "/api/managing-entity/{managingEntityIdentifier}/webhook/delivery/grid" : {
      "post" : {
        "tags" : [ "Webhook deliveries" ],
        "summary" : "Search deliveries",
        "description" : "Pages through the deliveries (event x webhook endpoint) belonging to this managing entity, optionally scoped to one webhook. Filter on `status`.",
        "operationId" : "search-deliveries",
        "parameters" : [ {
          "name" : "managingEntityIdentifier",
          "in" : "path",
          "description" : "Managing entity",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69"
        }, {
          "name" : "webhookId",
          "in" : "query",
          "description" : "Restrict to deliveries for this webhook",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47"
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "default" : "2.0.0",
            "enum" : [ "2.0" ]
          }
        } ],
        "requestBody" : {
          "description" : "Pagination, sorting and filters (status)",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/State"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request — missing or invalid request parameter or body",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized — authentication is required or the session has expired",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden — authenticated but lacking the required permission or scope",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "404" : {
            "description" : "Not Found — the requested resource does not exist",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "405" : {
            "description" : "Method Not Allowed — the HTTP verb is not supported on this endpoint",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "409" : {
            "description" : "Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "415" : {
            "description" : "Unsupported Media Type — use application/json",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error — an unexpected failure occurred on the server",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "503" : {
            "description" : "Service Unavailable — a downstream dependency is unreachable",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "200" : {
            "description" : "Page of deliveries",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PageResponseWebhookDeliveryLightweight"
                },
                "example" : {
                  "content" : [ {
                    "type" : "booking.create"
                  } ],
                  "first" : true,
                  "last" : false,
                  "number" : 0,
                  "numberOfElements" : 20,
                  "size" : 20,
                  "totalElements" : 1234,
                  "totalPages" : 62
                }
              }
            }
          }
        },
        "security" : [ {
          "oauth2ClientCredentials" : [ ]
        } ]
      }
    }
  },
  "components" : {
    "schemas" : {
      "ProblemDetail" : {
        "type" : "object",
        "properties" : {
          "detail" : {
            "type" : "string"
          },
          "instance" : {
            "type" : "string",
            "format" : "uri"
          },
          "properties" : {
            "additionalProperties" : { },
            "type" : "object"
          },
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "title" : {
            "type" : "string"
          },
          "type" : {
            "type" : "string",
            "format" : "uri"
          }
        }
      },
      "UpsertWebhookManagingEntityRequest" : {
        "type" : "object",
        "description" : "Identifies the managing entity (account owner) to associate with a webhook registration or update.",
        "example" : {
          "identifier" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
          "name" : "The Siam Residences, Bangkok"
        },
        "properties" : {
          "identifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Unique managing entity (account owner) identifier.",
            "example" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
            "minLength" : 1
          },
          "name" : {
            "type" : "string",
            "description" : "Display name of the managing entity.",
            "example" : "The Siam Residences, Bangkok",
            "minLength" : 1
          }
        },
        "required" : [ "identifier", "name" ]
      },
      "UpsertWebhookRequest" : {
        "type" : "object",
        "description" : "Request payload for creating or updating a webhook subscription, including the target endpoint URL, owning entity, and the list of event types to subscribe to.",
        "example" : {
          "enabled" : true,
          "entity" : {
            "identifier" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
            "name" : "The Siam Residences, Bangkok"
          },
          "eventList" : [ "booking.created" ],
          "eventUrl" : "https://api.example.com/webhooks/wink/events",
          "name" : "Booking confirmation sync"
        },
        "properties" : {
          "enabled" : {
            "type" : "boolean",
            "default" : true,
            "description" : "Whether this webhook is actively subscribed to events.",
            "example" : true
          },
          "entity" : {
            "$ref" : "#/components/schemas/UpsertWebhookManagingEntityRequest",
            "description" : "The managing entity (account owner) that will own this webhook."
          },
          "eventList" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "description" : "List of event types to subscribe to (e.g. 'booking.created', 'payment.completed'). Leave empty to receive all events.",
              "example" : "booking.created"
            }
          },
          "eventUrl" : {
            "type" : "string",
            "format" : "uri",
            "description" : "HTTPS endpoint URL to POST events to. Must be a valid, publicly accessible URL.",
            "example" : "https://api.example.com/webhooks/wink/events",
            "minLength" : 1
          },
          "name" : {
            "type" : "string",
            "description" : "Descriptive name of this webhook, e.g. 'Booking confirmation sync' or 'Payment notifications'.",
            "example" : "Booking confirmation sync",
            "minLength" : 1
          }
        },
        "required" : [ "enabled", "entity", "eventList", "eventUrl", "name" ]
      },
      "CreateWebhookResponse" : {
        "type" : "object",
        "description" : "Returned exactly once, on create and on secret rotation: the webhook and its plaintext signing secret. Store the secret now — it cannot be retrieved later.",
        "example" : {
          "secret" : "whsec_dGVzdC1zZWNyZXQtdmFsdWUtZm9yLWRvY3M",
          "webhook" : {
            "createdDate" : "2026-01-14T09:30:00",
            "enabled" : true,
            "eventList" : [ "booking.created" ],
            "eventUrl" : "https://api.example.com/webhooks/wink/events",
            "id" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
            "lastUpdate" : "2026-02-03T16:45:12",
            "name" : "Booking confirmation sync",
            "ownerIdentifier" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
            "ownerName" : "The Siam Residences, Bangkok",
            "userIdentifier" : "c3a9f2e1-8b4d-4c7a-a1e2-5f0b6d9e2c84",
            "version" : 3
          }
        },
        "properties" : {
          "secret" : {
            "type" : "string",
            "description" : "Plaintext signing secret (`whsec_…`). Shown once.",
            "example" : "whsec_dGVzdC1zZWNyZXQtdmFsdWUtZm9yLWRvY3M"
          },
          "webhook" : {
            "$ref" : "#/components/schemas/WebhookLightweight"
          }
        },
        "required" : [ "secret", "webhook" ]
      },
      "WebhookLightweight" : {
        "type" : "object",
        "description" : "Lightweight projection of a webhook subscription that delivers HTTP POST notifications to a configured endpoint whenever subscribed events occur on the Wink platform.",
        "example" : {
          "createdDate" : "2026-01-14T09:30:00",
          "enabled" : true,
          "eventList" : [ "booking.created" ],
          "eventUrl" : "https://api.example.com/webhooks/wink/events",
          "id" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
          "lastUpdate" : "2026-02-03T16:45:12",
          "name" : "Booking confirmation sync",
          "ownerIdentifier" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
          "ownerName" : "The Siam Residences, Bangkok",
          "userIdentifier" : "c3a9f2e1-8b4d-4c7a-a1e2-5f0b6d9e2c84",
          "version" : 3
        },
        "properties" : {
          "createdDate" : {
            "type" : [ "string", "null" ],
            "format" : "date-time",
            "description" : "Datetime this record was first created",
            "example" : "2026-01-14T09:30:00",
            "readOnly" : true
          },
          "enabled" : {
            "type" : "boolean",
            "default" : true,
            "description" : "Whether this webhook is actively subscribed to events.",
            "example" : true
          },
          "eventList" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "description" : "List of event types to subscribe to (e.g. 'booking.created', 'payment.completed'). Empty means receive all events.",
              "example" : "booking.created"
            }
          },
          "eventUrl" : {
            "type" : "string",
            "format" : "uri",
            "description" : "HTTPS endpoint URL to POST events to.",
            "example" : "https://api.example.com/webhooks/wink/events"
          },
          "id" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Unique identifier for this record.",
            "example" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47"
          },
          "lastUpdate" : {
            "type" : [ "string", "null" ],
            "format" : "date-time",
            "description" : "Datetime this record was last updated",
            "example" : "2026-02-03T16:45:12",
            "readOnly" : true
          },
          "name" : {
            "type" : "string",
            "description" : "Descriptive name of this webhook, e.g. 'Booking confirmation sync' or 'Payment notifications'.",
            "example" : "Booking confirmation sync"
          },
          "ownerIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Unique managing entity (owner) identifier",
            "example" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69"
          },
          "ownerName" : {
            "type" : "string",
            "description" : "Display name of the managing entity that owns this webhook.",
            "example" : "The Siam Residences, Bangkok"
          },
          "previousSecretExpiresAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Until when the previous secret is still accepted after a rotation."
          },
          "secretHint" : {
            "type" : "string",
            "description" : "Last four characters of the signing secret. The secret itself is returned only once, on create and rotate."
          },
          "userIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Unique authenticated user identifier",
            "example" : "c3a9f2e1-8b4d-4c7a-a1e2-5f0b6d9e2c84"
          },
          "version" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "description" : "Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.",
            "example" : 3
          }
        }
      },
      "WebhookEventLightweight" : {
        "type" : "object",
        "description" : "An outbox event (letter) addressed to one managing entity.",
        "example" : {
          "family" : "booking",
          "producer" : "inventory",
          "type" : "booking.create"
        },
        "properties" : {
          "body" : {
            "description" : "The exact JSON body that is (or would be) delivered."
          },
          "family" : {
            "type" : "string",
            "description" : "Event family / OpenAPI tag.",
            "example" : "booking"
          },
          "id" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Event identifier (also sent as Wink-Event-Id)."
          },
          "occurredAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "When the event happened."
          },
          "ownerIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Addressed managing entity."
          },
          "producer" : {
            "type" : "string",
            "description" : "Which application produced the letter.",
            "example" : "inventory"
          },
          "recipientRole" : {
            "type" : "string",
            "description" : "Why the managing entity receives it.",
            "enum" : [ "SUPPLIER", "AFFILIATE", "AGENT", "SELF" ]
          },
          "schemaVersion" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Payload contract version."
          },
          "sourceEntityIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Identifier of the resource the event is about."
          },
          "status" : {
            "type" : "string",
            "description" : "Outbox status.",
            "enum" : [ "NEW", "DISPATCHED", "NO_SUBSCRIBERS" ]
          },
          "type" : {
            "type" : "string",
            "description" : "Event type key.",
            "example" : "booking.create"
          }
        }
      },
      "KeyValuePair" : {
        "type" : "object",
        "description" : "Immutable key-value pair associating a machine-readable value with a human-readable label.",
        "example" : {
          "label" : "Hotel & Resort",
          "value" : "HOTEL"
        },
        "properties" : {
          "label" : {
            "type" : "string",
            "description" : "English readable text of the value.",
            "example" : "Readable text label",
            "minLength" : 1
          },
          "value" : {
            "type" : "string",
            "description" : "The value that should be persisted.",
            "example" : "id-1",
            "minLength" : 1
          }
        },
        "required" : [ "label", "value" ]
      },
      "AggregateDescriptor" : {
        "type" : "object",
        "description" : "Descriptor that defines an aggregate function to apply to a specific field in a grouped result set.",
        "example" : {
          "aggregate" : "count",
          "field" : "hotel.bookings"
        },
        "properties" : {
          "aggregate" : {
            "type" : "string",
            "description" : "Aggregate function",
            "enum" : [ "count", "sum", "average", "min", "max" ],
            "example" : "count"
          },
          "field" : {
            "type" : "string",
            "description" : "Field to run aggregate function on",
            "example" : "hotel.bookings"
          }
        }
      },
      "CompositeFilterDescriptor" : {
        "type" : "object",
        "description" : "Top-level filter container that combines one or more field-level filter descriptors using a logical operator.",
        "example" : {
          "filters" : [ {
            "field" : "hotel.name",
            "ignoreCase" : true,
            "operator" : "startsWith",
            "value" : "Happy Res"
          } ],
          "logic" : "and"
        },
        "properties" : {
          "filters" : {
            "type" : "array",
            "description" : "Descriptors used for filtering the result set",
            "items" : {
              "$ref" : "#/components/schemas/FilterDescriptor"
            }
          },
          "logic" : {
            "type" : "string",
            "description" : "Whether to filter inclusively or exclusively",
            "enum" : [ "and", "or" ],
            "example" : "and"
          }
        }
      },
      "FilterDescriptor" : {
        "type" : "object",
        "description" : "A single field-level filter criterion that specifies what to match and how to compare it.",
        "example" : {
          "field" : "hotel.name",
          "ignoreCase" : true,
          "operator" : "startsWith",
          "value" : "Happy Res"
        },
        "properties" : {
          "field" : {
            "type" : "string",
            "description" : "Field name to filter on",
            "example" : "hotel.name",
            "minLength" : 1
          },
          "ignoreCase" : {
            "type" : "boolean",
            "description" : "Make filter comparison case insensitive. Default: Case sensitive ",
            "example" : true
          },
          "operator" : {
            "type" : "string",
            "description" : "Filter operator to use on field",
            "enum" : [ "neq", "eq", "contains", "doesnotcontain", "isnull", "isnotnull", "isempty", "isnotempty", "startswith", "endswith", "gte", "lte", "gt", "lt", "in", "nin" ],
            "example" : "startsWith"
          },
          "value" : {
            "description" : "Value to filter dataset against",
            "example" : "Happy Res"
          }
        },
        "required" : [ "field", "operator" ]
      },
      "GroupDescriptor" : {
        "type" : "object",
        "description" : "Descriptor that defines how a result set should be grouped, including sort direction and optional aggregate calculations.",
        "example" : {
          "aggregates" : [ {
            "aggregate" : "count",
            "field" : "hotel.bookings"
          } ],
          "dir" : "asc",
          "field" : "createdDate"
        },
        "properties" : {
          "aggregates" : {
            "type" : "array",
            "description" : "Primitive aggregate data points",
            "items" : {
              "$ref" : "#/components/schemas/AggregateDescriptor"
            }
          },
          "dir" : {
            "type" : "string",
            "description" : "Group sort direction",
            "enum" : [ "asc", "desc" ],
            "example" : "asc"
          },
          "field" : {
            "type" : "string",
            "description" : "Field to group data set on",
            "example" : "createdDate"
          }
        }
      },
      "SortDescriptor" : {
        "type" : "object",
        "description" : "Descriptor that defines the sort direction and field for ordering a result set.",
        "example" : {
          "dir" : "asc",
          "field" : "hotel.name"
        },
        "properties" : {
          "dir" : {
            "type" : "string",
            "description" : "Descriptors used for sorting result set",
            "enum" : [ "asc", "desc" ],
            "example" : "asc"
          },
          "field" : {
            "type" : "string",
            "description" : "Data set field to sort on",
            "example" : "hotel.name"
          }
        }
      },
      "State" : {
        "type" : "object",
        "description" : "Pagination, sorting, filtering, and grouping state used to query a paged result set.",
        "example" : {
          "filter" : {
            "filters" : [ {
              "field" : "hotel.name",
              "ignoreCase" : true,
              "operator" : "startsWith",
              "value" : "Happy Res"
            } ],
            "logic" : "and"
          },
          "group" : [ {
            "aggregates" : [ {
              "aggregate" : "count",
              "field" : "hotel.bookings"
            } ],
            "dir" : "asc",
            "field" : "createdDate"
          } ],
          "skip" : 0,
          "sort" : [ {
            "dir" : "asc",
            "field" : "hotel.name"
          } ],
          "take" : 10
        },
        "properties" : {
          "filter" : {
            "$ref" : "#/components/schemas/CompositeFilterDescriptor",
            "description" : "Descriptors used for filtering result set"
          },
          "group" : {
            "type" : "array",
            "description" : "Descriptors to group result sets by.",
            "items" : {
              "$ref" : "#/components/schemas/GroupDescriptor"
            }
          },
          "skip" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0,
            "description" : "Number of records to be skipped by the pager.",
            "example" : 0,
            "minimum" : 0
          },
          "sort" : {
            "type" : "array",
            "description" : "Descriptors used for sorting result set.",
            "items" : {
              "$ref" : "#/components/schemas/SortDescriptor"
            }
          },
          "take" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 30,
            "description" : "Number of records to take.",
            "example" : 10,
            "maximum" : 180,
            "minimum" : 1
          }
        }
      },
      "PageResponseWebhookEventLightweight" : {
        "type" : "object",
        "description" : "Owned pagination envelope: a page of content plus flat page metadata.",
        "example" : {
          "content" : [ {
            "family" : "booking",
            "producer" : "inventory",
            "type" : "booking.create"
          } ],
          "first" : true,
          "last" : false,
          "number" : 0,
          "numberOfElements" : 20,
          "size" : 20,
          "totalElements" : 1234,
          "totalPages" : 62
        },
        "properties" : {
          "content" : {
            "type" : "array",
            "description" : "The elements on this page.",
            "items" : {
              "$ref" : "#/components/schemas/WebhookEventLightweight"
            }
          },
          "first" : {
            "type" : "boolean",
            "description" : "Whether this is the first page.",
            "example" : true
          },
          "last" : {
            "type" : "boolean",
            "description" : "Whether this is the last page.",
            "example" : false
          },
          "number" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Zero-based index of this page.",
            "example" : 0
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of elements on this page.",
            "example" : 20
          },
          "size" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "The requested page size.",
            "example" : 20
          },
          "totalElements" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Total number of elements across all pages.",
            "example" : 1234
          },
          "totalPages" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Total number of pages for the current page size.",
            "example" : 62
          }
        }
      },
      "WebhookDeliveryAttempt" : {
        "type" : "object",
        "description" : "One HTTP attempt of a delivery.",
        "properties" : {
          "at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "When the attempt was made."
          },
          "attempt" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "1-based attempt number."
          },
          "durationMs" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Round-trip time in milliseconds."
          },
          "error" : {
            "type" : "string",
            "description" : "Transport error, if the request never completed."
          },
          "httpStatus" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "HTTP status returned, null when the request never completed."
          },
          "responseSnippet" : {
            "type" : "string",
            "description" : "First 4 KB of the response body, if any."
          }
        }
      },
      "WebhookDeliveryLightweight" : {
        "type" : "object",
        "description" : "One delivery of an event to one webhook endpoint, with its attempt history.",
        "example" : {
          "type" : "booking.create"
        },
        "properties" : {
          "attemptCount" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Attempts made so far."
          },
          "attempts" : {
            "type" : "array",
            "description" : "Attempt history, oldest first.",
            "items" : {
              "$ref" : "#/components/schemas/WebhookDeliveryAttempt"
            }
          },
          "createdDate" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "When the delivery was created."
          },
          "eventId" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "The event delivered."
          },
          "id" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Delivery identifier (also sent as Wink-Delivery-Id)."
          },
          "lastHttpStatus" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "HTTP status of the last attempt."
          },
          "lastUpdate" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "When the delivery last changed."
          },
          "nextAttemptAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "When the next attempt is due, if any."
          },
          "ownerIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Owning managing entity."
          },
          "status" : {
            "type" : "string",
            "description" : "Delivery status.",
            "enum" : [ "PENDING", "RETRYING", "SUCCEEDED", "DEAD", "CANCELLED" ]
          },
          "type" : {
            "type" : "string",
            "description" : "Event type key.",
            "example" : "booking.create"
          },
          "url" : {
            "type" : "string",
            "format" : "uri",
            "description" : "Endpoint URL at the time of delivery."
          },
          "webhookId" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "The webhook subscription targeted."
          }
        }
      },
      "PageResponseWebhookDeliveryLightweight" : {
        "type" : "object",
        "description" : "Owned pagination envelope: a page of content plus flat page metadata.",
        "example" : {
          "content" : [ {
            "type" : "booking.create"
          } ],
          "first" : true,
          "last" : false,
          "number" : 0,
          "numberOfElements" : 20,
          "size" : 20,
          "totalElements" : 1234,
          "totalPages" : 62
        },
        "properties" : {
          "content" : {
            "type" : "array",
            "description" : "The elements on this page.",
            "items" : {
              "$ref" : "#/components/schemas/WebhookDeliveryLightweight"
            }
          },
          "first" : {
            "type" : "boolean",
            "description" : "Whether this is the first page.",
            "example" : true
          },
          "last" : {
            "type" : "boolean",
            "description" : "Whether this is the last page.",
            "example" : false
          },
          "number" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Zero-based index of this page.",
            "example" : 0
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of elements on this page.",
            "example" : 20
          },
          "size" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "The requested page size.",
            "example" : 20
          },
          "totalElements" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Total number of elements across all pages.",
            "example" : 1234
          },
          "totalPages" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Total number of pages for the current page size.",
            "example" : 62
          }
        }
      },
      "RemoveEntryResponse" : {
        "type" : "object",
        "description" : "Response object for when a system document is removed.",
        "example" : {
          "id" : "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
          "message" : "Property marked as deleted. Can be restored within 30 days.",
          "success" : true
        },
        "properties" : {
          "id" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Identifier of removed document",
            "example" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47"
          },
          "message" : {
            "type" : "string",
            "description" : "Message with additional information; mostly if the removal request was a failure.",
            "example" : "Record successfully removed"
          },
          "success" : {
            "type" : "boolean",
            "description" : "Whether the removal was successful or not.",
            "example" : true
          }
        }
      },
      "BookingWebhookPayload" : {
        "type" : "object",
        "description" : "Summary of a booking: what an integrator needs to act on a booking event. Fetch `links.self` for the full record.",
        "properties" : {
          "booker" : {
            "$ref" : "#/components/schemas/BookingWebhookPayload.Guest",
            "description" : "The person who made the booking (may be an agent rather than the traveler)."
          },
          "bookingCode" : {
            "type" : "string",
            "description" : "User-friendly confirmation code.",
            "example" : "WNK4ZQ7P"
          },
          "bookingIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Booking identifier."
          },
          "cancellation" : {
            "$ref" : "#/components/schemas/BookingWebhookPayload.Cancellation",
            "description" : "Present when the booking is cancelled."
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "When the booking was created."
          },
          "groupIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "UUID grouping the bookings of a single multi-room transaction, if any."
          },
          "guest" : {
            "$ref" : "#/components/schemas/BookingWebhookPayload.Guest",
            "description" : "The lead guest assigned to the stay, when different from the booker."
          },
          "hotel" : {
            "$ref" : "#/components/schemas/BookingWebhookPayload.Hotel",
            "description" : "The property booked."
          },
          "lastUpdatedAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "When the booking record last changed."
          },
          "links" : {
            "$ref" : "#/components/schemas/WebhookLinks"
          },
          "refund" : {
            "$ref" : "#/components/schemas/BookingWebhookPayload.Refund",
            "description" : "Present when a refund exists."
          },
          "refundState" : {
            "type" : "string",
            "description" : "How much of the captured amount has come back: FULL, PARTIAL, or NONE when no settled refund exists. Derived from the refund ledger rather than from `status` — a refunded booking that was not cancelled reports PAYMENT_SUCCEEDED in `status`, so read this field to detect a refund, not that one.",
            "enum" : [ "NONE", "PARTIAL", "FULL" ]
          },
          "reseller" : {
            "$ref" : "#/components/schemas/BookingWebhookPayload.Reseller",
            "description" : "The reseller / sales-channel context the booking was made under, if any."
          },
          "status" : {
            "type" : "string",
            "description" : "Booking lifecycle status.",
            "enum" : [ "INITIALIZED", "TEST_PAYMENT_SUCCEEDED", "PAYMENT_SUCCEEDED", "PAYMENT_FAILED", "FAILED", "CANCELLED", "PARTIALLY_REFUNDED", "FULLY_REFUNDED" ]
          },
          "stay" : {
            "$ref" : "#/components/schemas/BookingWebhookPayload.Stay",
            "description" : "Dates, occupancy and room/rate plan."
          },
          "total" : {
            "$ref" : "#/components/schemas/WebhookMoney",
            "description" : "Gross stay total in the property's currency."
          }
        },
        "required" : [ "bookingCode", "bookingIdentifier", "hotel", "links", "refundState", "status" ]
      },
      "BookingWebhookPayload.Cancellation" : {
        "type" : "object",
        "properties" : {
          "cancellationType" : {
            "type" : "string",
            "description" : "Cancellation policy type applied.",
            "enum" : [ "DUPLICATE", "CANCELLATION", "NO_SHOW", "CC_INVALID", "CC_INSUFFICIENT", "DISCRETIONARY" ]
          },
          "cancelledOn" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "When the booking was cancelled."
          },
          "cancellerType" : {
            "type" : "string",
            "description" : "Who cancelled.",
            "enum" : [ "HOTEL", "GUEST", "ADMIN", "AGENT", "ACQUIRER", "SALES_CHANNEL", "SYSTEM" ]
          },
          "reason" : {
            "type" : "string",
            "description" : "Free-text reason."
          }
        }
      },
      "BookingWebhookPayload.Guest" : {
        "type" : "object",
        "properties" : {
          "email" : {
            "type" : "string",
            "format" : "email",
            "description" : "Email."
          },
          "firstName" : {
            "type" : "string",
            "description" : "First name."
          },
          "lastName" : {
            "type" : "string",
            "description" : "Last name."
          },
          "telephone" : {
            "type" : "string",
            "description" : "Telephone."
          }
        }
      },
      "BookingWebhookPayload.Hotel" : {
        "type" : "object",
        "properties" : {
          "currencyCode" : {
            "type" : "string",
            "description" : "Hotel currency code.",
            "example" : "THB"
          },
          "hotelIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Hotel (managing entity) identifier."
          },
          "name" : {
            "type" : "string",
            "description" : "Hotel trade name."
          }
        },
        "required" : [ "hotelIdentifier" ]
      },
      "BookingWebhookPayload.Refund" : {
        "type" : "object",
        "properties" : {
          "amount" : {
            "$ref" : "#/components/schemas/WebhookMoney",
            "description" : "Refunded amount in the property's currency."
          },
          "processedAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "When the refund was processed, if it has been."
          },
          "reason" : {
            "type" : "string",
            "description" : "Refund reason.",
            "enum" : [ "DUPLICATE", "FRAUDULENT", "REQUESTED_BY_CUSTOMER", "GUEST_COMPLAINT", "GUEST_BOOKED_INCORRECT_DATE", "GUEST_SICK", "OVERBOOKING", "EMERGENCY", "FLIGHT_CANCELLED", "DEATH_IN_FAMILY", "OTHER", "EXPIRED_UNCAPTURED_CHARGE", "AVAILABILITY_CHECK_FAILED" ]
          },
          "refundIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Refund identifier."
          },
          "requestedAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "When the refund was requested."
          },
          "status" : {
            "type" : "string",
            "description" : "Refund status.",
            "enum" : [ "PENDING", "SUCCEEDED", "CANCELED", "REQUIRES_ACTION", "FAILED" ]
          }
        }
      },
      "BookingWebhookPayload.Reseller" : {
        "type" : "object",
        "properties" : {
          "managingEntityIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Managing entity identifier of the reseller / sales-channel owner."
          },
          "name" : {
            "type" : "string",
            "description" : "Reseller display name."
          }
        }
      },
      "BookingWebhookPayload.Stay" : {
        "type" : "object",
        "properties" : {
          "adults" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Adults.",
            "example" : 2
          },
          "checkIn" : {
            "type" : "string",
            "format" : "date",
            "description" : "Check-in date."
          },
          "checkOut" : {
            "type" : "string",
            "format" : "date",
            "description" : "Check-out date."
          },
          "children" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Children.",
            "example" : 0
          },
          "nights" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Number of nights.",
            "example" : 3
          },
          "quantity" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Identical rooms booked.",
            "example" : 1
          },
          "ratePlanIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Rate plan identifier."
          },
          "ratePlanName" : {
            "type" : "string",
            "description" : "Rate plan name."
          },
          "roomTypeIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Room type identifier."
          },
          "roomTypeName" : {
            "type" : "string",
            "description" : "Room type name."
          }
        },
        "required" : [ "checkIn", "checkOut" ]
      },
      "WebhookLinks" : {
        "type" : "object",
        "description" : "Links to fetch the full resource this event is about. `self` is the SUPPLIER-side canonical resource URL (`/api/managing-entity/{hotel}/extranet/…`). AFFILIATE and AGENT recipients cannot call it — use your own reseller/agent endpoints for the same resource id.",
        "properties" : {
          "self" : {
            "type" : "string",
            "format" : "uri",
            "description" : "Absolute URL of the resource, on the SUPPLIER-side canonical path (`/api/managing-entity/{hotel}/extranet/…`). If you receive this event as an AFFILIATE or AGENT rather than the supplier, call your own reseller/agent endpoint for the same resource id instead — the REST ACL applies either way.",
            "example" : "https://api.wink.travel/api/managing-entity/3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51/extranet/booking/9c7d6e4f-0a8b-2c51-3c6b-1a5d8e2f4a0b"
          }
        },
        "required" : [ "self" ]
      },
      "WebhookMoney" : {
        "type" : "object",
        "description" : "A monetary amount in a single currency.",
        "properties" : {
          "amount" : {
            "type" : "number",
            "description" : "Amount, as a decimal.",
            "example" : 450.0
          },
          "currency" : {
            "type" : "string",
            "description" : "ISO-4217 currency code.",
            "example" : "USD"
          }
        },
        "required" : [ "amount", "currency" ]
      },
      "ReviewWebhookPayload" : {
        "type" : "object",
        "description" : "A guest review submitted for a booking.",
        "properties" : {
          "bookingIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Booking the review is for."
          },
          "hotelIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Hotel the review is for."
          },
          "links" : {
            "$ref" : "#/components/schemas/WebhookLinks"
          },
          "responded" : {
            "type" : "boolean",
            "description" : "Whether the hotel has responded."
          },
          "reviewDate" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "When the guest submitted it."
          },
          "reviewIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Review identifier."
          },
          "roomRating" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Room rating 0-10."
          },
          "text" : {
            "type" : "string",
            "description" : "Guest's written review."
          }
        },
        "required" : [ "bookingIdentifier", "hotelIdentifier", "links", "reviewIdentifier" ]
      },
      "ReviewResponseWebhookPayload" : {
        "type" : "object",
        "description" : "A hotel's response to a guest review.",
        "properties" : {
          "approvedImage" : {
            "type" : "boolean",
            "description" : "Hotel approved the guest's image for public display."
          },
          "approvedText" : {
            "type" : "boolean",
            "description" : "Hotel approved the guest's text for public display."
          },
          "bookingCode" : {
            "type" : "string",
            "description" : "Booking confirmation code."
          },
          "bookingIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Booking the review belongs to."
          },
          "hotelIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Hotel that responded."
          },
          "links" : {
            "$ref" : "#/components/schemas/WebhookLinks"
          },
          "responseFromHotel" : {
            "type" : "string",
            "description" : "The hotel's response text."
          },
          "reviewIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Review identifier, when the booking carries the review."
          }
        },
        "required" : [ "bookingIdentifier", "hotelIdentifier", "links", "responseFromHotel" ]
      },
      "PropertyWebhookPayload" : {
        "type" : "object",
        "description" : "Summary of a property (hotel).",
        "properties" : {
          "address" : {
            "$ref" : "#/components/schemas/PropertyWebhookPayload.Address",
            "description" : "Address."
          },
          "currencyCode" : {
            "type" : "string",
            "description" : "Currency code.",
            "example" : "THB"
          },
          "hotelIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Hotel (managing entity) identifier."
          },
          "lastUpdatedAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Last change to the property record."
          },
          "links" : {
            "$ref" : "#/components/schemas/WebhookLinks"
          },
          "location" : {
            "$ref" : "#/components/schemas/PropertyWebhookPayload.GeoPoint",
            "description" : "Geolocation. NOTE: longitude first."
          },
          "name" : {
            "type" : "string",
            "description" : "Trade name."
          },
          "status" : {
            "type" : "string",
            "description" : "Platform status.",
            "enum" : [ "PENDING_APPROVAL", "ACTIVE", "INACTIVE", "UNDER_REVIEW", "SUSPENDED", "REJECTED", "REMOVED" ]
          },
          "urlName" : {
            "type" : "string",
            "description" : "URL-friendly slug."
          }
        },
        "required" : [ "hotelIdentifier", "links", "name" ]
      },
      "PropertyWebhookPayload.Address" : {
        "type" : "object",
        "properties" : {
          "addressLine1" : {
            "type" : "string"
          },
          "addressLine2" : {
            "type" : "string"
          },
          "city" : {
            "type" : "string"
          },
          "countryCode" : {
            "type" : "string",
            "description" : "ISO-3166 alpha-2.",
            "example" : "TH"
          },
          "postalCode" : {
            "type" : "string"
          },
          "state" : {
            "type" : "string"
          }
        }
      },
      "PropertyWebhookPayload.GeoPoint" : {
        "type" : "object",
        "properties" : {
          "latitude" : {
            "type" : "number",
            "format" : "double",
            "description" : "Latitude (y)."
          },
          "longitude" : {
            "type" : "number",
            "format" : "double",
            "description" : "Longitude (x)."
          }
        }
      },
      "ManagingEntityWebhookPayload" : {
        "type" : "object",
        "description" : "Summary of a managing entity (account).",
        "properties" : {
          "countryCode" : {
            "type" : "string",
            "description" : "Country of the business address, ISO-3166 alpha-2."
          },
          "lastUpdatedAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Last change to the record."
          },
          "links" : {
            "$ref" : "#/components/schemas/WebhookLinks"
          },
          "managingEntityIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Managing entity identifier."
          },
          "name" : {
            "type" : "string",
            "description" : "Display name."
          },
          "status" : {
            "type" : "string",
            "description" : "Platform status.",
            "enum" : [ "PENDING_APPROVAL", "ACTIVE", "INACTIVE", "UNDER_REVIEW", "SUSPENDED", "REJECTED", "REMOVED" ]
          },
          "type" : {
            "type" : "string",
            "description" : "Entity type (HOTEL, TRAVEL_AGENT, …).",
            "enum" : [ "TRIP_PAY", "FACILITATOR", "DIRECT", "APPLICATION", "HOTEL", "TRAVELIKO", "CORPORATE", "TRAVEL_AGENT", "INFLUENCER", "BLOGGER", "DESTINATION", "CHANNEL_MANAGER", "PROPERTY_MANAGEMENT_SYSTEM", "CENTRAL_RESERVATION_SYSTEM", "GOOGLE_HOTEL_API", "MANAGEMENT_COMPANY", "CHAIN", "BRAND", "EVENT_ORGANIZER", "OTHER" ]
          },
          "urlName" : {
            "type" : "string",
            "description" : "URL-friendly slug."
          }
        },
        "required" : [ "links", "managingEntityIdentifier", "name" ]
      },
      "InventoryItemWebhookPayload" : {
        "type" : "object",
        "description" : "Summary of a sellable inventory item (room type, rate plan, master rate, add-on, facility, sales channel, promotion).",
        "properties" : {
          "active" : {
            "type" : "boolean",
            "description" : "Whether the item is currently on sale / enabled."
          },
          "counterpartyIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "For sales channels: the reseller (owner) managing entity identifier."
          },
          "hotelIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Owning hotel (managing entity) identifier."
          },
          "itemIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Item identifier."
          },
          "itemType" : {
            "type" : "string",
            "description" : "Kind of item.",
            "enum" : [ "ROOM_TYPE", "RATE_PLAN", "MASTER_RATE", "ADD_ON", "MEETING_ROOM", "RESTAURANT", "SPA", "ACTIVITY", "SALES_CHANNEL", "SPECIAL_RATE" ]
          },
          "lastUpdatedAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Last change to the item."
          },
          "links" : {
            "$ref" : "#/components/schemas/WebhookLinks"
          },
          "name" : {
            "type" : "string",
            "description" : "Display name."
          }
        },
        "required" : [ "hotelIdentifier", "itemIdentifier", "itemType", "links" ]
      },
      "WebhookEnvelope" : {
        "type" : "object",
        "description" : "Body of every webhook delivery. `object` is the event-specific payload; branch on `type` and `schemaVersion` to parse it.",
        "properties" : {
          "id" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Unique event identifier. Identical for every endpoint of this recipient and every retry; use it as your idempotency key.",
            "example" : "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47"
          },
          "object" : {
            "description" : "The event payload. Its schema depends on `type`; every payload carries `links.self`."
          },
          "occurredAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "When the event happened on the platform (UTC).",
            "example" : "2026-08-15T09:30:00Z"
          },
          "ownerIdentifier" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "The managing entity this delivery is addressed to.",
            "example" : "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69"
          },
          "recipientRole" : {
            "type" : "string",
            "description" : "Why the addressed managing entity receives this event.",
            "enum" : [ "SUPPLIER", "AFFILIATE", "AGENT", "SELF" ],
            "example" : "SUPPLIER"
          },
          "schemaVersion" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Version of the payload contract (the shape of `object`). Currently 2.",
            "example" : 2
          },
          "type" : {
            "type" : "string",
            "description" : "Event type key, e.g. `booking.create`. The list of keys is documented under Webhooks.",
            "example" : "booking.create"
          }
        },
        "required" : [ "id", "object", "occurredAt", "ownerIdentifier", "recipientRole", "schemaVersion", "type" ]
      }
    },
    "securitySchemes" : {
      "oauth2ClientCredentials" : {
        "type" : "oauth2",
        "description" : "Every endpoint is protected with OAuth2 **client credentials**. Create an\n**Application** in your account to obtain a `clientId` and `clientSecret`, then\nexchange them for a short-lived bearer token.\n\n### 1. Request an access token\n`POST` to the **Token URL** below with `Content-Type: application/x-www-form-urlencoded`\nand a body of `grant_type=client_credentials` (optionally `scope=<space-separated scopes>`).\nSend your credentials as HTTP Basic auth:\n`Authorization: Basic base64(clientId + \":\" + clientSecret)`.\n\n### 2. Call the API\nPass the returned token on every request: `Authorization: Bearer <access_token>`.\n\nTokens carry only the scopes granted to your Application — request the least privilege\nyou need. There is no interactive authorize step and no refresh token for this flow;\nrequest a new token when the current one expires.",
        "name" : "Client Credentials",
        "flows" : {
          "clientCredentials" : {
            "tokenUrl" : "https://iam.wink.travel/oauth2/token",
            "scopes" : {
              "integrations.read" : "View your channel manager integrations.",
              "integrations.write" : "Create and update your channel manager integrations.",
              "integrations.remove" : "Delete your channel manager integrations."
            }
          }
        }
      },
      "winkWebhookSignature" : {
        "type" : "apiKey",
        "description" : "HMAC-SHA256 signature: `t=<unix seconds>,v1=<hex hmac(secret, t + \".\" + rawBody)>` (a second `v1` is present for 24h after a secret rotation). Verify against the RAW request body with your webhook's secret (shown once on create/rotate), constant-time compare, and reject timestamps older than 5 minutes.",
        "name" : "Wink-Signature",
        "in" : "header"
      }
    }
  },
  "webhooks" : {
    "account.managers.update" : {
      "post" : {
        "tags" : [ "managing-entity" ],
        "summary" : "Managers updated",
        "description" : "The account's manager list changed.\n\n**Recipients:** SELF. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "account.managers.update",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "account.managers.update"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ManagingEntityWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "activity.created" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Activity created",
        "description" : "An activity was created.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "activity.created",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "activity.created"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "activity.deleted" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Activity deleted",
        "description" : "An activity was deleted.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "activity.deleted",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "activity.deleted"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "activity.updated" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Activity updated",
        "description" : "An activity was updated.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "activity.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "activity.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "add_on.created" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Add-on created",
        "description" : "An add-on was created.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "add_on.created",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "add_on.created"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "add_on.deleted" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Add-on deleted",
        "description" : "An add-on was deleted.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "add_on.deleted",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "add_on.deleted"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "add_on.updated" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Add-on updated",
        "description" : "An add-on was updated.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "add_on.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "add_on.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "booking.cancelled" : {
      "post" : {
        "tags" : [ "booking" ],
        "summary" : "Booking cancelled",
        "description" : "A booking was cancelled. `cancellation` carries who cancelled and why.\n\n**Recipients:** AFFILIATE, AGENT, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "booking.cancelled",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "booking.cancelled"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/BookingWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "booking.create" : {
      "post" : {
        "tags" : [ "booking" ],
        "summary" : "Booking created",
        "description" : "A booking was confirmed. Sent to the hotel, and to the reseller / travel agent the booking was made through.\n\n**Recipients:** AFFILIATE, AGENT, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key. Also raised when: Each booking of a multi-room group booking is delivered as its own booking.create event; correlate with `groupIdentifier`.",
        "operationId" : "booking.create",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "booking.create"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/BookingWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "booking.failed" : {
      "post" : {
        "tags" : [ "booking" ],
        "summary" : "Booking failed",
        "description" : "A booking attempt failed after checkout started.\n\n**Recipients:** AFFILIATE, AGENT, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "booking.failed",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "booking.failed"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/BookingWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "booking.funds.available" : {
      "post" : {
        "tags" : [ "booking" ],
        "summary" : "Booking funds available",
        "description" : "The booking's funds became available for payout.\n\n**Recipients:** AFFILIATE, AGENT, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "booking.funds.available",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "booking.funds.available"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/BookingWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "booking.funds.ledgered" : {
      "post" : {
        "tags" : [ "booking" ],
        "summary" : "Booking funds ledgered",
        "description" : "The booking's funds were added to the ledger.\n\n**Recipients:** AFFILIATE, AGENT, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "booking.funds.ledgered",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "booking.funds.ledgered"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/BookingWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "booking.refund.full" : {
      "post" : {
        "tags" : [ "booking" ],
        "summary" : "Booking fully refunded",
        "description" : "The whole booking amount was refunded.\n\n**Recipients:** AFFILIATE, AGENT, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "booking.refund.full",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "booking.refund.full"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/BookingWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "booking.refund.partial" : {
      "post" : {
        "tags" : [ "booking" ],
        "summary" : "Booking partially refunded",
        "description" : "Part of the booking amount was refunded.\n\n**Recipients:** AFFILIATE, AGENT, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "booking.refund.partial",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "booking.refund.partial"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/BookingWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "booking.refund.request" : {
      "post" : {
        "tags" : [ "booking" ],
        "summary" : "Refund requested",
        "description" : "A refund was requested for a booking. `refund` carries the request.\n\n**Recipients:** AFFILIATE, AGENT, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "booking.refund.request",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "booking.refund.request"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/BookingWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "booking.review.created" : {
      "post" : {
        "tags" : [ "booking" ],
        "summary" : "Review created",
        "description" : "A guest submitted a review for a stay. Sent to the hotel.\n\n**Recipients:** SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "booking.review.created",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "booking.review.created"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ReviewWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "booking.review.responded" : {
      "post" : {
        "tags" : [ "booking" ],
        "summary" : "Review responded",
        "description" : "The hotel responded to a guest review. Sent to the booking's parties.\n\n**Recipients:** AFFILIATE, AGENT, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "booking.review.responded",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "booking.review.responded"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ReviewResponseWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "managing_entity.city.updated" : {
      "post" : {
        "tags" : [ "managing-entity" ],
        "summary" : "Account address updated",
        "description" : "The account's address changed.\n\n**Recipients:** SELF. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key. Also raised when: The account's city changed (published as managing_entity.city.updated).",
        "operationId" : "managing_entity.city.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "managing_entity.city.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ManagingEntityWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "managing_entity.created" : {
      "post" : {
        "tags" : [ "managing-entity" ],
        "summary" : "Account created",
        "description" : "A managing entity (account) was created.\n\n**Recipients:** SELF. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "managing_entity.created",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "managing_entity.created"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ManagingEntityWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "managing_entity.deleted" : {
      "post" : {
        "tags" : [ "managing-entity" ],
        "summary" : "Account deleted",
        "description" : "The account was deleted; the payload is the last known state.\n\n**Recipients:** SELF. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "managing_entity.deleted",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "managing_entity.deleted"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ManagingEntityWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "managing_entity.information.updated" : {
      "post" : {
        "tags" : [ "managing-entity" ],
        "summary" : "Account information updated",
        "description" : "The account's general information changed.\n\n**Recipients:** SELF. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "managing_entity.information.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "managing_entity.information.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ManagingEntityWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "managing_entity.logo.updated" : {
      "post" : {
        "tags" : [ "managing-entity" ],
        "summary" : "Account logo updated",
        "description" : "The account's logo changed.\n\n**Recipients:** SELF. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "managing_entity.logo.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "managing_entity.logo.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ManagingEntityWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "managing_entity.managed_by.updated" : {
      "post" : {
        "tags" : [ "managing-entity" ],
        "summary" : "Account managed-by updated",
        "description" : "The entity managing this account on its behalf changed.\n\n**Recipients:** SELF. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "managing_entity.managed_by.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "managing_entity.managed_by.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ManagingEntityWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "managing_entity.manager.added" : {
      "post" : {
        "tags" : [ "managing-entity" ],
        "summary" : "Manager added",
        "description" : "A manager was added to the account.\n\n**Recipients:** SELF. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "managing_entity.manager.added",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "managing_entity.manager.added"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ManagingEntityWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "managing_entity.manager.invited" : {
      "post" : {
        "tags" : [ "managing-entity" ],
        "summary" : "Manager invited",
        "description" : "A manager was invited to the account.\n\n**Recipients:** SELF. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "managing_entity.manager.invited",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "managing_entity.manager.invited"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ManagingEntityWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "managing_entity.manager.owner.set" : {
      "post" : {
        "tags" : [ "managing-entity" ],
        "summary" : "Account owner set",
        "description" : "The account owner was set.\n\n**Recipients:** SELF. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "managing_entity.manager.owner.set",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "managing_entity.manager.owner.set"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ManagingEntityWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "managing_entity.manager.removed" : {
      "post" : {
        "tags" : [ "managing-entity" ],
        "summary" : "Manager removed",
        "description" : "A manager was removed from the account.\n\n**Recipients:** SELF. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "managing_entity.manager.removed",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "managing_entity.manager.removed"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ManagingEntityWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "managing_entity.place_id.updated" : {
      "post" : {
        "tags" : [ "managing-entity" ],
        "summary" : "Account place id updated",
        "description" : "The account's Google Place ID changed.\n\n**Recipients:** SELF. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "managing_entity.place_id.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "managing_entity.place_id.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ManagingEntityWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "managing_entity.profile_picture.updated" : {
      "post" : {
        "tags" : [ "managing-entity" ],
        "summary" : "Account profile picture updated",
        "description" : "The account's profile picture changed.\n\n**Recipients:** SELF. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "managing_entity.profile_picture.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "managing_entity.profile_picture.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ManagingEntityWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "managing_entity.status.updated" : {
      "post" : {
        "tags" : [ "managing-entity" ],
        "summary" : "Account status updated",
        "description" : "The account's platform status changed.\n\n**Recipients:** SELF. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "managing_entity.status.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "managing_entity.status.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ManagingEntityWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "managing_entity.subscription.invoice.changed" : {
      "post" : {
        "tags" : [ "managing-entity" ],
        "summary" : "Subscription invoice changed",
        "description" : "The status of a subscription invoice changed.\n\n**Recipients:** SELF. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "managing_entity.subscription.invoice.changed",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "managing_entity.subscription.invoice.changed"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ManagingEntityWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "managing_entity.subscription.provisioned" : {
      "post" : {
        "tags" : [ "managing-entity" ],
        "summary" : "Subscription provisioned",
        "description" : "A platform subscription was provisioned for the account.\n\n**Recipients:** SELF. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "managing_entity.subscription.provisioned",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "managing_entity.subscription.provisioned"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ManagingEntityWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "managing_entity.unique_id.updated" : {
      "post" : {
        "tags" : [ "managing-entity" ],
        "summary" : "Account unique id updated",
        "description" : "The account's short unique id changed.\n\n**Recipients:** SELF. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "managing_entity.unique_id.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "managing_entity.unique_id.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ManagingEntityWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "managing_entity.url_name.updated" : {
      "post" : {
        "tags" : [ "managing-entity" ],
        "summary" : "Account URL name updated",
        "description" : "The account's URL name (slug) changed.\n\n**Recipients:** SELF. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "managing_entity.url_name.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "managing_entity.url_name.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/ManagingEntityWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "master_rate.created" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Master rate created",
        "description" : "A master rate was created.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "master_rate.created",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "master_rate.created"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "master_rate.deleted" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Master rate deleted",
        "description" : "A master rate was deleted.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "master_rate.deleted",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "master_rate.deleted"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "master_rate.updated" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Master rate updated",
        "description" : "A master rate was updated.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "master_rate.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "master_rate.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "meeting_room.created" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Meeting room created",
        "description" : "A meeting room was created.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "meeting_room.created",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "meeting_room.created"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "meeting_room.deleted" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Meeting room deleted",
        "description" : "A meeting room was deleted.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "meeting_room.deleted",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "meeting_room.deleted"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "meeting_room.updated" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Meeting room updated",
        "description" : "A meeting room was updated.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "meeting_room.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "meeting_room.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "property.address.updated" : {
      "post" : {
        "tags" : [ "property" ],
        "summary" : "Property address updated",
        "description" : "The property's address changed.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "property.address.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "property.address.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/PropertyWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "property.created" : {
      "post" : {
        "tags" : [ "property" ],
        "summary" : "Property created",
        "description" : "A property was created.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "property.created",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "property.created"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/PropertyWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "property.deleted" : {
      "post" : {
        "tags" : [ "property" ],
        "summary" : "Property deleted",
        "description" : "A property was deleted; the payload is the last known state.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "property.deleted",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "property.deleted"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/PropertyWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "property.geolocation.updated" : {
      "post" : {
        "tags" : [ "property" ],
        "summary" : "Property geolocation updated",
        "description" : "The property's coordinates changed.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "property.geolocation.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "property.geolocation.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/PropertyWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "property.name.updated" : {
      "post" : {
        "tags" : [ "property" ],
        "summary" : "Property name updated",
        "description" : "The property's name changed.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "property.name.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "property.name.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/PropertyWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "property.policy.created" : {
      "post" : {
        "tags" : [ "property" ],
        "summary" : "Property policy created",
        "description" : "A property policy was created; fetch the property for the policy detail.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "property.policy.created",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "property.policy.created"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/PropertyWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "property.policy.updated" : {
      "post" : {
        "tags" : [ "property" ],
        "summary" : "Property policy updated",
        "description" : "A property policy changed; fetch the property for the policy detail.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "property.policy.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "property.policy.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/PropertyWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "property.profile.updated" : {
      "post" : {
        "tags" : [ "property" ],
        "summary" : "Property profile updated",
        "description" : "The property's profile changed.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "property.profile.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "property.profile.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/PropertyWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "property.registered" : {
      "post" : {
        "tags" : [ "property" ],
        "summary" : "Property registered",
        "description" : "The property completed registration.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "property.registered",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "property.registered"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/PropertyWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "property.services.updated" : {
      "post" : {
        "tags" : [ "property" ],
        "summary" : "Property services updated",
        "description" : "The property's services/amenities changed.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "property.services.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "property.services.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/PropertyWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "property.status.updated" : {
      "post" : {
        "tags" : [ "property" ],
        "summary" : "Property status updated",
        "description" : "The property's platform status changed.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "property.status.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "property.status.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/PropertyWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "property.welcome_text.updated" : {
      "post" : {
        "tags" : [ "property" ],
        "summary" : "Property welcome text updated",
        "description" : "The property's welcome text changed.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "property.welcome_text.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "property.welcome_text.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/PropertyWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "rate_plan.created" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Rate plan created",
        "description" : "A rate plan was created.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "rate_plan.created",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "rate_plan.created"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "rate_plan.deleted" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Rate plan deleted",
        "description" : "A rate plan was deleted.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "rate_plan.deleted",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "rate_plan.deleted"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "rate_plan.updated" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Rate plan updated",
        "description" : "A rate plan was updated.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "rate_plan.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "rate_plan.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "restaurant.created" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Restaurant created",
        "description" : "A restaurant was created.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "restaurant.created",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "restaurant.created"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "restaurant.deleted" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Restaurant deleted",
        "description" : "A restaurant was deleted.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "restaurant.deleted",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "restaurant.deleted"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "restaurant.updated" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Restaurant updated",
        "description" : "A restaurant was updated.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "restaurant.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "restaurant.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "room_type.created" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Room type created",
        "description" : "A room type was created.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "room_type.created",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "room_type.created"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "room_type.deleted" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Room type deleted",
        "description" : "A room type was deleted.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "room_type.deleted",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "room_type.deleted"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "room_type.updated" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Room type updated",
        "description" : "A room type was updated.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "room_type.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "room_type.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "sales_channel.created" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Sales channel created",
        "description" : "A supplier ↔ reseller relationship was created. Sent to both parties.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "sales_channel.created",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "sales_channel.created"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "sales_channel.deleted" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Sales channel deleted",
        "description" : "A supplier ↔ reseller relationship was removed. Sent to both parties.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "sales_channel.deleted",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "sales_channel.deleted"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "sales_channel.updated" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Sales channel updated",
        "description" : "A supplier ↔ reseller relationship changed (enabled/disabled, terms). Sent to both parties.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "sales_channel.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "sales_channel.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "spa.created" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Spa created",
        "description" : "A spa was created.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "spa.created",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "spa.created"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "spa.deleted" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Spa deleted",
        "description" : "A spa was deleted.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "spa.deleted",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "spa.deleted"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "spa.updated" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Spa updated",
        "description" : "A spa was updated.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "spa.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "spa.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "special_rate.created" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Promotion created",
        "description" : "A promotion (special rate) was created.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "special_rate.created",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "special_rate.created"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "special_rate.deleted" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Promotion deleted",
        "description" : "A promotion was deleted.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "special_rate.deleted",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "special_rate.deleted"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    },
    "special_rate.updated" : {
      "post" : {
        "tags" : [ "inventory" ],
        "summary" : "Promotion updated",
        "description" : "A promotion was updated.\n\n**Recipients:** AFFILIATE, SUPPLIER. **Delivery:** POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. `Wink-Event-Id` is your idempotency key.",
        "operationId" : "special_rate.updated",
        "parameters" : [ {
          "name" : "Wink-Signature",
          "in" : "header",
          "description" : "Signature over `t + \".\" + rawBody`. See the security scheme.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "t=1755000000,v1=5d41402abc4b2a76b9719d911017c592..."
          }
        }, {
          "name" : "Wink-Event-Id",
          "in" : "header",
          "description" : "Event identifier — identical for every endpoint of this recipient and every retry.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a"
          }
        }, {
          "name" : "Wink-Delivery-Id",
          "in" : "header",
          "description" : "Delivery identifier — unique per subscription endpoint.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b"
          }
        }, {
          "name" : "Wink-Event-Type",
          "in" : "header",
          "description" : "Event type key (same as `type` in the body).",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "special_rate.updated"
          }
        }, {
          "name" : "Wink-Delivery-Attempt",
          "in" : "header",
          "description" : "1-based attempt number.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "1"
          }
        }, {
          "name" : "Wink-Version",
          "in" : "header",
          "description" : "Wire contract version.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "2.0"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "allOf" : [ {
                  "$ref" : "#/components/schemas/WebhookEnvelope"
                }, {
                  "type" : "object",
                  "properties" : {
                    "object" : {
                      "$ref" : "#/components/schemas/InventoryItemWebhookPayload"
                    }
                  }
                } ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "2XX" : {
            "description" : "Acknowledged. Any 2xx marks the delivery SUCCEEDED."
          },
          "4XX" : {
            "description" : "Rejected. Terminal (no retry) except 408 and 429, which are retried."
          },
          "5XX" : {
            "description" : "Failed. Retried per the schedule above."
          }
        },
        "security" : [ {
          "winkWebhookSignature" : [ ]
        } ]
      }
    }
  },
  "x-wink-event-types" : [ {
    "key" : "account.details.updated",
    "name" : "MANAGING_ENTITY_DETAILS_UPDATED",
    "description" : "The account's details changed.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "account.managers.update",
    "name" : "MANAGING_ENTITY_MANAGERS_UPDATED",
    "description" : "The account's manager list changed.",
    "delivered" : true,
    "roles" : [ "SELF" ]
  }, {
    "key" : "account.task.complete",
    "name" : "MANAGING_ENTITY_TASK_COMPLETED",
    "description" : "An onboarding task was completed.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "account.task.create",
    "name" : "MANAGING_ENTITY_TASK_CREATED",
    "description" : "An onboarding task was created for the account.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "account.task.remove",
    "name" : "MANAGING_ENTITY_TASK_REMOVED",
    "description" : "An onboarding task was removed.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "account.task.tax_id.complete",
    "name" : "MANAGING_ENTITY_TASK_TAX_ID_COMPLETE",
    "description" : "The tax-id onboarding task was completed.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "account.task.update",
    "name" : "MANAGING_ENTITY_TASK_UPDATED",
    "description" : "An onboarding task was updated.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "account.under_review",
    "name" : "MANAGING_ENTITY_UNDER_REVIEW",
    "description" : "The account was placed under review.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "activity.created",
    "name" : "ACTIVITY_CREATED",
    "description" : "An activity was created.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "activity.deleted",
    "name" : "ACTIVITY_DELETED",
    "description" : "An activity was deleted.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "activity.updated",
    "name" : "ACTIVITY_UPDATED",
    "description" : "An activity was updated.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "add_on.created",
    "name" : "ADD_ON_CREATED",
    "description" : "An add-on was created.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "add_on.deleted",
    "name" : "ADD_ON_DELETED",
    "description" : "An add-on was deleted.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "add_on.updated",
    "name" : "ADD_ON_UPDATED",
    "description" : "An add-on was updated.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "booking.cancelled",
    "name" : "BOOKING_CANCELLED",
    "description" : "A booking was cancelled.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "AGENT", "SUPPLIER" ]
  }, {
    "key" : "booking.create",
    "name" : "BOOKING_CREATED",
    "description" : "A booking was created (confirmed).",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "AGENT", "SUPPLIER" ]
  }, {
    "key" : "booking.failed",
    "name" : "BOOKING_FAILED",
    "description" : "A booking attempt failed.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "AGENT", "SUPPLIER" ]
  }, {
    "key" : "booking.funds.available",
    "name" : "BOOKING_FUNDS_AVAILABLE",
    "description" : "Funds for a booking became available for payout.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "AGENT", "SUPPLIER" ]
  }, {
    "key" : "booking.funds.ledgered",
    "name" : "BOOKING_FUNDS_LEDGERED",
    "description" : "Funds for a booking were added to the ledger.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "AGENT", "SUPPLIER" ]
  }, {
    "key" : "booking.initialize.complete",
    "name" : "BOOKING_INITIALIZATION_COMPLETE",
    "description" : "A booking initialisation completed.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "booking.initialize.request",
    "name" : "BOOKING_INITIALIZATION_REQUESTED",
    "description" : "A booking initialisation (checkout) was requested.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "booking.payout.complete",
    "name" : "BOOKING_PAYOUT_COMPLETED",
    "description" : "A payout for a booking completed.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "booking.payout.create",
    "name" : "BOOKING_PAYOUT_CREATED",
    "description" : "A payout for a booking was created.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "booking.processing",
    "name" : "BOOKING_PROCESSING",
    "description" : "A booking is being processed.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "booking.refund.error",
    "name" : "BOOKING_REFUND_ON_ERROR",
    "description" : "A booking was refunded because of a processing error.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "booking.refund.full",
    "name" : "BOOKING_FULLY_REFUNDED",
    "description" : "A booking was fully refunded.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "AGENT", "SUPPLIER" ]
  }, {
    "key" : "booking.refund.partial",
    "name" : "BOOKING_PARTIALLY_REFUNDED",
    "description" : "A booking was partially refunded.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "AGENT", "SUPPLIER" ]
  }, {
    "key" : "booking.refund.request",
    "name" : "BOOKING_REFUND_REQUESTED",
    "description" : "A refund was requested for a booking.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "AGENT", "SUPPLIER" ]
  }, {
    "key" : "booking.review.created",
    "name" : "BOOKING_REVIEW_CREATED",
    "description" : "A guest submitted a review for a booking.",
    "delivered" : true,
    "roles" : [ "SUPPLIER" ]
  }, {
    "key" : "booking.review.responded",
    "name" : "BOOKING_REVIEW_RESPONDED",
    "description" : "The hotel responded to a guest review.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "AGENT", "SUPPLIER" ]
  }, {
    "key" : "booking.sync.failed",
    "name" : "BOOKING_SYNC_FAILED",
    "description" : "A booking-to-channel-manager synchronisation failed.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "booking.sync.run",
    "name" : "BOOKING_SYNC_RUN",
    "description" : "A booking-to-channel-manager synchronisation run started.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "channel-manager.update",
    "name" : "CHANNEL_MANAGER_UPDATE",
    "description" : "A channel manager pushed an update.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "channel-manager.update.availability",
    "name" : "CHANNEL_MANAGER_AVAILABILITY_UPDATE",
    "description" : "A channel manager pushed an availability update.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "channel-manager.update.rate",
    "name" : "CHANNEL_MANAGER_RATE_UPDATE",
    "description" : "A channel manager pushed a rate update.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "email.correspondence",
    "name" : "EMAIL_CORRESPONDENCE",
    "description" : "An email correspondence was recorded.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "internal.payment.failed",
    "name" : "PAYMENT_FAILED",
    "description" : "A payment failed (internal).",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "internal.payment.processing",
    "name" : "PAYMENT_PROCESSING",
    "description" : "A payment is processing (internal).",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "internal.payment.succeeded",
    "name" : "PAYMENT_SUCCEEDED",
    "description" : "A payment succeeded (internal).",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "ledger.entry.create",
    "name" : "LEDGER_ENTRY_CREATED",
    "description" : "A ledger entry was created.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "managing_entity.account_representative.updated",
    "name" : "MANAGING_ENTITY_ACCOUNT_REPRESENTATIVE_UPDATED",
    "description" : "The account representative changed.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "managing_entity.agent.email.notification",
    "name" : "MANAGING_ENTITY_AGENT_EMAIL_NOTIFICATION",
    "description" : "An email notification was sent to the account's agent.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "managing_entity.agent.updated",
    "name" : "MANAGING_ENTITY_AGENT_UPDATED",
    "description" : "The account's travel-agent details changed.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "managing_entity.city.updated",
    "name" : "MANAGING_ENTITY_ADDRESS_UPDATED",
    "description" : "The account's address or city changed.",
    "delivered" : true,
    "roles" : [ "SELF" ]
  }, {
    "key" : "managing_entity.created",
    "name" : "MANAGING_ENTITY_CREATED",
    "description" : "A managing entity (account) was created.",
    "delivered" : true,
    "roles" : [ "SELF" ]
  }, {
    "key" : "managing_entity.deleted",
    "name" : "MANAGING_ENTITY_DELETED",
    "description" : "The account was deleted.",
    "delivered" : true,
    "roles" : [ "SELF" ]
  }, {
    "key" : "managing_entity.information.updated",
    "name" : "MANAGING_ENTITY_INFORMATION_UPDATED",
    "description" : "The account's general information changed.",
    "delivered" : true,
    "roles" : [ "SELF" ]
  }, {
    "key" : "managing_entity.logo.updated",
    "name" : "MANAGING_ENTITY_LOGO_UPDATED",
    "description" : "The account's logo changed.",
    "delivered" : true,
    "roles" : [ "SELF" ]
  }, {
    "key" : "managing_entity.managed_by.updated",
    "name" : "MANAGING_ENTITY_MANAGED_BY_UPDATED",
    "description" : "The entity managing this account on its behalf changed.",
    "delivered" : true,
    "roles" : [ "SELF" ]
  }, {
    "key" : "managing_entity.manager.accepted",
    "name" : "MANAGING_ENTITY_MANAGER_ACCEPTED",
    "description" : "An invited manager accepted the invitation.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "managing_entity.manager.added",
    "name" : "MANAGING_ENTITY_MANAGER_ADDED",
    "description" : "A manager was added to the account.",
    "delivered" : true,
    "roles" : [ "SELF" ]
  }, {
    "key" : "managing_entity.manager.email.notification",
    "name" : "MANAGING_ENTITY_MANAGER_EMAIL_NOTIFICATION",
    "description" : "An email notification was sent to an account manager.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "managing_entity.manager.invited",
    "name" : "MANAGING_ENTITY_MANAGER_INVITED",
    "description" : "A manager was invited to the account.",
    "delivered" : true,
    "roles" : [ "SELF" ]
  }, {
    "key" : "managing_entity.manager.owner.set",
    "name" : "MANAGING_ENTITY_OWNER_SET",
    "description" : "The account owner was set.",
    "delivered" : true,
    "roles" : [ "SELF" ]
  }, {
    "key" : "managing_entity.manager.rejected",
    "name" : "MANAGING_ENTITY_MANAGER_REJECTED",
    "description" : "An invited manager rejected the invitation.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "managing_entity.manager.removed",
    "name" : "MANAGING_ENTITY_MANAGER_REMOVED",
    "description" : "A manager was removed from the account.",
    "delivered" : true,
    "roles" : [ "SELF" ]
  }, {
    "key" : "managing_entity.name.updated",
    "name" : "MANAGING_ENTITY_NAME_UPDATED",
    "description" : "The account's display name changed.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "managing_entity.place_id.updated",
    "name" : "MANAGING_ENTITY_PLACE_ID_UPDATED",
    "description" : "The account's Google Place ID changed.",
    "delivered" : true,
    "roles" : [ "SELF" ]
  }, {
    "key" : "managing_entity.profile_picture.updated",
    "name" : "MANAGING_ENTITY_PROFILE_PICTURE_UPDATED",
    "description" : "The account's profile picture changed.",
    "delivered" : true,
    "roles" : [ "SELF" ]
  }, {
    "key" : "managing_entity.status.updated",
    "name" : "MANAGING_ENTITY_STATUS_UPDATED",
    "description" : "The account's platform status changed (e.g. approved, suspended).",
    "delivered" : true,
    "roles" : [ "SELF" ]
  }, {
    "key" : "managing_entity.subscription.changed",
    "name" : "MANAGING_ENTITY_SUBSCRIPTION_CHANGED",
    "description" : "The account's platform subscription changed.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "managing_entity.subscription.invoice.changed",
    "name" : "MANAGING_ENTITY_SUBSCRIPTION_INVOICE_CHANGED",
    "description" : "The status of a subscription invoice changed.",
    "delivered" : true,
    "roles" : [ "SELF" ]
  }, {
    "key" : "managing_entity.subscription.provisioned",
    "name" : "MANAGING_ENTITY_SUBSCRIPTION_PROVISIONED",
    "description" : "A platform subscription was provisioned for the account.",
    "delivered" : true,
    "roles" : [ "SELF" ]
  }, {
    "key" : "managing_entity.unique_id.updated",
    "name" : "MANAGING_ENTITY_UNIQUE_ID_UPDATED",
    "description" : "The account's short unique id changed.",
    "delivered" : true,
    "roles" : [ "SELF" ]
  }, {
    "key" : "managing_entity.url_name.updated",
    "name" : "MANAGING_ENTITY_URL_NAME_UPDATED",
    "description" : "The account's URL name (slug) changed.",
    "delivered" : true,
    "roles" : [ "SELF" ]
  }, {
    "key" : "master_rate.created",
    "name" : "MASTER_RATE_CREATED",
    "description" : "A master rate was created.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "master_rate.deleted",
    "name" : "MASTER_RATE_DELETED",
    "description" : "A master rate was deleted.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "master_rate.updated",
    "name" : "MASTER_RATE_UPDATED",
    "description" : "A master rate was updated.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "meeting_room.created",
    "name" : "MEETING_ROOM_CREATED",
    "description" : "A meeting room was created.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "meeting_room.deleted",
    "name" : "MEETING_ROOM_DELETED",
    "description" : "A meeting room was deleted.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "meeting_room.updated",
    "name" : "MEETING_ROOM_UPDATED",
    "description" : "A meeting room was updated.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "payee.create",
    "name" : "PAYEE_CREATED",
    "description" : "A payee was created.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "payee.create.failure",
    "name" : "PAYEE_CREATION_FAILED",
    "description" : "Creating a payee failed.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "payee.update",
    "name" : "PAYEE_UPDATED",
    "description" : "A payee was updated.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "payee.update.failure",
    "name" : "PAYEE_UPDATE_FAILED",
    "description" : "Updating a payee failed.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "perk.deleted",
    "name" : "PERK_DELETED",
    "description" : "A perk was deleted.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "perk.updated",
    "name" : "PERK_UPDATED",
    "description" : "A perk was updated.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "property.address.updated",
    "name" : "PROPERTY_ADDRESS_UPDATED",
    "description" : "A property's address changed.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "property.created",
    "name" : "PROPERTY_CREATED",
    "description" : "A property (hotel) was created.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "property.deleted",
    "name" : "PROPERTY_DELETED",
    "description" : "A property was deleted.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "property.geolocation.updated",
    "name" : "PROPERTY_GEOLOCATION_UPDATED",
    "description" : "A property's geolocation changed.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "property.name.updated",
    "name" : "PROPERTY_NAME_UPDATED",
    "description" : "A property's name changed.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "property.policy.created",
    "name" : "PROPERTY_POLICY_CREATED",
    "description" : "A property policy was created.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "property.policy.updated",
    "name" : "PROPERTY_POLICY_UPDATED",
    "description" : "A property policy changed.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "property.profile.updated",
    "name" : "PROPERTY_PROFILE_UPDATED",
    "description" : "A property's profile changed.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "property.registered",
    "name" : "PROPERTY_REGISTERED",
    "description" : "A property completed registration.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "property.services.updated",
    "name" : "PROPERTY_SERVICES_UPDATED",
    "description" : "A property's services/amenities changed.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "property.status.updated",
    "name" : "PROPERTY_STATUS_UPDATED",
    "description" : "A property's platform status changed.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "property.updated",
    "name" : "PROPERTY_UPDATED",
    "description" : "A property was updated.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "property.welcome_text.updated",
    "name" : "PROPERTY_WELCOME_TEXT_UPDATED",
    "description" : "A property's welcome text changed.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "rate_modifier.updated",
    "name" : "RATE_MODIFIER_UPDATED",
    "description" : "A rate modifier was updated.",
    "delivered" : false,
    "roles" : [ ]
  }, {
    "key" : "rate_plan.created",
    "name" : "RATE_PLAN_CREATED",
    "description" : "A rate plan was created.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "rate_plan.deleted",
    "name" : "RATE_PLAN_DELETED",
    "description" : "A rate plan was deleted.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "rate_plan.updated",
    "name" : "RATE_PLAN_UPDATED",
    "description" : "A rate plan was updated.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "restaurant.created",
    "name" : "RESTAURANT_CREATED",
    "description" : "A restaurant was created.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "restaurant.deleted",
    "name" : "RESTAURANT_DELETED",
    "description" : "A restaurant was deleted.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "restaurant.updated",
    "name" : "RESTAURANT_UPDATED",
    "description" : "A restaurant was updated.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "room_type.created",
    "name" : "ROOM_TYPE_CREATED",
    "description" : "A room type was created.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "room_type.deleted",
    "name" : "ROOM_TYPE_DELETED",
    "description" : "A room type was deleted.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "room_type.updated",
    "name" : "ROOM_TYPE_UPDATED",
    "description" : "A room type was updated.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "sales_channel.created",
    "name" : "SALES_CHANNEL_CREATED",
    "description" : "A sales-channel relationship (supplier ↔ reseller) was created.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "sales_channel.deleted",
    "name" : "SALES_CHANNEL_DELETED",
    "description" : "A sales-channel relationship was deleted.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "sales_channel.updated",
    "name" : "SALES_CHANNEL_UPDATED",
    "description" : "A sales-channel relationship was updated.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "spa.created",
    "name" : "SPA_CREATED",
    "description" : "A spa was created.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "spa.deleted",
    "name" : "SPA_DELETED",
    "description" : "A spa was deleted.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "spa.updated",
    "name" : "SPA_UPDATED",
    "description" : "A spa was updated.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "special_rate.created",
    "name" : "SPECIAL_RATE_CREATED",
    "description" : "A promotion (special rate) was created.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "special_rate.deleted",
    "name" : "SPECIAL_RATE_DELETED",
    "description" : "A promotion was deleted.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  }, {
    "key" : "special_rate.updated",
    "name" : "SPECIAL_RATE_UPDATED",
    "description" : "A promotion was updated.",
    "delivered" : true,
    "roles" : [ "AFFILIATE", "SUPPLIER" ]
  } ]
}