Webhooky pro správu jednoho Reservanto účtu
Co jsou webhooky?
Webhooky umožňují automatické zasílání notifikací při událostech v Reservanto (například vytvoření nebo zrušení rezervace, registrace zákazníka). Notifikace jsou zasílány jako HTTP POST požadavky na předem definovanou URL adresu.
Jak se k webhooku přihlásit?
Registrace webhooků probíhá prostřednictvím API. V sekcích objektů, které webhooky podporují, je možné vždy nalézt sadu Akcí, kterými se webhooky obsluhují.
Například pro objekt zákazníka se jedná o tyto akce:
Mechanismus doručení
Webhook se pokusí doručit data až 5× v následujících intervalech:
- 1. pokus: po 1 minutě (redukce opakujících se vyvolání)
- 2. pokus: po 1 + 1 minutě
- 3. pokus: po 1 + 10 minutách
- 4. pokus: po 1 + 100 minutách
- 5. pokus: po 1 + 1000 minutách
Za úspěšnou odpověď se považuje HTTP status 200, 201, 202, 204, 205.
Struktura požadavku
Webhook posílá data ve formátu application/json.
Dostupné typy událostí
Webhook události
| Typ události |
Typ objektu |
Popis
|
| Event_Create |
Event |
Vytvoření rezervace |
| Event_Cancel |
Event |
Zrušení rezervace |
| Event_Edit_Time |
Event |
Změna času rezervace |
| Event_Edit_PaymentInfo |
Event |
Změna úhrady rezervace |
| Customer_Create |
Customer |
Vytvoření zákazníka |
| Customer_Edit |
Customer |
Změna údajů u zákazníka |
| Customer_Delete |
Customer |
Smazání zákazníka |
| FreeTime_Create |
FreeTime |
Vytvoření volna |
| FreeTime_Delete |
FreeTime |
Smazání volna |
| FreeTime_Edit_Time |
FreeTime |
Změna času volna |
Obecná struktura
Webhook payload obsahuje následující základní vlastnosti:
| Název |
Popis |
| ObjectId |
Identifikátor objektu, může být jednoduchý (např. číselný) nebo složený.Vždy se nachází ve stejné úrovní jako zbytek políček. |
| Details |
Volitelný objekt s detailními informacemi – přítomen jen u některých typů událostí |
| EventType |
Typ události dle výčtu (Event_Create, Customer_Edit, ...) |
| ObjectType |
Typ objektu, kterého se událost týká (Event, Customer, ...) |
| Tag |
Pomocné označení notifikace |
Ukázky
Vytvoření rezervace: Event_Create
{
"Tag": "Reservanto",
"ObjectType": "Event",
"EventType": "Event_Create",
"Details": null,
"AppointmentId": 489473,
"CustomerId": 56228
}
Zrušení rezervace: Event_Cancel
{
"Tag": "Reservanto",
"ObjectType": "Event",
"EventType": "Event_Cancel",
"Details": {
"IsCancellationLate": false,
"PaidReturnType": "CreditAll"
},
"AppointmentId": 489473,
"CustomerId": 56228
}
Změna času rezervace: Event_Edit_Time
{
"Tag": "Reservanto",
"ObjectType": "Event",
"EventType": "Event_Edit_Time",
"Details": {
"PaddingTimeEnd": 1769353200,
"StartsAt": 1769349600,
"EndsAt": 1769353200
},
"AppointmentId": 489473,
"CustomerId": 56228
}
Změna úhrady rezervace: Event_Edit_PaymentInfo
{
"Tag": "Reservanto",
"ObjectType": "Event",
"EventType": "Event_Edit_PaymentInfo",
"Details": {
"PriceWithVat": 500.0,
"RemainingPriceWithVat": 0.0,
"IsPaid": true,
"IsOnlyPartiallyPaid": false,
"IsWaitingOnPayment": false,
"Payments": [
{
"PaymentMethod": "Comgate",
"PriceWithVat": 500.0
}
]
},
"AppointmentId": 489473,
"CustomerId": 56228
}
Vytvoření zákazníka: Customer_Create
{
"Tag": "Reservanto",
"ObjectType": "Customer",
"EventType": "Customer_Create",
"Details": null,
"Id": 56228
}
Změna údajů u zákazníka: Customer_Edit
{
"Tag": "Reservanto",
"ObjectType": "Customer",
"EventType": "Customer_Edit",
"Details": null,
"Id": 56228
}
Smazání zákazníka: Customer_Delete
{
"Tag": "Reservanto",
"ObjectType": "Customer",
"EventType": "Customer_Delete",
"Details": null,
"Id": 56228
}
Vytvoření volna: FreeTime_Create
{
"Tag": "Reservanto",
"ObjectType": "FreeTime",
"EventType": "FreeTime_Create",
"Details": null,
"Id": 6185
}
Smazání volna: FreeTime_Delete
{
"Tag": "Reservanto",
"ObjectType": "FreeTime",
"EventType": "FreeTime_Delete",
"Details": null,
"Id": 6185
}
Změna času volna: FreeTime_Edit_Time
{
"Tag": "Reservanto",
"ObjectType": "FreeTime",
"EventType": "FreeTime_Edit_Time",
"Details": {
"StartsAt": 1769349600,
"EndsAt": 1769353200
},
"Id": 6185
}