POST with a JSON body to a URL you choose.Created, Updated, Deleted, or Custom for a named event, whose name goes in Custom Action.HeaderName:HeaderValue pairs separated by commas.action is created, updated, deleted, or the custom event name.item is a fixed identifier of the record type; compare it as an exact string.data holds the record's fields (shortened above) plus the relations you selected.customer, and reservation_started_at and reservation_ended_at as Unix timestamps.data are in UTC.data is read when the webhook is sent, so it shows the record's latest state.Created, Updated and Deleted are available for these items:| Area | Items |
|---|---|
| Car Rental | Reservation, Reservation Payment, Reservation Refund, Reservation Attempt, Reservation Vehicle Information, Quote, Season, Rate |
| Fleet | Vehicle, Vehicle Expense, Repair Order, Vehicle Class, Location, Additional Charge |
| Contacts | Contact |
| Invoices | Invoice, Quote, Invoice Payment |
| Payment Gateways | Transaction |
| Other | Task, File, Inbox: Emails, and one Forms: <form name> item per form |
created and updated when they are saved in HQ, invoices also when they are created or updated through the API, and they never send deleted.Custom:| Item | Custom Action | Sent when |
|---|---|---|
| Reservation | car_rental_reservation_confirmed | A quote, pending or pending-reserved reservation is confirmed, for example in HQ or by a payment. POST /car-rental/reservations/{reservation_id}/open does not send it. |
| Reservation | car_rental_reservation_on_quote | The reservation moves to quote |
| Reservation | car_rental_reservation_on_pending | The reservation moves to pending |
| Reservation | car_rental_reservation_rented | The vehicle is picked up (rental) |
| Reservation | car_rental_reservation_completed | The vehicle is returned (completed) |
| Reservation | car_rental_reservation_reopened | A completed reservation is reopened |
| Reservation | car_rental_reservation_cancelled | The reservation is cancelled |
| Reservation | car_rental_reservation_on_no_show | The reservation is marked as no show |
| Reservation | car_rental_reservation_deleted | The reservation is deleted |
| Reservation | car_rental_reservation_updated_by_customer | The customer (only for open or rental reservations, and not for extensions), or an API call to POST /car-rental/reservations/{reservation_id}/update, changes the pick-up or return date, the pick-up or return location, the vehicle class, or the flight arrival or departure date. Other changes do not send it. |
| Reservation | car_rental_reservation_status_updated | The status changes |
| Reservation | car_rental_reservation_pick_up_date_updated | The pick-up date changes |
| Reservation | car_rental_reservation_return_date_updated | The return date changes |
| Reservation Vehicle Information | vehicle_linked | A vehicle is assigned to a reservation; the payload includes reservation and vehicle |
| Vehicle | fleets_vehicle_status_changed | The vehicle status changes |
| Invoice | invoice_paid | The invoice is fully paid |
| Invoice | invoice_partially_paid | The invoice is partially paid |
| Invoice | invoice_sent | The invoice is set to sent because nothing is paid on it, for example after a payment is removed. Sending a draft does not fire it. |
car_rental_reservation_status_updated and the pick-up and return date events also fire when the reservation is created.car_rental_reservation_updated_by_customer trigger another update of the same reservation, or the two systems can loop.quote, pending or pending-reserved to open is also sent to the reservation's Created webhooks.column:operator:value, for example status:in:open,rental.|; all of them must match, for example status:in:open,rental|brand_id:equal:2.in (comma-separated list) and equal.Created, Updated and Deleted webhooks, except invoice and invoice quote events and the Created event sent when a reservation is confirmed; those, like custom events, are always sent.X-Webhook-Secret:<long random value>, and reject any request that does not carry it.: or , inside header names or values, and do not put spaces around them, because they separate the pairs.id.updated_since on the list endpoints that support it (see Filtering and incremental sync), and re-read the list or the parent reservation for the other items, such as payments, refunds and invoices.