Varaustapahtuman webhookin lisääminen antaa hotellille mahdollisuuden vastaanottaa varaustiedot JSON-muodossa URL-osoitteen kautta.
Varaustapahtuman webhook lähettää takaisinsoittopyynnön annettuun URL-osoitteeseen ja käynnistyy aina, kun varaus luodaan, sitä muutetaan tai peruutetaan.
Varaustapahtuman webhook-ominaisuus käynnistyy:
- Sirvoyn varausmoottorista
- Tarkastele varausta -lomakkeesta
- Jakelukanavilta tulevista varauksista
Se voidaan aktivoida kohdassa Asetukset -> Tilisi -> Varaustapahtuman Webhook.
Vastaanottavan palvelimen on vastattava vastauskoodilla 200 OK, muuten kutsua yritetään uudelleen 30 minuutin välein 3 kertaan asti. Tuemme ainoastaan HTTPS:ää käyttäen TLS versiota 1.2 tai uudempaa, yksityisyyden varmistamiseksi. HTTPS-varmenteen täytyy myös olla voimassaoleva, muuten tietoja ei lähetetä. Varaustiedot lähetetään POST:ina joka sisältää JSON:in ja kutsun tekstiosan.
Varmista myös, että palvelimesi vastaa HTTP GET -pyyntöihin 200 OK. Tätä kutsua käytetään toimintatarkistuksena ja se tehdään silloin tällöin sen varmistamiseksi että päätepisteesi on käytössä. Mitään tietoja ei kuitenkaan siirretä käyttäen HTTP GET:iä.
Webhook-kutsut tehdään alla olevilta IP-alueilta. Jos haluat rajoittaa liikennettä palvelimellesi, kaikki seuraavat osoitealueet tarvitset oikeuden palomuurisi asetuksissa:
- 34.243.166.60
- 52.18.11.99
- 63.34.80.48
- 54.194.0.85
- 2a05:d018:e34:5300::/56
Palvelimet, jotka tekevät takaisinkutsun, ovat kaksipinoisia, joissa on sekä ipv4- että ipv6-yhteys. Jos lisäät sekä ipv4 että ipv6 osoitteet toimialuenimeesi, vastakutsu tehdään palvelimeen joka vastaa siihen ensimmäisenä.
Alla on esimerkkejä JSON-muodossa luoduista tiedoista, kun uusi varaus luodaan:
{
"version":"1.0",
"callbackId":2464764,
"generatedTime":"2021-09-08T11:41:06+00:00",
"event":"new",
"propertyId":1,
"bookingId":26006,
"channelBookingId":null,
"bookingDate":"2021-09-08T11:37:42+00:00",
"arrivalDate":"2021-09-08",
"departureDate":"2021-09-10",
"cancelled":false,
"eta":null,
"totalAdults":2,
"guest":{
"firstName":"John",
"lastName":"Doe",
"businessName":"Acme Corporation",
"address":"123 Main St",
"postcode":"17101",
"city":"AnyTown",
"state":"DE",
"country":"US",
"phone":"+17184547453",
"email":"john.doe@mailservice.us",
"passportNo":null,
"language":"en",
"message":"Your hotel looks nice :)"
},
"guestReference":null,
"internalComment":null,
"couponCode":null,
"bookingSource":"Front desk",
"bookingIsProvisional":false,
"bookingProvisionalId":null,
"bookingIsCheckedIn":false,
"bookingIsCheckedOut":false,
"customFields":[
{
"name":"Custom field",
"value":"custom field text filled by guest"
},
{
"name":"Checkbox",
"value":true
},
{
"name":"new checkbox",
"value":false
}
],
"rooms":[
{
"RoomTypeName":"Basic room",
"RoomTypeDescription":"As basic as it gets, with a small window included.",
"RoomName":"110",
"arrivalDate":"2021-09-08",
"departureDate":"2021-09-10",
"adults":2,
"quantity":2,
"price":100,
"roomTotal":200,
"guestName":null,
"comment":null,
"ledgerAccount":null
}
],
"additionalItems":[
{
"description":"Cleaning Fee",
"specificDate":null,
"quantity":1,
"price":0,
"itemTotal":0,
"ledgerAccount":null
}
],
"bookedCategory":null,
"currency":"EUR",
"totalPrice":200,
"totalSurcharges":20,
"totalPriceIncludingSurcharges":220,
"payments":[
],
"invoices":[
]
}
Tältä vastakutsu voi näyttää kun käteislasku on luotu ja kun maksu siirretään laskuun – tämän varauksen maksut ja laskut ovat myös sisällytetty tähän vastakutsuun. Kaikki muut muutokset johtavat myös webhookin takaisinkutsuun tietojen kanssa, ja tältä tämän esimerkin varaustapahtuman webhook näyttää nyt:
{
"version":"1.0",
"callbackId":2464765,
"generatedTime":"2021-09-08T11:45:01+00:00",
"event":"modified",
"propertyId":1,
"bookingId":26006,
"channelBookingId":null,
"bookingDate":"2021-09-08T11:37:42+00:00",
"arrivalDate":"2021-09-08",
"departureDate":"2021-09-10",
"cancelled":false,
"eta":null,
"totalAdults":2,
"guest":{
"firstName":"John",
"lastName":"Doe",
"businessName":"Acme Corporation",
"address":"123 Main St",
"postcode":"17101",
"city":"AnyTown",
"state":"DE",
"country":"US",
"phone":"+17184547453",
"email":"john.doe@mailservice.us",
"passportNo":null,
"language":"en",
"message":"Your hotel looks nice :)"
},
"guestReference":null,
"internalComment":null,
"couponCode":null,
"bookingSource":"Front desk",
"bookingIsProvisional":false,
"bookingProvisionalId":null,
"bookingIsCheckedIn":false,
"bookingIsCheckedOut":false,
"customFields":[
{
"name":"Custom field",
"value":"custom field text filled by guest"
},
{
"name":"Checkbox",
"value":true
},
{
"name":"new checkbox",
"value":false
}
],
"rooms":[
{
"RoomTypeName":"Basic room",
"RoomTypeDescription":"As basic as it gets, with a small window included.",
"RoomName":"110",
"arrivalDate":"2021-09-08",
"departureDate":"2021-09-10",
"adults":2,
"quantity":2,
"price":100,
"roomTotal":200,
"guestName":null,
"comment":null,
"ledgerAccount":null
}
],
"additionalItems":[
{
"description":"Cleaning Fee",
"specificDate":null,
"quantity":1,
"price":0,
"itemTotal":0,
"ledgerAccount":null
}
],
"bookedCategory":null,
"currency":"EUR",
"totalPrice":200,
"totalSurcharges":20,
"totalPriceIncludingSurcharges":220,
"payments":[
],
"invoices":[
{
"invoiceNumber":"41001",
"invoiceDate":"2021-09-08",
"dueDate":"2021-09-08",
"receiver":"Acme Corporation",
"address":[
"John Doe",
"123 Main St",
"AnyTown, DE 17101",
"United States"
],
"roundingAmount":0,
"invoiceTotal":220,
"originInvoice":null,
"invoiceRows":[
{
"quantity":2,
"price":100,
"rowTotal":200,
"ledgerAccount":"3010",
"rowText":"Basic room",
"vatRate":0,
"vatAmount":0
},
{
"quantity":1,
"price":20,
"rowTotal":20,
"ledgerAccount":"sur1",
"rowText":"10",
"vatRate":0,
"vatAmount":0
}
],
"payments":[
{
"amount":220,
"ledgerAccount":"",
"paymentReference":null,
"comment":""
}
]
}
]
}