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

    Guide: take payments

    HQ takes card payments through the payment gateways connected in your account.
    This guide shows how to collect money on a reservation through the API: a payment link, a charge on a saved card, a security deposit, an offline payment and refunds.
    Amounts are in the reservation currency, except payment links, which charge in the currency of their payment method.

    Payment methods#

    GET /payment-gateways/methods lists the active payment methods, 100 per page.
    Each method belongs to one gateway and one currency; send currency to get the methods of one currency.
    Use the method id as payment_method_id below, and pick a method in the reservation currency.

    Option 1 - Payment link when the booking is created#

    Add these fields to POST /car-rental/reservations/confirm:
    FieldMeaning
    return_payment_link1 to start an online payment. Leave the field out when you do not want one: even the string false starts a payment.
    payment_method_idThe method to pay with. If it does not match an available method, the first available one is used.
    payment_external_redirectWhere the customer goes after paying.
    set_amount_to_pay_online_from_settings1 to charge the online amount from your settings instead of the outstanding balance.
    If your account is set to only save cards online, the link saves the customer's card and charges nothing.
    The response has data.transaction with the transaction uuid and the payment_link to send the customer to.
    data.transaction is missing when no payment method of the branch fits the booking, for example none in the reservation currency.

    Option 2 - Payment link for an existing reservation#

    item_type, item_id, payment_method_id, amount and external_redirect (a full URL) are required.
    The response has the transaction under payment_gateways_transaction; send the customer to its external_url.
    If your account passes card fees on to customers, the fee is added to amount.
    If an open transaction already exists for the same reservation and method, HQ reuses it with the new amount.

    Check that the customer paid#

    GET /payment-gateways/payment-transactions/{uuid}/uuid returns the transaction; its status becomes paid once the payment is approved.
    At that moment HQ records the payment on the reservation and updates its totals.
    To be told instead of asking, ask your HQ administrator for a Reservation Payment Created webhook (see Webhooks).

    Charge a saved card#

    POST /car-rental/reservations/{reservation_id}/payments/charge-credit-card with amount charges a card the customer saved before, for example during an online booking.
    GET /payment-gateways/credit-cards?contact_type=contacts&contact_id=55 lists the saved cards of contact 55; send one id as preferred_card_id to try it first.
    Without it, HQ tries only the reservation's preferred card when it has one, otherwise every saved card.
    Only cards saved on a gateway that has a payment method in the reservation currency are used.
    The answer is HTTP 200 with "success": true even when no card was charged.
    Read data.result: payment_approved, payment_declined, or payment_request_sent when you sent send_payment_request=1 and the customer has an email.
    skip_payment_email and skip_payment_request_email act on presence: any value turns them on, even 0.
    Leave them out to keep the emails.
    A charge moves real money and is not idempotent, so do not retry it blindly after a timeout; read the reservation's payments first.

    Security deposits#

    Hold on a saved card: add authorization=1 to the charge-credit-card request to hold amount instead of charging it.
    Like the skip_* flags it acts on presence: any value, even 0, places a hold, so leave it out to charge.
    Release or refund a deposit taken online: POST /car-rental/reservations/{reservation_id}/payments/online-security-deposit-refund with refunded_amount, the amount to give back.
    Settle a deposit recorded offline: POST /car-rental/reservations/{reservation_id}/payments/{id}/security-deposit-refund with amount_to_refund.
    The amount you give back is recorded as a refund, and the rest of the deposit becomes a payment.

    Record a payment taken outside HQ#

    POST /car-rental/reservations/{reservation_id}/payments records a cash, bank transfer or other offline payment without charging anything.
    The body is your Payments form, with each value as field_<id> (see Custom fields and item types).
    Send send_confirmation_email=1 or 0 to choose whether the customer gets a receipt; without it, your account default applies.
    GET /car-rental/reservations/{reservation_id}/payments lists every payment of the reservation, including holds and online payments with their transaction.

    Refunds#

    Back to the card: POST /payment-gateways/payment-transactions/{id}/refund with refunded_amount refunds an online payment through its gateway.
    Take the transaction id from the reservation's payments.
    Send metadata as the JSON string {"payment_id": 812} with the id of that payment, so the refund is also recorded on the reservation; without it the card is refunded but the reservation still shows the payment.
    Like a charge, a refund is not idempotent, so read the reservation's payments before you retry one.
    A refund larger than what is left on the transaction returns a validation error, and a refusal by the gateway returns "success": false with the reason in errors.error.
    Recorded only: POST /car-rental/reservations/{reservation_id}/refunds records a refund made outside HQ.
    Like payments, the body is your Refunds form as field_<id>; add send_confirmation_email=1 to email the customer.
    Modified at 2026-10-29 13:56:40
    Previous
    Guide: sync customers with a CRM
    Next
    Guide: bill tolls and fines
    Built with