Debug
One request, replayed in full, with the contract's view of the answer. Reads only: GET on anything, POST on /quote; the key is the configured one.
Every declared field, beside what the wire did with it
| object | field | required | declared | seen on the wire (type × count) |
|---|---|---|---|---|
| Service | serviceFamily | * | string | string ×68 |
| Service | serviceCode | * | string | string ×68 |
| Service | title | * | string | string ×48 |
| Service | nights | * | ['integer', 'null'] | integer ×68 |
| Service | exclusivity | * | string | string ×8 |
| Service | itinerary | * | object{kind, departure, arrival, boundBy, suggested} | object ×8 |
| Service | counterpart | ['string', 'null'] | null ×8 | |
| Service | embarkTimeLocal | ['string', 'null'] | string ×8 | |
| Service | durationMinutes | ['integer', 'null'] | null ×8 | |
| Service | embarkPlaceId | ['string', 'null'] | null ×8 | |
| Service | disembarkPlaceId | ['string', 'null'] | null ×8 | |
| Service | variants | * | array of Variant | array ×8 |
| ServiceDetail | service | * | object{serviceFamily, serviceCode, title, nights, exclusivity, itinerary, counterpart, embarkTimeLocal, durationMinutes, embarkPlaceId, disembarkPlaceId, variants} | never |
| ServiceDetail | occupancy | * | object{saleTypes, compositions, ageGroups} | never |
| ServiceDetail | extras | * | array of Extra | array ×8 |
| ServiceDetail | rules | * | object | object ×8 |
| ServiceDetail | contentRefs | object | never | |
| Variant | axes | * | object | array ×8 |
| Variant | variantId | * | string | string ×68 |
| Variant | title | string | string ×48 | |
| Variant | onSale | * | boolean | boolean ×8 |
| SaleType | id | * | string | string ×284 |
| SaleType | resourceClass | * | string | string ×28 |
| SaleType | resourceTitle | ['string', 'null'] | string ×28 | |
| SaleType | shortCode | ['string', 'null'] | null ×28 | |
| SaleType | capacity | * | integer | integer ×28 |
| SaleType | maxUnitsPerBooking | * | integer | integer ×28 |
| SaleType | inventory | integer | integer ×28 | |
| SaleType | basis | * | string | string ×60 |
| Occupancy | saleTypes | * | array of SaleType | array ×8 |
| Occupancy | compositions | * | array of Composition | array ×8 |
| Occupancy | ageGroups | * | array of object{id, ageFrom, ageTo, source} | array ×8 |
| Extra | id | * | string | string ×284 |
| Extra | title | * | string | string ×48 |
| Extra | basis | — | string ×60 | |
| Extra | saleMode | * | string | string ×32 |
| Extra | priceRef | * | string | never |
| Extra | serviceCode | ['string', 'null'] | string ×68 | |
| Extra | privateOnly | boolean | never | |
| Extra | free | boolean | boolean ×32 | |
| AvailabilityEntry | serviceFamily | * | string | string ×68 |
| AvailabilityEntry | serviceCode | * | string | string ×68 |
| AvailabilityEntry | variantId | * | string | string ×68 |
| AvailabilityEntry | state | * | string | string ×60 |
| AvailabilityEntry | vacancies | array of object{saleTypeId, count} | array ×60 | |
| AvailabilityEntry | resources | array of object{resourceId, resourceClass, title, capacity} | never | |
| Quote | quoteId | * | string | never |
| Quote | state | * | string | string ×60 |
| Quote | total | object{amount, currency} | never | |
| Quote | lines | array of QuoteLine | never | |
| Quote | rules | * | array of Resolved | object ×8 |
| Quote | expiresAt | string | never | |
| QuoteLine | kind | * | string | string ×8 |
| QuoteLine | title | * | string | string ×48 |
| QuoteLine | qty | integer | never | |
| QuoteLine | unit | ['string', 'null'] | never | |
| QuoteLine | saleTypeId | ['string', 'null'] | string ×378 | |
| QuoteLine | amount | * | object{amount, currency} | never |
| Booking | testMode | boolean | never | |
| Booking | bookingId | * | string | never |
| Booking | arrangement | * | string | never |
| Booking | state | * | string | string ×60 |
| Booking | serviceFamily | * | string | string ×68 |
| Booking | serviceCode | * | string | string ×68 |
| Booking | variantId | * | string | string ×68 |
| Booking | date | * | string | string ×30 |
| Booking | expiresAt | ['string', 'null'] | never | |
| Booking | checkIn | ['string', 'null'] | never | |
| Booking | checkOut | ['string', 'null'] | never | |
| Booking | hotelAcknowledgedAt | ['string', 'null'] | never | |
| Booking | bookedAt | * | string | never |
| Booking | total | * | object{amount, currency} | never |
| Booking | lines | array of RequestLine | never | |
| Cancellation | booking | * | object{testMode, bookingId, arrangement, state, serviceFamily, serviceCode, variantId, date, expiresAt, checkIn, checkOut, hotelAcknowledgedAt, bookedAt, total, lines} | never |
| Cancellation | applied | * | object{value, source, enforced} | never |
| Cancellation | refund | * | object{amount, currency} | never |
| Cancellation | retained | object{pct, of, amount} | never |