Ceny wysyłane za pomocą <OTA_HotelRateAmountNotifRQ> można modyfikować, aby uwzględniały osoby dorosłe i dzieci, oprócz pierwotnej liczby gości. Komunikat ExtraGuestCharges umożliwia określenie sposobu obliczania stawek dla tych dodatkowych gości oraz pokoi, planów cenowych i dat pobytu, do których mają być stosowane opłaty.
Wymagania dotyczące pojemności
Ceny obliczone na podstawie wiadomości ExtraGuestCharges są ważne tylko wtedy, gdy spełnione są wszystkie wymagania dotyczące pojemności. Więcej informacji znajdziesz w artykule Transakcja (dane usługi).
Żądania
Składnia
Wiadomość ExtraGuestCharges ma tę 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 zawiera te elementy i atrybuty:
| Element / @Atrybut | Wystąpienia | Typ | Opis |
|---|---|---|---|
| ExtraGuestCharges | 1 | Complex element | Element główny tej wiadomości. |
| ExtraGuestCharges / @partner | 1 | string | Konto partnera, do którego należy ta wiadomość. Ta wartość tekstowa to wartość Partner key podana na
stronie Ustawienia konta w Hotel Center.
Uwaga: jeśli masz backend, który udostępnia 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 - (łącznik). |
| ExtraGuestCharges / @timestamp | 1 | DateTime | Data i godzina utworzenia tej wiadomości. |
| ExtraGuestCharges / HotelExtraGuestCharges | 0..n | HotelExtraGuestCharges | Kontener opłat za jedną usługę. |
| ExtraGuestCharges / HotelExtraGuestCharges / @hotel_id | 1 | string | Unikalny identyfikator usługi. Ta wartość musi być zgodna z identyfikatorem hotelu określonym za pomocą elementu
<id> w elemencie <listing> w pliku danych z listą hoteli. Identyfikator hotelu jest też podany w Hotel Center. |
| ExtraGuestCharges / HotelExtraGuestCharges / @action | 0..1 | enum | Określa sposób zastosowania aktualizacji. Obsługiwana jest tylko wartość overlay, a domyślnie jest to nakładka. Wszelkie wcześniejsze opłaty za tę usługę zostaną wyczyszczone przed zastosowaniem aktualizacji. |
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge | 0..99 | ExtraGuestCharge | Pojedynczy zestaw opłat za usługę. Mogą one zawierać ograniczenia dotyczące sposobu naliczania opłat i sposobu ich obliczania w zależności od wieku lub kategorii gościa. Każdy element |
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets | 1 | AgeBrackets | Kontener przedziałów wiekowych, który służy do obliczania opłat według wieku lub kategorii gości. |
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge | 0..1 | AdultCharge | Kontener z opłatą za dodatkową osobę dorosłą. |
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge / @amount | 0..1 | float | Dodatnia wartość dziesiętna określająca stałą kwotę, która ma być naliczana za dodatkową osobę dorosłą. Opłata jest naliczana w tej samej walucie co stawki za nocleg. |
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets | 0..1 | ChildAgeBrackets | Kontener na dodatkowe opłaty za dziecko. Te przedziały wiekowe mogą obejmować tylko zakres wiekowy 0–17 lat. |
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket | 1..99 | ChildAgeBracket | Opłata, która dotyczy dzieci w określonym przedziale wiekowym. Powinny być one uporządkowane od najniższej max_age do najwyższej max_age. Kwotę do obciążenia można określić za pomocą właściwości amount, percentage lub discount_amount. Dla każdego elementu <ChildAgeBracket> musi być określony dokładnie jeden 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 zero, jeśli przed tym warunkiem nie określono innych <ChildAgeBracket>. W przeciwnym razie jest to liczba o 1 większa od maksymalnego wieku w poprzednim przedziale. |
| 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 całkowitej i dziecięcej pojemności pokoju. Te limity można ustawić za pomocą transakcji(dane usługi). Na przykład niemowlęta poniżej określonego wieku nie muszą być wliczane do limitu dzieci. |
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount | 0..1 | float | Nieujemna wartość dziesiętna określająca stałą kwotę, która ma być naliczana za dodatkowe dziecko w tym przedziale. Ta opłata jest naliczana w tej samej walucie, która została określona w przypadku cen za noc. |
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @percentage | 0..1 | float | Wartość dziesiętna z zakresu 1–99, która określa procent ceny dla osoby dorosłej, jaki należy naliczyć za dodatkowe dziecko w tym przedziale. Opłata jest naliczana w tej samej walucie, która została określona w przypadku cen 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 określająca stałą kwotę rabatu od ceny dla osoby dorosłej w przypadku dodatkowego dziecka w tym przedziale. Opłata jest naliczana w tej samej walucie, która została określona w przypadku cen za nocleg. Zasadniczo opłata za dziecko w tym przedziale jest obliczana przez odjęcie kwoty stałej 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 określono atrybut Celem jest uzyskanie „ceny jednostkowej”, na podstawie której można obliczyć rzeczywistą opłatę.
Wartość tego atrybutu musi być jedną z tych wartości:
|
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes | 0..1 | RoomTypes | Kontener z listą typów pokoi, do których mają zastosowanie opłaty.
Opłaty są naliczane za każdy <RoomType>
określony. Jeśli nie określisz wartości <RoomTypes>, opłaty będą dotyczyć wszystkich pokoi w określonym obiekcie. |
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType | 1..n | RoomType | Określa typ pokoju. Typ pokoju jest zdefiniowany w elemencie <RoomData> w wiadomości Transaction (dane o obiekcie) i jest do niego odwoływany za pomocą wartości <RoomID>. (Jej wartość <RoomID> jest też używana w atrybucie InvTypeCode w wiadomościach OTA_HotelRateAmountNotifRQ). |
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType / @id | 1 | string | Unikalny identyfikator asortymentu (rodzaju pokoju). Ta wartość jest mapowana na <RoomID> w wiadomości Transaction (Property Data).
Maksymalna dozwolona liczba znaków to 50. |
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans | 0..1 | RatePlans | Kontener z listą planów taryfowych, do których mają zastosowanie opłaty.
Jeśli nie podasz wartości <RatePlans>, opłaty będą obowiązywać w przypadku wszystkich pakietów. |
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan | 1..n | RatePlan | Określa abonament. Plan cenowy jest określany przez kombinację pakietu, stawek i dostępności zdefiniowanych w wiadomościach Transaction (Property Data), OTA_HotelRateAmountNotifRQ i OTA_HotelAvailNotifRQ oraz identyfikowanych przez PackageID. |
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan / @id | 1 | string | Unikalny identyfikator planu cenowego. Ta wartość jest mapowana na wartość PackageID w elemencie <PackageData> w komunikacie transakcji (dane obiektu) oraz w atrybucie RatePlanCode w elemencie <StatusApplicationControl> w komunikatach <OTA_HotelRateAmountNotifRQ> 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 naliczania opłat. |
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange | 1..99 | DateRange | Zakres dat określający, kiedy ma być stosowana promocja. |
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @start | 0..1 | Date | Data rozpoczęcia zakresu dat (włącznie) w strefie czasowej usługi. Ta data musi być wcześniejsza niż data end lub taka sama jak ona. Jeśli zasada start nie jest określona, zakres dat jest w zasadzie nieograniczony pod względem daty rozpoczęcia. |
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @end | 0..1 | Date | Data zakończenia zakresu dat (włącznie) w strefie czasowej usługi. Musi to być data start lub późniejsza. Jeśli nie podasz wartości 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 dozwolone w zakresie dat. Jeśli nie określisz dni, wszystkie dni w zakresie dat będą dozwolone. Każdy znak w ciągu określa dzień. Na przykład „MTWHF” oznacza, że w zakresie dat dozwolone są dni powszednie. Prawidłowe znaki to:
Dopuszczalna jest dowolna kombinacja znaków. |
Przykłady
Opłaty za osoby dorosłe
Opłaty za dodatkowe osoby dorosłe mogą być wyrażone tylko jako kwoty stałe. Poniższy przykład pokazuje komunikat ExtraGuestCharges, który określa opłaty za treści 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>
Odpowiednie stawki to:
<?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 wyszuka w Google 4 osoby dorosłe, łączna cena wyniesie 170 PLN = 120 PLN + 50 PLN.
Liczba 120 pochodzi z <BaseByGuestAmt> przy NumberOfGuests="3", a 50 – z AdultCharge amount="50".
Opłaty za podmiot podrzędny
Opłaty za dzieci są podawane w przedziałach wiekowych do 17 lat i mogą być wyrażone w formie stałych kwot, procentów lub rabatów.
Poniższy przykład pokazuje wiadomość ExtraGuestCharges, która określa opłaty dodatkowe:
<?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>
Odpowiednie stawki to:
<?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 ładowania
Wszystkie typy ograniczeń są opcjonalne i można używać dowolnej ich kombinacji.
Poniższy przykład przedstawia wiadomość ExtraGuestCharges, która 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 dorośli powinni ponosić opłaty za każdy produkt, który ma typ pokoju „queen” lub „king” z planem cenowym „free-wifi” lub „hot-breakfast” w okresie od 1 do 14 września 2020 r.
Nakładające się opłaty
Ta sekcja zawiera przykład nieprawidłowej wiadomości, która 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ższa wiadomość jest nieprawidłowa, ponieważ pierwszy warunek <ExtraGuestCharge>
określa, że w przypadku pokoju typu „queen” i „free-wifi” w terminie od 1 do 14 września należy pobierać
dodatkową opłatę za osoby dorosłe w wysokości 50. Drugi warunek <ExtraGuestCharge>
określa, że w przypadku dowolnego z wyrażeń „queen” lub „king” w połączeniu z dowolnym z wyrażeń „free-wifi” lub „hot-breakfast” w okresie od 1 do 5 września należy pobierać dodatkową opłatę w wysokości 20 PLN za każdego dodatkowego dorosłego.
W przypadku okresu od 1 do 5 września występują nakładające się opłaty za „queen” i „free-wifi”, a także konflikt dotyczący tego, czy za dodatkową osobę dorosłą należy pobrać opłatę w wysokości 20 czy 50.
Odpowiedzi
Składnia
Wiadomość ExtraGuestChargesResponse ma tę 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
Wiadomość ExtraGuestChargesResponse zawiera te elementy i atrybuty:
| Element / @Atrybut | Wystąpienia | Typ | Opis |
|---|---|---|---|
| ExtraGuestChargesResponse | 1 | Complex element | Element główny wskazujący, czy otrzymany komunikat żądania ExtraGuestCharges został przetworzony prawidłowo, czy wystąpiły problemy. |
| ExtraGuestChargesResponse / @timestamp | 1 | DateTime | Data i godzina utworzenia tej wiadomości. |
| ExtraGuestChargesResponse / @id | 1 | string | Unikalny identyfikator z powiązanej wiadomości 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 awarii.
W każdej wiadomości występuje element |
| ExtraGuestChargesResponse / Issues | 0..1 | Issues | Kontener na co najmniej 1 problem napotkany podczas przetwarzania wiadomości ExtraGuestCharges.
W każdej wiadomości występuje element |
| ExtraGuestChargesResponse / Issues / Issue | 1..n | Issue | Opis ostrzeżenia, błędu lub awarii napotkanych podczas przetwarzania wiadomości ExtraGuestCharges. Szczegółowe informacje o tych problemach znajdziesz w artykule Komunikaty o błędach stanu pliku danych. |
| ExtraGuestChargesResponse / Issues / Issue / @code | 1 | integer | Identyfikator problemu. |
| ExtraGuestChargesResponse / Issues / Issue / @status | 1 | enum | Rodzaj napotkanego problemu. Prawidłowe wartości to |
Przykłady
Sukces
Poniżej znajdziesz odpowiedź na prawidłowo przetworzoną wiadomość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>