Het toevoegen van een webhook of callback-URL geeft een hotel de mogelijkheid om boekingsdetails in JSON-formaat te ontvangen via een URL.

Een webhook stuurt een callback naar een bepaalde URL en wordt geactiveerd telkens wanneer een boeking wordt gemaakt, gewijzigd of geannuleerd.

De webhook/callback-functie wordt geactiveerd door:

  • de Sirvoy Booking Engine;
  • het overzicht boekingsformulier;
  • Verkoopkanaalboekingen.

Het kan worden geactiveerd in Instellingen -> Uw account -> Callback-URL.

De ontvangende server moet hierop reageren met http code 200 (OK), anders zal de oproep iedere 30 minuten opnieuw gedaan worden tot 10 keer toe. We ondersteunen alleen HTTPS met TLS versie 1.2 en hoger om privacy en vertrouwelijkheid te garanderen. Het HTTPS-certificaat moet ook geldig zijn, anders worden er geen gegevens verzonden. De boekingsgegevens worden verzonden als een POST met de JSON en de request-body.

Zorg er ook voor dat uw server reageert op een HTTP GET-verzoek met 200 OK. Dit wordt gebruikt als een statuscontrole die zo nu en dan wordt aangeroepen om ervoor te checken of uw eindpunt actief is. Maar er zullen nooit gegevens naar u worden gepusht met behulp van een HTTP GET. 

Er worden callbacks gemaakt vanuit de onderstaande IP-adres groepen. Als u het verkeer naar uw server wilt beperken, moeten alle onderstaande bereiken zijn toegestaan in uw firewall:

  • 34.243.166.60
  • 52.18.11.99
  • 63.34.80.48
  • 54.194.0.85
  • 2a05:d018:e34:5300::/56

De servers die de callbacks uitvoeren, zijn dual-stack met zowel ipv4- als ipv6-connectiviteit. Als u zowel ipv4- als ipv6-adressen aan uw domeinnaam toevoegt, worden callbacks gemaakt naar de server die als eerste reageert.

Hieronder staan enkele voorbeelden van gegevens die in JSON-formaat worden gegenereerd wanneer er een nieuwe boeking wordt gemaakt:

{
   "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":[
      
   ]
}

 

Zo kan het eruit zien nadat een kassabon is aangemaakt en een betaling is verplaatst naar een factuur – betalingen en facturen die deze boeking heeft, worden ook opgenomen in de terugbelactie. Elke andere wijziging resulteert ook in een terugbelverzoek met de gegevens hoe de boeking er nu uitziet:

{
   "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":""
            }
         ]
      }
   ]
}