Docs

Docs / Guides / Reservations and packets

Reservations and packets

One booking. Four guests, two of them children. A rental agreement, house rules and a hot-tub waiver. One link, and one state your system can wait on.

Import the reservation

PUT /v1/subjects is keyed on (provider, external_id), so it is safe to call on every webhook from your PMS. Send the guest list with it and the packet is built in the same call.

{
  "provider": "hostaway",
  "external_id": "RES-88213",
  "label": "River Bend Cabin, 3–7 Oct",
  "starts_on": "2026-10-03",
  "facts": { "adults": 2, "minors": 2, "pets": 1, "amenities": ["hot_tub"] },
  "participants": [
    { "ref": "a1", "full_name": "Dana Reyes", "email": "dana@example.signsealer.com", "is_primary": true },
    { "ref": "c1", "full_name": "Sam Reyes", "date_of_birth": "2014-06-02", "guardian_ref": "a1" }
  ]
}

SignSealer is not a booking system. No availability, no rates, no calendar. A subject is a thin shadow of your record, and it stays that way on purpose: the day we grow a booking engine we start competing with the platforms this integrates with.

What each guest owes

The documents a booking needs are chosen in the dashboard, under Documents for bookings: on each connected booking system's own page, and, for reservations sent with PUT /v1/subjects, on Bookings from Zapier, Make or the API. Each answers whether a document is needed, from the facts — a property with a hot tub needs the hot-tub waiver — and who owes it: the person who booked, every adult, or a parent or guardian for each minor. Two questions, kept apart, because folding them together is how a rules engine becomes a programming language nobody can debug.

A default answers for the bookings nothing else fits, and a person is asked for a document once however many choices want it of them. A reservation that matched nothing has an empty packet: ready, with nothing required. Check required before treating it as done.

Minors

Minority is judged on the arrival date, not the signing date. A seventeen-year-old booking for the week of their eighteenth birthday is still a minor when they get on the water. A blank date of birth is refused rather than read as an adult — that is the one wrong answer, and it files a child as an adult with nobody's signature behind them.

Readiness

A packet reports counts as well as a state, so a dashboard can say "3 of 5" and a door lock can wait on ready without either of them guessing what "partially complete" meant. A decline makes the packet blocked, not "still waiting" — somebody already answered.

Subscribe to packet.ready and it fires the moment the last required document completes. Not on a sweep: "ready ten minutes after the guest finished" is a guest standing outside a locked door.

Ready to build? An API key takes a minute in the portal, and the free plan covers the first 10 agreements a month.

Get an API key