Where can I find it? Company >>> Components/Integrations
How to configure my webhooks
Follow the instructions below to configure the webhooks from your TuriTop panel:
Step 1: Go to Your Company Tab
Log into your TuriTop dashboard and navigate to Company >>> Components/Integrations >>> Webhooks:
Step 2: Enter the URL
Here, you need to enter a valid URL that redirects to a valid endpoint. Our system will send specific details to this endpoint. The details sent will depend on the action selected, as described in the next step.
HTTPS protocol is mandatory for using webhooks. HTTP will not work.
Step 3: Add a Signature (Optional)
The Signature allows you to add an extra layer of security. You can set any key in the TuriTop panel, and when you receive webhook notifications, you can verify if they contain the same key. If the key is missing or incorrect, it was not sent by us. Read the Security Measures section to learn more about this.
Step 4: Select an Action
Once you have entered a valid URL, you need to select the action that will be performed from TuriTop to the endpoint. Currently, we have the following actions available. Click on Action, to check the options:
Available Action Calls
- All Actions: Sends a notification for all of the actions listed.
Booking Actions:
- All Booking Actions: Sends a notification whenever a booking is created, deleted, undelete, or updated.
- New booking: Triggers regarding a newly created booking.
- Update booking: Triggers when a booking is edited (via an API call or back-office call).
- Delete booking: Triggers when a booking is erased.
- Undelete booking: Triggers when a booking is restored.
Event Notifications:
- All Availability Notifications: Sends a notification for all availability-related changes.
- Event opened: Triggers when an event becomes available for booking.
- Event closed: Triggers when an event is no longer available.
- New event: Triggers when a new event is created.
- Event deleted: Triggers when an event is deleted.
- Event has low availability: Triggers when an event has only a few remaining spots.
- Event is full: Triggers when an event reaches full capacity.
- Event availability updated: Triggers when event availability changes.
- Event availability increased/decreased: Triggers when availability is adjusted.
Product Notifications:
-
All Product Notifications: Sends a notification for any product-related change.
-
Product disabled: Triggers when a product is disabled.
- Product enabled: Triggers when a product is enabled.
- Product Marketplace enabled: Triggers when a product is enabled on the Marketplace.
- Product Marketplace disabled: Triggers when a product is removed from the Marketplace.
- Product updated: Triggers when a product's information is updated.
All product webhook notifications apply only to your own products. They do not include marketplace/resale products.
Ticket Notifications:
- All ticket notifications: Sends a notification for any ticket-related change.
- Ticket deleted: Triggers when a ticket is deleted.
- New ticket: Triggers about a newly created ticket.
- Ticket updated: Triggers when a ticket's details have changed.
If you select All actions, this will send a webhook for any action performed (all the actions available on the list).
Step 5: Add the Webhook to Your List
The final step is to click on Add, and you will have successfully added a webhook call. It should look like this:
Step 6: Test Your Webhook
Once the webhook is set up, test it by clicking on the Send test Webhook button. A pop-up will appear where you need to:
-
Enter a Booking ID
-
Click on Ok
Security Measures
If you need an extra level of security, you can use a Signature. This signature will create a JWT Token (https://jwt.io/) that adds authenticity and records the exact time when the webhook was sent.
To create the signature, simply enter 32 characters in the signature field when configuring your webhook. A new field called Token will be added to every call.
To decode the token, use the standard JWT library (https://jwt.io/#libraries-io) to verify that the webhook request is valid and sent by TuriTop.
You will then be redirected to your application or webhook tester. The webhook will be sent in POST and JSON format.
Webhook Responses
The action parameter corresponds to the action you selected when adding the webhook. If set to All actions, you will receive all listed actions individually (not as "All").
Booking Webhooks
The "booking" webhooks return the action and the same data as the API endpoint /booking/getbooking.
Example response:
{ "action": "booking.delete", "agent_data": { "seller": "DP Agent Test" }, "agent_fee": "0", "archived": false, "cart_hash": "", "checked": false, "client_data": { "custom": "", "email": "", "id": "D586-250322-3_client_data", "name": "", "newsletter": "1", "phone": "" }, "created_data": { "created_by": "DP Agent Test" }, "currency": "EUR", "date_booking": 1742652300, "date_booking_iso8601": "2025-03-22T14:05:00+0000", "date_deleted": 1744032600, "date_deleted_iso8601": "2025-04-07T14:30:00+0100", "date_event": 1743757200, "date_event_iso8601": "2025-04-04T10:00:00+0100", "date_modified": 1744032600, "date_modified_iso8601": "2025-04-07T14:30:00+0100", "date_prebooking": 1742652313, "date_prebooking_iso8601": "2025-03-22T14:05:13+0000", "deleted": true, "gateway_fee": "0", "gift_certificate": "0", "hide_hour": false, "ip": "88.25.70.243", "language_code": "es", "location": "Spain, Zaragoza", "multi_client_hash": "", "notes": "", "payment_gateway": "", "payment_partial": "675.00", "payment_transaction": [], "pdf_download": "https://app.turitop.com/pdf/download/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjQwMjAwMDkwIiwiaWRfY29tcGFueSI6IjIiwidGVtcGxhdGUiOiJjb25maXJtIiwidXNlcklkZW50aXR5Ijp7ImlkIjpudWxsLCJhZG1pbiI6bnVsbH0sImlhdCI6MTc0NDAzMjYyMiwiZXhwIjoxNzUxODA4NjIyfQ.u0d1v7er1fbYspXPTShHIO_FurMYVzuTalU0BgvumgQ", "product_name": "Tour con bus 1", "product_short_id": "P30", "product_time_zone": "Europe/London", "promo_code": "", "reseller_fee": "0", "seller_company_name": "DP Test Español", "seller_company_short_id": "D586", "service_flow": "tour", "short_id": "D586-250322-3", "sold_data": { "seller": "DP Agent Test" }, "source": "backoffice", "status": "confirmed", "supplier_company_name": "DP Test Español", "supplier_company_short_id": "D586", "taxes": 0, "ticket_type_count": [ { "count": 9, "external_id": "", "id": 495177, "name": "Adulto", "price_per_ticket": "75.00", "seats": 1 }, { "count": 0, "external_id": "", "id": 495180, "name": "Niño", "price_per_ticket": "75.00", "seats": 1 } ], "total_price": "675.00", "verification_code": "https://app.turitop.com/qr/D586-250322-3/rd4pw61d", "verification_type": "QR_CODE" }
Event Webhooks
The "event" webhooks return the following parameters: action, event date, product short ID, and time zone.
Example response:
{ "action": "event.close", "event_date": "2025-04-08 09:00", "product_short_id": "P1", "timezone": "Europe/London" }
Product Webhooks
All product webhook notifications apply only to your own products. They do not include marketplace/resale products.
The "product" webhooks return the action and the same data as the API endpoint /product/getproducts.
Example response:
{ "action": "product.disable", "product": { "company_categories": [], "coordinates": "28.533557755098922,-16.251378804677692", "country_code": "ES", "default_language": "es", "description": "", "disabled": true, "display_hours": "1", "duration": "480", "flow": "tour", "location_code": "AXO", "location_name": "A Baiuca", "marketplace": false, "name": "Test tour", "pricing_notes": "", "resellers": [ { "company_name": "Anaga Tours", "company_short_id": "T1271", "date_created": "2023-03-05 11:42:46", "id": "114644", "id_company": "21241", "logo": "T1271/logo/T1271_1662711215.png", "product_name": "Test tour", "product_short_id": "P21", "resell_pay_to": "reseller", "reselling_fee": "0.0000", "reselling_status": "accept" } ], "short_id": "P1", "show_closed_by_availability": false, "summary": "", "timezone": "Europe/London", "type": { "name": "Tour on land", "subtype": "Day tour" } } }
Ticket Webhooks
The "ticket" webhooks return the action and data similar to the API endpoint /tickets/get
Example response:
{ "action": "ticket.new", "product": { "company_categories": [], "coordinates": "", "country_code": "ES", "default_language": "es", "description": "", "disabled": false, "display_hours": "1", "duration": "300", "flow": "tour", "location_code": "AXO", "location_name": "A Baiuca", "marketplace": true, "name": "Excursion test", "pricing_notes": "", "resellers": [], "short_id": "P25", "show_closed_by_availability": false, "summary": "", "timezone": "Europe/London", "type": { "name": "Actividades de invierno", "subtype": "Caminata sobre nieve" } }, "tickets": [ { "allow_agent_reseller": true, "close_min_tickets": 0, "external_id": "", "is_addon": false, "name": "Adulto", "order": 0, "price": "100.00", "required": false, "seats": 1, "ticket_notes": "Adulto €7 + Gastos de gestión €1,25", "tickets_max": 50, "tickets_min": 0, "visibility": "all" }, { "allow_agent_reseller": true, "close_min_tickets": 0, "external_id": "", "is_addon": false, "name": "Gastos de gestión", "order": 1, "price": "1.25", "required": false, "seats": 1, "ticket_notes": "", "tickets_max": 50, "tickets_min": 0, "visibility": "all" }, { "allow_agent_reseller": true, "close_min_tickets": 0, "external_id": "", "is_addon": false, "name": "Nuevo ticket", "order": 2, "price": "50.00", "required": false, "seats": 1, "ticket_notes": "", "tickets_max": 50, "tickets_min": 0, "visibility": "all" } ] }
Comments
0 comments
Please sign in to leave a comment.