The Partner API lets your booking engine read our live catalogue, check seats in real time and register the sales you make — without a Carla checkout in the middle.
The model in one paragraph
You charge the tourist in your own checkout. Carla never opens a Stripe
session, a payment link or a checkout page for a partner booking. Once the
tourist has paid you, you call POST /bookings with your own booking id
(partnerRef); that takes the seats here and creates the same reservation the
agency sees in the portal. Net prices are settled between the agency and Carla
outside the API, as agreed in the umowa.
What you get
| Area | Endpoints |
|---|---|
| Day-trips | GET /excursions, GET /excursions/{slug}, GET /excursions/{slug}/availability, POST /bookings, GET / PATCH / POST …/cancel on /bookings/{id} |
| Packages | GET /packages, GET /packages/{slug}/availability, POST /package-bookings, GET / PATCH / POST …/cancel on /package-bookings/{id} |
| Webhooks (optional) | booking.created, booking.cancelled, departure.updated — signed, retried |
Base URL:
https://os.carlatravelservice.com/api/external/v1
Everything is JSON over HTTPS with a bearer key. Prices come back as net euros for your agency — never the retail price shown on carlatravel.pl.
Where things live
- API keys — sign in (sidebar) → Keys. A
ct_test_key is available right away; act_live_key needs the agreement signed by an agency admin. - Webhooks — sign in → Webhooks.
- Reference — the interactive API reference with request builders in curl, JavaScript, PHP and Python, or the raw OpenAPI JSON to import into Postman or Insomnia.
An agency admin creates your Developer user in the portal. You work here — not in the booking portal.
Support
Integration questions: booking@carlatravelservice.com. Include the
X-Carla-Delivery id for webhook issues and the booking id for anything
else.