Réception machine d'une réservation OTA (OTA_HotelResNotifRQ → OTA_HotelResNotifRS)
const url = 'https://example.com/v1/distribution/ota/reservations';const options = { method: 'POST', headers: {'X-API-Key': '<X-API-Key>', 'Content-Type': 'text/xml'}, body: 'example'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/v1/distribution/ota/reservations \ --header 'Content-Type: text/xml' \ --header 'X-API-Key: <X-API-Key>' \ --data exampleEndpoint machine-à-machine (clé API X-API-Key porteuse de distribution.inbound — jamais un JWT humain). Corps BRUT text/xml ≤ 1 Mo : message push OTA_HotelResNotifRQ (OpenTravel 2003/05, book/modify/cancel). Réponse OTA_HotelResNotifRS : Success (livré / ack idempotent), Errors EWT 1 (technique, redélivrer), decline EWT 3 non-retryable (survente code 322, quarantaine code 450 — file de revue /v1/distribution/ota/review). Hors contrat public (ADR-00D84/00D102 D4).
Authorizations
Section intitulée « Authorizations »Request Body required
Section intitulée « Request Body required »OTA_HotelResNotifRQ (SOAP Envelope accepté)
OTA_HotelResNotifRQ (SOAP Envelope accepté)
Responses
Section intitulée « Responses »OTA_HotelResNotifRS (Success, Errors retryable ou decline non-retryable)
XML non parsable / RQ malformée — aucune ligne d’ingest
Clé API absente/invalide, ou sujet non-machine
Clé API sans la permission distribution.inbound