Developers / SDKs
SDKs
TypeScript/JavaScript (Node 20+ or modern browsers) and Python 3.10+ clients support discovery, single-experience bookings, ticket and form answers, payment intents, canonical status, cancellation and check-in.
Source packages live in sdks/typescript and sdks/python. The Python client uses the standard library. Configure your application origin; both default to https://app.reservory.com.
Payment wire fields
// TypeScript: preserve paymentKey with your checkout before calling.
const intent = await client.payments.createIntent({
bookingId, bookingToken, idempotencyKey: paymentKey,
});
// intent.clientSecret, intent.paymentIntentId, intent.publishableKey
# Python: exact same response field casing
intent = client.payments.create_intent(booking_id, booking_token,
idempotency_key=payment_key)
current = client.bookings.get(booking_id, booking_token)Creating an intent does not complete payment. Confirm through Stripe/hosted checkout, then check the canonical booking status. HTTP 202 raises ReservoryPendingError; only booking status confirmed is completion.
Recovery and supported boundaries
Persist one key per mutation and retry with identical input. Each SDK makes at most three attempts on network/5xx failures and preserves the same key. 4xx and pending responses stop automatic retries; errors expose the operation key. Default retry budget is 15 seconds. Python refreshes socket timeouts during body reads; DNS/header handling retains standard-library limitations.
Published forms and tickets must be supplied when required by the product. Upload fields use hosted checkout; form discovery is server/same-origin only. API keys are server-side credentials for cancellation and check-in. Cancellation never refunds. Refunds require an authorized dashboard operator; no SDK/API-key refund method exists. Group/POS checkout and GraphQL are outside this contract.