Booking Format Documentation

Root elements

Field Always Present Type Description
Acknowledged Yes Boolean Whether the ACKNOWLEDGE button was clicked by the property in the myallocator inbox. Does not mean the booking was acknowledged on the channel extranet. It's purely informational.
Channel Yes String 2-4 letter channel ID of where the booking originated. Check the ChannelList API call for an up-to-date list.
EndDate Yes YYYY-MM-DD Day before departure date of the latest room booking of this booking. Note that not all days between StartDate and EndDate have to refer to the customer staying, since one room could be booked for different dates than another room.
IsCancellation Yes Boolean true if booking is cancelled.
IsModification Yes Boolean true if booking is modified.
IsTentative Yes Boolean true if the booking is not yet confirmed and availability should not yet be reduced. This can apply to booking enquiries where the property owner needs to confirm the booking first.
MarkedAsRead Yes Boolean Whether booking was viewed in the myallocator inbox.
MyallocatorCreationDate Yes YYYY-MM-DD Date the booking was created (imported) into our system in UTC. This does not neccessarily correspond to the date that the booking was created on the channel. Check the optional OrderDate for this.
MyallocatorCreationTime Yes HH:MM:SS Time the booking was created (imported) into our system in UTC. This does not neccessarily correspond to the date that the booking was created on the channel. Check the optional OrderTime for this.
MyallocatorId Yes String Unique booking ID on myallocator. 25 hexadecimal characters.
MyallocatorModificationDate Yes YYYY-MM-DD Date the booking was modified in our system in UTC. Defaults to the MyallocatorCreationDate in case it hasn't been modified yet. This does not neccessarily correspond to the date that the booking was modified on the channel. Check the optional OrderModifDate and/or Version for this.
MyallocatorModificationTime Yes HH:MM:SS Time the booking was modified in our system in UTC. Defaults to the MyallocatorCreationTime in case it hasn't been modified yet. This does not neccessarily correspond to the date that the booking was modified on the channel. Check the optional OrderModifTime and/or Version for this.
MyallocatorPIIRemoved Yes Boolean Whether personal identifiable information has been removed from this booking.
OrderId Yes String Booking ID on the channel. Not guaranteed to be unique across channels. Multiple properties might also return the same OrderId due to being connected to the same channel property. Always use MyallocatorId as a unique identifier.
PropertyId Yes Int > 0 Numeric ID of the property on myallocator.
Rooms Yes Room[] See below in the Room section
StartDate Yes YYYY-MM-DD Arrival date of the earlier room booking of this booking.
Version Yes Int >= 0 Version counter maintained by myallocator, starting at 0 with the intial import. Each modification to the booking will increase this counter. If you want to know if a booking was modified check Version and MyallocatorId.
Balance Currency The outstanding amount to be paid by the customer. This should be the same as TotalPrice - Deposit, but there are cases where the channel does not provide this information.
BalanceCurrency CurrencyCode Currency code for the Balance field. Ideally always present if Balance is present, but cannot be guaranteed as the channel may not provide this information.
CancellationFee Currency The total amount of cancellation fees a guest has to pay because the cancellation was out of the cancellation policy.
CancellationFeeCurrency CurrencyCode Currency code for the CancellationFee field. Ideally always present if CancellationFee is present, but cannot be guaranteed as the channel may not provide this information.
CancellationId String Cancellation ID provided by the channel.
CancellationReason String Only present when IsCancellation = true. Reason given by property or guest as to why booking was cancelled.
GuestNoShow Boolean Only present when IsCancellation = true and if a guest is reported as not showing up.
ChannelSpecific Complex DEPRECATED Replaced by PaymentCollect.
Commission Currency Amount of commission on the booking, included in the TotalPrice. Commission is an absolute amount of currency to be paid to the channel. This field does not indicate whether the commission is already paid or not.
CommissionCalculated Boolean true if the commission is not provided by the channel but calculated from the data in the payload.
CommissionCurrency CurrencyCode Currency code for the Commission field. Ideally always present if Commission is present, but cannot be guaranteed as the channel may not provide this information.
CommissionIncludedInTotal Boolean false if the channel has already charged the commission to the guest, but the value is unknown.
CommissionPercentage Float Percentage of commission on the booking.
CommissionableAmount Currency Amount of commissionable revenue. The percentage defined in CommissionPercentage is applied to CommissionableAmount to calculate the final commission Commission.
CustomerAssociations CustomerAssociation[] See below in the CustomerAssociation section
Customers Customer[] See below in the Customer section
Deposit Currency Amount of deposit this booking has already received. Included in TotalPrice
DepositCurrency CurrencyCode Currency code for the Deposit field. Ideally always present if Deposit is present, but cannot be guaranteed as the channel may not provide this information.
DepositDeadline Object See below in the DepositDeadline section.
DepositDue Currency DEPRECATED Do not use.
DepositType Enum(...) Possible deposit types are: ota, vcc, manual, cc, bank_transfer, voucher, directbill
DirectBills DirectBill[] See below in the DirectBill section
Discounts Discount[] See below in the Discount section
ExternalReferences ExternalReference[] See below in the ExternalReference section
ExtraServices ExtraService[] See below in the ExtraService section
ExtraTaxes ExtraTax[] See below in the ExtraTax section
Guarantees Guarantee[] List of Guarantee objects (see below) for non-credit card guarantees.
Loyalties Loyalty[] See below in the Loyalty section
Memberships Membership[] See below in the Membership section
MyallocatorCreditCardDetailsChanged Boolean If credit card details have been updated this value is true. Default is false.
MyallocatorCreditCardDetailsPresent Boolean If credit card details are present this value is true. Default is false.
OrderAdults Int >= 0 Total number of unique adults. Adult age threshold is defined by the channel. Equals sum of Adults in each room if this breakdown is given.
OrderChildren Int >= 0 Total number of unique children or babies. Child/baby age threshold is defined by the channel. Equals sum of Children plus Babies in each room if this breakdown is given.
OrderCustomers Int >= 0 Total number of unique customers. Equals the sum of Occupancy in each room if this breakdown is given. Also equals the sum of OrderAdults and OrderChildren if those fields are present.
OrderDate YYYY-MM-DD Date of booking creation (not date when modified!). We aim to provide this value in UTC, but this may not be the case for all channels yet.
OrderFemales Int >= 0 Total number of unique female guests.
OrderMales Int >= 0 Total number of unique male guests.
OrderModifDate YYYY-MM-DD Date of booking modification. We aim to provide this value in UTC, but this may not be the case for all channels yet.
OrderModifTime HH:MM:SS Time of booking creation. Not present if booking has not been modified. We aim to provide this value in UTC, but this may not be the case for all channels yet. Presence of OrderModifTime guarantees presence of OrderModifDate.
OrderPets Int >= 0 Number of pets (animals) the guest will bring.
OrderSource String Originating source of guest booking, usually a website. For example, Expedia passes bookings from multiple websites (hotels.com, Travelocity, Orbtiz, etc.). May also refer to travel agent/agency who created the booking. Not provided if the source is equal to the channel name.
OrderSourceId String A myallocator-compatible, two to four character channel ID (if we have the equivalent) for the OrderSource. Typically used for CRSs or channel managers that retransmit bookings from another channel. For example, if OrderSource is Expedia, then OrderSourceId is exp.
OrderSourceType Enum(1,2,3,4,5,6,7) Refer Booking Channel Type (BCT).
OrderTime HH:MM:SS Time of booking creation. We aim to provide this value in UTC, but this may not be the case for all channels yet. Presence of OrderTime guarantees presence of OrderDate.
PaymentCollect Enum('Property', 'Channel') Who collects outstanding balance from the guest? Property means that the property takes the payment, either by charging the credit card, or on arrival. Channel means that the channel will take the payment, and the property is paid by the channel.
PaymentTransactions PaymentTransaction[] See below in the PaymentTransaction section
Policy String Terms and conditions that apply to this booking. For example it could contain the cancellation terms.
Policies Policy[] Terms and conditions that apply to this booking. For example it could contain the cancellation terms.
SourceTree SourceTree[] A list of reservation sources for brokered reservations (e.g., those through SiteMinder). This list always includes an intermediary, such as a channel, CRS, or GDS, and can contain a guest-facing entity, such as a travel agency or rewards program. See more below in SourceTree section
TaxBreakdown TaxBreakdown[] See below in the TaxBreakdown section
TotalCurrency CurrencyCode Currency code for the TotalPrice field. Ideally always present if TotalPrice is present, but cannot be guaranteed as the channel may not provide this information.
TotalPrice Currency Total price of the booking, including taxes, commission and deposit, after discounts. It should reflect the price the guest will have to pay in total (or has already paid).
TotalTaxes Currency Amount of taxes for this booking. The amount is included in TotalPrice. If there are different types of taxes applicable to a booking then this is the sum of those taxes.
TotalTaxesCurrency CurrencyCode Currency code for the TotalTaxes field. Ideally always present if TotalTaxes is present, but cannot be guaranteed as the channel may not provide this information.
TravelAgencies TravelAgency[] See below in the TravelAgency section
Vouchers Voucher[] See below in the Voucher section

