Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Sirvoy Forside
  • Kontakt os
  • Log ind
Danish
US English (US)
FR French
DE German
ES Spanish
NL Dutch
SE Swedish
FI Finnish
NO Norwegian
DA Danish
  • Startside
  • Min konto
  • Eksportering & API

Tilføjelse af en Booking Event Webhook

Written by johana

Updated at January 24th, 2025

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Kom godt i gang
    Opsætningsguider Import af reservationer
  • Om Sirvoy
    Generelt Teknisk Sikkerhed & Backups
  • Værelser og værelsestyper
    Værelser & Værelsestyper Kategorisering af Værelsestyper Tilbyde Tilvalg eller Ekstra
  • Reservationsformularer
    Hjemmesidebygger Installering på jeres Hjemmeside Tilpasning af Bookingmotoren Design & CSS Intastningsfelter Søg-reservation-funktion Tracking
  • Kanaladministrator
    Opsætning af Nye Kanaler Sortering af Værelsestyper Generelt Pris- & Tilgængelighedsopdateringer Overbookinger
  • Økonomi
    Opsætning af Betalingsløsning Håndtering af Betalinger Fakturaer & Kvitteringer Regnskab Skatter & Afgifter
  • Reservationer
    Ændring af Bookinger Se bookinger Skabelon til Meddelelser & Automatiske Meddelelser Kommunikation Planlægning af Rengøring & andre Opgaver
  • Priser og begrænsninger
    Priser & Rabatter Begrænsninger Reklame- & Rabatkoder
  • Min konto
    Tilpas jeres Konto Abonnement Statistikker Eksportering & API
+ Mere

Indholdsoversigt

Vigtige detaljer Tekniske krav: Håndtering af reservationsnotifikationer og webhook-fejl IP Whitelisting Eksempler på JSON-format

 

Når man tilføjer en bookingevent-webhook, sendes reservationsoplysninger i JSON-format til en URL, hver gang en reservation oprettes, ændres, annulleres eller gendannes.

Vigtige detaljer

  • Teknisk viden påkrævet: Opsætning og administration af webhooks kræver en vis grad af teknisk ekspertise. Kontakt en webudvikler, hvis det er nødvendigt.
  • Aktivering: Aktivér en bookingevent-webhook under Indstillinger -> Sirvoy-konto -> Webhook til bookingbegivenhed.
  • Webhook begrænsninger: Man kan kun have én aktiv webhook pr. Sirvoy-konto.
  • Webhook udløser tilbagekald: En bookingevent-webhook sender et tilbagekald til en specificeret URL, hver gang en reservation oprettes, ændres, annulleres eller gendannes.

Tekniske krav:

  • Responskode: Den modtagende server skal svare med statuskoden `200 OK`. Hvis ikke, vil opkaldet blive forsøgt igen ti gange med eksponentiel back-off op til ti gange, før det kasseres.
  • HTTPS og TLS: Vi understøtter kun HTTPS ved hjælp af TLS version 1.2 eller højere for at sikre en høj grad af databeskyttelse og fortrolighed. Sørg for, at dit HTTPS-certifikat er gyldigt, ellers sendes der ikke data.
  • Helbredstjek: Din server skal svare på HTTP GET-anmodninger med `200 OK` for at gennemføre helbredstjekket. Der sendes ingen data ved hjælp af HTTP GET, men det sikrer, at dit endpoint er aktivt.

Håndtering af reservationsnotifikationer og webhook-fejl

Vi sender en notifikation ud for hver reservationsopdatering, og det hænder at events leveres uden at være i rækkefølge. Brug “generatedAt”-tidsstemplet til at opbygge en nøjagtig tidslinje for de forskellige events. Hver meddelelse indeholder den fulde JSON-repræsentation af reservationen på det pågældende tidspunkt.

Hvis dit endpoint begynder at fejle og ikke returnerer vellykkede statuskoder ved vores opkald, giver vi dig besked via e-mail. Hvis den fortsætter med at fejle i en uge, vil webhooken blive fjernet efter en sidste meddelelse.

IP Whitelisting

For at sikre vellykkede webhook-tilbagekald skal du tillade følgende IP-intervaller i din firewall:

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

