Text a deposit link
const url = 'https://example.kwickbooking.com/public/v1/bookings/example/deposit-link';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"phone":"07911 123456","venueId":null}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.kwickbooking.com/public/v1/bookings/example/deposit-link \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "phone": "07911 123456", "venueId": null }'Texts the guest the link to pay their deposit, or the top-up after a bigger party, to the phone number stored on the booking only. The phone in the request verifies the caller; it is never where the text goes. Needs the venue’s SMS deposit-link template. At most three texts per booking an hour. Send an Idempotency-Key header.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”POST /public/v1/bookings/{reference}/deposit-link: the phone on the booking (it verifies the caller; it is never where the link goes).
object
Example
{ "phone": "07911 123456", "venueId": null}Responses
Section titled “Responses”OK
The deposit link sent: how much, how (always text), when it expires (venue-local yyyy-MM-ddTHH:mm), and a summary.
object
Example
{ "outcome": "sent", "amountPence": 9000, "amountDisplay": "£90.00", "sentTo": "text", "linkExpiresAt": "2026-10-16T20:41", "summary": "I've texted the £90.00 deposit link to the number on the booking. It expires at 20:41."}Idempotency-Key required (https://developers.kwickblocks.ai/problems/idempotency-key-required)
RFC 9457 problem details. type is a URI with a page describing the problem.
object
Safe to read to a guest.
A machine-readable code on the widget’s routes.
Examples
Idempotency-Key required
{ "type": "https://developers.kwickblocks.ai/problems/idempotency-key-required", "title": "Idempotency-Key required", "status": 400, "detail": "This request needs an Idempotency-Key header."}Invalid or missing integration key (https://developers.kwickblocks.ai/problems/invalid-key)
RFC 9457 problem details. type is a URI with a page describing the problem.
object
Safe to read to a guest.
A machine-readable code on the widget’s routes.
Examples
Invalid or missing integration key
{ "type": "https://developers.kwickblocks.ai/problems/invalid-key", "title": "Invalid or missing integration key", "status": 401, "detail": "This integration key isn't valid. Ask the venue's admin for a new one."}Capability not granted (https://developers.kwickblocks.ai/problems/capability-missing)
RFC 9457 problem details. type is a URI with a page describing the problem.
object
Safe to read to a guest.
A machine-readable code on the widget’s routes.
Examples
Capability not granted
{ "type": "https://developers.kwickblocks.ai/problems/capability-missing", "title": "Capability not granted", "status": 403, "detail": "This integration key isn't allowed to do that. Ask the venue's admin to add the capability."}Booking not found (https://developers.kwickblocks.ai/problems/booking-not-found)
RFC 9457 problem details. type is a URI with a page describing the problem.
object
Safe to read to a guest.
A machine-readable code on the widget’s routes.
Examples
Booking not found
{ "type": "https://developers.kwickblocks.ai/problems/booking-not-found", "title": "Booking not found", "status": 404, "detail": "I couldn't find a booking with that reference and phone number."}Booking can’t be changed (https://developers.kwickblocks.ai/problems/booking-not-changeable); No deposit due (https://developers.kwickblocks.ai/problems/no-deposit-due); Payment link unavailable (https://developers.kwickblocks.ai/problems/deposit-link-unavailable); Idempotency-Key conflict (https://developers.kwickblocks.ai/problems/idempotency-conflict)
RFC 9457 problem details. type is a URI with a page describing the problem.
object
Safe to read to a guest.
A machine-readable code on the widget’s routes.
Examples
Booking can't be changed
{ "type": "https://developers.kwickblocks.ai/problems/booking-not-changeable", "title": "Booking can't be changed", "status": 409, "detail": "This booking can't be changed any more."}No deposit due
{ "type": "https://developers.kwickblocks.ai/problems/no-deposit-due", "title": "No deposit due", "status": 409, "detail": "There's no deposit to pay on this booking."}Payment link unavailable
{ "type": "https://developers.kwickblocks.ai/problems/deposit-link-unavailable", "title": "Payment link unavailable", "status": 409, "detail": "The venue can't send payment links by text yet."}Idempotency-Key conflict
{ "type": "https://developers.kwickblocks.ai/problems/idempotency-conflict", "title": "Idempotency-Key conflict", "status": 409, "detail": "That Idempotency-Key was already used for a different request."}Too many requests (https://developers.kwickblocks.ai/problems/rate-limited); Too many attempts (https://developers.kwickblocks.ai/problems/lookup-throttled); Too many links (https://developers.kwickblocks.ai/problems/too-many-links)
RFC 9457 problem details. type is a URI with a page describing the problem.
object
Safe to read to a guest.
A machine-readable code on the widget’s routes.
Examples
Too many requests
{ "type": "https://developers.kwickblocks.ai/problems/rate-limited", "title": "Too many requests", "status": 429, "detail": "There have been too many requests. Please try again in a minute."}Too many attempts
{ "type": "https://developers.kwickblocks.ai/problems/lookup-throttled", "title": "Too many attempts", "status": 429, "detail": "Too many attempts. Please try again later."}Too many links
{ "type": "https://developers.kwickblocks.ai/problems/too-many-links", "title": "Too many links", "status": 429, "detail": "That link has been sent a few times already. Please try again later."}