Der Hauptunterschied zwischen der allgemeinen Funktionsweise von Webhooks und APIs:
- APIs senden Anfragen, ohne zu wissen, ob sie als Antwort eine Datenaktualisierung erhalten oder nicht.
- Webhooks empfangen Anfragen über HTTP POSTs von externen Systemen nur dann, wenn diese Datenaktualisierungen haben.
Webhooks können dann den gesamten Integrations-Workflow „aktivieren“, um auf diese Aktualisierungen zu reagieren. Diese Aktivierung erfolgt aus einem Grund (weil es eine tatsächliche Aktualisierung zu verarbeiten gibt) und nicht nur, weil es Zeit für eine weitere Prüfung auf Aktualisierungen ist.
Webhooks versorgen außerdem andere Anwendungen und Dienste mit Informationen in (nahezu) Echtzeit. Das ist auch über APIs möglich, erfordert aber mehr Aufwand und ist extrem ressourcenintensiv. Webhooks machen Echtzeit ganz einfach.
Hinweis: Hier findest du den Artikel Die ersten Schritte mit der API.
1. Erstelle deinen eigenen Webhook
- Gehe in deinem Regiondo Konto zu Konnektivität > Webhooks.
- Gib deinem Webhook einen Namen. Den Namen kannst du frei wählen. Beispiel: Google Notification
- Wähle einen der 3 Trigger-Typen: Buchung, Kunde oder Ticket.
- Gib die Payload URL ein. Das ist die URL, die aufgerufen wird, wenn der Webhook-Trigger im Dashboard ausgelöst wird.
- Teste die URL, bevor du den Webhook speicherst/aktivierst.
2. Antwortwerte
2.1. Buchung (Booking)
{
"booking_key": "1-2605248-44215-75508-1556874000",
"product_id": "44215",
"product_supplier_id": "9357",
"option_id": "174184",
"variation_id": "75508",
"order_id": "2605248",
"option_name": "Adulte",
"variation_name": "Tours en Français ",
"ticket_name": "La route de Bordeaux",
"product_name": "La route de Bordeaux",
"qty": "1",
"qty_cancelled": "0",
"event_date_time": "2019-05-03T09:00:00+02:00",
"date_applied_for": "2019-05-03T09:00:00+02:00",
"created_at": "2019-04-30T11:02:45+02:00",
"type": "booking",
"status": "approved",
"external_id": null,
"email": "customer.name@regiondo.com",
"phone_number": null,
"first_name": "Customer",
"last_name": "Name",
"duration_type": "minute",
"duration_value": "50.00",
"order_number": "1556614985033893200",
"distribution_channel_partner": "Company Short-name or Name",
"contact_data": {
"firstname": "Customer",
"lastname": "Name",
"email": "customer.name@regiondo.com",
"telephone": null,
"is_subscribed": "no"
}
}2.2. Kunde (Customer)
{
"customer_email": "customer.name@regiondo.com",
"customer_firstname": "Customer",
"customer_lastname": "Name",
"customer_phone": "",
"customer_birth_date": null,
"customer_street": null,
"customer_postcode": null,
"customer_city": null,
"customer_country": null,
"customer_newsletter_status": 0,
"customer_newsletter_order": null,
"customer_newsletter_datetime": null,
"customer_newsletter_ip": null
}{
"customer_email": "customer.name@regiondo.com",
"customer_firstname": "Customer",
"customer_lastname": "Name",
"customer_phone": "",
"customer_birth_date": null,
"customer_street": "Neumarkter Str. 63",
"customer_postcode": "81673",
"customer_city": "München",
"customer_country": "DE",
"customer_newsletter_status": 0,
"customer_newsletter_order": null,
"customer_newsletter_datetime": null,
"customer_newsletter_ip": null
}2.3. Ticket
{
"code": "RE57WGQH0G6S",
"status": "processing",
"validation_status": "not validated",
"data": {
"validated_at": "2019-04-30T11:03:11+02:00",
"product_info": {
"product_name": "La route de Bordeaux",
"variation_name": "Tours en Français ",
"option_name": "Adulte",
"ticket_datetime": "2019-05-03T09:00:00+02:00"
},
"customer_info": {
"customer_name": "Mr. Customer Name",
"customer_email": "customer.name@regiondo.com"
}
}
}{
"code": "RE57WGQH0G6S",
"status": "sent",
"validation_status": "validated",
"data": {
"validated_at": "2019-04-30T11:09:09+02:00",
"product_info": {
"product_name": "La route de Bordeaux",
"variation_name": "Tours en Français ",
"option_name": "Adulte",
"ticket_datetime": "2019-05-03T09:00:00+02:00"
},
"customer_info": {
"customer_name": "Mr. Customer Name",
"customer_email": "customer.name@regiondo.com"
}
}
}
3. Rabattcode hinzufügen
Du kannst Informationen zum Rabattbetrag, zur Währung und zum Rabattcode hinzufügen. Außerdem wird dir der Gesamtbetrag der Buchung angezeigt.
3.1. Ein Rabatt wird verwendet
"coupon_code": "HALF_PRICE" "total_paid": "249.50" "coupon_discount": "249.50" "total": "499.00" "currency_code": "CHF"
3.2. Es wird kein Rabatt verwendet
"coupon_code": null "total_paid": "10.00" "coupon_discount": "0.00" "total": "10.00" "currency_code": "EUR"
4. Webhooks für Zusatzprodukte – Add-ons
Eine Verbindung zu Add-ons ist möglich, allerdings gibt es Einschränkungen:
- Die MwSt. wird nicht übermittelt.
- Der Betrag des Produkts wird dem Betrag der Reservierung inklusive MwSt. hinzugerechnet.
- Es wird nur der Gesamtbetrag der Bestellung angezeigt, d. h. der Betrag des Angebots zuzüglich des Add-ons.
- Beispiel: Angebotsbetrag 50E + Add-on 5E = 55 EURO.
Alle anderen Informationen werden übermittelt, wie z. B. Produktkennung, Menge, Stornierungen, Status, Zahlung, Reservierungsnummer, Käuferinformationen und Bestellpreis inklusive MwSt.