1. Reservations
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
        POST
      • Cancel a reservation
        POST
      • Set a reservation to pending
        POST
      • Set a reservation to quote
        POST
      • Mark a reservation as no-show
        POST
      • Mark a reservation as ready for pick-up
        POST
      • Get the options for the dates step (booking step 1)
        GET
      • Validate dates and list available vehicle classes (booking step 2)
        POST
      • Change the vehicle class of a reservation
        POST
      • List additional charges for a vehicle class (booking step 3)
        GET
      • Price a vehicle class with selected charges (booking step 4)
        POST
      • Create or update the booking customer (booking step 6)
        POST
      • Create the reservation (booking step 8)
        POST
      • Update a reservation
        POST
      • List reservations
        GET
      • Get the rental agreement link
        GET
      • Mark the rental agreement as signed
        GET
      • Get a reservation
        GET
      • Assign a vehicle to a reservation
        POST
      • Detach the vehicle from a reservation
        POST
      • List the vehicles available for a reservation
        GET
      • List the free vehicle class upgrades of a reservation
        GET
      • Apply a free vehicle class upgrade
        POST
      • Upload the driver signature
        POST
      • Upload pick-up or return photos
        POST
      • Search availability and prices for all vehicle classes
        GET
      • List reservations (API v2)
        GET
    • 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
  1. Reservations

Create the reservation (booking step 8)