Relation of fields

TotalPrice = Totals of all rooms + extra services + extra taxes - discounts
           = Total of day rates  + extra services + extra taxes - discounts

Deposit    = Deposit + sum of vouchers (if present) + sum of loyalties (if present)

Balance    = TotalPrice - Deposit

Room

Field Always present Type Description
ChannelRoomType Yes String The ID of the room on the channel.
EndDate Yes YYYY-MM-DD The date of the last night of stay (equal to departure date minus one).
MyallocatorRateplanIds Yes Reserved for future use.
MyallocatorRoomRateplanIds Yes See "MyallocatorRoomAndRateplansIds" below.
RoomTypeIds Yes Array of Int >= 0 List of myallocator room type IDs mapped to the ChannelRoomType. There can be multiple myallocator rooms mapped to the same channel room. We'll list all applicable rooms, but it does not mean all of them are booked by this booking.
StartDate Yes YYYY-MM-DD Arrival date of the customer.
Units Yes Int > 0 Number of rooms booked (for private rooms) or number of beds booked (for dorms/shared rooms).
Adults Int >= 0 Number of adults staying in this room. Adult age threshold is defined by the channel.
Babies Int >= 0 Number of babies staying in this room. Baby age threshold is defined by the channel.
Breakfast Boolean Whether breakfast was booked.
Children Int >= 0 Number of children staying in this room. Child age threshold is defined by the channel.
Currency CurrencyCode Currency code for the Price field. Ideally always present if Price is present, but cannot be guaranteed as the channel may not provide this information.
DayRates DayRate[] See below in the DayRate section.
ExtraServices ExtraService[] See below in the ExtraService section
ExtraTaxes ExtraTax[] See below in the ExtraTax section
GroupBlockCode String Channel code that identifies the group block used to create the reservation.
MarketCode String The code that relates to the market being sold.
Occupancy Int >= 0 Total number of persons staying in this room, including children and babies. The sum of Adults, Children and Babies if those are present.
OccupantFName String First name(s) of the main occupant of this room. If the channel does not provide the name separated by first and last name, the full name is provided in OccupantLName.
OccupantLName String Last (family) name or full name of the main occupant of this room.
OccupantNote String Text provided by the guest at time of booking, intended to be read by the property.
OccupantSmoker Boolean Whether one of the occupants is a smoker.
Policy String Text describing the booking conditions, like cancellation conditions.
Policies Policy[] Terms and conditions that apply to this booking. For example it could contain the cancellation terms.
NonRefundableRate Boolean Indicates whether or not the booked rate is non-refundable.
Price Currency Total price of the room, for all units and all days, including taxes and fees. Example: stay is for two days and three units and a single night costs €10 (including tax), then Price is 2 * 3 * 10 = 60.
PromotionDesc String Describes the promotion applicable to the booked room.
RateDesc String Description of the booked rateplan, as provided by the channel.
RateId String Applicable rateplan ID for this booking. Normally there is only one. If there are multiple, they are listed comma-separated.
IsDerivedRate Boolean Indicates whether or not the booked rate plan is a mapped rate plan or a derived rate plan. MA has no access to derived rate plans.
RoomDesc String Description of the room, as provided by the channel.
RoomOrderId String A booking ID for each individual room booking or an otherwise unique ID for this room booking given by the channel. This is not a commonly used field.
RoomSummary String DEPRECATED See RoomDesc instead.

