404Travel404Docs
Docs›Integrations

Integrations: API, webhooks, analytics, email tools

Connect your own tools: the Partner API and webhooks, Brevo contact sync, Google Analytics and Google Ads attribution, UTM on emails, and the payment providers.

Updated 2026-10-15

What connects to what

IntegrationDirectionWherePlan
Channel manager (Booking.com, Hostelworld, Airbnb…)Both waysDistribution › Channelssee Channels
Payment providers: Stripe, BoldInbound paymentsProperty Settings › PaymentsEssentials
Partner API (read, plus seasonal rates)Your tools read usProperty Settings › API keysComplete
WebhooksWe call your URLProperty Settings › WebhooksComplete
Brevo contact syncGuests with consent → your listProperty Settings › BrevoEssentials
Google Analytics 4 and Google AdsBooking events → your accountBooking Engine › AnalyticsComplete
UTM on guest emailsLinks to your siteCommunications › templateEssentials

Partner API Complete plan

Property Settings›API keys›Generate key. The key is shown once; it is bound to one property and is read-only unless you tick a write scope when creating it. Send it as X-API-Key on every request to https://api.travel404.com/api/v1/partner.

EndpointGives you
GET /propertyName, address, timezone, currency, check-in/out, contact
GET /availability?check_in&check_outLive rooms and prices for a stay, exactly as the booking page quotes them
GET /reservations, /reservations/{id}Bookings with guest, room, dates, amounts, payment status, consent, volunteer flag, Ads attribution
GET /guests (scope read:guests)One row per person across your organisation, with completed stays and consent
GET /occupancy, /reports/stay-weeks, /reports/abandoned-cartOccupancy and the two funnel reports, JSON or CSV
GET /pos/*, /extras/*, /extensions, /activitiesSales, add-ons, stay extensions, activity signups
GET/POST/PUT/DELETE /seasonal-rates (scope write:seasonal_rates)Your own revenue tool writing seasons

Scopes are chosen at creation; a read scope such as guests can be added to an existing key from the card (the secret stays the same). The full reference with field lists and examples is in the repository document docs/PARTNER_API.md; ask us for a copy if you do not have access.

Webhooks Complete plan

Property Settings›Webhooks›Add endpoint. We POST to your URL on reservation.created, .modified, .cancelled, .checked_in, .checked_out and guest.marketing_opt_in_changed; "Send test" delivers a ping. An endpoint made at one property fires for every property in your organisation unless you untick that.

Every request carries X-T404-Signature, the HMAC-SHA256 of the raw body with the endpoint's secret (shown once), plus X-T404-Event and a unique X-T404-Delivery id for de-duplication. Answer 2xx within 10 seconds; anything else is retried with backoff for 24 hours. The card shows the last 50 deliveries with status and next retry.

Brevo contact sync All plans

Property Settings›Brevo. Paste a Brevo API key and pick the list; from then on every guest with marketing consent is created or updated in that list, with attributes for stays, last check-out and the houses they stayed at, on check-out, on a booking change and when consent changes; a guest who withdraws consent is taken off the Travel404 list (never blacklisted account-wide, so a newsletter they signed up for on your own site is untouched). The card shows the last sync and any rejected contacts. Sending the campaigns themselves stays in Brevo.

Google Analytics 4 Complete plan

Booking Engine›Analytics. Paste your Measurement ID (and optionally an API secret, which is stored write-only) and the booking page sends begin_checkout and purchase with the booking value and currency, from the browser and, when the API secret is set, server-side as well, so a blocked browser pixel does not lose the purchase. The Analytics tab in the engine and Marketing performance under Reports show the same funnel without leaving the app.

Booking Engine › Analytics: funnel from page view to paid booking, by source.
Booking Engine › Analytics: funnel from page view to paid booking, by source.

Google Ads attribution Complete plan

Every booking stores the Ads click id it came from (gclid, wbraid or gbraid) and the moment of the click, and the purchase event carries it, so Ads can count the conversion. This also works when the ad sends people to your own home page first and they open the embedded widget later: the widget reads the click cookies your site already holds. Bookings from Ads show their campaign on the booking's detail and in the Partner API.

UTM on guest emails All plans

In every automated email, links that point to your own website (the Website field in Property Settings) get utm_source=travel404&utm_medium=email&utm_campaign=<template> added at send time. Links to the booking page or other sites are untouched, and a link that already carries its own UTM is left as written. The three values are editable per template under "Link tracking".

Payment providers All plans

Property Settings›Payments. Connect Stripe (cards worldwide) or Bold (Colombia: cards, PSE, Nequi) with your own keys; the webhook secret pasted there is what lets payments book themselves on the folio. Deposits, payment links and the booking page all use the connected provider; the booking page falls back to a redirect checkout when an ad blocker hides the embedded one. See Booking engine › deposit and Finance › transactions.