Skip to content
Back to Developers
API Updates
October 5, 2026 CDP updates

API Changelog

Review API updates, breaking changes and deprecations before updating your integration.

October 5, 2026 CDP updates
Latest

October 5, 2026

The original CDP intake endpoints are retired and answer 410 Gone. GuestMaker.js 1.4.2 can use the visit length set in CDP Settings.

Improvements

  • Visit length from CDP Settings

    GuestMaker.js 1.4.2 uses the visit length chosen in CDP Settings > Web Visitor Tracking, learned from the events response and kept in the browser. A tracking.sessionTimeout set in your snippet still takes priority; without either, a visit ends after 30 minutes of inactivity.

  • What to record

    CDP Settings can switch off page views, scroll depth, clicks or form interactions. The events endpoint discards a kind that is off on arrival and reports it as ignored in the 202 response; identify and custom events are never filtered.

Deprecations

  • Retired: CDP reservation and guest intake

    POST /api/v1/cdp/reservations, /reservations/batch, /reservations/bulk and /guests/batch, and GET /api/v1/cdp/batches/{id}, now answer 410 Gone with code ENDPOINT_RETIRED and store nothing. Send reservations with POST /api/v1/reservations and guests with POST /api/v1/guests. Visitor tracking (/api/v1/cdp/events and /identify) is unchanged.

    Scheduled for removal: 2026-10-05

October 3, 2026 SDK and sandbox updates
Stable

October 3, 2026

The sandbox covers 11 API families. GuestMaker.js 1.4.1 and the loyalty compatibility wrapper 2.0.1 align with the current API responses.

Improvements

  • Private browser requests

    The offline worker no longer caches API responses or page HTML. Live sandbox requests require a worker with the current private-request policy; older workers must update before a key is sent.

  • SDK installation and authentication

    The SDK reference includes current versions, module options, wrapper load order and TypeScript declarations. Browser examples use publishable keys; private API keys belong on your server. Key-based loyalty integrations need an authorized partner backend.

  • Expanded API sandbox

    Choose from 76 presets for Reservations, Guests, Events, Custom Fields, CDP, Website Events, Loyalty, Newsletter, B2B, CTI and Loyalty SSO. Each option identifies its credential and prerequisites. Path IDs and query fields are editable; Live writes require acknowledgement. Redirect and signed-confirmation flows include setup guides.

  • Cash-credit widget integration

    The booking-engine guide uses a partner-owned, session-bound server proxy. Private API keys stay on the server. The widget bridge checks message origin and source, while the server binds the guest, tenant and booking.

Bug Fixes

  • Preserve points on enrollment

    Re-enrolling an existing member preserves points when loyalty_balance is omitted. An explicit balance, including zero, remains an intentional update.

  • Loyalty SDK responses

    Loyalty helpers read the success envelope and the fields returned by each endpoint. API errors preserve their message and HTTP status. The wrapper exposes only supported methods.

  • Sandbox requests and samples

    Mock responses use the endpoint’s HTTP status and current response shape. Copied examples encode phone numbers, validate JSON and read credentials from a server environment variable. Live requests have a timeout and ignore cancelled results.

  • Cash-credit reversals

    Reversal restores the original debit, writes the refund ledger and releases the hold in one transaction. Retrying the same confirmed booking restores no additional points. Refunds preserve lifetime earnings.

October 2, 2026 API updates
Stable

October 2, 2026

Reward fulfilment follows each reward’s settings. OIDC logout revokes outstanding member access tokens.

New Features

  • Automatic reward fulfilment

    Reward responses include auto_fulfill. When redeem omits status, the reward setting determines whether the redemption is pending or fulfilled. An explicit status takes precedence.

Improvements

  • OIDC logout

    RP-initiated logout now revokes the member’s outstanding SSO access tokens.

October 1, 2026 API updates
Stable

October 1, 2026

Improvements

  • Preserve guest profile fields

    Guest ingestion supports fill_only_fields for date_of_birth and address.

  • Reservation updates without guests

    Reservation updates with guests:[] preserve existing guest links. For requests with guests:[], an unknown reservation returns HTTP 200 with skipped:no_guests_no_existing_reservation.

v1.9.0
Stable

June 25, 2026

Outbound webhooks: new reservation.checked_in / reservation.checked_out events, plus a security + signing hardening pass. Note the breaking signature-verification change below.