Serverne, der foretager tilbagekaldene, er dual-stack med både IPv4- og IPv6-forbindelse. Hvis du tilføjer både IPv4- og IPv6 -adresser til dit domænenavn, vil tilbagekald blive foretaget til den server, der er den første til at svare.

Eksempler på JSON-format

Eksempel på JSON-struktur for nye reservationer:

{
	"version": "2.0",
	"generatedAt": "2024-05-31T12:11:53.639+00:00",
	"event": "new",
	"propertyId": 1,
	"bookingId": 26006,
	"channelBookingId": null,
	"bookingDate": "2024-05-31T12:09:16+00:00",
	"arrivalDate": "2024-06-01",
	"departureDate": "2024-06-04",
	"cancelled": false,
	"eta": "10:00",
	"totalAdults": 4,
	"guest": {
    	"firstName": "John",
    	"lastName": "Doe",
    	"businessName": "Acme",
    	"address": "Fancy street",
    	"postcode": "11-111",
    	"city": "York",
    	"state": "NY",
    	"country": "US",
    	"phone": "+16033336666",
    	"email": "guest@email.com",
    	"passportNo": "XX11122223333",
    	"language": "en",
    	"message": "Additional comment added by guest"
	},
	"guestReference": "2103001",
	"internalComment": null,
	"couponCode": null,
	"bookingSource": "Front desk",
	"bookingIsCheckedIn": false,
	"bookingIsCheckedOut": false,
	"bookingIsConfirmed": true,
	"customFields": [
    	{
        	"name": "Custom text field name",
        	"value": "text added by guest"
    	},
    	{
        	"name": "Custom checkbox unchecked",
        	"value": false
    	},
    	{
        	"name": "Custom checkbox checked",
        	"value": true
    	}
	],
	"rooms": [
    	{
        	"RoomTypeName": "Basic room",
        	"RoomTypeDescription": "Basic room",
        	"RoomName": "101",
        	"RoomId": 2,
        	"arrivalDate": "2024-06-01",
        	"departureDate": "2024-06-04",
        	"adults": 2,
        	"quantity": 3,
        	"price": 100,
        	"roomTotal": 300,
        	"guestName": null,
        	"comment": null,
        	"ledgerAccount": null
    	},
    	{
        	"RoomTypeName": "Fancy room",
        	"RoomTypeDescription": "Fancy room",
        	"RoomName": "182",
        	"RoomId": 83,
        	"arrivalDate": "2024-06-01",
        	"departureDate": "2024-06-04",
        	"adults": 2,
        	"quantity": 3,
        	"price": 100,
        	"roomTotal": 300,
        	"guestName": null,
        	"comment": null,
        	"ledgerAccount": null
    	}
	],
	"additionalItems": [
    	{
        	"description": "Breakfast",
        	"specificDate": null,
        	"quantity": 12,
        	"price": 20,
        	"itemTotal": 240,
        	"ledgerAccount": null
    	}
	],
	"bookedCategory": null,
	"currency": "EUR",
	"totalPrice": 840,
	"totalSurcharges": 84,
	"totalPriceIncludingSurcharges": 924,
	"payments": [],
	"invoices": []
}

 

Eksempel på JSON-struktur ved oprettelse af en kontantkvittering og tilføjelse af en betaling til en faktura:

