Webhook olayları

Webhook olay türleri ve örnek yükleri. Aynı olaylar GET /v1/events ile de okunur.

property.updated

The owner changed the listing (a staff-approved change to name, address or type counts too).

data
{
  "id": "evt_981",
  "type": "property.updated",
  "created_at": "2027-06-01T10:00:00.000Z",
  "livemode": true,
  "api_version": "2026-11-01",
  "property_id": "5b1c1f1e-…",
  "property_seq": 14,
  "data": {
    "changed": [
      "name"
    ]
  }
}

property.media.updated

Photos were added, removed or reordered.

data
{
  "id": "evt_981",
  "type": "property.media.updated",
  "created_at": "2027-06-01T10:00:00.000Z",
  "livemode": true,
  "api_version": "2026-11-01",
  "property_id": "5b1c1f1e-…",
  "property_seq": 14,
  "data": {
    "added": [
      "…"
    ]
  }
}

property.paused

The property was taken off sale.

data
{
  "id": "evt_981",
  "type": "property.paused",
  "created_at": "2027-06-01T10:00:00.000Z",
  "livemode": true,
  "api_version": "2026-11-01",
  "property_id": "5b1c1f1e-…",
  "property_seq": 14,
  "data": {}
}

property.resumed

The property is on sale again.

data
{
  "id": "evt_981",
  "type": "property.resumed",
  "created_at": "2027-06-01T10:00:00.000Z",
  "livemode": true,
  "api_version": "2026-11-01",
  "property_id": "5b1c1f1e-…",
  "property_seq": 14,
  "data": {}
}

property.removed

The property was archived.

data
{
  "id": "evt_981",
  "type": "property.removed",
  "created_at": "2027-06-01T10:00:00.000Z",
  "livemode": true,
  "api_version": "2026-11-01",
  "property_id": "5b1c1f1e-…",
  "property_seq": 14,
  "data": {}
}

calendar.updated

Nights were closed or opened: by the owner, by any agency's booking or cancellation, by an expired hold, or by an imported calendar. You are not told about your own bookings here; those come as reservation.*. source is owner, agency (never says which), ical or hold_expired.

data
{
  "id": "evt_981",
  "type": "calendar.updated",
  "created_at": "2027-06-01T10:00:00.000Z",
  "livemode": true,
  "api_version": "2026-11-01",
  "property_id": "5b1c1f1e-…",
  "property_seq": 14,
  "data": {
    "closed": [
      {
        "start": "2027-07-10",
        "end": "2027-07-14"
      }
    ],
    "opened": [],
    "source": "agency"
  }
}

rates.updated

Price periods or fees changed for these date ranges.

data
{
  "id": "evt_981",
  "type": "rates.updated",
  "created_at": "2027-06-01T10:00:00.000Z",
  "livemode": true,
  "api_version": "2026-11-01",
  "property_id": "5b1c1f1e-…",
  "property_seq": 14,
  "data": {
    "ranges": [
      {
        "start": "2027-06-15",
        "end": "2027-09-15"
      }
    ]
  }
}

subscription.approved

