voice-hold.create
writes
Place a 90-minute soft-hold on a room and send the caller an SMS with the confirmation link. Designed for the VAPI voice-agent — call after the guest verbally accepts a rate from voice-availability.check. Returns stayId + payLinkUrl + holdExpiresAt; the agent reads the expiry back to the guest.
Input parameters
| Field | Type | Required | Notes |
|---|---|---|---|
roomTypeId | string | yes | Room type key (rooms.type text), e.g. 'Double' or 'Suite'. |
checkIn | string | yes | First night, YYYY-MM-DD. |
checkOut | string | yes | Departure (exclusive), YYYY-MM-DD. |
guests | integer | yes | Headcount. |
guestName | string | yes | Caller's name (for guest record). |
guestPhone | string | yes | E.164 phone number (used as SMS recipient + guest alias). |
Output fields
| Field | Type | Required | Notes |
|---|---|---|---|
stayId | string | yes | |
payLinkUrl | string | yes | |
holdExpiresAt | string | yes | ISO-8601 timestamp, 90 minutes from now. |
stripePaymentLinkId | string · nullable | yes | Stripe Payment Link ID (plink_...) when minted, null when we fell back to a synthetic URL (Stripe disabled / tenant not onboarded / API error). |