Breaking Changes

  • Webhook signature now covers the timestamp

    X-Webhook-Signature is now HMAC-SHA256 over (X-Webhook-Timestamp + "." + raw body), previously the raw body only. The signature binds the event timestamp to the payload.

    Migration Guide

    Update your verifier to sign timestamp + "." + rawBody instead of just the body, and use stable payload identifiers for idempotent processing. X-Webhook-Delivery identifies an attempt, and retries retain the original event timestamp. See the updated verification recipe in the docs.

New Features

  • reservation.checked_in / reservation.checked_out events

    Subscribe to guest check-in / check-out. These fire from a daily date-scan when the reservation's check-in/check-out date is reached (not real time). Each delivery carries the reservation, the guest contact, and a scheduled_for object with the guest's expected LOCAL check-in/out time (defaults 15:00 / 12:00 in the hotel timezone, configurable per account) so you can schedule downstream actions on your side.

Improvements

  • Security hardening

    Webhook delivery now enforces HTTPS and SSRF protection (internal / cloud-metadata / private targets are blocked), signing secrets are encrypted at rest and never returned by the API, and tenant-supplied custom headers can no longer override platform / security headers.

v1.8.0
Stable

May 30, 2026

Loyalty API hardened for at-scale auto-ingest: idempotent retries, auto-fulfilled status, and a new bulk-batch endpoint built for nightly reconciliation across 100-property groups.

New Features

  • Idempotent Retries on Loyalty Endpoints

    POST /api/v1/loyalty/redeem and POST /api/v1/loyalty/points now accept external_reference_id (or an Idempotency-Key header). Same id arriving twice is a no-op. The response carries idempotent_replay: true and points_deducted: 0 (no second debit, ever). For redemptions this is enforced by a partial unique index at the database layer, so concurrent racing retries are handled atomically.

  • Auto-fulfilled Status on Redeem

    POST /api/v1/loyalty/redeem now accepts an optional status field. Set status: "fulfilled" when the guest already consumed the reward at the moment of redemption (front desk, POS, booking engine): lands directly in the final state and skips the team-fulfillment alert. As of October 2, omitting status follows the reward’s auto_fulfill setting.

  • Bulk Redemption Batch Endpoint

    New POST /api/v1/loyalty/redemptions/batch accepts up to 100 redemption items per call. Each item is processed independently and independently idempotent. Failures on one item never roll back the others. Per-item status: "ok" | "error" carries success/failure detail. Designed for nightly reconciliation jobs at a 100-property hotel group.

  • redeemReward SDK Update

    GuestMaker.js loyalty.redeemReward(email, rewardId, options) now accepts options { externalReferenceId, status, notes }. Existing two-argument call sites continue to work unchanged.

v1.7.0
Stable

May 27, 2026

Per-guest online check-in (pre-checkin) tracking on the Reservations and Guests APIs.

New Features

  • Pre-checkin Fields on Guests

    New optional fields on the guest object: pre_checkin_completed_at (ISO 8601 timestamp with offset) and pre_checkin_source (e.g., "mews", "cloudbeds", "apaleo", "self_service"). Accepted on POST /api/v1/reservations (guests[]), POST /api/v1/guests (top-level holder), and the nested booking.guests[] array. Stored per-pax on reservation_guests so the AI can nudge only the paxes that haven't completed online check-in yet.

v1.6.0
Stable

February 19, 2026

Anonymous web visitor tracking, GuestMaker.js unified SDK, and visitor identification API.

New Features

  • Visitor Tracking API

    New POST /api/v1/cdp/events endpoint for ingesting batched visitor tracking events from hotel websites. Supports page views, scroll depth, clicks, and form interactions with automatic PII stripping.

  • Visitor Identification API

    New POST /api/v1/cdp/identify endpoint to link anonymous visitors to known identities (email, phone, name). Automatically creates or links CDP profiles.

  • GuestMaker.js Unified SDK

    New drop-in JavaScript SDK (guestmaker.js) for hotel websites. Auto-tracks page views, scroll depth, clicks, and forms. Includes loyalty and conversion modules. Persistent visitor ID via 13-month cookie.

  • Domain Restrictions

    CDP event ingestion now supports domain allow-lists. When configured, the Origin header is validated against allowed domains to prevent unauthorized tracking.