Relation of fields

Price = sum of day rates + room-specific extra taxes

MyallocatorRoomAndRateplansIds

Field Always Present Type Description
RoomTypeId Yes Int > 0 ID of myallocator room type mapped to booking channel room type ID.
RateplanIds Yes Array of Int >= 0 Array of myallocator room type rateplans, the room was booked with. May include ID 0 - default room rateplan (usually means: room only). May be an empty array if any rateplan mapping could NOT have been detected.

DayRate

DayRates contain as many DayRate objects as the number of nights of the room stay. They are sorted by date.

Field Always Present Type Description
Date Yes YYYY-MM-DD Date of day rate.
Rate Yes Currency Price for this day, including Commission and Tax.
Commission Currency Amount of commission included in the Rate.
Currency CurrencyCode Currency code for the Rate field. Ideally always present if Rate is present, but cannot be guaranteed as the channel may not provide this information.
Description String Name or short description of the rateplan booked. Example: "Non-refundable rate" or "10% festival discount".
IsDerivedRate Boolean Indicates whether or not the booked rate plan is a mapped rate plan or a derived rate plan. MA has no access to derived rate plans.
RateId String Applicable rateplan ID for this day rate. Normally there is only one. If there are multiple they are provided comma-separated.
RatePlanCategory String This is the category or segment to which the rate being booked belongs.
IsRatePerUnit Boolean Whether the rate is per unit. Defaults to true if not present.
Tax Currency Amount of tax included in the Rate.

