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.

  • Tilbake til Sirvoy
  • Kontakt
  • Logg inn
Norwegian
US English (US)
FR French
DE German
ES Spanish
NL Dutch
SE Swedish
FI Finnish
NO Norwegian
DA Danish
  • Startside
  • Min konto
  • Eksport og API

Legg til 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.

  • Sett i gang
    Veiledning for oppsett Import av bookinger
  • Om Sirvoy
    Generelt Teknisk informasjon Sikkerhet og sikkerhetskopier
  • Rom og romtyper
    Rom og romtyper Kategorisér romtyper Tilby tillegg og ekstrautstyr
  • Bookingmotorer
    Nettsidebygger Installasjon på din nettside Tilpass bookingmotoren Design og CSS Felter for input Sjekk booking-funksjonen Sporing
  • Channel Manager
    Still inn nye kanaler Kartlegging av romtypene dine Generalt Oppdateringer av priser og tilgjengelighet Overbooking
  • Finanser
    Sette opp en betalingsløsning Ordne betalinger Fakturaer og kvitteringer Regnskapsføring Skatter og tilleggsavgifter
  • Bookinger
    Endre bookinger Se bookinger Maler for meldinger og automatiske meldinger Kommunikasjon Lag plan for rengjøring og andre oppgaver
  • Priser og restriksjoner
    Priser og avslag Restriksjoner Tilbud- og kampanjekode
  • Min konto
    Tilpass kontoen din Abonnement Statistikk Eksport og API
+ Vis mer

Innholdsfortegnelse

Viktige detaljer Tekniske krav: Håndtering av varsler om bookinger og mislykkede webhooks IP Whitelisting Eksempler på JSON-format

 

Ved å legge til en webhook for bookinghendelser sendes bookingdetaljer i JSON-format til en URL hver gang en booking opprettes, endres, kanselleres eller gjenopprettes.

Viktige detaljer

  • Teknisk kompetanse nødvendig: Å sette opp og administrere webhooks krever teknisk kompetanse. Ta kontakt med en webutvikler om nødvendig.
  • Aktivering: Aktiver vår booking event webhook under Innstillinger -> Sirvoy-konto -> Booking event webhook.
  • Begrensninger for webhooks: Det kan bare brukes én webhook per Sirvoy-konto.
  • Booking event webhook funksjonen trigges fra: En webhook for bookinghendelser sender en callback til en spesifisert URL hver gang en booking opprettes, endres, kanselleres eller gjenopprettes.

Tekniske krav:

  • Responskode: Mottaksserveren må svare med HTTP-koden 200 (OK). Hvis ikke, vil forespørselen bli gjentatt ti ganger med eksponentiell back-off opp til 10 ganger før den avsluttes.
  • HTTPS og TLS: Vi støtter bare HTTPS ved bruk av TLS versjon 1.2 og nyere for å garantere personvern og konfidensialitet. HTTPS-sertifikatet må også være gyldig, ellers blir ingen data sendt.
  • Tilstandskontroll: Serveren din må svare på HTTP GET-forespørsler med `200 OK` for tilstandskontroll. Ingen data vil bli sendt ved bruk av HTTP GET, men det sikrer at endepunktet ditt er aktivt.

Håndtering av varsler om bookinger og mislykkede webhooks

Vi sender ut et varsel for hver oppdatering av bookingen, og hendelser kan leveres i ikke-kronologisk rekkefølge. Bruk «generatedAt»-tidsstempel for å lage en nøyaktig tidslinje over hendelser. Alle varsler kommer til å inneholde en fullstendig JSON-representasjon av bookingen på det aktuelle tidspunktet.

Dersom endepunktet ditt begynner å feile og ikke returnerer vellykkede statuskoder på våre henvendelser, kommer vi til å informere deg om dette via e-post. Hvis det etter en uke fremdeles ikke fungerer, vil webhooken bli fjernet etter at du har fått et siste varsel.

IP Whitelisting

For å sikre vellykkede webhook-callbacks må du tillate følgende IP-intervaller i brannmuren:

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

Callbacks utløses fra en server som er dual-stack (dobbel protokollstakk) som kan håndtere både IPv4 og IPv6. Om du legger til både IPv4 og IPv6-adressen til ditt domenenavn, vil en webhook callback bli sendt til serveren som svarer først.

Eksempler på JSON-format

Eksempel på JSON-formatet for nye bookinger:

{
	"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-formatet når du oppretter en kontantfaktura og når en betaling legges 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
            	}
        	]
    	}
	]
}

 

For spørsmål eller ytterligere hjelp, ta kontakt med vårt supportteam.

bestillingshendelse legge til

Fant du det du lette etter?

Ja
Nei
Noe som virker merkelig? Fortell oss det.

Relaterte artikler

  • En raskere måte å lage bookinger på
  • Legg til et varsel på en booking

Ønsker du hjelp med Sirvoy?

Da er du på rett sted.

  • Sirvoy
  • Logg inn
  • Kontakt

©2025 Sirvoy . All Rights reserved.

Knowledge Base Software by Helpjuice

Expand