Improvements

  • SDK Backward Compatibility

    Existing loyalty-sdk.js and conversion-tracker.js are now thin wrappers around guestmaker.js. All existing integrations continue to work without changes.

v1.5.0
Stable

February 15, 2026

Customer Data Platform (CDP) with 3-stage identity resolution, profile consolidation, and auto-promotion to CRM.

New Features

  • CDP Reservation Ingestion API

    Three new endpoints for CDP data ingestion: POST /api/v1/cdp/reservations (single), /batch (up to 100), and /bulk (up to 5,000 async). Designed for post-checkout PMS data sync.

  • CDP Batch Status API

    New GET /api/v1/cdp/batches/{id} endpoint to check the status of async bulk ingestion batches.

  • Identity Resolution Engine

    3-stage matching pipeline: deterministic (exact email/phone/document), fuzzy (Jaro-Winkler name matching), and AI (Claude Haiku for ambiguous cases). Automatically consolidates fragmented guest profiles across hotels.

v1.4.0
Stable

February 1, 2026

Loyalty Program API with 9 endpoints for points, tiers, rewards, and member management.

New Features

  • Loyalty API

    9 new endpoints: check membership, enroll members, get/award points, list rewards, list tiers, get transactions, redeem rewards, and calculate points. All require X-API-Key and X-Tenant-Slug headers.

  • Loyalty JavaScript SDK

    New loyalty-sdk.js with 9 methods matching all loyalty API endpoints. Promise-based with structured error handling.

v1.3.0
Stable

January 31, 2026

Custom Fields API, expanded segment builder with 16 new filterable fields, and improved reservation data coverage.

New Features

  • Custom Fields API

    Integration partners can now define custom data fields via POST /api/v1/fields. Custom fields automatically appear in the segment builder for targeted audience creation.

  • Expanded Segment Builder

    Added 7 new contact fields (date of birth, gender, nationality, document type, document number, timezone, subscription status) and 9 new reservation fields (board type, booking channel, rate plan, nights, currency, room number, extras value, comments, external booking ID).

  • Dynamic Custom Fields in Segments

    Custom fields defined by integration partners now appear in the segment builder under the "Custom Fields" category, enabling hotel staff to build segments using partner-specific data.

Bug Fixes

  • Reservation Date Filters

    Fixed reservation check-in/check-out date filters using incorrect database column names, which caused segment queries to fail silently.

v1.2.0
Stable

January 15, 2026

Enhanced booking management with reservation extras and additional guests support

New Features

  • Reservation Extras

    Track add-on services like spa treatments, room upgrades, and special requests via the new reservation_extras field.

  • Additional Guests

    Support for multiple guests per reservation with the reservation_guests array, including individual contact details.

  • Guest Stage Lifecycle

    Automatic guest stage tracking (pre_stay, during_stay, post_stay) based on booking dates for contextual AI responses.

  • Webhook Delivery Improvements

    Enhanced webhook delivery with configurable retry policies and exponential backoff.

Improvements

  • API Response Times

    Guest lookup queries were updated.

  • Rate Limit Headers

    Rate-limit responses return HTTP 429 with Retry-After. Limits depend on the API key and endpoint.

v1.1.0
Stable

December 1, 2025

Outbound webhooks and event-driven automation capabilities

New Features

  • Outbound Webhooks

    Configure webhooks to receive real-time notifications when events occur in the platform (contact.created, message.received, journey.completed, etc.).

  • Event-Driven Journeys

    Trigger automated journeys based on custom events sent via the Events API.

  • Idempotency Support

    Added idempotency_key parameter to Events API to prevent duplicate event processing.

Improvements

  • Error Messages

    More descriptive error messages with specific field-level validation details.

  • Phone Number Validation

    Improved E.164 phone number validation with support for more country formats.

Bug Fixes

  • Timezone Handling

    Fixed an issue where booking dates were incorrectly interpreted in some timezones.

v1.0.0
Stable

October 15, 2025

Initial public release of the WhatsApp Automation API

New Features

  • Guests API

    Create and update guest profiles with booking information via POST /api/v1/guests.

  • Events API

    Trigger journey automations with custom events via POST /api/v1/events.

  • API Key Authentication

    Secure API access with scoped API keys and configurable rate limits.

  • Webhook Signature Verification

    HMAC-SHA256 signatures for secure webhook payload verification.

Planning an integration?

Tell us what you are building and request API access.

Request access
Cookie policy