DepositDeadline

Indicates when the deposit is due if not at the time of booking

Field Required Type Description
Absolute YYYY-MM-DD HH:MM:SS Defines the absolute deadline.
OffsetTimeUnit String The units of time that apply to the deadline.
OffsetUnitMultiplier String The number of units of OffsetTimeUnit.
OffsetDropTime String Identifies when the deadline drop time goes into effect. Probably channel-specific and the possible values are AfterBooking, BeforeArrival or AfterConfirmation.

Customer

All fields are optional. The first entry in the Customers array refers to the person that has made the booking, who may not neccessarily be the person staying at the property.

Field Always Present Type Description
CustomerAddress String Address of the customer. This usually refers to the street name and house number, apartment name or similar. Multiple lines are added comma-separated (not with newlines).
CustomerAddresses Address[] A booking can contain multiple customer addresses (say, home or business or other).
CustomerAge Int >= 0 Customer age at the time of booking. Used if the channel provides only the age, not the birthday.
CustomerArrivalTime HH:MM Estimated time of arrival to the property as given by the customer. In the property's timezone.
CustomerBirthday YYYY-MM-DD Date of birth of the customer.
CustomerCity String City/town/village/locality of the customer.
CustomerCompany String Name of the company of the customer.
CustomerCompanyDepartment String Name of the department within the company of the customer. Example: "Sales".
CustomerCountry ISO 3166-1 alpha-2 Country code in which the customer resides, corresponding to their address. Value is uppercase. Some channels do not yet provide this 2-letter code yet, and will instead pass country name as a string.
CustomerDepartureTime HH::MM Estimated time of departure from the property as given by the customer. In the property's timezone.
CustomerEmail Email-Address Email address of the customer. Often is a special email address from the channel that will forward to the real email address.
CustomerEmails Email[] Email addresses of the customer.
CustomerFax String Pshhhkkkkkkrrrrkakingkakingkakingtshchchchchchchchcch*ding*ding*ding*.
CustomerFName String First name(s) of the customer. If the name is not given separated by first and last name, the full name is provided in CustomerLName.
CustomerGender Enum(MA,FE,MI) Gender of the customer. MA = male, FE = female, MI = mixed (multiple customers, or gender neutral).
CustomerIP IPv4 or IPv6 IP of the customer.
CustomerIsVIP Enum(0, 1) Indicates the customer is a very important person.
CustomerLName String Last (family) name or full name of the customer.
CustomerNationality ISO 3166-1 alpha-2 Country Code of guest birthplace (or Country Code listed on guest passport). Value is uppercase. Some channels do not yet provide this 2-letter code yet, and will instead pass country name as a string.
CustomerNote String Text provided by the guest at time of booking, intended to be read by the property.
CustomerPhone String Phone number of the customer. If mobile phone number is provided separately by the channel then this is the landline or alternative phone number.
CustomerPhones Phone[] Phone numbers of the customer.
CustomerPhoneMobile String Mobile phone number of the customer.
CustomerPostCode String Postcode (ZIP) of the customer.
CustomerSmoker Boolean Whether customer is a smoker.
CustomerState String State (province, etc.) of the customer.
CustomerState String State (province, etc.) of the customer.
CustomerTitle String Something like "Mr", "Mrs", "Miss", "Herr", "Frau", "Fräulein"
LoyaltyMemberships LoyaltyMembership[] Loyalty program memberships assigned to the customer.
MarketingOptIn Enum(0,1) Whether the customer has agreed to receive marketing communications.
TravelDocuments TravelDocument[] Guest travel documents.

Address

A booking can contain multiple customer addresses.

Field Required Type Description
Country Yes ISO 3166-1 alpha-2 Country of the address.
Type Yes Enum(1,2,3,4) Refer Communication Location Type (CLT).
Address String Free form address details.
City String City, town, or postal station.
PostCode String Postcode (ZIP) of the customer.
State String State or province.

Phone

A booking can contain multiple profile (say, customer or company) phones.

Field Required Type Description
Number Yes String Contains the actual number.
LocationType Enum(6,7,8) Refer Phone Location Type (PLT).
TechType Enum(1,3,5) Refer Phone Technology Type (PTT).

