# Create a booking/enquiry This endpoint is used to create a new booking with room stays in a ENQUIRY status. If 'reserveForMinutes' is specified the availability will be held for the number of minutes specified. Once the booking is created use the 'updateStatuses' endpoint to change the status to PENDING, CONFIRMED or CHECKED_IN. Endpoint: POST /api/v3/bookings Version: 3.0.4 Security: OAuth2 ## Request fields (application/json): - `channelId` (integer, required) The id of the channel the booking is created through - `customerReference` (string) Customer reference for the booking, specific to external system / customer - `bookingFinanceAccountId` (integer, required) The finance account id of the contact or company that is making the booking - `billingFinanceAccountId` (integer, required) The finance account id of the contact or company that is paying for the booking - `bookingContactId` (integer, required) The contact id of the contact making the booking - `billingContactId` (integer) The contact id of the contact to receive emails, if not specified, the booking contact id is used - `guarantorContactId` (integer) The contact id of the contact guaranteeing the booking - `billingFrequencyId` (integer, required) The Billing Frequency Id for the booking - `bookingTypeId` (integer, required) The booking type id for the booking - `referrerId` (integer) The referrer id for the booking - `notes` (string) Notes to be added to the booking - `roomStays` (array, required) List of room stays to be created on the booking - `roomStays.rateId` (integer, required) Rate Id for the room stay - `roomStays.startDate` (string, required) Start date of the stay - `roomStays.endDate` (string, required) End date of the stay - `roomStays.externalNotes` (string) External notes for the stay - `roomStays.opsInformation` (string) Operational information for the stay - `roomStays.additionalAccessInformation` (string) Additional access information for the stay - `roomStays.inventoryType` (string, required) Type of inventory for the stay, must be either UNIT or UNIT_TYPE Enum: "UNIT", "UNIT_TYPE" - `roomStays.inventoryTypeId` (integer, required) Inventory Type Id for the stay, if inventory type is UNIT then this is the Unit Id, if inventory type is UNIT_TYPE then this is the Unit Type Id - `roomStays.overriddenGross` (number) Overridden gross value for the stay, used to override the rate value - `roomStays.promotionalCodeCode` (string) Promotional code for the stay - `roomStays.numberOfAdults` (integer, required) Number of adults for the stay - `roomStays.numberOfChildren` (integer, required) Number of children for the stay - `roomStays.numberOfInfants` (integer, required) Number of infants for the stay - `roomStays.additionalExtraIds` (array) Additional Extra Ids for the stay - `roomStays.guestIds` (array) Guest Ids for the stay, if not specified the booking contact will be used - `reserveForMinutes` (integer) If the booking is created as an enquiry, then if specified the availability will be held for the number of minutes specified ## Response 200 fields (application/json): - `id` (integer) The id of the booking - `bookingReference` (string) The booking reference - `bookingNet` (number) The booking net - `bookingVat` (number) The booking VAT - `bookingExtrasNet` (number) The booking extras net - `bookingExtrasVat` (number) The booking extras VAT - `commissionFromNetworkNet` (number) Commission from network net - `commissionFromNetworkVat` (number) Commission from network VAT - `commissionRateToAgent` (number) The commission rate to agent - `commissionFeeToAgent` (number) The commission fee to agent - `commissionToAgentNet` (number) The commission to agent net - `commissionToAgentVat` (number) Commission to agent VAT - `bookableOnline` (boolean) Whether it is bookable online - `billingFrequency` (object) The billing frequency - `billingFrequency.id` (integer) The unique identifier of the billing frequency Example: 1 - `billingFrequency.name` (string) The name of the billing frequency Example: "Monthly" - `billingFrequency.code` (string) The code of the billing frequency Example: "M" - `billingFrequency.systemType` (boolean) The system type of the billing frequency Example: true - `bookingContact` (object) The primary correspondence contact of the company - `bookingContact.id` (integer) Unique identifier of the contact - `bookingContact.firstName` (string) First name of the contact - `bookingContact.lastName` (string) Last name of the contact - `bookingAccount` (object) Finance account details - `bookingAccount.id` (integer) Unique identifier of the finance account - `bookingAccount.accountCode` (string) Account code of the finance account - `bookingAccount.contact` (object) The primary correspondence contact of the company - `bookingAccount.company` (object) Company summary associated with the finance account - `bookingAccount.company.id` (integer) Unique identifier of the company - `bookingAccount.company.companyName` (string) Name of the company - `bookingAccount.externalId` (string) External identifier of the finance account - `bookingAccount.exportedDate` (string) Date when the finance account was exported - `bookingAccount.exportStatus` (string) Export status of the finance account Enum: "SKIPPED", "CREATED", "PENDING", "SENT", "EXPORTED", "FAILED", "IMPORTED" - `billingAccount` (object) Finance account details - `channel` (object) The channel summary - `channel.id` (integer) Channel ID Example: 1 - `channel.name` (string) Channel Name Example: "Booking.com" - `channel.channelType` (string) Enum: "OTA", "AGENT", "GENERAL", "OWNER" - `customerReference` (string) The customer reference - `payOnArrival` (boolean) Whether to pay on arrival - `bookingTerms` (object) The booking terms - `bookingTerms.id` (integer) The unique identifier of the booking terms - `bookingTerms.name` (string) The name of the booking terms - `bookingTerms.payWhen` (string) The payment terms for the booking Enum: "BOOKING_DATE", "START_DATE", "TWO_WEEKS_BEFORE_ARRIVAL", "ON_BOOKING, ON_ARRIVAL, ON_DEPARTURE" - `bookingTerms.description` (string) The description of the booking terms - `bookingTerms.firstInvoiceInvoiceDateOnStartDate` (boolean) Indicates if the first invoice date is on the start date - `bookingTerms.depositPercentageOfFirstInvoice` (number) The deposit percentage of the first invoice - `bookingTerms.settlementTerms` (object) The settlement terms configuration - `bookingTerms.settlementTerms.id` (integer) The unique identifier of the settlement terms configuration - `bookingTerms.settlementTerms.name` (string) The name of the settlement terms configuration - `bookingTerms.settlementTerms.initialSettlementTerm` (object) The ongoing settlement term - `bookingTerms.settlementTerms.initialSettlementTerm.id` (integer) The unique identifier of the settlement term Example: 1 - `bookingTerms.settlementTerms.initialSettlementTerm.settlementType` (string, required) Type of the settlement term Enum: "AUTOMATIC", "MANUAL" - `bookingTerms.settlementTerms.initialSettlementTerm.settlementAction` (string, required) Primary action of the settlement term Enum: "CHARGE_STORED_CARD", "GO_CARDLESS", "STRIPE_BACS_DIRECT_DEBIT", "CREATE_MOCK_RECEIPT", "NONE" - `bookingTerms.settlementTerms.initialSettlementTerm.settlementAction2` (string) Secondary action of the settlement term Enum: "CHARGE_STORED_CARD", "GO_CARDLESS", "STRIPE_BACS_DIRECT_DEBIT", "CREATE_MOCK_RECEIPT", "NONE" - `bookingTerms.settlementTerms.initialSettlementTerm.tokeniseCard` (boolean) Indicates if the card should be tokenized - `bookingTerms.settlementTerms.initialSettlementTerm.includeOutstandingInvoices` (boolean) Indicates if outstanding invoices should be included - `bookingTerms.settlementTerms.initialSettlementTerm.settlementTrigger` (string, required) Trigger for the settlement term Enum: "TIME_OF_BOOKING", "ARRIVAL", "DEPARTURE", "INVOICE_DUE_DATE", "NA" - `bookingTerms.settlementTerms.initialSettlementTerm.settlementOffsetDays` (integer) Offset days for the settlement term - `bookingTerms.settlementTerms.initialSettlementTerm.settlementOffsetHours` (integer) Offset hours for the settlement term - `bookingTerms.settlementTerms.initialSettlementTerm.settlementValueAccommodation` (number) Settlement value for accommodation - `bookingTerms.settlementTerms.initialSettlementTerm.settlementValueDeposit` (number) Settlement value for deposit - `bookingTerms.settlementTerms.initialSettlementTerm.settlementValueExtras` (number) Settlement value for extras - `bookingTerms.settlementTerms.initialSettlementTerm.payInAdvance` (boolean) Indicates if payment is in advance - `bookingTerms.settlementTerms.initialSettlementTerm.considerAllInvoiceLines` (boolean) Indicates if all invoice lines should be considered - `bookingTerms.settlementTerms.ongoingSettlementTerm` (object) The ongoing settlement term - `requestedLocation` (string) The requested location - `requestedUnitType` (string) The requested unit type - `webReference` (string) The web reference - `webBookingComplete` (boolean) Whether the web booking is complete - `quoteByArea` (boolean) Whether to quote by area - `siteminderCreated` (boolean) Whether it is created by siteminder - `rentalsUnitedCreated` (boolean) Whether it is created by rentals united - `agentCode` (string) The agent code - `channelCode` (string) The channel code - `otaBookingReference` (string) The OTA booking reference - `behalfOf` (string) Behalf of - `budgetPerNight` (number) The budget per night - `billingType` (string) The billing type Enum: "ON_ACCOUNT", "CREDIT_CARD", "CASH_PAYMENT", "BANK_PAYMENT", "VIRTUAL_CARD" - `emailTo` (string) Email to Enum: "BOOKING_CONTACT", "BOOKING_GUESTS", "BOOKING_CONTACT_AND_GUESTS" - `externalId` (integer) The external ID - `bookingType` (object) Booking type of the building - `bookingType.id` (integer) The unique identifier of the booking type - `bookingType.name` (string) The name of the booking type - `bookingType.description` (string) The description of the booking type - `bookingType.shortCode` (string) The short code of the booking type - `bookingType.billingType` (string) The billing type of the booking Enum: "ON_ACCOUNT", "CREDIT_CARD", "CASH_PAYMENT", "BANK_PAYMENT", "VIRTUAL_CARD" - `bookingType.emailTo` (string) The email recipient of the booking Enum: "BOOKING_CONTACT", "BOOKING_GUESTS", "BOOKING_CONTACT_AND_GUESTS" - `bookingType.systemBookingType` (boolean) Indicates if it is a system booking type - `bookingType.systemName` (string) The system name of the booking type - `bookingType.uuid` (string) The unique identifier for the booking type - `bookingType.organisationSettings` (object) Organisation settings - `bookingType.organisationSettings.id` (integer) The unique identifier of the organisation settings Example: 1 - `bookingType.organisationSettings.name` (string) The name of the organisation Example: "Resharmonics" - `bookingType.organisationSettings.currency` (object) The currency of the organisation - `bookingType.organisationSettings.currency.id` (integer) Unique identifier of the currency - `bookingType.organisationSettings.currency.name` (string) Name of the currency - `bookingType.organisationSettings.currency.description` (string) Description of the currency - `bookingType.organisationSettings.currency.symbol` (string) Symbol of the currency - `bookingType.organisationSettings.currency.exchangeRate` (number) Exchange rate of the currency - `bookingType.organisationSettings.currency.baseRate` (number) Base rate of the currency - `bookingType.organisationSettings.currency.unit` (string) Unit of the currency - `bookingType.organisationSettings.currency.autoUpdate` (boolean) Indicates if the currency is auto-updated - `bookingType.organisationSettings.currency.primaryCurrency` (boolean) Indicates if this is the primary currency - `bookingType.organisationSettings.currency.htmlSafeSymbol` (string) HTML safe symbol of the currency - `bookingType.organisationSettings.country` (object) Data Transfer Object representing a Country entity in the Property Management System (PMS). - `bookingType.organisationSettings.country.id` (integer) Unique identifier of the country - `bookingType.organisationSettings.country.name` (string, required) Name of the country - `bookingType.organisationSettings.country.sortOrder` (integer, required) Sort order of the country - `bookingType.organisationSettings.country.countryCodeAlpha2` (string, required) Alpha-2 country code - `bookingType.organisationSettings.country.countryCodeAlpha3` (string, required) Alpha-3 country code - `bookingType.organisationSettings.country.countryCodeNumeric` (string, required) Numeric country code - `payableOnlineReference` (integer) The payable online reference - `referrer` (object) The referrer details of the company - `referrer.id` (integer) Unique identifier of the referrer - `referrer.code` (string) Code of the referrer - `referrer.name` (string) Name of the referrer - `bookingEnquiryData` (object) The booking enquiry data - `bookingEnquiryData.id` (integer, required) Booking Enquiry ID - `bookingEnquiryData.notes` (string) Notes for the booking enquiry - `bookingEnquiryData.billingAccountId` (integer) Billing Account ID - `bookingEnquiryData.bookingAccountId` (integer) Booking Account ID - `bookingEnquiryData.bookingContactId` (integer) Booking Contact ID - `bookingEnquiryData.billingFrequency` (integer) Billing Frequency ID - `bookingEnquiryData.referrerId` (integer) Referrer ID - `bookingEnquiryData.channelId` (integer) Channel ID - `bookingEnquiryData.commissionRate` (number) Commission Rate - `bookingEnquiryData.billingType` (string) Billing Type - `bookingEnquiryData.bookingCurrencyId` (integer) Booking Currency ID - `bookingEnquiryData.behalfOf` (string) Behalf Of - `bookingEnquiryData.bookingTypeId` (integer) Booking Type ID - `bookingEnquiryData.startDate` (string) Start Date - `bookingEnquiryData.endDate` (string) End Date - `bookingEnquiryData.requestedStartDate` (string) Requested Start Date - `bookingEnquiryData.requestedEndDate` (string) Requested End Date - `bookingEnquiryData.requestedUnitTypes` (string) Requested Unit Types - `bookingEnquiryData.requestedLocation` (string) Requested Location - `bookingEnquiryData.budgetPerNight` (number) Budget Per Night - `bookingEnquiryData.selectedLocations` (string) Selected Locations - `bookingEnquiryData.selectedUnitTypes` (string) Selected Unit Types - `bookingEnquiryData.selectedRatePlans` (string) Selected Rate Plans - `bookingEnquiryData.bestOrAllRates` (boolean) Best or All Rates - `bookingEnquiryData.promoCodeId` (integer) Promo Code ID - `bookingEnquiryData.soldOutEnquiry` (boolean) Sold Out Enquiry - `bookingEnquiryData.selectedFeatureIds` (string) Selected Feature IDs - `bookingEnquiryData.basket` (string) Basket - `bookingEnquiryData.customerReference` (string) Customer Reference - `guarantor` (object) The primary correspondence contact of the company - `billingContact` (object) The primary correspondence contact of the company - `overrideOrganisationSettings` (object) Organisation settings