Genom att lägga till en webhook eller callback URL får hotellet möjligheten att ta emot bokningsinformation i JSON-format via en URL.

En webhook skickar ut en callback till en viss URL och triggas varje gång en bokning skapas, ändras eller avbokas.

Webhook/callback-funktionen triggas av:

  • Sirvoys bokningsformulär
  • Formuläret för visa/ändra bokning
  • Bokningar från bokningskanaler

För att aktivera funktionen går man till: Inställningar -> Ert konto -> Callback URL.

Den mottagande servern måste svara med svarskod 200 (OK), annars kommer anropet att återupprepas var 30:e minut upp till 10 gånger. För att säkerställa sekretess stöder vi endast HTTPS med TLS-version 1.2 och senare. HTTPS-certifikatet måste också vara giltigt, annars skickas ingen data. Bokingsinformationen kommer skickas som en HTTP POST med JSON.

Se också till att din server kommer att svara på en HTTP GET-request med 200 OK. Denna används som en “hälsokontroll” som anropas då och då för att se till att din endpoint är aktiv. Men någon data kommer aldrig att skickas till dig med en HTTP GET. 

Callbacks kommer att göras från nedanstående IP-intervall. Om du vill begränsa trafik till din server måste alla nedanstående intervall vara tillåtna i din brandvägg:

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

Servrarna som skapar callbacks är dual-stack med både ipv4- och ipv6-anslutning. Om du lägger till både ipv4- och ipv6-adresser till ditt domännamn kommer callback att ske till den server som svarar först.

Nedan följer några exempel på genererad data i JSON -format när en ny bokning skapas:

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

Så här kan det se ut efter att en kontantfaktura har skapats och en betalning flyttats till en faktura – betalningar och fakturor som denna bokning har ingår också i callback. Varje annan ändring resulterar också i en callback med uppgifter om hur bokningen ser ut nu:

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