The owner accepted your request (or an invited owner's property went live).

data
{
  "id": "evt_981",
  "type": "subscription.approved",
  "created_at": "2027-06-01T10:00:00.000Z",
  "livemode": true,
  "api_version": "2026-11-01",
  "property_id": "5b1c1f1e-…",
  "property_seq": 14,
  "data": {
    "subscriptionId": "…"
  }
}

subscription.rejected

The owner declined your request.

data
{
  "id": "evt_981",
  "type": "subscription.rejected",
  "created_at": "2027-06-01T10:00:00.000Z",
  "livemode": true,
  "api_version": "2026-11-01",
  "property_id": "5b1c1f1e-…",
  "property_seq": 14,
  "data": {
    "subscriptionId": "…"
  }
}

subscription.revoked

The owner (or you) ended the subscription. Calendar and price access stops at once.

data
{
  "id": "evt_981",
  "type": "subscription.revoked",
  "created_at": "2027-06-01T10:00:00.000Z",
  "livemode": true,
  "api_version": "2026-11-01",
  "property_id": "5b1c1f1e-…",
  "property_seq": 14,
  "data": {
    "subscriptionId": "…",
    "by": "owner"
  }
}

reservation.confirmed

Your reservation was recorded.

data
{
  "id": "evt_981",
  "type": "reservation.confirmed",
  "created_at": "2027-06-01T10:00:00.000Z",
  "livemode": true,
  "api_version": "2026-11-01",
  "property_id": "5b1c1f1e-…",
  "property_seq": 14,
  "data": {
    "reservationId": "…",
    "start": "2027-07-10",
    "end": "2027-07-14",
    "extras": [
      {
        "key": "pool.heated",
        "roomId": null,
        "feeMinor": 200000,
        "feeMode": "PER_NIGHT",
        "quantity": 4,
        "totalMinor": 800000
      }
    ]
  }
}

reservation.modified

Your reservation was changed.

data
{
  "id": "evt_981",
  "type": "reservation.modified",
  "created_at": "2027-06-01T10:00:00.000Z",
  "livemode": true,
  "api_version": "2026-11-01",
  "property_id": "5b1c1f1e-…",
  "property_seq": 14,
  "data": {
    "reservationId": "…",
    "start": "2027-07-10",
    "end": "2027-07-15"
  }
}

reservation.cancelled

A reservation of yours was cancelled, by you or by the owner.

data
{
  "id": "evt_981",
  "type": "reservation.cancelled",
  "created_at": "2027-06-01T10:00:00.000Z",
  "livemode": true,
  "api_version": "2026-11-01",
  "property_id": "5b1c1f1e-…",
  "property_seq": 14,
  "data": {
    "reservationId": "…",
    "by": "owner",
    "start": "2027-07-10",
    "end": "2027-07-14"
  }
}

hold.created

Your hold was placed.

data
{
  "id": "evt_981",
  "type": "hold.created",
  "created_at": "2027-06-01T10:00:00.000Z",
  "livemode": true,
  "api_version": "2026-11-01",
  "property_id": "5b1c1f1e-…",
  "property_seq": 14,
  "data": {
    "reservationId": "…",
    "start": "2027-07-10",
    "end": "2027-07-14",
    "extras": []
  }
}

hold.confirmed

Your hold became a reservation.

data
{
  "id": "evt_981",
  "type": "hold.confirmed",
  "created_at": "2027-06-01T10:00:00.000Z",
  "livemode": true,
  "api_version": "2026-11-01",
  "property_id": "5b1c1f1e-…",
  "property_seq": 14,
  "data": {
    "reservationId": "…"
  }
}

hold.expired

Your hold ran out of time; the nights are free again.

data
{
  "id": "evt_981",
  "type": "hold.expired",
  "created_at": "2027-06-01T10:00:00.000Z",
  "livemode": true,
  "api_version": "2026-11-01",
  "property_id": "5b1c1f1e-…",
  "property_seq": 14,
  "data": {
    "reservationId": "…",
    "start": "2027-07-10",
    "end": "2027-07-14"
  }
}

hold.extended

Your hold got more time (see POST /v1/holds/{id}/extend).

data
{
  "id": "evt_981",
  "type": "hold.extended",
  "created_at": "2027-06-01T10:00:00.000Z",
  "livemode": true,
  "api_version": "2026-11-01",
  "property_id": "5b1c1f1e-…",
  "property_seq": 14,
  "data": {
    "reservationId": "…",
    "holdExpiresAt": "2027-06-01T12:15:00.000Z",
    "extensions": 1
  }
}

waitlist.available

You are first in line and the nights you queued for are free. Only you can hold them until priorityUntil.

data
{
  "id": "evt_981",
  "type": "waitlist.available",
  "created_at": "2027-06-01T10:00:00.000Z",
  "livemode": true,
  "api_version": "2026-11-01",
  "property_id": "5b1c1f1e-…",
  "property_seq": 14,
  "data": {
    "waitlistId": "…",
    "start": "2027-07-10",
    "end": "2027-07-14",
    "priorityUntil": "2027-06-01T12:05:00.000Z"
  }
}