HQ Rental Software
    • Getting started
    • Authentication
    • Base URLs, regions and versioning
    • Errors
    • Responses and pagination
    • HQ concepts and glossary
    • Custom fields and item types
    • Dates, time zones and money
    • Filtering and incremental sync
    • Guide: build a booking engine on your website
    • Guide: connect an OTA or broker
    • Guide: sync your fleet and prices to a website
    • Guide: sync invoices and payments to accounting
    • Guide: sync customers with a CRM
    • Guide: take payments
    • Guide: bill tolls and fines
    • Rate limits and idempotency
    • Webhooks
    • Car Rental
      • Comments
        • List the comments of a record
        • Create a comment
        • Update a comment
        • Delete a comment
        • List the comments of a reservation
        • Add a comment to a reservation
        • Delete a reservation comment
      • Currencies
        • List currencies
      • Emails
        • List email templates
        • Send an email template for a record
        • Send the reservation confirmation email
        • Send the rental agreement email
        • List the email templates of a reservation
        • Send an email template for a reservation
        • Create a quote and email it
      • Addresses
        • List the addresses of a record
        • Create an address
        • Get an address
        • Update an address
        • Delete an address
      • Fields
        • List the fields of a record type
        • Get a field by its column
        • List the customer form fields (booking step 5)
      • Blocked Days
        • List blocked days
      • Customer Credits
        • List the credit transactions of a customer
        • Add credit to a customer
        • Update a credit transaction
        • Delete a credit transaction
      • Fines
        • List fines
        • Create a fine
        • Get a fine
        • Update a fine
        • Delete a fine
      • Packages
        • List package items
        • Get a package item
        • List packages
        • Get a package
      • Quotes
        • List quotes
        • Get a quote
      • Rate Types
        • List rate types
        • Create a rate type
        • Get a rate type
        • Delete a rate type
        • Update a rate type
      • Rates
        • List rates
        • Create a rate
        • Get a rate
        • Delete a rate
        • List rates (v2)
        • Update a rate
      • Reservation Attempts
        • List reservation attempts
        • List reservation attempts by email
      • Extensions
        • List the extensions of a reservation
        • Extend a rental
        • Delete an extension
      • External Charges
        • List the external charges of a reservation
        • Add an external charge to a reservation
        • Delete an external charge
      • Adjustments
        • List the adjustments of a reservation
        • Add an adjustment to a reservation
        • Delete an adjustment
      • Payments
        • List the payments of a reservation
        • Record a payment on a reservation
        • Update a payment
        • Release an offline security deposit
        • Refund an online security deposit
        • Charge the customer's saved card
      • Refunds
        • List the refunds of a reservation
        • Record a refund on a reservation
        • Update a refund
      • Reservations
        • Confirm a reservation
        • Cancel a reservation
        • Set a reservation to pending
        • Set a reservation to quote
        • Mark a reservation as no-show
        • Mark a reservation as ready for pick-up
        • Get the options for the dates step (booking step 1)
        • Validate dates and list available vehicle classes (booking step 2)
        • Change the vehicle class of a reservation
        • List additional charges for a vehicle class (booking step 3)
        • Price a vehicle class with selected charges (booking step 4)
        • Create or update the booking customer (booking step 6)
        • Create the reservation (booking step 8)
        • Update a reservation
        • List reservations
        • Get the rental agreement link
        • Mark the rental agreement as signed
        • Get a reservation
        • Assign a vehicle to a reservation
        • Detach the vehicle from a reservation
        • List the vehicles available for a reservation
        • List the free vehicle class upgrades of a reservation
        • Apply a free vehicle class upgrade
        • Upload the driver signature
        • Upload pick-up or return photos
        • Search availability and prices for all vehicle classes
        • List reservations (API v2)
      • Vehicle Replacements
        • List the vehicle replacements of a reservation
        • Replace the vehicle of a rental
        • Delete a vehicle replacement
      • Reservation Agents
        • List the users that can be assigned as agents
        • Assign the agents of a reservation
        • Assign the return agents of a reservation
      • Seasons
        • List seasons
        • Create a season
        • Get a season
        • Update a season
        • Delete a season
      • Security Deposits
        • List security deposit rules
        • Get a security deposit rule
      • Availability
        • List availability of vehicle classes
        • Get availability of a vehicle class
      • Driver Licenses
        • Read a driver license barcode
        • Save a driver license barcode to a reservation customer
        • Upload a driver license image for a reservation customer
    • Filters
      • List filter types and operators
    • Contacts
      • List contact categories
      • Get a contact category
      • List contacts of a category
      • Create a contact
      • Get a contact
      • Update a contact
      • Merge contacts
    • Fleets
      • Additional Charges
        • List additional charges
        • Get an additional charge
      • Features
        • List features
        • Get a feature
      • Locations
        • List locations
      • Blocked Periods
        • List the blocked periods of a vehicle
        • Create a blocked period
        • Update a blocked period
        • Delete a blocked period
      • Branches
        • List vehicle makes
        • Get a vehicle make
        • List branches
      • Damages
        • List the damages of a vehicle
        • Create a vehicle damage
        • Get a vehicle damage
        • Update a vehicle damage
      • Vehicles
        • Models
          • List vehicle models
          • Get a vehicle model
        • Types
          • List vehicle types
          • Get a vehicle type
        • List the maintenance status of a vehicle
        • List vehicles
        • Get a vehicle
        • Update a vehicle
        • List vehicles for toll matching
      • Relocations
        • Create a relocation
        • Delete a relocation
        • List the relocations of a vehicle
      • Telematics
        • List the OBD readings of a vehicle
        • List OBD readings of all vehicles since a reading ID
        • List the telematics alerts of a vehicle
        • List the trips of a vehicle
        • List vehicle alert types
      • Maintenance
        • List repair orders
        • Create a repair order line
        • Update a repair order line
        • Delete a repair order line
        • Get a repair order
        • List maintenance types
      • Vehicle Classes
        • List vehicle classes
        • Get a vehicle class
    • Payment Gateways
      • List saved credit cards of a customer
      • Delete a saved credit card
      • List payment methods
      • Get a payment method
      • Get a payment button
      • Get a payment transaction by UUID
      • Create a payment transaction
      • Refund a payment transaction
      • Re-check a payment transaction
      • List payment transactions
    • Sheets
      • List sheet items
      • Create a sheet item
      • Get a sheet item
      • Update a sheet item
      • List sheets
      • Get a sheet
    • Files
      • List files of a record
      • Upload a file
      • Delete a file
    • Inventory
      • List inventory categories
      • Get an inventory category
      • Shows a list of inventory items
      • Finds inventory item by id
      • Finds inventory price by id
      • shows a list of inventory purchase order
      • Create purchase order
      • Finds purchase order by id
      • Returns report of purchase order
      • Cancels purchase order by id
      • Finds inventory stock by id
    • Invoice
      • List invoices available as e-invoices
      • Download e-invoices
      • Create invoice item
      • List invoice payments
      • Create an invoice payment
      • Get an invoice payment
      • Update an invoice payment
      • Spread a payment over a contact's open invoices
      • List invoices
      • Create an invoice
      • Get an invoice
      • Email an invoice
      • Void an invoice
      • Download an invoice PDF
    • Audit Logs
      • Lists the audit log entries
    • Countries
      • List countries
    • Taxes
      • List taxes
      • Get a tax
    • Users
      • List users
    • Products
      • Categories
        • List product categories
        • Create a product category
        • Update a product category
        • Delete a product category
      • List products
      • Create a product
      • Update a product
      • Delete a product
    • Schemas
      • RequestBodies
      • Money
      • SaveRepairOrderLine
      • ErrorBusinessRule
      • SaveBlockedPeriod
      • ErrorValidation
      • SaveVehicleDamage
      • ErrorNotFound
      • ErrorUnauthorized
      • ReservationSummary
      • ReservationTotal
      • AvailableVehicleClass
      • AdditionalCharge
      • ReservationOverview
      • ReservationPayment
      • FleetsPageInfo
      • FleetsEmptySuccess
      • VehicleDamage
      • BillingAmount
      • InvoiceLine
      • ReservationRefund
      • CustomField
      • Comment
      • PaginationFields
      • Country
      • CustomFieldAddress
      • FilterDescriptor
      • Tax
      • VehicleClassAvailability
      • CustomerCreditTransaction
      • DriverLicenseData
      • DriverLicenseResult
      • Fine
      • FineInput
      • PackageItem
      • Package
      • Quote
      • RateType
      • RateTypeWrite
      • RatePriceInterval
      • RateRecord
      • RateWrite
      • ReservationAttempt
      • ReservationExtension
      • ReservationAdjustment
      • ReservationStatusResult
      • VehicleReplacement
      • ReservationRecord
      • ReservationListItem
      • ReservationListPage
      • ReservationDetail
      • ReservationOverviewWithVehicles
      • Season
      • SeasonWrite
      • SecurityDepositRule
      • OtaVehicleClassAvailability
      • RateV2
      • ReservationDriverV2
      • ReservationListItemV2
      • ContactCategory
      • Contact
      • ContactInput
      • AttachedFile
      • FleetAdditionalCharge
      • Branch
      • VehicleFeature
      • Location
      • VehicleMaintenanceStatus
      • RepairOrder
      • ObdReading
      • VehicleAlert
      • VehicleTrip
      • BlockedPeriod
      • VehicleMake
      • VehicleClassImage
      • VehicleClassFeature
      • VehicleClass
      • VehicleRelocation
      • VehicleType
      • Vehicle
      • InventoryCategory
      • InvoicePayment
      • Invoice
      • InvoiceDetail
      • SavedCreditCard
      • PaymentGatewaySummary
      • PaymentMethod
      • PaymentTransaction
      • ProductCategory
      • Product
      • SheetItem
      • SheetItemInput
      • Sheet

    Webhooks

    Webhooks let HQ notify your system when records change, so you do not have to poll.
    HQ sends an HTTP POST with a JSON body to a URL you choose.

    Set up a webhook#

    Webhooks are available on the Standard plan and above.
    They are configured in HQ, not through the API.
    1.
    As an administrator, go to Settings > Integrations and click Enable on the Webhooks card.
    2.
    Click Webhook Overview on the same card (or open Settings > Items > Webhooks) and click Add new Webhook.
    3.
    Fill in the form:
    Label: a name for you.
    Item: the type of record to watch (see the event catalog). It cannot be changed after saving.
    Action: Created, Updated, Deleted, or Custom for a named event, whose name goes in Custom Action.
    Endpoint: your HTTPS URL.
    Filter (optional): only send when the record matches.
    Custom Headers (optional): HeaderName:HeaderValue pairs separated by commas.
    Active?: new webhooks stay inactive until you set it to Yes.
    4.
    Save. After the first save you can also choose Item Relations, related records to embed in the payload, such as the payments of a reservation.

    Payload#

    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.
    The simplest way to route events is one endpoint URL, or one custom header, per webhook.
    data holds the record's fields (shortened above) plus the relations you selected.
    Reservation payloads always include customer, and reservation_started_at and reservation_ended_at as Unix timestamps.
    Dates in data are in UTC.
    data is read when the webhook is sent, so it shows the record's latest state.
    If the record changes several times before delivery, you may receive one event.
    A change made while a delivery for the same record is still in progress can be missed with no later event, so reconcile regularly (see below).

    Event catalog#

    The standard actions Created, Updated and Deleted are available for these items:
    AreaItems
    Car RentalReservation, Reservation Payment, Reservation Refund, Reservation Attempt, Reservation Vehicle Information, Quote, Season, Rate
    FleetVehicle, Vehicle Expense, Repair Order, Vehicle Class, Location, Additional Charge
    ContactsContact
    InvoicesInvoice, Quote, Invoice Payment
    Payment GatewaysTransaction
    OtherTask, File, Inbox: Emails, and one Forms: <form name> item per form
    Invoices and invoice quotes do not send events on every change: they send 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 events, set with Action Custom:
    ItemCustom ActionSent when
    Reservationcar_rental_reservation_confirmedA 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.
    Reservationcar_rental_reservation_on_quoteThe reservation moves to quote
    Reservationcar_rental_reservation_on_pendingThe reservation moves to pending
    Reservationcar_rental_reservation_rentedThe vehicle is picked up (rental)
    Reservationcar_rental_reservation_completedThe vehicle is returned (completed)
    Reservationcar_rental_reservation_reopenedA completed reservation is reopened
    Reservationcar_rental_reservation_cancelledThe reservation is cancelled
    Reservationcar_rental_reservation_on_no_showThe reservation is marked as no show
    Reservationcar_rental_reservation_deletedThe reservation is deleted
    Reservationcar_rental_reservation_updated_by_customerThe 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.
    Reservationcar_rental_reservation_status_updatedThe status changes
    Reservationcar_rental_reservation_pick_up_date_updatedThe pick-up date changes
    Reservationcar_rental_reservation_return_date_updatedThe return date changes
    Reservation Vehicle Informationvehicle_linkedA vehicle is assigned to a reservation; the payload includes reservation and vehicle
    Vehiclefleets_vehicle_status_changedThe vehicle status changes
    Invoiceinvoice_paidThe invoice is fully paid
    Invoiceinvoice_partially_paidThe invoice is partially paid
    Invoiceinvoice_sentThe 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.
    If your integration updates reservations through the API, do not let car_rental_reservation_updated_by_customer trigger another update of the same reservation, or the two systems can loop.
    A reservation moving from quote, pending or pending-reserved to open is also sent to the reservation's Created webhooks.

    Filters#

    A filter is column:operator:value, for example status:in:open,rental.
    Join several with |; all of them must match, for example status:in:open,rental|brand_id:equal:2.
    The operators are in (comma-separated list) and equal.
    Filters apply to 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.

    Security#

    Authenticate webhook requests with a shared secret: add it in Custom Headers, for example X-Webhook-Secret:<long random value>, and reject any request that does not carry it.
    Do not use : or , inside header names or values, and do not put spaces around them, because they separate the pairs.
    Treat a webhook as a notification: before acting on critical data, read the record from the API by its id.

    Delivery#

    HQ sends webhooks from a background queue after the change is saved, and waits up to 60 seconds for your response.
    Answer with a 2xx status quickly and do the work asynchronously.
    HQ does not retry a delivery that your endpoint rejects or does not answer.
    Keep your endpoint available, answer with a 2xx status, and reconcile regularly so a delivery your endpoint could not accept does not leave your data behind.
    To reconcile, use 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.
    The Webhooks Logs page (the history button on the Webhooks list) shows each delivery with its status code.
    It does not show your endpoint's response, so log the response body on your side.
    HQ never disables a webhook automatically.

    Stop deliveries#

    Set Active? to No or delete the webhook in Settings > Items > Webhooks.
    A delivery that was already queued may still arrive.
    Modified at 2026-10-29 13:56:40
    Previous
    Rate limits and idempotency
    Next
    List the comments of a record
    Built with