Enquiries Channel manager Bookings Your website Booking engine Pricing
v2026-09

inventory.changed

The unit list, including units that have been retired.

When it fires

A unit was added, renamed, deactivated, deleted, or had its external alias changed by Doorloom staff.

This event describes a thing rather than a period, so window is null.

What to do with it

  • This is the one event that deliberately includes inactive and deleted units. You need them to retire an alias rather than have it silently vanish.
  • total_units counts only active units, so it will not match count(units) once anything has been deactivated.
  • There is no date window. This event describes the property, not a period.

The data block

Field Type Description
total_units integer Count of ACTIVE units only.
units[] array Every unit, active or not.
units[].inventory_id integer Doorloom's permanent id for the unit.
units[].external_unit_id string|null Your alias for it, if one has been mapped. Null means unmapped — you can still book the unit by inventory_id, or omit both and let Doorloom allocate.
units[].name string Host-facing unit name, e.g. "Garden Suite".
units[].code string|null Host-entered short code, if any.
units[].is_active boolean False for a unit the host deactivated or deleted. An inactive unit cannot be booked.
units[].is_default boolean True for the property's default unit. Single-unit properties have exactly one.
units[].max_occupancy integer|null Maximum guests the unit sleeps. Null means the host has not set one; Doorloom does not enforce it.
units[].deleted boolean True once the host deletes the unit. Retire your alias when you see this.

Example

The full envelope, as it arrives on the wire.

json
{
    "id": "01J6Y0T7P0R3S6V8X0Z2B4C6D8",
    "type": "inventory.changed",
    "version": "2026-09",
    "sequence": 1045,
    "occurred_at": "2026-10-01T15:06:02+05:30",
    "integration": {
        "id": 12,
        "slug": "acme-pms"
    },
    "property": {
        "doorloom_id": 902,
        "external_id": "VILLA-9",
        "master_property_id": 902
    },
    "window": null,
    "data": {
        "total_units": 2,
        "units": [
            {
                "inventory_id": 31,
                "external_unit_id": "ROOM-A",
                "name": "Garden Suite",
                "code": "GS",
                "is_active": true,
                "is_default": true,
                "max_occupancy": 4,
                "deleted": false
            },
            {
                "inventory_id": 32,
                "external_unit_id": "ROOM-B",
                "name": "Pool Suite",
                "code": "PS",
                "is_active": true,
                "is_default": false,
                "max_occupancy": 4,
                "deleted": false
            },
            {
                "inventory_id": 30,
                "external_unit_id": "ROOM-OLD",
                "name": "Annexe",
                "code": null,
                "is_active": false,
                "is_default": false,
                "max_occupancy": 2,
                "deleted": true
            }
        ]
    }
}

Related

Something unclear or wrong on this page? Write to [email protected] and tell us which page — we would rather fix the doc than answer the ticket twice.