Documentation menu

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": "ownerrez",
  "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.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

A requirement answers whether a document is needed, from the facts — a property with a hot tub needs the hot-tub waiver. applies_to answers who owes it: the primary guest, every adult, or a guardian for each minor. Two questions, kept apart, because folding them together is how a rules engine becomes a programming language nobody can debug.

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 25 agreements a month.

Get an API key