Download OpenAPI specification:
The connectAPI for accommodations defines a service API that lets users search for, view, book, and cancel accommodations via TripBuilder.
Key Features:
This API is designed to be RESTful, using standard HTTP methods like GET, POST, and DELETE, and it primarily exchanges data in JSON format.
| API Version | Docs Version | Changes |
|---|---|---|
| 1.0 | 31.07.2023 | Initial version |
| 1.1 | 05.06.2024 | Extended spec to support Book and Cancel actions |
| 1.2 | 04.10.2024 | Extended spec to split offer between search and details offer. |
| Added support for available board codes and cancellation policies in search offer model. | ||
| Removed deprecated location field from search and details offer | ||
| 1.3 | 28.01.2025 | Added 'filters' object to AccommodationOffersRequest and AccommodationOfferDetailsRequest |
| Updated documentation with supplier currently supported by Nezasa | ||
| 1.4 | 07.08.2025 | Added NBC (Non-Bookable Content) import endpoint for hotel static data synchronization |
| 1.5 | 05.11.2025 | Made 'added' and 'updated' fields optional in NBC Dates schema |
| 1.6 | 10.01.2026 | BREAKING: NBC images field now uses ImageGroup[] with nested ImageResolution[] for multi-resolution image support |
| 1.7 | 04.02.2026 | Added requiredPassengerData and requiredContactData to AccommodationDetailsOffer |
| 1.8 | 25.02.2026 | Added travelAgentEmail, travelAgentFirstName, travelAgentLastName, travelAgencyShortName, travelAgencyEmail to Metadata |
| 1.9 | 20.04.2026 | Made Contract-Id optional, added Login and Password headers as alternative identification method |
| 1.10 | 08.05.2026 | Added maxPriceVariationPercentage to AccommodationBookingRequest to let callers tolerate small price changes at booking time (applied to increases only when the supplier API allows it; symmetric otherwise) |
| 1.11 | 08.05.2026 | BREAKING: NBC import endpoint now accepts a languages: string[] array (replacing the single language: string) and returns NBCHotelData.descriptions as an array of LocalizedDescription (one entry per requested language). The redundant tourOperator request field has been removed (caller is identified via Contract-Id / Login / Password headers). |
All API requests must be made over HTTPS.
Identification can be provided via either:
Contract-Id header identifying the contract configurationLogin and Password headers for login-based authenticationThe identification method should be agreed with Nezasa before integration development starts. Both methods may be provided simultaneously if required by the integration.
This endpoint, often known as a "health check" endpoint, is used for monitoring and assessing the status of the service. Its main function is to signal the health of the service, aiding in identifying any potential issues or service breakdowns.
TripBuilder will periodically call this endpoint to check the service's status. The response from this health check endpoint is used to assess the current condition of the service. If the service is operating correctly, the endpoint will return a positive acknowledgment, i.e. a HTTP 200 status code and a message indicating the service's health.
On the other hand, if the service is not functioning as expected, the endpoint will return an error status code and potentially additional data about the issue's nature.
This proactive health check allows for prompt detection and resolution of issues, ensuring the service's reliability and smooth functioning.
| traceparent | string Example: 00-666b4b3800000000089918a4bf7e8d29-40eeac6740412d3f-01 For tracking and debugging, we will include a tracing header with every request. This trace ID follows the W3C Trace Context standard. Users can see this same header in the Trip Builder API responses and match it with data in the Supplier system if needed. |
{- "code": 0,
- "details": [
- "details",
- "details"
], - "message": "message"
}This API uses POST instead of GET for some read operations. This is due to the complexity and size of some queries.
In HTTP/1.1, GET is typically used for data retrieval. It should be safe and idempotent, causing no side effects. However, GET has limitations with complex queries or large data. For instance, some servers or browsers limit the maximum URL length for GET requests.
POST requests carry their data in the body of the request. This allows for larger and more complex data to be sent. This is useful when the data volume or complexity of query parameters exceeds GET limitations.
In this API, POST is used for some read operations to overcome these GET limitations. This allows handling of complex queries and large data effectively, ensuring reliable and efficient API operation.
| traceparent | string Example: 00-666b4b3800000000089918a4bf7e8d29-40eeac6740412d3f-01 For tracking and debugging, we will include a tracing header with every request. This trace ID follows the W3C Trace Context standard. Users can see this same header in the Trip Builder API responses and match it with data in the Supplier system if needed. |
| Contract-Id | string Example: nicetours, 123456 An identifier of the contract to differentiate configuration, options or settings. This is one of two supported identification methods. Either provide a Contract-Id header, or provide Login and Password headers. Both may be provided simultaneously if required by the integration. The identification method should be agreed with Nezasa before development starts. |
| Login | string Login identifier for supplier authentication. An alternative to the Contract-Id header. When using login-based authentication, both Login and Password headers should be provided. The identification method should be agreed with Nezasa before development starts. |
| Password | string <password> Password for supplier authentication. Used together with the Login header as an alternative to the Contract-Id header. The identification method should be agreed with Nezasa before development starts. |
| currency required | string Preferred currency. 3-letter code (ISO 4217). |
| lang required | string (Supported languages) Default: "de" Enum: "de" "en" "fr" "it" "nl" "es" "fi" "pt" "sv" "no" "da" "pl" 2-letter code (ISO 639-1) |
required | object (Paging management for a request) |
required | object (CommonTravelPeriod) Generic travel period |
| accommodationCodes required | Array of strings Required accommodation codes in one of the formats supported by Nezasa. |
required | Array of objects (Pax allocation in an accommodation) Required room allocation |
| boardCodes | Array of strings Default: [] Required Nezasa board codes. For possible values, see AccommodationRoom in AccommodationOffer. No filtering will be applied if left empty. |
| onRequest | boolean Default: false Whether to return on request offers in the response |
| nonRefundable | boolean Default: false Whether to return non-refundable offers in the response |
| market | string Market country or point-of-sale. 2 letters code of the country (ISO 3166-1 alpha-2) |
| purchaseChannel | string Channel (in supplier-specific format) via which the content is offered |
object (Supplier filter) Defines filtering options for accommodation offers based on suppliers. This object allows for specifying which suppliers should be included or excluded from the search results, providing more control over the source of accommodation offers. | |
object (Metadata) |
{- "period": {
- "endDate": "2023-08-14",
- "nights": 1,
- "startTime": "12:00:00",
- "endTime": "16:00:00",
- "startDate": "2024-08-01"
}, - "metadata": {
- "travelAgentEmail": "agent@agency.com",
- "travelAgencyShortName": "Best Travel AG",
- "travelAgentLastName": "Doe",
- "itineraryId": "1xinmvo5skro",
- "agencyId": "ABC12345",
- "travelAgentFirstName": "John",
- "travelAgencyEmail": "info@besttravelag.com"
}, - "accommodationCodes": [
- "123456",
- "123456"
], - "onRequest": false,
- "paging": {
- "resultsFrom": 1,
- "total": 0,
- "pageSize": 6
}, - "boardCodes": [
- "BB",
- "BB"
], - "filters": {
- "includedSuppliers": [
- "includedSuppliers",
- "includedSuppliers"
], - "excludedSuppliers": [
- "excludedSuppliers",
- "excludedSuppliers"
]
}, - "nonRefundable": false,
- "market": "DE",
- "roomAllocation": [
- {
- "reference": 1,
- "paxes": [
- {
- "passportNumber": "C3045654",
- "lastName": "Riverdance",
- "address": {
- "country": "Germany",
- "city": "Littletown",
- "street": "132, My Street",
- "countryCode": "DE",
- "postalCode": "BG23 4YZ",
- "street2": "street2",
- "region": "region"
}, - "gender": "Male",
- "supplierRefId": "supplierRefId",
- "passengerReduction": "passengerReduction",
- "secondOrAdditionalNames": [
- "secondOrAdditionalNames",
- "secondOrAdditionalNames"
], - "frequentFlyerInfo": {
- "membershipNumber": "992003102855176",
- "airlineCode": "LH"
}, - "title": "MR",
- "birthDate": "1990-01-01",
- "firstName": "Mike",
- "nezasaRefId": "nezasaRefId",
- "nationality": "DE",
- "electronicContactDetails": {
- "website": "www.example.com",
- "phones": [
- {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}, - {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}
], - "email": "mike.riverdance@example.com"
}, - "passportIssuingCountryCode": "passportIssuingCountryCode",
- "isMainContact": true,
- "passportExpirationDate": "2030-01-01",
- "age": 30
}, - {
- "passportNumber": "C3045654",
- "lastName": "Riverdance",
- "address": {
- "country": "Germany",
- "city": "Littletown",
- "street": "132, My Street",
- "countryCode": "DE",
- "postalCode": "BG23 4YZ",
- "street2": "street2",
- "region": "region"
}, - "gender": "Male",
- "supplierRefId": "supplierRefId",
- "passengerReduction": "passengerReduction",
- "secondOrAdditionalNames": [
- "secondOrAdditionalNames",
- "secondOrAdditionalNames"
], - "frequentFlyerInfo": {
- "membershipNumber": "992003102855176",
- "airlineCode": "LH"
}, - "title": "MR",
- "birthDate": "1990-01-01",
- "firstName": "Mike",
- "nezasaRefId": "nezasaRefId",
- "nationality": "DE",
- "electronicContactDetails": {
- "website": "www.example.com",
- "phones": [
- {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}, - {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}
], - "email": "mike.riverdance@example.com"
}, - "passportIssuingCountryCode": "passportIssuingCountryCode",
- "isMainContact": true,
- "passportExpirationDate": "2030-01-01",
- "age": 30
}
]
}, - {
- "reference": 1,
- "paxes": [
- {
- "passportNumber": "C3045654",
- "lastName": "Riverdance",
- "address": {
- "country": "Germany",
- "city": "Littletown",
- "street": "132, My Street",
- "countryCode": "DE",
- "postalCode": "BG23 4YZ",
- "street2": "street2",
- "region": "region"
}, - "gender": "Male",
- "supplierRefId": "supplierRefId",
- "passengerReduction": "passengerReduction",
- "secondOrAdditionalNames": [
- "secondOrAdditionalNames",
- "secondOrAdditionalNames"
], - "frequentFlyerInfo": {
- "membershipNumber": "992003102855176",
- "airlineCode": "LH"
}, - "title": "MR",
- "birthDate": "1990-01-01",
- "firstName": "Mike",
- "nezasaRefId": "nezasaRefId",
- "nationality": "DE",
- "electronicContactDetails": {
- "website": "www.example.com",
- "phones": [
- {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}, - {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}
], - "email": "mike.riverdance@example.com"
}, - "passportIssuingCountryCode": "passportIssuingCountryCode",
- "isMainContact": true,
- "passportExpirationDate": "2030-01-01",
- "age": 30
}, - {
- "passportNumber": "C3045654",
- "lastName": "Riverdance",
- "address": {
- "country": "Germany",
- "city": "Littletown",
- "street": "132, My Street",
- "countryCode": "DE",
- "postalCode": "BG23 4YZ",
- "street2": "street2",
- "region": "region"
}, - "gender": "Male",
- "supplierRefId": "supplierRefId",
- "passengerReduction": "passengerReduction",
- "secondOrAdditionalNames": [
- "secondOrAdditionalNames",
- "secondOrAdditionalNames"
], - "frequentFlyerInfo": {
- "membershipNumber": "992003102855176",
- "airlineCode": "LH"
}, - "title": "MR",
- "birthDate": "1990-01-01",
- "firstName": "Mike",
- "nezasaRefId": "nezasaRefId",
- "nationality": "DE",
- "electronicContactDetails": {
- "website": "www.example.com",
- "phones": [
- {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}, - {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}
], - "email": "mike.riverdance@example.com"
}, - "passportIssuingCountryCode": "passportIssuingCountryCode",
- "isMainContact": true,
- "passportExpirationDate": "2030-01-01",
- "age": 30
}
]
}
], - "currency": "EUR",
- "lang": "de",
- "purchaseChannel": "K"
}{- "offers": [
- {
- "availableBoardCodes": [
- "BB",
- "BB"
], - "rooms": [
- {
- "area": 12,
- "allocationReference": 1,
- "occupancy": "2 Adults + 1 children",
- "includedAmenities": [
- "includedAmenities",
- "includedAmenities"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "boardCode": "BB",
- "description": "Elegant corner suite with floor-to-ceiling windows offering panoramic city views, featuring a marble bathroom and modern workspace.",
- "roomCode": "DBL",
- "view": "Sea View",
- "name": "Family room with sea view",
- "beddingConfiguration": "King + sofa bed",
- "optionalAmenities": [
- {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}, - {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}
], - "roomImages": [
- "roomImages",
- "roomImages"
]
}, - {
- "area": 12,
- "allocationReference": 1,
- "occupancy": "2 Adults + 1 children",
- "includedAmenities": [
- "includedAmenities",
- "includedAmenities"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "boardCode": "BB",
- "description": "Elegant corner suite with floor-to-ceiling windows offering panoramic city views, featuring a marble bathroom and modern workspace.",
- "roomCode": "DBL",
- "view": "Sea View",
- "name": "Family room with sea view",
- "beddingConfiguration": "King + sofa bed",
- "optionalAmenities": [
- {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}, - {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}
], - "roomImages": [
- "roomImages",
- "roomImages"
]
}
], - "onRequest": true,
- "availableSuppliers": [
- "availableSuppliers",
- "availableSuppliers"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "supplierExtras": {
- "isExternal": true,
- "location": [
- {
- "locationType": "Country",
- "locationCode": "MAD"
}, - {
- "locationType": "Country",
- "locationCode": "MAD"
}
]
}, - "accommodationName": "Hotel name",
- "reference": "reference",
- "accommodationCode": "123456",
- "availableCancellationPolicies": [
- {
- "rules": [
- {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}, - {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}
], - "cancellationType": "Unknown"
}, - {
- "rules": [
- {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}, - {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}
], - "cancellationType": "Unknown"
}
], - "supplier": "supplier",
- "surcharges": [
- {
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "description": "City tax",
- "included": true,
- "mandatory": false
}, - {
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "description": "City tax",
- "included": true,
- "mandatory": false
}
], - "promoCode": "promoCode",
- "cancellationPolicy": {
- "rules": [
- {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}, - {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}
], - "cancellationType": "Unknown"
}, - "remarks": [
- {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}, - {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}
]
}, - {
- "availableBoardCodes": [
- "BB",
- "BB"
], - "rooms": [
- {
- "area": 12,
- "allocationReference": 1,
- "occupancy": "2 Adults + 1 children",
- "includedAmenities": [
- "includedAmenities",
- "includedAmenities"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "boardCode": "BB",
- "description": "Elegant corner suite with floor-to-ceiling windows offering panoramic city views, featuring a marble bathroom and modern workspace.",
- "roomCode": "DBL",
- "view": "Sea View",
- "name": "Family room with sea view",
- "beddingConfiguration": "King + sofa bed",
- "optionalAmenities": [
- {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}, - {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}
], - "roomImages": [
- "roomImages",
- "roomImages"
]
}, - {
- "area": 12,
- "allocationReference": 1,
- "occupancy": "2 Adults + 1 children",
- "includedAmenities": [
- "includedAmenities",
- "includedAmenities"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "boardCode": "BB",
- "description": "Elegant corner suite with floor-to-ceiling windows offering panoramic city views, featuring a marble bathroom and modern workspace.",
- "roomCode": "DBL",
- "view": "Sea View",
- "name": "Family room with sea view",
- "beddingConfiguration": "King + sofa bed",
- "optionalAmenities": [
- {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}, - {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}
], - "roomImages": [
- "roomImages",
- "roomImages"
]
}
], - "onRequest": true,
- "availableSuppliers": [
- "availableSuppliers",
- "availableSuppliers"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "supplierExtras": {
- "isExternal": true,
- "location": [
- {
- "locationType": "Country",
- "locationCode": "MAD"
}, - {
- "locationType": "Country",
- "locationCode": "MAD"
}
]
}, - "accommodationName": "Hotel name",
- "reference": "reference",
- "accommodationCode": "123456",
- "availableCancellationPolicies": [
- {
- "rules": [
- {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}, - {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}
], - "cancellationType": "Unknown"
}, - {
- "rules": [
- {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}, - {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}
], - "cancellationType": "Unknown"
}
], - "supplier": "supplier",
- "surcharges": [
- {
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "description": "City tax",
- "included": true,
- "mandatory": false
}, - {
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "description": "City tax",
- "included": true,
- "mandatory": false
}
], - "promoCode": "promoCode",
- "cancellationPolicy": {
- "rules": [
- {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}, - {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}
], - "cancellationType": "Unknown"
}, - "remarks": [
- {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}, - {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}
]
}
], - "accommodations": [
- {
- "availableBoardCodes": [
- "BB",
- "BB"
], - "rooms": [
- {
- "area": 12,
- "allocationReference": 1,
- "occupancy": "2 Adults + 1 children",
- "includedAmenities": [
- "includedAmenities",
- "includedAmenities"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "boardCode": "BB",
- "description": "Elegant corner suite with floor-to-ceiling windows offering panoramic city views, featuring a marble bathroom and modern workspace.",
- "roomCode": "DBL",
- "view": "Sea View",
- "name": "Family room with sea view",
- "beddingConfiguration": "King + sofa bed",
- "optionalAmenities": [
- {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}, - {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}
], - "roomImages": [
- "roomImages",
- "roomImages"
]
}, - {
- "area": 12,
- "allocationReference": 1,
- "occupancy": "2 Adults + 1 children",
- "includedAmenities": [
- "includedAmenities",
- "includedAmenities"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "boardCode": "BB",
- "description": "Elegant corner suite with floor-to-ceiling windows offering panoramic city views, featuring a marble bathroom and modern workspace.",
- "roomCode": "DBL",
- "view": "Sea View",
- "name": "Family room with sea view",
- "beddingConfiguration": "King + sofa bed",
- "optionalAmenities": [
- {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}, - {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}
], - "roomImages": [
- "roomImages",
- "roomImages"
]
}
], - "onRequest": true,
- "availableSuppliers": [
- "availableSuppliers",
- "availableSuppliers"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "supplierExtras": {
- "isExternal": true,
- "location": [
- {
- "locationType": "Country",
- "locationCode": "MAD"
}, - {
- "locationType": "Country",
- "locationCode": "MAD"
}
]
}, - "accommodationName": "Hotel name",
- "reference": "reference",
- "accommodationCode": "123456",
- "availableCancellationPolicies": [
- {
- "rules": [
- {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}, - {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}
], - "cancellationType": "Unknown"
}, - {
- "rules": [
- {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}, - {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}
], - "cancellationType": "Unknown"
}
], - "supplier": "supplier",
- "surcharges": [
- {
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "description": "City tax",
- "included": true,
- "mandatory": false
}, - {
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "description": "City tax",
- "included": true,
- "mandatory": false
}
], - "promoCode": "promoCode",
- "cancellationPolicy": {
- "rules": [
- {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}, - {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}
], - "cancellationType": "Unknown"
}, - "remarks": [
- {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}, - {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}
]
}, - {
- "availableBoardCodes": [
- "BB",
- "BB"
], - "rooms": [
- {
- "area": 12,
- "allocationReference": 1,
- "occupancy": "2 Adults + 1 children",
- "includedAmenities": [
- "includedAmenities",
- "includedAmenities"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "boardCode": "BB",
- "description": "Elegant corner suite with floor-to-ceiling windows offering panoramic city views, featuring a marble bathroom and modern workspace.",
- "roomCode": "DBL",
- "view": "Sea View",
- "name": "Family room with sea view",
- "beddingConfiguration": "King + sofa bed",
- "optionalAmenities": [
- {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}, - {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}
], - "roomImages": [
- "roomImages",
- "roomImages"
]
}, - {
- "area": 12,
- "allocationReference": 1,
- "occupancy": "2 Adults + 1 children",
- "includedAmenities": [
- "includedAmenities",
- "includedAmenities"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "boardCode": "BB",
- "description": "Elegant corner suite with floor-to-ceiling windows offering panoramic city views, featuring a marble bathroom and modern workspace.",
- "roomCode": "DBL",
- "view": "Sea View",
- "name": "Family room with sea view",
- "beddingConfiguration": "King + sofa bed",
- "optionalAmenities": [
- {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}, - {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}
], - "roomImages": [
- "roomImages",
- "roomImages"
]
}
], - "onRequest": true,
- "availableSuppliers": [
- "availableSuppliers",
- "availableSuppliers"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "supplierExtras": {
- "isExternal": true,
- "location": [
- {
- "locationType": "Country",
- "locationCode": "MAD"
}, - {
- "locationType": "Country",
- "locationCode": "MAD"
}
]
}, - "accommodationName": "Hotel name",
- "reference": "reference",
- "accommodationCode": "123456",
- "availableCancellationPolicies": [
- {
- "rules": [
- {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}, - {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}
], - "cancellationType": "Unknown"
}, - {
- "rules": [
- {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}, - {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}
], - "cancellationType": "Unknown"
}
], - "supplier": "supplier",
- "surcharges": [
- {
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "description": "City tax",
- "included": true,
- "mandatory": false
}, - {
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "description": "City tax",
- "included": true,
- "mandatory": false
}
], - "promoCode": "promoCode",
- "cancellationPolicy": {
- "rules": [
- {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}, - {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}
], - "cancellationType": "Unknown"
}, - "remarks": [
- {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}, - {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}
]
}
], - "rawRequests": [
- "{ \"queryId\": 1257, \"endpoint\": \"/cancelBooking\", \"parameters\": { \"bookingId\": \"ABC123\", \"reason\": \"Client request\" }, \"requestTime\": \"2024-06-15T14:30:00Z\", \"success\": true }",
- "{ \"queryId\": 1258, \"endpoint\": \"/cancelBooking\", \"parameters\": { \"bookingId\": \"XYZ789\", \"reason\": \"System error\" }, \"requestTime\": \"2024-06-15T14:31:00Z\", \"success\": false }"
], - "paging": {
- "resultsFrom": 1,
- "total": 0,
- "pageSize": 6
}, - "notifications": [
- {
- "notificationLevel": "Info",
- "description": "description",
- "notificationType": "InputValidation"
}, - {
- "notificationLevel": "Info",
- "description": "description",
- "notificationType": "InputValidation"
}
], - "rawResponses": [
- "{ \"queryId\": 1257, \"responseTime\": \"2024-06-15T14:30:05Z\", \"statusCode\": 200, \"body\": { \"message\": \"Cancellation confirmed\", \"cancellationId\": \"CANC123\" } }",
- "{ \"queryId\": 1258, \"responseTime\": \"2024-06-15T14:31:05Z\", \"statusCode\": 500, \"body\": { \"error\": \"Internal server error\" } }"
]
}| traceparent | string Example: 00-666b4b3800000000089918a4bf7e8d29-40eeac6740412d3f-01 For tracking and debugging, we will include a tracing header with every request. This trace ID follows the W3C Trace Context standard. Users can see this same header in the Trip Builder API responses and match it with data in the Supplier system if needed. |
| Contract-Id | string Example: nicetours, 123456 An identifier of the contract to differentiate configuration, options or settings. This is one of two supported identification methods. Either provide a Contract-Id header, or provide Login and Password headers. Both may be provided simultaneously if required by the integration. The identification method should be agreed with Nezasa before development starts. |
| Login | string Login identifier for supplier authentication. An alternative to the Contract-Id header. When using login-based authentication, both Login and Password headers should be provided. The identification method should be agreed with Nezasa before development starts. |
| Password | string <password> Password for supplier authentication. Used together with the Login header as an alternative to the Contract-Id header. The identification method should be agreed with Nezasa before development starts. |
| accommodationCode | string Required accommodation code in one of the formats supported by Nezasa. |
| currency required | string Preferred currency. 3-letter code (ISO 4217). |
| lang required | string (Supported languages) Default: "de" Enum: "de" "en" "fr" "it" "nl" "es" "fi" "pt" "sv" "no" "da" "pl" 2-letter code (ISO 639-1) |
required | object (CommonTravelPeriod) Generic travel period |
required | Array of objects (Pax allocation in an accommodation) Required room allocation |
| boardCodes | Array of strings Default: [] Required Nezasa board codes. For possible values, see AccommodationRoom in AccommodationOffer. No filtering will be applied if left empty. |
| onRequest | boolean Default: false Whether to return on request offers |
| nonRefundable | boolean Default: false Whether to return non-refundable offers |
| market | string Market country or point-of-sale. 2 letters code of the country (ISO 3166-1 alpha-2) |
| purchaseChannel | string Channel (in supplier-specific format) via which the content is offered |
object (Supplier filter) Defines filtering options for accommodation offers based on suppliers. This object allows for specifying which suppliers should be included or excluded from the search results, providing more control over the source of accommodation offers. | |
object (Metadata) |
{- "market": "DE",
- "accommodationCode": "123456",
- "period": {
- "endDate": "2023-08-14",
- "nights": 1,
- "startTime": "12:00:00",
- "endTime": "16:00:00",
- "startDate": "2024-08-01"
}, - "metadata": {
- "travelAgentEmail": "agent@agency.com",
- "travelAgencyShortName": "Best Travel AG",
- "travelAgentLastName": "Doe",
- "itineraryId": "1xinmvo5skro",
- "agencyId": "ABC12345",
- "travelAgentFirstName": "John",
- "travelAgencyEmail": "info@besttravelag.com"
}, - "onRequest": false,
- "roomAllocation": [
- {
- "reference": 1,
- "paxes": [
- {
- "passportNumber": "C3045654",
- "lastName": "Riverdance",
- "address": {
- "country": "Germany",
- "city": "Littletown",
- "street": "132, My Street",
- "countryCode": "DE",
- "postalCode": "BG23 4YZ",
- "street2": "street2",
- "region": "region"
}, - "gender": "Male",
- "supplierRefId": "supplierRefId",
- "passengerReduction": "passengerReduction",
- "secondOrAdditionalNames": [
- "secondOrAdditionalNames",
- "secondOrAdditionalNames"
], - "frequentFlyerInfo": {
- "membershipNumber": "992003102855176",
- "airlineCode": "LH"
}, - "title": "MR",
- "birthDate": "1990-01-01",
- "firstName": "Mike",
- "nezasaRefId": "nezasaRefId",
- "nationality": "DE",
- "electronicContactDetails": {
- "website": "www.example.com",
- "phones": [
- {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}, - {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}
], - "email": "mike.riverdance@example.com"
}, - "passportIssuingCountryCode": "passportIssuingCountryCode",
- "isMainContact": true,
- "passportExpirationDate": "2030-01-01",
- "age": 30
}, - {
- "passportNumber": "C3045654",
- "lastName": "Riverdance",
- "address": {
- "country": "Germany",
- "city": "Littletown",
- "street": "132, My Street",
- "countryCode": "DE",
- "postalCode": "BG23 4YZ",
- "street2": "street2",
- "region": "region"
}, - "gender": "Male",
- "supplierRefId": "supplierRefId",
- "passengerReduction": "passengerReduction",
- "secondOrAdditionalNames": [
- "secondOrAdditionalNames",
- "secondOrAdditionalNames"
], - "frequentFlyerInfo": {
- "membershipNumber": "992003102855176",
- "airlineCode": "LH"
}, - "title": "MR",
- "birthDate": "1990-01-01",
- "firstName": "Mike",
- "nezasaRefId": "nezasaRefId",
- "nationality": "DE",
- "electronicContactDetails": {
- "website": "www.example.com",
- "phones": [
- {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}, - {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}
], - "email": "mike.riverdance@example.com"
}, - "passportIssuingCountryCode": "passportIssuingCountryCode",
- "isMainContact": true,
- "passportExpirationDate": "2030-01-01",
- "age": 30
}
]
}, - {
- "reference": 1,
- "paxes": [
- {
- "passportNumber": "C3045654",
- "lastName": "Riverdance",
- "address": {
- "country": "Germany",
- "city": "Littletown",
- "street": "132, My Street",
- "countryCode": "DE",
- "postalCode": "BG23 4YZ",
- "street2": "street2",
- "region": "region"
}, - "gender": "Male",
- "supplierRefId": "supplierRefId",
- "passengerReduction": "passengerReduction",
- "secondOrAdditionalNames": [
- "secondOrAdditionalNames",
- "secondOrAdditionalNames"
], - "frequentFlyerInfo": {
- "membershipNumber": "992003102855176",
- "airlineCode": "LH"
}, - "title": "MR",
- "birthDate": "1990-01-01",
- "firstName": "Mike",
- "nezasaRefId": "nezasaRefId",
- "nationality": "DE",
- "electronicContactDetails": {
- "website": "www.example.com",
- "phones": [
- {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}, - {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}
], - "email": "mike.riverdance@example.com"
}, - "passportIssuingCountryCode": "passportIssuingCountryCode",
- "isMainContact": true,
- "passportExpirationDate": "2030-01-01",
- "age": 30
}, - {
- "passportNumber": "C3045654",
- "lastName": "Riverdance",
- "address": {
- "country": "Germany",
- "city": "Littletown",
- "street": "132, My Street",
- "countryCode": "DE",
- "postalCode": "BG23 4YZ",
- "street2": "street2",
- "region": "region"
}, - "gender": "Male",
- "supplierRefId": "supplierRefId",
- "passengerReduction": "passengerReduction",
- "secondOrAdditionalNames": [
- "secondOrAdditionalNames",
- "secondOrAdditionalNames"
], - "frequentFlyerInfo": {
- "membershipNumber": "992003102855176",
- "airlineCode": "LH"
}, - "title": "MR",
- "birthDate": "1990-01-01",
- "firstName": "Mike",
- "nezasaRefId": "nezasaRefId",
- "nationality": "DE",
- "electronicContactDetails": {
- "website": "www.example.com",
- "phones": [
- {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}, - {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}
], - "email": "mike.riverdance@example.com"
}, - "passportIssuingCountryCode": "passportIssuingCountryCode",
- "isMainContact": true,
- "passportExpirationDate": "2030-01-01",
- "age": 30
}
]
}
], - "currency": "EUR",
- "boardCodes": [
- "BB",
- "BB"
], - "filters": {
- "includedSuppliers": [
- "includedSuppliers",
- "includedSuppliers"
], - "excludedSuppliers": [
- "excludedSuppliers",
- "excludedSuppliers"
]
}, - "lang": "de",
- "nonRefundable": false,
- "purchaseChannel": "K"
}{- "offers": [
- {
- "rooms": [
- {
- "area": 12,
- "allocationReference": 1,
- "occupancy": "2 Adults + 1 children",
- "includedAmenities": [
- "includedAmenities",
- "includedAmenities"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "boardCode": "BB",
- "description": "Elegant corner suite with floor-to-ceiling windows offering panoramic city views, featuring a marble bathroom and modern workspace.",
- "roomCode": "DBL",
- "view": "Sea View",
- "name": "Family room with sea view",
- "beddingConfiguration": "King + sofa bed",
- "optionalAmenities": [
- {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}, - {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}
], - "roomImages": [
- "roomImages",
- "roomImages"
]
}, - {
- "area": 12,
- "allocationReference": 1,
- "occupancy": "2 Adults + 1 children",
- "includedAmenities": [
- "includedAmenities",
- "includedAmenities"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "boardCode": "BB",
- "description": "Elegant corner suite with floor-to-ceiling windows offering panoramic city views, featuring a marble bathroom and modern workspace.",
- "roomCode": "DBL",
- "view": "Sea View",
- "name": "Family room with sea view",
- "beddingConfiguration": "King + sofa bed",
- "optionalAmenities": [
- {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}, - {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}
], - "roomImages": [
- "roomImages",
- "roomImages"
]
}
], - "onRequest": true,
- "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "supplierExtras": {
- "isExternal": true,
- "location": [
- {
- "locationType": "Country",
- "locationCode": "MAD"
}, - {
- "locationType": "Country",
- "locationCode": "MAD"
}
]
}, - "requiredPassengerData": {
- "isBirthDateRequired": true,
- "isMiddleNamesRequired": true,
- "isAddressCountryCodeRequired": true,
- "isPassportNumberRequired": true,
- "isLastNameRequired": true,
- "isAddressPostalCodeRequired": true,
- "isGenderRequired": true,
- "isPassportExpirationDateRequired": true,
- "isFirstNameRequired": true,
- "isAddressStreetRequired": true,
- "isPassportIssuingCountryRequired": true,
- "isAddressCityRequired": true,
- "isNationalityRequired": true
}, - "accommodationName": "Hotel name",
- "reference": "reference",
- "accommodationCode": "123456",
- "requiredContactData": {
- "isAddressCountryCodeRequired": true,
- "isAddressStreetRequired": true,
- "isLastNameRequired": true,
- "isEmailRequired": true,
- "isAddressCityRequired": true,
- "isAddressPostalCodeRequired": true,
- "isGenderRequired": true,
- "isMobilePhoneRequired": true,
- "isFirstNameRequired": true
}, - "supplier": "supplier",
- "surcharges": [
- {
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "description": "City tax",
- "included": true,
- "mandatory": false
}, - {
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "description": "City tax",
- "included": true,
- "mandatory": false
}
], - "promoCode": "promoCode",
- "cancellationPolicy": {
- "rules": [
- {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}, - {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}
], - "cancellationType": "Unknown"
}, - "remarks": [
- {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}, - {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}
]
}, - {
- "rooms": [
- {
- "area": 12,
- "allocationReference": 1,
- "occupancy": "2 Adults + 1 children",
- "includedAmenities": [
- "includedAmenities",
- "includedAmenities"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "boardCode": "BB",
- "description": "Elegant corner suite with floor-to-ceiling windows offering panoramic city views, featuring a marble bathroom and modern workspace.",
- "roomCode": "DBL",
- "view": "Sea View",
- "name": "Family room with sea view",
- "beddingConfiguration": "King + sofa bed",
- "optionalAmenities": [
- {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}, - {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}
], - "roomImages": [
- "roomImages",
- "roomImages"
]
}, - {
- "area": 12,
- "allocationReference": 1,
- "occupancy": "2 Adults + 1 children",
- "includedAmenities": [
- "includedAmenities",
- "includedAmenities"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "boardCode": "BB",
- "description": "Elegant corner suite with floor-to-ceiling windows offering panoramic city views, featuring a marble bathroom and modern workspace.",
- "roomCode": "DBL",
- "view": "Sea View",
- "name": "Family room with sea view",
- "beddingConfiguration": "King + sofa bed",
- "optionalAmenities": [
- {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}, - {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}
], - "roomImages": [
- "roomImages",
- "roomImages"
]
}
], - "onRequest": true,
- "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "supplierExtras": {
- "isExternal": true,
- "location": [
- {
- "locationType": "Country",
- "locationCode": "MAD"
}, - {
- "locationType": "Country",
- "locationCode": "MAD"
}
]
}, - "requiredPassengerData": {
- "isBirthDateRequired": true,
- "isMiddleNamesRequired": true,
- "isAddressCountryCodeRequired": true,
- "isPassportNumberRequired": true,
- "isLastNameRequired": true,
- "isAddressPostalCodeRequired": true,
- "isGenderRequired": true,
- "isPassportExpirationDateRequired": true,
- "isFirstNameRequired": true,
- "isAddressStreetRequired": true,
- "isPassportIssuingCountryRequired": true,
- "isAddressCityRequired": true,
- "isNationalityRequired": true
}, - "accommodationName": "Hotel name",
- "reference": "reference",
- "accommodationCode": "123456",
- "requiredContactData": {
- "isAddressCountryCodeRequired": true,
- "isAddressStreetRequired": true,
- "isLastNameRequired": true,
- "isEmailRequired": true,
- "isAddressCityRequired": true,
- "isAddressPostalCodeRequired": true,
- "isGenderRequired": true,
- "isMobilePhoneRequired": true,
- "isFirstNameRequired": true
}, - "supplier": "supplier",
- "surcharges": [
- {
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "description": "City tax",
- "included": true,
- "mandatory": false
}, - {
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "description": "City tax",
- "included": true,
- "mandatory": false
}
], - "promoCode": "promoCode",
- "cancellationPolicy": {
- "rules": [
- {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}, - {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}
], - "cancellationType": "Unknown"
}, - "remarks": [
- {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}, - {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}
]
}
], - "accommodations": [
- {
- "rooms": [
- {
- "area": 12,
- "allocationReference": 1,
- "occupancy": "2 Adults + 1 children",
- "includedAmenities": [
- "includedAmenities",
- "includedAmenities"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "boardCode": "BB",
- "description": "Elegant corner suite with floor-to-ceiling windows offering panoramic city views, featuring a marble bathroom and modern workspace.",
- "roomCode": "DBL",
- "view": "Sea View",
- "name": "Family room with sea view",
- "beddingConfiguration": "King + sofa bed",
- "optionalAmenities": [
- {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}, - {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}
], - "roomImages": [
- "roomImages",
- "roomImages"
]
}, - {
- "area": 12,
- "allocationReference": 1,
- "occupancy": "2 Adults + 1 children",
- "includedAmenities": [
- "includedAmenities",
- "includedAmenities"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "boardCode": "BB",
- "description": "Elegant corner suite with floor-to-ceiling windows offering panoramic city views, featuring a marble bathroom and modern workspace.",
- "roomCode": "DBL",
- "view": "Sea View",
- "name": "Family room with sea view",
- "beddingConfiguration": "King + sofa bed",
- "optionalAmenities": [
- {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}, - {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}
], - "roomImages": [
- "roomImages",
- "roomImages"
]
}
], - "onRequest": true,
- "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "supplierExtras": {
- "isExternal": true,
- "location": [
- {
- "locationType": "Country",
- "locationCode": "MAD"
}, - {
- "locationType": "Country",
- "locationCode": "MAD"
}
]
}, - "requiredPassengerData": {
- "isBirthDateRequired": true,
- "isMiddleNamesRequired": true,
- "isAddressCountryCodeRequired": true,
- "isPassportNumberRequired": true,
- "isLastNameRequired": true,
- "isAddressPostalCodeRequired": true,
- "isGenderRequired": true,
- "isPassportExpirationDateRequired": true,
- "isFirstNameRequired": true,
- "isAddressStreetRequired": true,
- "isPassportIssuingCountryRequired": true,
- "isAddressCityRequired": true,
- "isNationalityRequired": true
}, - "accommodationName": "Hotel name",
- "reference": "reference",
- "accommodationCode": "123456",
- "requiredContactData": {
- "isAddressCountryCodeRequired": true,
- "isAddressStreetRequired": true,
- "isLastNameRequired": true,
- "isEmailRequired": true,
- "isAddressCityRequired": true,
- "isAddressPostalCodeRequired": true,
- "isGenderRequired": true,
- "isMobilePhoneRequired": true,
- "isFirstNameRequired": true
}, - "supplier": "supplier",
- "surcharges": [
- {
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "description": "City tax",
- "included": true,
- "mandatory": false
}, - {
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "description": "City tax",
- "included": true,
- "mandatory": false
}
], - "promoCode": "promoCode",
- "cancellationPolicy": {
- "rules": [
- {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}, - {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}
], - "cancellationType": "Unknown"
}, - "remarks": [
- {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}, - {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}
]
}, - {
- "rooms": [
- {
- "area": 12,
- "allocationReference": 1,
- "occupancy": "2 Adults + 1 children",
- "includedAmenities": [
- "includedAmenities",
- "includedAmenities"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "boardCode": "BB",
- "description": "Elegant corner suite with floor-to-ceiling windows offering panoramic city views, featuring a marble bathroom and modern workspace.",
- "roomCode": "DBL",
- "view": "Sea View",
- "name": "Family room with sea view",
- "beddingConfiguration": "King + sofa bed",
- "optionalAmenities": [
- {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}, - {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}
], - "roomImages": [
- "roomImages",
- "roomImages"
]
}, - {
- "area": 12,
- "allocationReference": 1,
- "occupancy": "2 Adults + 1 children",
- "includedAmenities": [
- "includedAmenities",
- "includedAmenities"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "boardCode": "BB",
- "description": "Elegant corner suite with floor-to-ceiling windows offering panoramic city views, featuring a marble bathroom and modern workspace.",
- "roomCode": "DBL",
- "view": "Sea View",
- "name": "Family room with sea view",
- "beddingConfiguration": "King + sofa bed",
- "optionalAmenities": [
- {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}, - {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}
], - "roomImages": [
- "roomImages",
- "roomImages"
]
}
], - "onRequest": true,
- "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "supplierExtras": {
- "isExternal": true,
- "location": [
- {
- "locationType": "Country",
- "locationCode": "MAD"
}, - {
- "locationType": "Country",
- "locationCode": "MAD"
}
]
}, - "requiredPassengerData": {
- "isBirthDateRequired": true,
- "isMiddleNamesRequired": true,
- "isAddressCountryCodeRequired": true,
- "isPassportNumberRequired": true,
- "isLastNameRequired": true,
- "isAddressPostalCodeRequired": true,
- "isGenderRequired": true,
- "isPassportExpirationDateRequired": true,
- "isFirstNameRequired": true,
- "isAddressStreetRequired": true,
- "isPassportIssuingCountryRequired": true,
- "isAddressCityRequired": true,
- "isNationalityRequired": true
}, - "accommodationName": "Hotel name",
- "reference": "reference",
- "accommodationCode": "123456",
- "requiredContactData": {
- "isAddressCountryCodeRequired": true,
- "isAddressStreetRequired": true,
- "isLastNameRequired": true,
- "isEmailRequired": true,
- "isAddressCityRequired": true,
- "isAddressPostalCodeRequired": true,
- "isGenderRequired": true,
- "isMobilePhoneRequired": true,
- "isFirstNameRequired": true
}, - "supplier": "supplier",
- "surcharges": [
- {
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "description": "City tax",
- "included": true,
- "mandatory": false
}, - {
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "description": "City tax",
- "included": true,
- "mandatory": false
}
], - "promoCode": "promoCode",
- "cancellationPolicy": {
- "rules": [
- {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}, - {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}
], - "cancellationType": "Unknown"
}, - "remarks": [
- {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}, - {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}
]
}
], - "rawRequests": [
- "{ \"queryId\": 1257, \"endpoint\": \"/cancelBooking\", \"parameters\": { \"bookingId\": \"ABC123\", \"reason\": \"Client request\" }, \"requestTime\": \"2024-06-15T14:30:00Z\", \"success\": true }",
- "{ \"queryId\": 1258, \"endpoint\": \"/cancelBooking\", \"parameters\": { \"bookingId\": \"XYZ789\", \"reason\": \"System error\" }, \"requestTime\": \"2024-06-15T14:31:00Z\", \"success\": false }"
], - "notifications": [
- {
- "notificationLevel": "Info",
- "description": "description",
- "notificationType": "InputValidation"
}, - {
- "notificationLevel": "Info",
- "description": "description",
- "notificationType": "InputValidation"
}
], - "rawResponses": [
- "{ \"queryId\": 1257, \"responseTime\": \"2024-06-15T14:30:05Z\", \"statusCode\": 200, \"body\": { \"message\": \"Cancellation confirmed\", \"cancellationId\": \"CANC123\" } }",
- "{ \"queryId\": 1258, \"responseTime\": \"2024-06-15T14:31:05Z\", \"statusCode\": 500, \"body\": { \"error\": \"Internal server error\" } }"
]
}When the users selects an offer, or before Tripbuilder books an offer, we check availability. This ensures that the offer is still available at the same price with the same amenities and room types. The offer reference provided by the integration partner must contain all the information needed to uniquely identify the offer and subsequent booking.
| traceparent | string Example: 00-666b4b3800000000089918a4bf7e8d29-40eeac6740412d3f-01 For tracking and debugging, we will include a tracing header with every request. This trace ID follows the W3C Trace Context standard. Users can see this same header in the Trip Builder API responses and match it with data in the Supplier system if needed. |
| Contract-Id | string Example: nicetours, 123456 An identifier of the contract to differentiate configuration, options or settings. This is one of two supported identification methods. Either provide a Contract-Id header, or provide Login and Password headers. Both may be provided simultaneously if required by the integration. The identification method should be agreed with Nezasa before development starts. |
| Login | string Login identifier for supplier authentication. An alternative to the Contract-Id header. When using login-based authentication, both Login and Password headers should be provided. The identification method should be agreed with Nezasa before development starts. |
| Password | string <password> Password for supplier authentication. Used together with the Login header as an alternative to the Contract-Id header. The identification method should be agreed with Nezasa before development starts. |
| reference | string The offer |
| currency required | string Preferred currency. 3-letter code (ISO 4217). |
| lang required | string (Supported languages) Default: "de" Enum: "de" "en" "fr" "it" "nl" "es" "fi" "pt" "sv" "no" "da" "pl" 2-letter code (ISO 639-1) |
| market | string (Market country or point-of-sale.) 2 letters code of the country (ISO 3166-1 alpha-2) |
object (Metadata) |
{- "reference": "reference",
- "market": "DE",
- "metadata": {
- "travelAgentEmail": "agent@agency.com",
- "travelAgencyShortName": "Best Travel AG",
- "travelAgentLastName": "Doe",
- "itineraryId": "1xinmvo5skro",
- "agencyId": "ABC12345",
- "travelAgentFirstName": "John",
- "travelAgencyEmail": "info@besttravelag.com"
}, - "currency": "EUR",
- "lang": "de"
}{- "accommodation": {
- "rooms": [
- {
- "area": 12,
- "allocationReference": 1,
- "occupancy": "2 Adults + 1 children",
- "includedAmenities": [
- "includedAmenities",
- "includedAmenities"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "boardCode": "BB",
- "description": "Elegant corner suite with floor-to-ceiling windows offering panoramic city views, featuring a marble bathroom and modern workspace.",
- "roomCode": "DBL",
- "view": "Sea View",
- "name": "Family room with sea view",
- "beddingConfiguration": "King + sofa bed",
- "optionalAmenities": [
- {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}, - {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}
], - "roomImages": [
- "roomImages",
- "roomImages"
]
}, - {
- "area": 12,
- "allocationReference": 1,
- "occupancy": "2 Adults + 1 children",
- "includedAmenities": [
- "includedAmenities",
- "includedAmenities"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "boardCode": "BB",
- "description": "Elegant corner suite with floor-to-ceiling windows offering panoramic city views, featuring a marble bathroom and modern workspace.",
- "roomCode": "DBL",
- "view": "Sea View",
- "name": "Family room with sea view",
- "beddingConfiguration": "King + sofa bed",
- "optionalAmenities": [
- {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}, - {
- "price": {
- "currency": "EUR",
- "value": "230.20"
}, - "name": "Hairdyer",
- "description": "Professional-grade hairdryer with multiple heat and speed settings",
- "id": "id"
}
], - "roomImages": [
- "roomImages",
- "roomImages"
]
}
], - "onRequest": true,
- "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "supplierExtras": {
- "isExternal": true,
- "location": [
- {
- "locationType": "Country",
- "locationCode": "MAD"
}, - {
- "locationType": "Country",
- "locationCode": "MAD"
}
]
}, - "requiredPassengerData": {
- "isBirthDateRequired": true,
- "isMiddleNamesRequired": true,
- "isAddressCountryCodeRequired": true,
- "isPassportNumberRequired": true,
- "isLastNameRequired": true,
- "isAddressPostalCodeRequired": true,
- "isGenderRequired": true,
- "isPassportExpirationDateRequired": true,
- "isFirstNameRequired": true,
- "isAddressStreetRequired": true,
- "isPassportIssuingCountryRequired": true,
- "isAddressCityRequired": true,
- "isNationalityRequired": true
}, - "accommodationName": "Hotel name",
- "reference": "reference",
- "accommodationCode": "123456",
- "requiredContactData": {
- "isAddressCountryCodeRequired": true,
- "isAddressStreetRequired": true,
- "isLastNameRequired": true,
- "isEmailRequired": true,
- "isAddressCityRequired": true,
- "isAddressPostalCodeRequired": true,
- "isGenderRequired": true,
- "isMobilePhoneRequired": true,
- "isFirstNameRequired": true
}, - "supplier": "supplier",
- "surcharges": [
- {
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "description": "City tax",
- "included": true,
- "mandatory": false
}, - {
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "description": "City tax",
- "included": true,
- "mandatory": false
}
], - "promoCode": "promoCode",
- "cancellationPolicy": {
- "rules": [
- {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}, - {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}
], - "cancellationType": "Unknown"
}, - "remarks": [
- {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}, - {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}
]
}, - "rawRequests": [
- "{ \"queryId\": 1257, \"endpoint\": \"/cancelBooking\", \"parameters\": { \"bookingId\": \"ABC123\", \"reason\": \"Client request\" }, \"requestTime\": \"2024-06-15T14:30:00Z\", \"success\": true }",
- "{ \"queryId\": 1258, \"endpoint\": \"/cancelBooking\", \"parameters\": { \"bookingId\": \"XYZ789\", \"reason\": \"System error\" }, \"requestTime\": \"2024-06-15T14:31:00Z\", \"success\": false }"
], - "notifications": [
- {
- "notificationLevel": "Info",
- "description": "description",
- "notificationType": "InputValidation"
}, - {
- "notificationLevel": "Info",
- "description": "description",
- "notificationType": "InputValidation"
}
], - "rawResponses": [
- "{ \"queryId\": 1257, \"responseTime\": \"2024-06-15T14:30:05Z\", \"statusCode\": 200, \"body\": { \"message\": \"Cancellation confirmed\", \"cancellationId\": \"CANC123\" } }",
- "{ \"queryId\": 1258, \"responseTime\": \"2024-06-15T14:31:05Z\", \"statusCode\": 500, \"body\": { \"error\": \"Internal server error\" } }"
]
}Cancels a reservation for a given booking reference. The booking reference is returned by the book response. The integration partner must use this reference to uniquely identify and cancel the booking. If the booking consists of more that one room, the integration partner must cancel each room individually.
| traceparent | string Example: 00-666b4b3800000000089918a4bf7e8d29-40eeac6740412d3f-01 For tracking and debugging, we will include a tracing header with every request. This trace ID follows the W3C Trace Context standard. Users can see this same header in the Trip Builder API responses and match it with data in the Supplier system if needed. |
| Contract-Id | string Example: nicetours, 123456 An identifier of the contract to differentiate configuration, options or settings. This is one of two supported identification methods. Either provide a Contract-Id header, or provide Login and Password headers. Both may be provided simultaneously if required by the integration. The identification method should be agreed with Nezasa before development starts. |
| Login | string Login identifier for supplier authentication. An alternative to the Contract-Id header. When using login-based authentication, both Login and Password headers should be provided. The identification method should be agreed with Nezasa before development starts. |
| Password | string <password> Password for supplier authentication. Used together with the Login header as an alternative to the Contract-Id header. The identification method should be agreed with Nezasa before development starts. |
| reference | string The |
object (Metadata) |
{- "reference": "BOOKING-123456",
- "metadata": {
- "travelAgentEmail": "agent@agency.com",
- "travelAgencyShortName": "Best Travel AG",
- "travelAgentLastName": "Doe",
- "itineraryId": "1xinmvo5skro",
- "agencyId": "ABC12345",
- "travelAgentFirstName": "John",
- "travelAgencyEmail": "info@besttravelag.com"
}
}{- "rawRequests": [
- "{ \"queryId\": 1257, \"endpoint\": \"/cancelBooking\", \"parameters\": { \"bookingId\": \"ABC123\", \"reason\": \"Client request\" }, \"requestTime\": \"2024-06-15T14:30:00Z\", \"success\": true }",
- "{ \"queryId\": 1258, \"endpoint\": \"/cancelBooking\", \"parameters\": { \"bookingId\": \"XYZ789\", \"reason\": \"System error\" }, \"requestTime\": \"2024-06-15T14:31:00Z\", \"success\": false }"
], - "rawResponses": [
- "{ \"queryId\": 1257, \"responseTime\": \"2024-06-15T14:30:05Z\", \"statusCode\": 200, \"body\": { \"message\": \"Cancellation confirmed\", \"cancellationId\": \"CANC123\" } }",
- "{ \"queryId\": 1258, \"responseTime\": \"2024-06-15T14:31:05Z\", \"statusCode\": 500, \"body\": { \"error\": \"Internal server error\" } }"
]
}Books an offer in the supplier system. If the offer includes more than one room and the supplier system does not support multi-room bookings, TripBuilder expects the integration partner to book multiple rooms. This means the integration partner must manage errors themselves.
| traceparent | string Example: 00-666b4b3800000000089918a4bf7e8d29-40eeac6740412d3f-01 For tracking and debugging, we will include a tracing header with every request. This trace ID follows the W3C Trace Context standard. Users can see this same header in the Trip Builder API responses and match it with data in the Supplier system if needed. |
| Contract-Id | string Example: nicetours, 123456 An identifier of the contract to differentiate configuration, options or settings. This is one of two supported identification methods. Either provide a Contract-Id header, or provide Login and Password headers. Both may be provided simultaneously if required by the integration. The identification method should be agreed with Nezasa before development starts. |
| Login | string Login identifier for supplier authentication. An alternative to the Contract-Id header. When using login-based authentication, both Login and Password headers should be provided. The identification method should be agreed with Nezasa before development starts. |
| Password | string <password> Password for supplier authentication. Used together with the Login header as an alternative to the Contract-Id header. The identification method should be agreed with Nezasa before development starts. |
| reference | string The |
| lang required | string (Supported languages) Default: "de" Enum: "de" "en" "fr" "it" "nl" "es" "fi" "pt" "sv" "no" "da" "pl" 2-letter code (ISO 639-1) |
required | Array of objects (Expected room allocation) The room reference refers to the room allocationReference returned by the availability response and assigns paxes to individual rooms. |
required | object (Basic representation of the contact) |
| onRequestWebhookUrl | string URL of the webhook endpoint to be used to confirm an on-request booking, i.e. booking which returned a |
| maxPriceVariationPercentage | integer <int32> (Maximum tolerated price variation (percentage delta)) [ 0 .. 100 ] Caller-defined tolerance for a price change between the offer that was previously
quoted (via Expected behaviourPreferred (asymmetric) — when the supplier API exposes a price-tolerance parameter that distinguishes increases from decreases, or when the integration partner can evaluate the comparison itself, the delta MUST be applied upward only:
Fallback (symmetric) — when the supplier API only exposes a single tolerance parameter that it applies to deviations in either direction, the same delta MAY be forwarded as-is and is therefore applied both upward and downward around the quoted price. Increases and decreases that exceed the delta both cause the supplier to reject the booking. This is acceptable, but the asymmetric behaviour above is preferred whenever it can be implemented. Unsupported — when the supplier API exposes no price-tolerance mechanism and the integration partner cannot evaluate the comparison itself, the field may be ignored and the integration partner's existing default behaviour applies (typically: reject any price change). In this case the tolerance is not enforced end-to-end, so callers should not assume the supplied delta has any effect for that supplier. ExampleWith a delta of
Omitted / zeroWhen the field is omitted, the integration partner SHOULD apply its existing default
behaviour (typically: reject any price change). A delta of |
object (Metadata) |
{- "reference": "reference",
- "metadata": {
- "travelAgentEmail": "agent@agency.com",
- "travelAgencyShortName": "Best Travel AG",
- "travelAgentLastName": "Doe",
- "itineraryId": "1xinmvo5skro",
- "agencyId": "ABC12345",
- "travelAgentFirstName": "John",
- "travelAgencyEmail": "info@besttravelag.com"
}, - "roomAllocation": [
- {
- "reference": 1,
- "paxes": [
- {
- "passportNumber": "C3045654",
- "lastName": "Riverdance",
- "address": {
- "country": "Germany",
- "city": "Littletown",
- "street": "132, My Street",
- "countryCode": "DE",
- "postalCode": "BG23 4YZ",
- "street2": "street2",
- "region": "region"
}, - "gender": "Male",
- "supplierRefId": "supplierRefId",
- "passengerReduction": "passengerReduction",
- "secondOrAdditionalNames": [
- "secondOrAdditionalNames",
- "secondOrAdditionalNames"
], - "frequentFlyerInfo": {
- "membershipNumber": "992003102855176",
- "airlineCode": "LH"
}, - "title": "MR",
- "birthDate": "1990-01-01",
- "firstName": "Mike",
- "nezasaRefId": "nezasaRefId",
- "nationality": "DE",
- "electronicContactDetails": {
- "website": "www.example.com",
- "phones": [
- {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}, - {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}
], - "email": "mike.riverdance@example.com"
}, - "passportIssuingCountryCode": "passportIssuingCountryCode",
- "isMainContact": true,
- "passportExpirationDate": "2030-01-01",
- "age": 30
}, - {
- "passportNumber": "C3045654",
- "lastName": "Riverdance",
- "address": {
- "country": "Germany",
- "city": "Littletown",
- "street": "132, My Street",
- "countryCode": "DE",
- "postalCode": "BG23 4YZ",
- "street2": "street2",
- "region": "region"
}, - "gender": "Male",
- "supplierRefId": "supplierRefId",
- "passengerReduction": "passengerReduction",
- "secondOrAdditionalNames": [
- "secondOrAdditionalNames",
- "secondOrAdditionalNames"
], - "frequentFlyerInfo": {
- "membershipNumber": "992003102855176",
- "airlineCode": "LH"
}, - "title": "MR",
- "birthDate": "1990-01-01",
- "firstName": "Mike",
- "nezasaRefId": "nezasaRefId",
- "nationality": "DE",
- "electronicContactDetails": {
- "website": "www.example.com",
- "phones": [
- {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}, - {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}
], - "email": "mike.riverdance@example.com"
}, - "passportIssuingCountryCode": "passportIssuingCountryCode",
- "isMainContact": true,
- "passportExpirationDate": "2030-01-01",
- "age": 30
}
]
}, - {
- "reference": 1,
- "paxes": [
- {
- "passportNumber": "C3045654",
- "lastName": "Riverdance",
- "address": {
- "country": "Germany",
- "city": "Littletown",
- "street": "132, My Street",
- "countryCode": "DE",
- "postalCode": "BG23 4YZ",
- "street2": "street2",
- "region": "region"
}, - "gender": "Male",
- "supplierRefId": "supplierRefId",
- "passengerReduction": "passengerReduction",
- "secondOrAdditionalNames": [
- "secondOrAdditionalNames",
- "secondOrAdditionalNames"
], - "frequentFlyerInfo": {
- "membershipNumber": "992003102855176",
- "airlineCode": "LH"
}, - "title": "MR",
- "birthDate": "1990-01-01",
- "firstName": "Mike",
- "nezasaRefId": "nezasaRefId",
- "nationality": "DE",
- "electronicContactDetails": {
- "website": "www.example.com",
- "phones": [
- {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}, - {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}
], - "email": "mike.riverdance@example.com"
}, - "passportIssuingCountryCode": "passportIssuingCountryCode",
- "isMainContact": true,
- "passportExpirationDate": "2030-01-01",
- "age": 30
}, - {
- "passportNumber": "C3045654",
- "lastName": "Riverdance",
- "address": {
- "country": "Germany",
- "city": "Littletown",
- "street": "132, My Street",
- "countryCode": "DE",
- "postalCode": "BG23 4YZ",
- "street2": "street2",
- "region": "region"
}, - "gender": "Male",
- "supplierRefId": "supplierRefId",
- "passengerReduction": "passengerReduction",
- "secondOrAdditionalNames": [
- "secondOrAdditionalNames",
- "secondOrAdditionalNames"
], - "frequentFlyerInfo": {
- "membershipNumber": "992003102855176",
- "airlineCode": "LH"
}, - "title": "MR",
- "birthDate": "1990-01-01",
- "firstName": "Mike",
- "nezasaRefId": "nezasaRefId",
- "nationality": "DE",
- "electronicContactDetails": {
- "website": "www.example.com",
- "phones": [
- {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}, - {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}
], - "email": "mike.riverdance@example.com"
}, - "passportIssuingCountryCode": "passportIssuingCountryCode",
- "isMainContact": true,
- "passportExpirationDate": "2030-01-01",
- "age": 30
}
]
}
], - "contact": {
- "firstName": "Mike",
- "lastName": "Riverdance",
- "address": {
- "country": "Germany",
- "city": "Littletown",
- "street": "132, My Street",
- "countryCode": "DE",
- "postalCode": "BG23 4YZ",
- "street2": "street2",
- "region": "region"
}, - "gender": "Male",
- "electronicContactDetails": {
- "website": "www.example.com",
- "phones": [
- {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}, - {
- "mobile": true,
- "company": false,
- "landline": false,
- "fax": false,
- "value": "+41 44 123 45 67"
}
], - "email": "mike.riverdance@example.com"
}
}, - "lang": "de",
- "onRequestWebhookUrl": "onRequestWebhookUrl",
- "maxPriceVariationPercentage": 25
}{- "booking": {
- "bookingReference": "SUNHOTEL-12345#SUNHOTEL-67890",
- "supplierReferences": [
- "[\"SUNHOTEL-12345\",\"SUNHOTEL-67890\"]",
- "[\"SUNHOTEL-12345\",\"SUNHOTEL-67890\"]"
], - "salesPrice": {
- "currency": "EUR",
- "value": "230.20"
}, - "supplierAuxiliaryCodes": [
- {
- "name": "VOUCHER_ID",
- "value": "ABC123XYZ"
}, - {
- "name": "VOUCHER_ID",
- "value": "ABC123XYZ"
}
], - "cancellationPolicy": {
- "rules": [
- {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}, - {
- "startDatetime": "2023-08-01T00:00:00",
- "amount": {
- "currency": "EUR",
- "value": "230.20"
}, - "percentage": 50,
- "endDatetime": "2023-08-01T23:59:00"
}
], - "cancellationType": "Unknown"
}, - "remarks": [
- {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}, - {
- "language": "de",
- "text": "Check-in time at 15:00. Check-out time at 11:00.",
- "lang": "de"
}
], - "status": "Booked"
}, - "rawRequests": [
- "{ \"queryId\": 1257, \"endpoint\": \"/cancelBooking\", \"parameters\": { \"bookingId\": \"ABC123\", \"reason\": \"Client request\" }, \"requestTime\": \"2024-06-15T14:30:00Z\", \"success\": true }",
- "{ \"queryId\": 1258, \"endpoint\": \"/cancelBooking\", \"parameters\": { \"bookingId\": \"XYZ789\", \"reason\": \"System error\" }, \"requestTime\": \"2024-06-15T14:31:00Z\", \"success\": false }"
], - "rawResponses": [
- "{ \"queryId\": 1257, \"responseTime\": \"2024-06-15T14:30:05Z\", \"statusCode\": 200, \"body\": { \"message\": \"Cancellation confirmed\", \"cancellationId\": \"CANC123\" } }",
- "{ \"queryId\": 1258, \"responseTime\": \"2024-06-15T14:31:05Z\", \"statusCode\": 500, \"body\": { \"error\": \"Internal server error\" } }"
]
}Import hotel non-bookable content from supplier system.
| traceparent | string Example: 00-666b4b3800000000089918a4bf7e8d29-40eeac6740412d3f-01 For tracking and debugging, we will include a tracing header with every request. This trace ID follows the W3C Trace Context standard. Users can see this same header in the Trip Builder API responses and match it with data in the Supplier system if needed. |
| Contract-Id | string Example: nicetours, 123456 An identifier of the contract to differentiate configuration, options or settings. This is one of two supported identification methods. Either provide a Contract-Id header, or provide Login and Password headers. Both may be provided simultaneously if required by the integration. The identification method should be agreed with Nezasa before development starts. |
| Login | string Login identifier for supplier authentication. An alternative to the Contract-Id header. When using login-based authentication, both Login and Password headers should be provided. The identification method should be agreed with Nezasa before development starts. |
| Password | string <password> Password for supplier authentication. Used together with the Login header as an alternative to the Contract-Id header. The identification method should be agreed with Nezasa before development starts. |
| languages required | Array of strings (Requested response languages) non-empty unique [ items^[a-z]{2}$ ] List of languages in which property content should be returned. Each entry MUST be a valid two-letter language code conforming to ISO 639-1 (e.g. "en", "de", "fr", "es", "it"). The request MUST include at least one language. Expected behaviourStrictly opt-in. For every property in the response, Per property:
ExampleWith
|
| countryCode | string^[A-Z]{2}$ Search for properties only in the desired country. Must be a valid two-letter country code conforming to ISO 3166-1 alpha-2 standards (e.g., "FR", "DE", "ES", "IT", "PT"). |
| updatedStart | string Search for properties added on or after the requested UTC date, in ISO 8601 format (YYYY-MM-DD) |
| updatedEnd | string Search for properties added on or before the requested UTC date, in ISO 8601 format (YYYY-MM-DD) |
| propertyId | string The ID of the property you want to search for |
| batchToken | string The token of the next batch provided in the last response. |
{- "updatedStart": "updatedStart",
- "updatedEnd": "updatedEnd",
- "languages": [
- "en",
- "de",
- "fr",
- "es",
- "pt"
], - "countryCode": "FR",
- "batchToken": "import_20250128_120000_abc123",
- "propertyId": "12345"
}{- "hotels": [
- {
- "supplySource": "supplySource",
- "images": [
- {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}
], - "address": {
- "country": "United States",
- "coordinate": {
- "latitude": 40.7128,
- "longitude": -74.006
}, - "city": "New York",
- "countryCode": "US",
- "postalCode": "10001",
- "addressLine1": "123 Main Street",
- "addressLine2": "Apt A",
- "state": "NY"
}, - "dates": {
- "added": "added",
- "updated": "updated"
}, - "descriptions": [
- {
- "description": {
- "general": "general",
- "amenities": "amenities",
- "rooms": "rooms",
- "highlights": [
- "Beachfront location",
- "Award-winning restaurant"
], - "dining": "dining",
- "location": "location",
- "attractions": "attractions",
- "knowBeforeYouGo": "knowBeforeYouGo",
- "headline": "headline",
- "remarks": "remarks"
}, - "language": "en"
}, - {
- "description": {
- "general": "general",
- "amenities": "amenities",
- "rooms": "rooms",
- "highlights": [
- "Beachfront location",
- "Award-winning restaurant"
], - "dining": "dining",
- "location": "location",
- "attractions": "attractions",
- "knowBeforeYouGo": "knowBeforeYouGo",
- "headline": "headline",
- "remarks": "remarks"
}, - "language": "en"
}
], - "facts": {
- "key": [
- "facts",
- "facts"
]
}, - "checkin": {
- "instructions": "instructions",
- "beginTime": "beginTime",
- "endTime": "endTime"
}, - "ratings": {
- "property": {
- "stars": 4.5
}, - "guest": {
- "service": 2,
- "count": 48382,
- "overall": 3,
- "location": 4,
- "comfort": 5,
- "cleanliness": 4,
- "quality": 4
}
}, - "contact": {
- "phone": "phone",
- "fax": "fax",
- "email": "info@hotel.com"
}, - "name": "Grand Hotel Plaza",
- "category": "HOTEL",
- "giataId": "123456",
- "propertyId": "12345",
- "checkout": {
- "instructions": "instructions",
- "beginTime": "beginTime",
- "endTime": "endTime"
}
}, - {
- "supplySource": "supplySource",
- "images": [
- {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}
], - "address": {
- "country": "United States",
- "coordinate": {
- "latitude": 40.7128,
- "longitude": -74.006
}, - "city": "New York",
- "countryCode": "US",
- "postalCode": "10001",
- "addressLine1": "123 Main Street",
- "addressLine2": "Apt A",
- "state": "NY"
}, - "dates": {
- "added": "added",
- "updated": "updated"
}, - "descriptions": [
- {
- "description": {
- "general": "general",
- "amenities": "amenities",
- "rooms": "rooms",
- "highlights": [
- "Beachfront location",
- "Award-winning restaurant"
], - "dining": "dining",
- "location": "location",
- "attractions": "attractions",
- "knowBeforeYouGo": "knowBeforeYouGo",
- "headline": "headline",
- "remarks": "remarks"
}, - "language": "en"
}, - {
- "description": {
- "general": "general",
- "amenities": "amenities",
- "rooms": "rooms",
- "highlights": [
- "Beachfront location",
- "Award-winning restaurant"
], - "dining": "dining",
- "location": "location",
- "attractions": "attractions",
- "knowBeforeYouGo": "knowBeforeYouGo",
- "headline": "headline",
- "remarks": "remarks"
}, - "language": "en"
}
], - "facts": {
- "key": [
- "facts",
- "facts"
]
}, - "checkin": {
- "instructions": "instructions",
- "beginTime": "beginTime",
- "endTime": "endTime"
}, - "ratings": {
- "property": {
- "stars": 4.5
}, - "guest": {
- "service": 2,
- "count": 48382,
- "overall": 3,
- "location": 4,
- "comfort": 5,
- "cleanliness": 4,
- "quality": 4
}
}, - "contact": {
- "phone": "phone",
- "fax": "fax",
- "email": "info@hotel.com"
}, - "name": "Grand Hotel Plaza",
- "category": "HOTEL",
- "giataId": "123456",
- "propertyId": "12345",
- "checkout": {
- "instructions": "instructions",
- "beginTime": "beginTime",
- "endTime": "endTime"
}
}, - {
- "supplySource": "supplySource",
- "images": [
- {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}
], - "address": {
- "country": "United States",
- "coordinate": {
- "latitude": 40.7128,
- "longitude": -74.006
}, - "city": "New York",
- "countryCode": "US",
- "postalCode": "10001",
- "addressLine1": "123 Main Street",
- "addressLine2": "Apt A",
- "state": "NY"
}, - "dates": {
- "added": "added",
- "updated": "updated"
}, - "descriptions": [
- {
- "description": {
- "general": "general",
- "amenities": "amenities",
- "rooms": "rooms",
- "highlights": [
- "Beachfront location",
- "Award-winning restaurant"
], - "dining": "dining",
- "location": "location",
- "attractions": "attractions",
- "knowBeforeYouGo": "knowBeforeYouGo",
- "headline": "headline",
- "remarks": "remarks"
}, - "language": "en"
}, - {
- "description": {
- "general": "general",
- "amenities": "amenities",
- "rooms": "rooms",
- "highlights": [
- "Beachfront location",
- "Award-winning restaurant"
], - "dining": "dining",
- "location": "location",
- "attractions": "attractions",
- "knowBeforeYouGo": "knowBeforeYouGo",
- "headline": "headline",
- "remarks": "remarks"
}, - "language": "en"
}
], - "facts": {
- "key": [
- "facts",
- "facts"
]
}, - "checkin": {
- "instructions": "instructions",
- "beginTime": "beginTime",
- "endTime": "endTime"
}, - "ratings": {
- "property": {
- "stars": 4.5
}, - "guest": {
- "service": 2,
- "count": 48382,
- "overall": 3,
- "location": 4,
- "comfort": 5,
- "cleanliness": 4,
- "quality": 4
}
}, - "contact": {
- "phone": "phone",
- "fax": "fax",
- "email": "info@hotel.com"
}, - "name": "Grand Hotel Plaza",
- "category": "HOTEL",
- "giataId": "123456",
- "propertyId": "12345",
- "checkout": {
- "instructions": "instructions",
- "beginTime": "beginTime",
- "endTime": "endTime"
}
}, - {
- "supplySource": "supplySource",
- "images": [
- {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}
], - "address": {
- "country": "United States",
- "coordinate": {
- "latitude": 40.7128,
- "longitude": -74.006
}, - "city": "New York",
- "countryCode": "US",
- "postalCode": "10001",
- "addressLine1": "123 Main Street",
- "addressLine2": "Apt A",
- "state": "NY"
}, - "dates": {
- "added": "added",
- "updated": "updated"
}, - "descriptions": [
- {
- "description": {
- "general": "general",
- "amenities": "amenities",
- "rooms": "rooms",
- "highlights": [
- "Beachfront location",
- "Award-winning restaurant"
], - "dining": "dining",
- "location": "location",
- "attractions": "attractions",
- "knowBeforeYouGo": "knowBeforeYouGo",
- "headline": "headline",
- "remarks": "remarks"
}, - "language": "en"
}, - {
- "description": {
- "general": "general",
- "amenities": "amenities",
- "rooms": "rooms",
- "highlights": [
- "Beachfront location",
- "Award-winning restaurant"
], - "dining": "dining",
- "location": "location",
- "attractions": "attractions",
- "knowBeforeYouGo": "knowBeforeYouGo",
- "headline": "headline",
- "remarks": "remarks"
}, - "language": "en"
}
], - "facts": {
- "key": [
- "facts",
- "facts"
]
}, - "checkin": {
- "instructions": "instructions",
- "beginTime": "beginTime",
- "endTime": "endTime"
}, - "ratings": {
- "property": {
- "stars": 4.5
}, - "guest": {
- "service": 2,
- "count": 48382,
- "overall": 3,
- "location": 4,
- "comfort": 5,
- "cleanliness": 4,
- "quality": 4
}
}, - "contact": {
- "phone": "phone",
- "fax": "fax",
- "email": "info@hotel.com"
}, - "name": "Grand Hotel Plaza",
- "category": "HOTEL",
- "giataId": "123456",
- "propertyId": "12345",
- "checkout": {
- "instructions": "instructions",
- "beginTime": "beginTime",
- "endTime": "endTime"
}
}, - {
- "supplySource": "supplySource",
- "images": [
- {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}, - {
- "caption": "Hotel Exterior",
- "resolutions": [
]
}
], - "address": {
- "country": "United States",
- "coordinate": {
- "latitude": 40.7128,
- "longitude": -74.006
}, - "city": "New York",
- "countryCode": "US",
- "postalCode": "10001",
- "addressLine1": "123 Main Street",
- "addressLine2": "Apt A",
- "state": "NY"
}, - "dates": {
- "added": "added",
- "updated": "updated"
}, - "descriptions": [
- {
- "description": {
- "general": "general",
- "amenities": "amenities",
- "rooms": "rooms",
- "highlights": [
- "Beachfront location",
- "Award-winning restaurant"
], - "dining": "dining",
- "location": "location",
- "attractions": "attractions",
- "knowBeforeYouGo": "knowBeforeYouGo",
- "headline": "headline",
- "remarks": "remarks"
}, - "language": "en"
}, - {
- "description": {
- "general": "general",
- "amenities": "amenities",
- "rooms": "rooms",
- "highlights": [
- "Beachfront location",
- "Award-winning restaurant"
], - "dining": "dining",
- "location": "location",
- "attractions": "attractions",
- "knowBeforeYouGo": "knowBeforeYouGo",
- "headline": "headline",
- "remarks": "remarks"
}, - "language": "en"
}
], - "facts": {
- "key": [
- "facts",
- "facts"
]
}, - "checkin": {
- "instructions": "instructions",
- "beginTime": "beginTime",
- "endTime": "endTime"
}, - "ratings": {
- "property": {
- "stars": 4.5
}, - "guest": {
- "service": 2,
- "count": 48382,
- "overall": 3,
- "location": 4,
- "comfort": 5,
- "cleanliness": 4,
- "quality": 4
}
}, - "contact": {
- "phone": "phone",
- "fax": "fax",
- "email": "info@hotel.com"
}, - "name": "Grand Hotel Plaza",
- "category": "HOTEL",
- "giataId": "123456",
- "propertyId": "12345",
- "checkout": {
- "instructions": "instructions",
- "beginTime": "beginTime",
- "endTime": "endTime"
}
}
], - "batchToken": "import_20250128_120000_abc123"
}