POST
/car-rental/reservations/confirm
Final step of the booking flow. Validates the dates, availability, charges and discounts again, links or creates the customer, and saves the reservation. Send the full booking context: nothing from the earlier steps is stored.
Resulting status. By default the reservation gets the account's default status for new reservations (open unless configured otherwise, and always open when bookings are confirmed without payment). Use action to choose another status.
Customer. Resolved in this order: customer_id; customer_first_name/customer_last_name (+ customer_email), which reuses a contact with exactly the same first name, last name and email or creates one; customer_full_name/customer_email; otherwise the generic contact fields (first_name, last_name, birthdate, field_<id>) as in step 6, including contact_id or external_contact_type + external_contact_id. customer_* address and driver's license fields are written to the contact, except when customer_id is sent; then they are ignored.
Side effects. Sends the customer confirmation email unless skip_confirmation_email is true (the default follows the setting that disables confirmation emails for API bookings), and sends the internal new-booking notification. Records prepaid_amount as an approved payment, adds comments and additional_drivers, stores the OTA source and reference, and closes the reservation attempt of reservation_attempt_uuid (and other attempts with the customer's email or phone). With return_payment_link, an online payment is started and its link returned in data.transaction.payment_link.
Retries. Send an Idempotency-Key header to make retries safe. A key already used on this path in the last 24 hours is rejected with 422, and errors.idempotency_value holds the ID of the reservation the first request created. If it is empty, read the reservation before retrying (see Rate limits and idempotency). A business-rule failure (HTTP 200, success: false) also uses up the key, so send a new key after fixing the request. An error response does not guarantee that nothing was created, so look the reservation up before retrying. Cancelling a reservation through the API resets every stored key of your account, so a retry after a cancellation is not deduplicated. The created reservation ID is also returned in the X-Idempotent-Id header.

Request

Authorization
Header Params

Body Params application/jsonRequired

Example
{
    "pick_up_date": "2026-12-01",
    "pick_up_time": "10:00",
    "return_date": "2026-12-05",
    "return_time": "10:00",
    "pick_up_location": 1,
    "return_location": 1,
    "brand_id": 1,
    "vehicle_class_id": 3,
    "additional_charges": [
        "12"
    ],
    "customer_id": 4821,
    "return_payment_link": true,
    "payment_external_redirect": "https://www.example.com/booking/thank-you",
    "reservation_attempt_uuid": "6f1d2c9a-3b7e-4f61-8d2a-0c5e9b4a7f13"
}

Responses

🟢200OK
application/json
HTTP 200 is also used for failures: always check success. When it is false, the body is an ErrorBusinessRule (status_code 410) or an ErrorUnauthorized (status_code 401 or 403). Business-rule failures here include a class or vehicle that is no longer available, an invalid coupon, customer form errors, "A customer is required to create a reservation" and "Reservation Already Exists". No reservation is created in those cases.
Headers

Bodyapplication/json

Examples
{
    "success": true,
    "status_code": 200,
    "errors": [],
    "data": {
        "reservation": {
            "id": 1052,
            "header": "Jane Doe - RA #1052",
            "pick_up_date": "2026-12-01 10:00:00",
            "return_date": "2026-12-05 10:00:00",
            "flight_arrival_date": "2026-12-01 10:00:00",
            "flight_departure_date": "2026-12-05 10:00:00",
            "flight_number": "",
            "flight_departure_number": "",
            "pick_up_location": {
                "id": 1,
                "name": "Miami Airport",
                "timezone": "America/New_York"
            },
            "return_location": {
                "id": 1,
                "name": "Miami Airport",
                "timezone": "America/New_York"
            },
            "vehicle_class_id": 3,
            "customer_id": 4821,
            "public_link": "https://yourcompany.example.com/public/car-rental/reservations/step1?id=0d8e5b7a-2c4f-4a1e-9b3d-7f6a5c4e3b21&contact_uuid=5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d",
            "comments": [],
            "distance_limits": {
                "distance_allowed": 0,
                "distance_limit_per_day": 0,
                "distance_unit": "mi",
                "distance_unlimited": true,
                "distance_extra_price": {
                    "currency": "usd",
                    "currency_icon": "$",
                    "amount": "0.00",
                    "usd_amount": "0.00",
                    "amount_for_display": "$0.00"
                },
                "distance_extra_price_with_tax": {
                    "currency": "usd",
                    "currency_icon": "$",
                    "amount": "0.00",
                    "usd_amount": "0.00",
                    "amount_for_display": "$0.00"
                }
            },
            "status": "open",
            "uuid": "0d8e5b7a-2c4f-4a1e-9b3d-7f6a5c4e3b21",
            "distance_driven": 0
        },
        "tour_operator": [],
        "selected_vehicle_class": {
            "vehicle_class_id": 3,
            "sipp_code": "CDAR",
            "price": {
                "total_days": 4,
                "base_price": {
                    "currency": "usd",
                    "currency_icon": "$",
                    "amount": "180.00",
                    "usd_amount": "180.00",
                    "amount_for_display": "$180.00"
                },
                "base_price_with_taxes": {
                    "currency": "usd",
                    "currency_icon": "$",
                    "amount": "198.00",
                    "usd_amount": "198.00",
                    "amount_for_display": "$198.00"
                },
                "details": [],
                "total_price_with_mandatory_charges_and_taxes": {
                    "currency": "usd",
                    "currency_icon": "$",
                    "amount": "220.00",
                    "usd_amount": "220.00",
                    "amount_for_display": "$220.00"
                }
            },
            "vehicle_class": {
                "label": "Compact",
                "short_description": "Nissan Versa or similar",
                "description": "",
                "features": [],
                "image": "https://yourcompany.example.com/public/fleets/images/3f1c9e2a-7b4d-4c8e-9a6f-1d2e3c4b5a69/vehicle-class",
                "recommended": false
            }
        },
        "selected_additional_charges": [
            {
                "id": 12,
                "label": "GPS",
                "selection_type": "only_one",
                "selected_quantity": 1,
                "charge_type": "daily",
                "base_price": {
                    "currency": "usd",
                    "currency_icon": "$",
                    "amount": "5.00",
                    "usd_amount": "5.00",
                    "amount_for_display": "$5.00"
                },
                "total_price": {
                    "currency": "usd",
                    "currency_icon": "$",
                    "amount": "20.00",
                    "usd_amount": "20.00",
                    "amount_for_display": "$20.00"
                }
            }
        ],
        "external_charges": [],
        "vehicle_damages": [],
        "applicable_discounts": [],
        "applicable_taxes": [
            {
                "name": "Sales Tax (10%)",
                "base_price": 10,
                "charge_type": "percent",
                "total_amount": {
                    "currency": "usd",
                    "currency_icon": "$",
                    "amount": "20.00",
                    "usd_amount": "20.00",
                    "amount_for_display": "$20.00"
                }
            }
        ],
        "total": {
            "show_security_deposit": true,
            "show_security_deposit_excess": false,
            "outstanding_balance": {
                "currency": "usd",
                "currency_icon": "$",
                "amount": "220.00",
                "usd_amount": "220.00",
                "amount_for_display": "$220.00"
            },
            "outstanding_security_deposit": {
                "currency": "usd",
                "currency_icon": "$",
                "amount": "300.00",
                "usd_amount": "300.00",
                "amount_for_display": "$300.00"
            },
            "security_deposit": {
                "currency": "usd",
                "currency_icon": "$",
                "amount": "300.00",
                "usd_amount": "300.00",
                "amount_for_display": "$300.00"
            },
            "security_deposit_excess": {
                "currency": "usd",
                "currency_icon": "$",
                "amount": "0.00",
                "usd_amount": "0.00",
                "amount_for_display": "$0.00"
            },
            "total_paid": {
                "currency": "usd",
                "currency_icon": "$",
                "amount": "0.00",
                "usd_amount": "0.00",
                "amount_for_display": "$0.00"
            },
            "total_price": {
                "currency": "usd",
                "currency_icon": "$",
                "amount": "220.00",
                "usd_amount": "220.00",
                "amount_for_display": "$220.00"
            }
        },
        "customer": {
            "id": 4821,
            "entity": "person",
            "first_name": "Jane",
            "last_name": "Doe",
            "email": "jane.doe@example.com",
            "phone_number": "+1 305 555 0142",
            "country": "US",
            "birthdate": "1990-04-15"
        },
        "additional_drivers": [],
        "transaction": {
            "id": 311,
            "amount": {
                "currency": "usd",
                "currency_icon": "$",
                "amount": "220.00",
                "usd_amount": "220.00",
                "amount_for_display": "$220.00"
            },
            "label": "Reservation #1052",
            "uuid": "9b2f6c3e-58a1-4d4e-9a57-2f0c1d7e8a90",
            "gateway": "Stripe",
            "payment_link": "https://yourcompany.example.com/public/payment-gateways/payment-transactions/9b2f6c3e-58a1-4d4e-9a57-2f0c1d7e8a90/external"
        }
    }
}
🟠422Record Not Found
🟠404Parameter Error
Modified at 2026-11-05 19:55:09
Previous
Create or update the booking customer (booking step 6)
Next
Update a reservation
Built with