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
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

application/json

{
  "Tag": "Reservanto",
  "ObjectType": "Event",
  "EventType": "Event_Create",
  "Details": null,
  "AppointmentId": 489473,
  "CustomerId": 56228
}

Zrušení rezervace: Event_Cancel

application/json

{
  "Tag": "Reservanto",
  "ObjectType": "Event",
  "EventType": "Event_Cancel",
  "Details": {
    "IsCancellationLate": false,
    "PaidReturnType": "CreditAll"
  },
  "AppointmentId": 489473,
  "CustomerId": 56228
}

Změna času rezervace: Event_Edit_Time

application/json

{
  "Tag": "Reservanto",
  "ObjectType": "Event",
  "EventType": "Event_Edit_Time",
  "Details": {
    "PaddingTimeEnd": 1771225200,
    "StartsAt": 1771221600,
    "EndsAt": 1771225200
  },
  "AppointmentId": 489473,
  "CustomerId": 56228
}

Vytvoření zákazníka: Customer_Create

application/json

{
  "Tag": "Reservanto",
  "ObjectType": "Customer",
  "EventType": "Customer_Create",
  "Details": null,
  "Id": 56228
}

Změna údajů u zákazníka: Customer_Edit

application/json

{
  "Tag": "Reservanto",
  "ObjectType": "Customer",
  "EventType": "Customer_Edit",
  "Details": null,
  "Id": 56228
}

Smazání zákazníka: Customer_Delete

application/json

{
  "Tag": "Reservanto",
  "ObjectType": "Customer",
  "EventType": "Customer_Delete",
  "Details": null,
  "Id": 56228
}

Vytvoření volna: FreeTime_Create

application/json

{
  "Tag": "Reservanto",
  "ObjectType": "FreeTime",
  "EventType": "FreeTime_Create",
  "Details": null,
  "Id": 6185
}

Smazání volna: FreeTime_Delete

application/json

{
  "Tag": "Reservanto",
  "ObjectType": "FreeTime",
  "EventType": "FreeTime_Delete",
  "Details": null,
  "Id": 6185
}

Změna času volna: FreeTime_Edit_Time

application/json

{
  "Tag": "Reservanto",
  "ObjectType": "FreeTime",
  "EventType": "FreeTime_Edit_Time",
  "Details": {
    "StartsAt": 1771221600,
    "EndsAt": 1771225200
  },
  "Id": 6185
}