{
	"version": "2.0",
	"generatedAt": "2024-05-31T12:15:23.895+00:00",
	"event": "modified",
	"propertyId": 1,
	"bookingId": 26006,
	"channelBookingId": null,
	"bookingDate": "2024-05-31T12:09:16+00:00",
	"arrivalDate": "2024-06-01",
	"departureDate": "2024-06-04",
	"cancelled": false,
	"eta": "10:00",
	"totalAdults": 4,
	"guest": {
    	"firstName": "John",
    	"lastName": "Doe",
    	"businessName": "Acme",
    	"address": "Fancy street",
    	"postcode": "11-111",
    	"city": "York",
    	"state": "NY",
    	"country": "US",
    	"phone": "+16033336666",
    	"email": "guest@email.com",
    	"passportNo": "XX11122223333",
    	"language": "en",
    	"message": "Additional comment added by guest"
	},
	"guestReference": "2103001",
	"internalComment": null,
	"couponCode": null,
	"bookingSource": "Front desk",
	"bookingIsCheckedIn": false,
	"bookingIsCheckedOut": false,
	"bookingIsConfirmed": true,
	"customFields": [
    	{
        	"name": "Custom text field name",
        	"value": "text added by guest"
    	},
    	{
        	"name": "Custom checkbox unchecked",
        	"value": false
    	},
    	{
        	"name": "Custom checkbox checked",
        	"value": true
    	}
	],
	"rooms": [
    	{
        	"RoomTypeName": "Basic room",
        	"RoomTypeDescription": "Basic room",
        	"RoomName": "101",
        	"RoomId": 2,
        	"arrivalDate": "2024-06-01",
        	"departureDate": "2024-06-04",
        	"adults": 2,
        	"quantity": 3,
        	"price": 100,
        	"roomTotal": 300,
        	"guestName": null,
        	"comment": null,
        	"ledgerAccount": null
    	},
    	{
        	"RoomTypeName": "Fancy room",
        	"RoomTypeDescription": "Fancy room",
        	"RoomName": "182",
        	"RoomId": 83,
        	"arrivalDate": "2024-06-01",
        	"departureDate": "2024-06-04",
        	"adults": 2,
        	"quantity": 3,
        	"price": 100,
        	"roomTotal": 300,
        	"guestName": null,
        	"comment": null,
        	"ledgerAccount": null
    	}
	],
	"additionalItems": [
    	{
        	"description": "Breakfast",
        	"specificDate": null,
        	"quantity": 12,
        	"price": 20,
        	"itemTotal": 240,
        	"ledgerAccount": null
    	}
	],
	"bookedCategory": null,
	"currency": "EUR",
	"totalPrice": 840,
	"totalSurcharges": 84,
	"totalPriceIncludingSurcharges": 924,
	"payments": [],
	"invoices": [
    	{
        	"invoiceNumber": "41002",
        	"invoiceDate": "2024-06-01",
        	"dueDate": "2024-06-01",
        	"receiver": "Acme",
        	"address": [
            	"John Doe",
            	"Fancy street",
            	"York, NY 11-111",
            	"United States"
        	],
        	"roundingAmount": 0,
        	"invoiceTotal": 924,
        	"originInvoice": null,
        	"invoiceRows": [
            	{
                	"quantity": 3,
                	"price": 100,
                	"rowTotal": 300,
                	"ledgerAccount": "100",
                	"rowText": "Basic room",
                	"vatRate": 0,
                	"vatAmount": 0,
                	"bookingId": 26006
            	},
            	{
                	"quantity": 3,
                	"price": 100,
                	"rowTotal": 300,
                	"ledgerAccount": "100",
                	"rowText": "Fancy room",
                	"vatRate": 0,
                	"vatAmount": 0,
                	"bookingId": 26006
            	},
            	{
                	"quantity": 12,
                	"price": 20,
                	"rowTotal": 240,
                	"ledgerAccount": "200",
                	"rowText": "Breakfast",
                	"vatRate": 0,
                	"vatAmount": 0,
                	"bookingId": 26006
            	},
            	{
                	"quantity": 1,
                	"price": 84,
                	"rowTotal": 84,
                	"ledgerAccount": "300",
                	"rowText": "surcharge",
                	"vatRate": 0,
                	"vatAmount": 0,
                	"bookingId": 26006
            	}
        	],
        	"payments": [
            	{
                	"paymentId": 28,
                	"createdAt": "2024-05-31T12:15:09+00:00",
                	"valueDate": "2024-06-01",
                	"amount": 924,
                	"ledgerAccount": "3606",
                	"paymentReference": null,
                	"comment": null
            	}
        	]
    	}
	]
}

 

Hvis du har spørgsmål eller brug for yderligere hjælp, kontakt vores supportteam.

webhook booking event

Var dette indhold nyttigt?

Ja
Nej
Er der noget der ser galt ud? Giv os besked.

Relaterede artikler

  • Sådan opretter du bookinger hurtigere
  • Tilføj en alarm til en booking
  • Åbn eksportfilen i CSV-format i Numbers (Apple)
  • Forbindelse til apps ved hjælp af SiteMinder Exchange

Har du brug for hjælp med Sirvoy?

Du er kommet til det helt rette sted.

  • Sirvoy
  • Log ind
  • Kontakt

©2025 Sirvoy . All Rights reserved.

Knowledge Base Software by Helpjuice

Expand