Email

A booking can contain multiple profile (say, customer or company) email addresses.

Field Required Type Description
Email Yes String Email address of the customer.
Type Enum(1,2) Refer Email Address Type (EAT).

CustomerAssociation

Reservation customers can sometimes be associated with entities that have some meaning to the property or arrange the reservation. These associations (minus travel agencies, which are handled separately) include companies (a customer's company employer may have a special deal with the property enabling different rates or capabilities that can, for example, trigger during reservation cancellation), wholesalers (I guess like bed banks?), or groups (customer can book as part of a group block for special events). Each association will have indicators of type as well as a contact person. Group associations will also contain a GroupCode, which indicates to the property manager the group block to which they belong.

Field Required Type Description
TypeId Yes Enum(3,5,6,21) Refer Profile Type (PRT).
Address String Address line for association contact person.
City String City for association contact person.
CompanyName String Company name.
Country ISO 3166-1 alpha-2 Country code for association contact person.
Email Email-Address Email address for the association contact person.
Fax String Fax number for association contact person.
GroupCode String Only found in group block associations. Enables property manager to tie reservation back to group block. This value is sent to the channel when creating the block.
LoyaltyMemberships LoyaltyMembership[] Loyalty program memberships assigned to the arranger profile.
Name String Name for association contact person.
Phone String Phone number for association contact person.
PhoneMobile String Mobile phone for the association / contact person.
Phones Phone[] Phone numbers for the association / contact person.
PostCode String Postal code for association contact person.
ProfileId String Unique ID for this association profile. Probably channel-specific.
State String State (province, etc.) of the travel agency.

Guarantee

Provides guarantee information for non-credit card guarantees.

Field Required Type Description
Details String Details of the guarantee for non-credit card guarantees (say, certificate redemption number).
Name String The type of guarantee details (say, Certificate or DirectBill etc.,).

LoyaltyMembership

Guests can have membership details for loyalty programs stored in their profile. Loyalty program details in a guest profile indicate what membership details a customer has stored on their profile but not which loyalty program is selected for the booking.

Field Required Type Description
EffectiveDate YYYY-MM-DD Starting date.
ExpireDate YYYY-MM-DD Ending date.
LoyalLevel String Indicates special privileges in a program assigned to an individual.
MembershipId String Unique identifier of the member in the program.
ProgramId String The company of the loyalty program.
SignupDate YYYY-MM-DD The date that the member signed up for the loyalty program.
VendorCode String The identifier for the vendor in the program.

Loyalty

Some properties (usually bigger hotel chains) have loyalty programs that can help guests accumulate monetary perks toward future stays with the chain. Loyalties form a type of deposit, which go towards the total reservation price affecting the Deposit and Balance fields in a reservation payload. Loyalties have a name, a member ID, quantity, and total amount.

Field Required Type Description
Description Yes String Name of loyalty program.
MemberId Yes String Loyalty program member ID (usually an email address).
Units String Number of loyalty points used.
TotalAmount Currency Total amount deposited for the reservation.
Currency CurrencyCode Currency of the Total field.

Membership

Some properties have "frequent guest" programs that allow for guests to accrue points or get perks. Each membership will contain a ProgramCode (membership program name) and AccountID (guest's membership ID).

Field Required Type Description
ProgramCode Yes String Name of the membership program
AccountId Yes String Guest's membership ID for this program
BonusCode String The code or name of the bonus program.

DirectBill

Is included when there are guarantees with DirectBill(s)

Field Required Type Description
Amount Yes Currency Total amount deposited for the reservation.
DirectBillId Yes String The DirectBill Id.
Currency CurrencyCode Currency of the Total field.

Voucher

Vouchers are a form of deposit. Sometimes, when a guest books as part of a company, the company may have an account with the property. In some cases, if one of these customers cancels their reservation booked through their company, instead of getting a refund, the property keeps the money in an account and can apply it to future reservations as a voucher. It is applied towards the total reservation price affecting the Deposit and Balance fields in a reservation payload.

Field Required Type Description
VoucherId Yes String The transaction ID.
SupplierId String Source/Provider of the voucher.
TotalAmount Yes Currency Total amount deposited for the reservation.
Currency CurrencyCode Currency of the Total field.

PaymentTransaction

Only used for the BookNow (bnw) channel to indicate payments that have been made through PayPal. Rarely used.

Field Always Present Type Description
Amount Yes Currency Amount processed by payment provider.
Currency Yes CurrencyCode Currency code for the Amount field.
Provider Yes String Name of the payment provider. Right now always PayPal.
Description String Description of purchase.
Fee Currency Fee taken by the payment processor.
Reference String Reference for the payment that was also shown to the customer.

Discount

Field Always Present Type Description
Discount Yes Currency Amount of discount as a positive value.
EndDate Yes YYYY-MM-DD End date for the date range of when this discount is applicable. Often the same as the booking's EndDate.
StartDate Yes YYYY-MM-DD Start date for the date range of when this discount is applicable. Often the same as the booking's StartDate.
Currency CurrencyCode Currency code for the Discount field. Ideally always present if Discount is present, but cannot be guaranteed as the channel may not provide this information.
Description String Description of the discount.
IncludedInDayRates Enum(0,1) Whether the discount is included in the day rates. If not present assumed to be true.
IncludedInRoomPrice Enum(0,1) Whether the discount is included in the room price (Price in Rooms array). If not present assumed to be true.
IncludedInTotal Enum(0,1) Whether the discount is included in the total. We aim to have this 1 whenever possible.

ExternalReference

List of further identifiers for the booking. For example, the booking ID a travel agency provides might be different from the channel's booking ID.

Field Required Type Description
Type Yes String Identifies which system the booking reference refers to (eg. IATA, OTA, or CRS). There is no predefined list for this.
Reference Yes String ID on the system referred to by Type.

ExtraService

Extra services can contain extra fees like breakfasts, extra beds or any other service booked.

Field Always Present Type Description
EndDate Yes YYYY-MM-DD End date for the date range of when this extra service is applicable. Often the same as the booking's EndDate.
StartDate Yes YYYY-MM-DD Start date for the date range of when this extra service is applicable. Often the same as the booking's StartDate.
Units Yes Int > 0 Quantity of the extra services booked.
Adults Int >= 0 Number of adults the extra service is booked for. Adult age threshold is defined by the channel.
Babies Int >= 0 Number of babies the extra service is booked for. Baby age threshold is defined by the channel.
Category Enum(...) What type of extra service is this? Can be fee, meal or service.
Children Int >= 0 Number of children the extra service is booked for. Child age threshold is defined by the channel.
Currency CurrencyCode Currency code for the Price field. Ideally always present if Price is present, but cannot be guaranteed as the channel may not provide this information.
Label String Short free-form name for the type of extra service (eg. Conference Room ).
Description String Description of the extra service.
IncludedInDayRates Enum(0,1) Whether the discount is included in the day rates. If not present assumed to be true.
IncludedInRoomPrice Enum(0,1) Whether the discount is included in the room price (Price in Rooms array). If not present assumed to be true.
IncludedInTotal Enum(0,1) Whether the extra service is included in the total. We aim to have this 1 whenever possible.
Price Currency Price of the extra service (price per unit of service, not the total for all Units). Some services do not have a price.
RevenueCode Integer Gives the service/fee a revenue code. Please contact us for the list of codes.

ExtraTax

Lists additional taxes that do not fit into the general Tax field in the day rates, because the tax is not related to per-night rates. Per-person rates for example to do not well into the Room section.

Field Always Present Type Description
Amount Yes Float >= 0 Tax amount used for calculation. Can refer to an absolute value or percentage. If percentage it's a value between 0 and 100.
AppliesPer Yes Enum(...) What does the tax apply to? E.g. booking, guest, room. The codes can be retrieved by the TaxMeta API call.
Category Yes Enum(...) What type of tax is it? Can be authority_fee or tax.
EndDate Yes YYYY-MM-DD End date for the date range of when this extra tax is applicable.
IncludedInTotal Yes Enum(0,1) Whether the tax is included in the total. We aim to have this 1 whenever possible.
IsInclusive Yes Enum(0,1) Whether the tax is included in the rates provided by the channel.
IsPercent Yes Enum(0,1) Whether value in Amount refers to a percentage.
IsPerNight Yes Enum(0,1) Whether the value in Amount applies for each night. Only really matters if IsPercent is 0.
StartDate Yes YYYY-MM-DD Start date for the date range of when this extra tax is applicable.
TotalAmount Yes Currency Total amount of tax applicable to the booking. The result of applying the rules below to the booking.
Currency CurrencyCode Currency code for the Amount and TotalAmount field. Ideally always present, but cannot be guaranteed as the channel may not provide this information.
Description String Description of the tax as provided by the channel.
RemittedBy Enum(...) Who is responsible for remitting this tax to the tax-collecting agency? Can be Property or Channel.
RevenueCode Integer Gives the tax a revenue code. Please contact us for the list of codes.

Policy

Field Required Type Description
Type Yes Enum(...) For now we can have cancellation, deposit, early-check-in, late-check-out
Description String General descritption of policy. Some policies have nothing except text description

Cancellation policy

Fee or Percentage should be present

Field Required Type Description
From YYYY-MM-DD HH:MM:SS Absolute date and time, in UTC, from which the rule applies
Deadline YYYY-MM-DD HH:MM:SS Absolute date and time, in UTC, for rule deadline
Fee Currency Fee amount when cancellation is applied
FeeCurrency CurrencyCode Currency code for the Fee field. Ideally always present if Fee is present, but cannot be guaranteed as the channel may not provide this information.
Percentage Float Same as Fee but in percent

Deposit policy

Field Required Type Description
DepositType Yes Enum(...) Possible types for now are downpayment, other, damage, alternate-payment. Use other only if channel classifies it as 'other', otherwise, add new type.
DepositAmount Currency Amount of deposit for booking

Early check-in

Field Required Type Description
Time Yes HH:MM Time that limits early check-in
Fee Currency If this addition requires additional payment

Late check-out

Field Required Type Description
Hours Yes HH:MM Time that limits late check-out
Fee Currency If this addition requires additional payment

SourceTree

Lists chain of reservation sources from guest to myallocator, in that order. Each source is an object with the following fields:

Field Required Type Description
ExternalId String Reservation broker provided ID for the source. Unfortunately, this isn't always present.
InternalId String Myallocator ID for the source. Not always available, except for channel, CRS, or GDS intermediaries.
Name Yes String Name of source, provided by channel.
Type Yes String Open Travel Booking Channel Type. Can be 1-7. Examples: 1 = GDS, 5 = CRS, 7 = Internet (e.g., channel).

TaxBreakdown

Provides a breakdown of which taxes are contained in TotalTaxes. See ExtraTax section above for the format.

TravelAgency

This object holds information about involved travel agencies.

Field Required Type Description
Address String Address of the travel agency.
City String City of the travel agency.
CompanyName String Company name.
Country ISO 3166-1 alpha-2 Country code of the travel agency. Value is uppercase.
Email Email-Address Email address of the travel agency.
Fax String Fax number of travel agency.
Name String Name of the travel agency.
Phone String Phone number of the travel agency.
PhoneMobile String Mobile phone number of the travel agency.
Phones Phone[] Phone numbers of the travel agency.
PostCode String Postcode (ZIP) of the travel agency.
ProfileId String Travel agency ID. The ID may come from different sources, see ProfileIdType
ProfileIdType Enum('ABTA','CLIA','IATA','TIDS','TRUE') Organization to which the travel agency profile ID belongs.
State String State (province, etc.) of the travel agency.

TravelDocument

Travel document information for a reservation guest. Travel documents can include a passport, driver’s license, visa, military ID, etc.

Field Always Present Type Description
BirthCountry Country Specifies the birth country of the document holder.
BirthDate YYYY-MM-DD Indicates the date of birth as indicated in the document.
BirthPlace string Specifies the birth place of the document holder (e.g., city, state, county, province).
EffectiveDate YYYY-MM-DD Indicates the starting date.
ExpireDate YYYY-MM-DD Indicates the ending date.
Gender Enum(FE,MA) Identifies the gender.
HolderName String Document holder value indicated on the travel document.
HolderNationality Country The country code of the nationality of the document holder.
Id String Document number value indicated on the travel document.
IssueAuthority String Issuing authority value indicated on the travel document.
IssueLocation String Issued location value stored for the travel document.
IssueCountry Country Country where the document was issued.
IssueStateProvince String State or Province where the document was issued.
Type Enum(1..22) Refer Document Type Code List (DOC).

Payment

This object holds credit/debit card details of the customer which can be retrieved through the BookingPaymentDownload API call.

Field Always Present Type Description
CardNumber Yes String Credit card number. Can contain numbers and spaces.
CardType Yes CardType See "CardType" below. They are not the OpenTravelAssociation codes.
Card3DSecureCAVV String 3D-Secure Authentication Validation Value. Contains the AAV for Mastercard or CAVV for Visa.
Card3DSecureCAVVAlgorithm String Algorithm used to generate the CAVV. A single digit or letter.
Card3DSecureDSTransactionId String The 3D-Secure Directory Server transaction ID that is used for the 3D Authentication. Mandatory for MasterCard.
Card3DSecureECI Int >= 0 Electronic Commerce Indicator provides authentication validation results returned. 0 = Non-3D-Secure transaction (no liability shift), 1 = Authentication attempted (MasterCard), 2 = Successful authentication (MasterCard), 5 = Successful authentication (Visa, Diners Club, Amex), 6 = Authentication attempted (Visa, Diners Club, Amex), 7 = Non-3D-Secure transaction (no liability shift)
Card3DSecureCardNotPresent Boolean False indicates that 3D-Secure authentication was bypassed because the cardholder information was passed verbally.
Card3DSecureVersion String The 3D Secure version used for the authentication. A three part version like so: 1.0.2, 2.1.0, 2.2.0. Mandatory for MasterCard.
Card3DSecureXID String The transaction ID that is used for the 3D Authentication.
CardCVV Int >= 0 CVV (CV2) number from the back of the credit/debit card. Usually three or four digits.
CardExpiryDay DD Credit card expiration day (two digits).
CardExpiryMonth MM Credit card expiration month (two digits).
CardExpiryYear YYYY Credit card expiration year (four digits).
CardHolderAddress String Address of the card holder. This usually refers to the street name and house number, apartment name or similar. Multiple lines are comma-separated.
CardHolderCity String City/town/village/locality of the card holder.
CardHolderCountry ISO 3166-1 alpha-2 Resident country code of card holder, as part of their address. Value is uppercase. Some channels do not yet provide this 2-letter code yet, and will instead pass country name as a string.
CardHolderName String Full name of the card holder as it appears on the card.
CardHolderPostCode String Postcode (ZIP) of the card holder.
CardHolderState String State of the card holder.
CardBalance Currency Balance on the card. Usually just for virtual cards.
CardBalanceCurrency CurrencyCode Currency of the CardBalance field.
CardActivationDate YYYY-MM-DD The card can be charged starting on this date. Relates to virtual cards that cannot be charged right away.
CardExpirationDate YYYY-MM-DD The card can be charged until on this date. Relates to virtual cards.
DayRatesCommissionIncluded Boolean In cases where a reservation is paid for by virtual credit card (VCC), this flag indicates whether or not the rates for each date of stay already has channel commission/compensation subtracted or not.
IsBankTransfer Boolean Used to indicate whether or not the reservation was paid for by bank transfer (meant for VCCs).
IsVCC Boolean True if the payment card is a virtual credit card (VCC).
TaxId String In some regions (like Brazil) a tax ID of the card holder is required to charge a card.
TotalPriceCommissionIncluded Boolean In cases where a reservation is paid for by virtual credit card (VCC), this flag indicates whether or not the reservation total price already has channel commission/compensation subtracted or not.

CardType

Code Name
AX American Express
BC BC Card
CA MasterCard
CB Carte Blanche
CL Cabal
CU China Union Pay
DS Discover
DC Diners Club
E Electron
EC EuroCard
EL Elo Creditcard
ER enRoute
FB Forbrugsforeningskort
HC Hipercard
IT ItalCred
JA JAL
JC Japan Credit Bureau
L Delta
LA Laser
MU Maestro UK
N Dankort
NR Naranja
NT Nativa
R Carte Bleue
S Switch
SO Solo
T Carta Si
TO Maestro
TP Universal Air Travel Card
VI Visa

Reference Tables

CRSs refer to OTA codes in different sections of the payload which in turn have designated values. The below tables documents different codes -> values mappings.

Booking Channel Type (BCT)

Code Value Code Name
1 Global distribution system (GDS)
2 Alternative distribution system (ADS)
3 Sales and catering system (SCS)
4 Property management system (PMS)
5 Central reservation system (CRS)
6 Tour operator system (TOS)
7 Internet

Communication Location Type (CLT)

Code Value Code Name
1 Home
2 Business
3 Other
4 Destination

Document Type Code List (DOC)

Code Value Code Name
1 Visa
2 Passport
3 Military identification
4 Drivers license
5 National identity document
6 Vaccination certificate
7 Alien registration number
8 Insurance policy number
9 Tax exemption number
10 Vehicle registration/license number
11 Border crossing card
12 Refugee travel document
13 Pilot's license
14 Permanent resident card
15 Redress number
16 Known traveler number
17 Non-standard
18 Merchant mariner
19 Air Nexus card
20 Crew member certificate
21 Passport card
22 Naturalization certificate

Email Address Type (EAT)

Code Value Code Name
1 Personal
2 Business

Phone Location Type (PLT)

Code Value Code Name
6 Home
7 Office
8 Other

Phone Technology Type (PTT)

Code Value Code Name
1 Voice
3 Fax
5 Mobile

Profile Type (PRT)

Code Value Code Name
3 Company
5 Wholesaler
6 Group
21 Arranger