Stawki przesłane przez <OTA_HotelRateAmountNotifRQ>
można zmienić tak, aby oprócz liczby gości określonej w cenach uwzględnić osoby dorosłe i dzieci. Komunikat ExtraGuestCharges
zawiera informacje o tym, jak należy obliczać stawki za tych dodatkowych gości oraz których pokoi, abonamentów i dat pobytu mają obowiązywać ich opłaty.
Wymagania dotyczące pojemności
Ceny obliczone na podstawie komunikatu ExtraGuestCharges
są ważne tylko wtedy, gdy spełnione są wszystkie wymagania dotyczące pojemności. Więcej informacji znajdziesz w sekcji Transakcja (dane usługi).
Żądania
Składnia
Komunikat ExtraGuestCharges
używa następującej składni:
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges partner="partner_account_name"
id="message_ID"
timestamp="timestamp">
<HotelExtraGuestCharges hotel_id="HotelID" action="[overlay]">
<ExtraGuestCharge>
<RatePlans>
<RatePlan id="PackageID_1"/>
<RatePlan id="PackageID_2"/>
</RatePlans>
<RoomTypes>
<RoomType id="RoomID_1"/>
<RoomType id="RoomID_2"/>
</RoomTypes>
<StayDates>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD"
days_of_week="MTWHFSU_or_subset"/>
</StayDates>
<AgeBrackets>
<AdultCharge amount="float"/>
<ChildAgeBrackets>
<!-- The following are different ways child charges can be specified.
Use the option that matches your system. -->
<ChildAgeBracket max_age="integer" amount="float"
exclude_from_capacity="[true|false]"/>
<ChildAgeBracket max_age="integer" percentage="float"
exclude_from_capacity="[true|false]"
counts_as_base_occupant="[never|preferred|always]"/>
<ChildAgeBracket max_age="integer" discount_amount="float"
exclude_from_capacity="[true|false]"
counts_as_base_occupant="[never|preferred|always]"/>
</ChildAgeBrackets>
</AgeBrackets>
</ExtraGuestCharge>
</HotelExtraGuestCharges>
</ExtraGuestCharges>
Elementy i atrybuty
Wiadomość ExtraGuestCharges
ma te elementy i atrybuty:
Element / @Atrybut | Wystąpienia | Typ | Opis |
---|---|---|---|
ExtraGuestCharges | 1 | Complex element | Główny element tej wiadomości. |
ExtraGuestCharges / @partner | 1 | string | Konto partnera, do którego należy ta wiadomość. Ta wartość ciągu to wartość Partner key podana na
stronie Ustawienia konta w Hotel Center.
Uwaga: jeśli masz backend, który dostarcza pliki danych dla wielu kont, ta wartość musi być zgodna z wartością atrybutu |
ExtraGuestCharges / @id | 1 | string | Unikalny identyfikator tej wiadomości z żądaniem. Ta wartość jest zwracana w wiadomości z odpowiedzią. Dozwolone znaki to a-z , A-Z , 0-9 , _ (podkreślenie) i - (myślnik). |
ExtraGuestCharges / @timestamp | 1 | DateTime | Data i godzina utworzenia tej wiadomości. |
ExtraGuestCharges / HotelExtraGuestCharges | 0..n | HotelExtraGuestCharges | Kontener na opłaty za pojedynczą usługę. |
ExtraGuestCharges / HotelExtraGuestCharges / @hotel_id | 1 | string | Unikalny identyfikator usługi. Ta wartość musi być zgodna z identyfikatorem hotelu określonym za pomocą atrybutu
<id> w elemencie <listing> w pliku danych z listą hoteli. Identyfikator hotelu znajdziesz też w Hotel Center. |
ExtraGuestCharges / HotelExtraGuestCharges / @action | 0..1 | enum | Określa sposób stosowania aktualizacji. Obsługiwana jest tylko wartość overlay , a ustawieniem domyślnym jest nakładka. Przed zastosowaniem aktualizacji zostaną usunięte wszystkie poprzednie opłaty za tę usługę. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge | 0..99 | ExtraGuestCharge | Jeden zestaw opłat za usługę. Mogą one zawierać ograniczenia dotyczące sposobu naliczania opłat oraz ich obliczania według wieku lub kategorii gościa. Każdy |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets | 1 | AgeBrackets | Kontener przedziału wiekowego, który służy do obliczania opłat według wieku lub kategorii gościa. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge | 0..1 | AdultCharge | Pojemnik na opłatę dla dodatkowej osoby dorosłej. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge / @amount | 0..1 | float | Dodatnia wartość dziesiętna, która określa stałą kwotę do zapłaty za dodatkową osobę dorosłą. Waluta jest używana w tej samej walucie co w przypadku cen za noc. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets | 0..1 | ChildAgeBrackets | Kontener na dodatkowe opłaty podrzędne. Te przedziały wiekowe mogą obejmować tylko przedział wiekowy od 0 do 17 lat włącznie. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket | 1..99 | ChildAgeBracket | Opłata, która dotyczy dzieci w określonym przedziale wiekowym. Należy ułożyć je w kolejności od najniższej do: max_age (max_age ). Kwota obciążenia można określić za pomocą tych elementów: amount , percentage lub discount_amount . Dla każdej <ChildAgeBracket> trzeba podać dokładnie 1 z tych atrybutów.
|
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @max_age | 1 | integer | Maksymalny wiek, w przypadku którego mogą obowiązywać opłaty określone w <ChildAgeBracket> . Minimalny wiek wynosi 0, jeśli przed tą wartością nie określono innych atrybutów <ChildAgeBracket> . W przeciwnym razie jego wartość jest o 1 większa niż maksymalny wiek w poprzednim nawiasie. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @exclude_from_capacity | 1 | boolean | Wartość logiczna wskazująca, czy dziecko w tym przedziale wiekowym powinno być wliczane do łącznej pojemności sali oraz pojemności podrzędnej. Te limity można ustawić za pomocą transakcji(dane usługi). Na przykład niemowlęta poniżej określonego wieku mogą nie być wliczane do limitu dzieci. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount | 0..1 | float | Nieujemna wartość dziesiętna określająca stałą kwotę do zapłaty za dodatkowe elementy podrzędne w tym nawiasie. Waluta jest używana w tej samej walucie co w przypadku cen za noc. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @percentage | 0..1 | float | Wartość dziesiętna od 1 do 99, która określa procent ceny dla osoby dorosłej, którą należy zapłacić za dodatkowe dziecko w tym nawiasie. Waluta jest używana w tej samej walucie co w przypadku stawek za noc. Szczegółowe informacje o sposobie obliczania ceny dla dorosłych znajdziesz w sekcji |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @discount_amount | 0..1 | float | Dodatnia wartość dziesiętna, która określa zryczałtowaną kwotę rabatu od ceny dla osoby dorosłej za dodatkowe konto podrzędne w tym nawiasie. Waluta jest używana w tej samej walucie co w przypadku stawek za noc. Ogólnie opłata za dziecko w tym przedziale jest obliczana przez odjęcie stałej kwoty od „ceny jednostkowej”. Cena jednostkowa jest szczegółowo omówiona w sekcji atrybutu |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @counts_as_base_occupant | 0..1 | string | Jeśli podasz atrybut Celem jest uzyskanie „ceny jednostkowej”, na podstawie której można obliczyć rzeczywistą opłatę.
Wartość tego atrybutu musi wynosić
|
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes | 0..1 | RoomTypes | Kontener na listę typów pokojów, do których mają zastosowanie opłaty.
Opłaty są naliczane do każdego podanego <RoomType> . Jeśli nie podasz <RoomTypes> , opłaty będą dotyczyć wszystkich pokoi w określonym obiekcie. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType | 1..n | RoomType | Określa typ pokoju. Rodzaj pokoju jest zdefiniowany w elemencie <RoomData> w komunikacie transakcji (dane usługi) i odwoła się do niego za pomocą wartości <RoomID> . (Do jej wartości <RoomID> odwołuje się też atrybut InvTypeCode w komunikatach OTA_HotelRateAmountNotifRQ). |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType / @id | 1 | string | Unikalny identyfikator zasobów reklamowych (typ sali). Ta wartość jest mapowana na <RoomID> w komunikacie transakcji (dane usługi).
Maksymalna dozwolona liczba znaków to 50. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans | 0..1 | RatePlans | Kontener na listę abonamentów, których dotyczą opłaty.
Jeśli nie podasz <RatePlans> , opłaty będą dotyczyć wszystkich abonamentów. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan | 1..n | RatePlan | Określa plan stawek. Plan taryfowy zależy od kombinacji pakietu, stawek i dostępności, zgodnie z definicją podaną w komunikatach dotyczących transakcji (dane obiektu), OTA_HotelRateAmountNotifRQ i OTA_HotelAvailNotifRQ oraz zgodnie z identyfikatorem PackageID. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan / @id | 1 | string | Unikalny identyfikator planu stawek. Ta wartość jest mapowana na wartość PackageID w elemencie <PackageData> w komunikacie transakcji (dane usługi) i w atrybucie RatePlanCode w komunikacie <StatusApplicationControl> zarówno w wiadomościach <OTA_HotelRateAmountNotifRQ> , jak i <OTA_HotelAvailNotifRQ> .
Maksymalna dozwolona liczba znaków to 50. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates | 0..1 | StayDates | Kontener dla co najmniej jednego zakresu dat, który określa sposób stosowania opłat. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange | 1..99 | DateRange | Zakres dat określający daty, w których ma zostać zastosowana promocja. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @start | 0..1 | Date | Data rozpoczęcia (na podstawie strefy czasowej usługi) włącznie z zakresem dat. Ta data nie może być wcześniejsza niż data end . Jeśli nie podasz start , zakres dat będzie w zasadzie nieograniczony pod względem daty rozpoczęcia. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @end | 0..1 | Date | Data zakończenia (na podstawie strefy czasowej usługi) włącznie z zakresem dat. Ta data musi być taka sama jak data start lub późniejsza. Jeśli nie podasz end , zakres dat będzie w zasadzie nieograniczony pod względem daty zakończenia. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @days_of_week | 0..1 | string | Dni tygodnia, które są dozwolone w zakresie dat. Jeśli nie podasz żadnej wartości, w zakresie dat dozwolone będą wszystkie dni. Każdy znak w ciągu znaków określa dzień. Na przykład „MTWHF” określa, że w zakresie dat dozwolone są dni powszednie. Prawidłowe znaki:
Dopuszczalna jest dowolna kombinacja znaków. |
Przykłady
Opłaty dla dorosłych
Opłaty za dodatkowe osoby dorosłe mogą być wyrażone wyłącznie w postaci stałej. Poniższy przykład pokazuje komunikat ExtraGuestCharges
, który określa opłaty dla dorosłych:
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
<HotelExtraGuestCharges hotel_id="ABC" action="overlay">
<ExtraGuestCharge>
<StayDates />
<AgeBrackets>
<AdultCharge amount="50" />
</AgeBrackets>
</ExtraGuestCharge>
</HotelExtraGuestCharges>
</ExtraGuestCharges>
Oto odpowiadające im stawki:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2020-05-19T20:50:37-05:00"
Version="3.0">
<RateAmountMessages HotelCode="ABC">
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-18"
End="2020-05-23"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="100.00"
CurrencyCode="USD"
NumberOfGuests="1"/>
<BaseByGuestAmt AmountAfterTax="110.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
<BaseByGuestAmt AmountAfterTax="120.00"
CurrencyCode="USD"
NumberOfGuests="3"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Gdy użytkownik wyszukuje w Google 4 osoby dorosłe, łączna stawka wyniosłaby 170 = 120 + 50.
120 pochodzi ze stawki <BaseByGuestAmt>
z NumberOfGuests="3"
, a 50 ze wskaźnika AdultCharge amount="50"
.
Opłaty za dzieci
Opłaty za dzieci są podawane w przedziałach wiekowych do 17 lat i mogą być wyrażone w stałych kwotach, wartościach procentowych lub rabatach.
Poniższy przykład pokazuje komunikat ExtraGuestCharges
, który określa obciążenia podrzędne:
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
<HotelExtraGuestCharges hotel_id="ABC" action="overlay">
<ExtraGuestCharge>
<AgeBrackets>
<ChildAgeBrackets>
<ChildAgeBracket max_age="3" percentage="10"
counts_as_base_occupant="never" />
<ChildAgeBracket max_age="10" percentage="30"
counts_as_base_occupant="preferred"/>
<ChildAgeBracket max_age="17" discount_amount="10"
counts_as_base_occupant="always" />
</ChildAgeBrackets>
</AgeBrackets>
</ExtraGuestCharge>
</HotelExtraGuestCharges>
</ExtraGuestCharges>
Oto odpowiadające im stawki:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2020-05-19T20:50:37-05:00"
Version="3.0">
<RateAmountMessages HotelCode="ABC">
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-18"
End="2020-05-23"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="100.00"
CurrencyCode="USD"
NumberOfGuests="1"/>
<BaseByGuestAmt AmountAfterTax="110.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
```
1. Suppose you want the total price for 2 adults and 1 child of 2 years
of age.
Children aged 0-3 are never included in the rate's occupancy,
so here you should take the double occupancy rate and divide by 2 to
get the unit price. Then, multiply by the percentage rate and sum
with the rate to get the total price.
`unit price ` = 110 / 2 = 55
`total price` = 110 + 55 * 0.1 = 115.5
1. Suppose you want the total price for 1 adult and 2 children, both of 5
years of age.
Children aged 4-10 are preferably included in the rate's
occupancy. you should start by looking for a 3 adult rate since both
children are preferably included in the rate's occupancy. Since
that doesn't exist you should fall back to the 2 adult rate and then,
take this rate and divide by two to get the unit price. Finally,
multiply by the percentage rate and sum with the scaled rate to
get the total price.
`unit price` = 110 / 2 = 55
`total price` = 55 + 55 * 0.3 + 55 * 0.3 = 88
1. Suppose you want the total price for 1 adult and 1 child of 17
years of age.
Children aged 11-17 are always included in the rate's occupancy, so,
in this case, take the double occupancy rate and divide by 2 to get
the unit price. Then, deduct it by the discount amount and sum with
the scaled rate to get the total price.
`unit price` = 110 / 2 = 55
`total price` = 55 + (55 - 10) = 100
Ograniczenia dotyczące opłat
Wszystkie typy ograniczeń są opcjonalne i możesz zastosować dowolną ich kombinację.
Poniższy przykład pokazuje komunikat ExtraGuestCharges
, który określa ograniczenia:
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
<HotelExtraGuestCharges hotel_id="ABC" action="overlay">
<ExtraGuestCharge>
<RoomTypes>
<RoomType id="queen" />
<RoomType id="king" />
</RoomTypes>
<RatePlans>
<RatePlan id="free-wifi" />
<RatePlan id="hot-breakfast" />
</RatePlans>
<StayDates>
<DateRange start="2020-09-01" end="2020-09-14"/>
</StayDates>
<AgeBrackets>
<AdultCharge amount="50" />
</AgeBrackets>
</ExtraGuestCharge>
</HotelExtraGuestCharges>
</ExtraGuestCharges>
Powyższy komunikat określa, że osoba dorosła w okresie od 1 września 2020 r. do 14 września 2020 r. ma opłatę za pokój typu „queen” lub „king” (bezpłatna sieć Wi-Fi) lub „gorące śniadanie”.
Nakładające się opłaty
W tej sekcji znajdziesz przykład nieprawidłowego komunikatu, który określa różne opłaty za te same kombinacje dat i produktów.
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
<HotelExtraGuestCharges hotel_id="ABC" action="overlay">
<ExtraGuestCharge>
<RoomTypes>
<RoomType id="queen" />
</RoomTypes>
<RatePlans>
<RatePlan id="free-wifi" />
</RatePlans>
<StayDates>
<DateRange start="2020-09-01" end="2020-09-14"/>
</StayDates>
<AgeBrackets>
<AdultCharge amount="50" />
</AgeBrackets>
</ExtraGuestCharge>
<ExtraGuestCharge>
<RoomTypes>
<RoomType id="queen" />
<RoomType id="king" />
</RoomTypes>
<RatePlans>
<RatePlan id="free-wifi" />
<RatePlan id="hot-breakfast" />
</RatePlans>
<StayDates>
<DateRange start="2020-09-01" end="2020-09-05"/>
</StayDates>
<AgeBrackets>
<AdultCharge amount="20" />
</AgeBrackets>
</ExtraGuestCharge>
</HotelExtraGuestCharges>
</ExtraGuestCharges>
Powyższy komunikat jest nieprawidłowy, ponieważ pierwszy <ExtraGuestCharge>
określa, że opcje „queen” i „free-wifi” w okresie od 1 do 14 września powinny pobierać opłaty za dodatkowe 50 osób dorosłych. Drugi <ExtraGuestCharge>
określa, że każda z opcji „king-size” i „bezpłatna sieć Wi-Fi” oraz „gorące śniadanie” w okresie od 1 do 5 września powinna naliczać dodatkowe osoby dorosłe w wieku 20 lat.
W okresie od 1 do 5 września opłaty za „Królową” i „Bezpłatne Wi-Fi” nakładają się na siebie, a opłaty w wysokości 20 lub 50 USD za dodatkową osobę dorosłą są sprzeczne.
Odpowiedzi
Składnia
Komunikat ExtraGuestChargesResponse
ma taką składnię:
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="timestamp"
id="message_ID"
partner="partner_key">
<!-- Either Success or Issues will be populated. -->
<Success/>
<Issues>
<Issue code="issue_code" status="issue_type">issue_description</Issue>
</Issues>
</ExtraGuestChargesResponse>
Elementy i atrybuty
Komunikat ExtraGuestChargesResponse
ma następujące elementy i atrybuty:
Element / @Atrybut | Wystąpienia | Typ | Opis |
---|---|---|---|
ExtraGuestChargesResponse | 1 | Complex element | Element główny wskazujący informacje o powodzeniu lub problemach dotyczących odebranego komunikatu z żądaniem ExtraGuestCharges . |
ExtraGuestChargesResponse / @timestamp | 1 | DateTime | Data i godzina utworzenia tej wiadomości. |
ExtraGuestChargesResponse / @id | 1 | string | Unikalny identyfikator z powiązanej wiadomości w ExtraGuestCharges . |
ExtraGuestChargesResponse / @partner | 1 | string | Konto partnera, do którego należy ta wiadomość. |
ExtraGuestChargesResponse / Success | 0..1 | Success | Wskazuje, że komunikat ExtraGuestCharges został przetworzony bez ostrzeżeń, błędów ani błędów.
W każdej wiadomości znajduje się |
ExtraGuestChargesResponse / Issues | 0..1 | Issues | Kontener zawierający co najmniej 1 problem napotkany podczas przetwarzania wiadomości ExtraGuestCharges .
W każdej wiadomości znajduje się |
ExtraGuestChargesResponse / Issues / Issue | 1..n | Issue | Opis ostrzeżenia, błędu lub błędu napotkanego podczas przetwarzania komunikatu ExtraGuestCharges . Szczegółowe informacje o tych problemach znajdziesz w sekcji Komunikaty o błędach stanu pliku danych. |
ExtraGuestChargesResponse / Issues / Issue / @code | 1 | integer | Identyfikator problemu. |
ExtraGuestChargesResponse / Issues / Issue / @status | 1 | enum | Typ napotkanego problemu. Prawidłowe wartości to |
Przykłady
Gotowe
To jest odpowiedź na pomyślnie przetworzony komunikat ExtraGuestCharges
.
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</ExtraGuestChargesResponse>
Problemy
Poniżej znajdziesz odpowiedź na komunikat ExtraGuestCharges
, który nie został przetworzony z powodu błędów.
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Issues>
<Issue code="1001" status="error">Example</Issue>
</Issues>
</ExtraGuestChargesResponse>