Webhooks

Huidige versie: 0.1

Globaal overzicht

Webhooks kunnen worden aangemaakt om realtime op de hoogte te worden gesteld van evenementen die binnen recras gebeuren. Webhooks zijn alleen via de rest api te beheren.

De payloads hebben een standaard wrapper structuur, waarin “data” de daadwerkelijke payload bevat. “version” bevat de huidige versie nummer, deze veranderd wanneer er changes zijn in de implementatie.
{
  "version": "0.1",
  "data": {
  },
  "meta": {
  }
}
Beschikbare custom webhooks (Names):
  • BookingDefinitive

  • InvoiceDefinitive

Beschikbare standaard webhooks hebben de format “ObjectName::EventName”. Voor de interne objectnamen, neem voor nu contact op met support. Standaard events voor objecten zijn:
  • postInsert

  • postUpdate, bevat naast data ook een modified array

  • postSave, bevat naast data ook een modified array als het een update is

  • postDelete

Lijst van standaard webhooks:
  • APIKey::postSave

  • APIKey::postDeleteAPIKey::postUpdate

  • APIKey::postInsert

  • Activiteit::postSave

  • Activiteit::postDelete

  • Activiteit::postUpdate

  • Activiteit::postInsert

  • ActiviteitLocatie::postSave

  • ActiviteitLocatie::postDelete

  • ActiviteitLocatie::postUpdate

  • ActiviteitLocatie::postInsert

  • ActiviteitMateriaal::postSave

  • ActiviteitMateriaal::postDelete

  • ActiviteitMateriaal::postUpdate

  • ActiviteitMateriaal::postInsert

  • ActiviteitStandaardbijlage::postSave

  • ActiviteitStandaardbijlage::postDelete

  • ActiviteitStandaardbijlage::postUpdate

  • ActiviteitStandaardbijlage::postInsert

  • Arrangement::postSave

  • Arrangement::postDelete

  • Arrangement::postUpdate

  • Arrangement::postInsert

  • ArrangementActiviteit::postSave

  • ArrangementActiviteit::postDelete

  • ArrangementActiviteit::postUpdate

  • ArrangementActiviteit::postInsert

  • Attachment::postSave

  • Attachment::postDelete

  • Attachment::postUpdate

  • Attachment::postInsert

  • Bedrijf::postSave

  • Bedrijf::postDelete

  • Bedrijf::postUpdate

  • Bedrijf::postInsert

  • BedrijfBoekingsmail::postSave

  • BedrijfBoekingsmail::postDelete

  • BedrijfBoekingsmail::postUpdate

  • BedrijfBoekingsmail::postInsert

  • BedrijfBoekingsvoorsteltype::postSave

  • BedrijfBoekingsvoorsteltype::postDelete

  • BedrijfBoekingsvoorsteltype::postUpdate

  • BedrijfBoekingsvoorsteltype::postInsert

  • BedrijfStatusherinnering::postSave

  • BedrijfStatusherinnering::postDelete

  • BedrijfStatusherinnering::postUpdate

  • BedrijfStatusherinnering::postInsert

  • Betaalmethode::postSave

  • Betaalmethode::postDelete

  • Betaalmethode::postUpdate

  • Betaalmethode::postInsert

  • Boeking::postSave

  • Boeking::postDelete

  • Boeking::postUpdate

  • Boeking::postInsert

  • BoekingFacturerenVanaf::postSave

  • BoekingFacturerenVanaf::postDelete

  • BoekingFacturerenVanaf::postUpdate

  • BoekingFacturerenVanaf::postInsert

  • Boekingsmail::postSave

  • Boekingsmail::postDelete

  • Boekingsmail::postUpdate

  • Boekingsmail::postInsert

  • BoekingsmailZending::postSave

  • BoekingsmailZending::postDelete

  • BoekingsmailZending::postUpdate

  • BoekingsmailZending::postInsert

  • Boekingsregel::postSave

  • Boekingsregel::postDelete

  • Boekingsregel::postUpdate

  • Boekingsregel::postInsert

  • Boekingsvoorstel::postSave

  • Boekingsvoorstel::postDelete

  • Boekingsvoorstel::postUpdate

  • Boekingsvoorstel::postInsert

  • BoekingsvoorstelType::postSave

  • BoekingsvoorstelType::postDelete

  • BoekingsvoorstelType::postUpdate

  • BoekingsvoorstelType::postInsert

  • BookProcess::postSave

  • BookProcess::postDelete

  • BookProcess::postUpdate

  • BookProcess::postInsert

  • BookProcessWidget::postSave

  • BookProcessWidget::postDelete

  • BookProcessWidget::postUpdate

  • BookProcessWidget::postInsert

  • BookProcessWidgetPackageChoice::postSave

  • BookProcessWidgetPackageChoice::postDelete

  • BookProcessWidgetPackageChoice::postUpdate

  • BookProcessWidgetPackageChoice::postInsert

  • BookProcessWidgetProductChoice::postSave

  • BookProcessWidgetProductChoice::postDelete

  • BookProcessWidgetProductChoice::postUpdate

  • BookProcessWidgetProductChoice::postInsert

  • Contact::postSave

  • Contact::postDelete

  • Contact::postUpdate

  • Contact::postInsert

  • Contactformulier::postSave

  • Contactformulier::postDelete

  • Contactformulier::postUpdate

  • Contactformulier::postInsert

  • ContactformulierArrangement::postSave

  • ContactformulierArrangement::postDelete

  • ContactformulierArrangement::postUpdate

  • ContactformulierArrangement::postInsert

  • ContactformulierVeld::postSave

  • ContactformulierVeld::postDelete

  • ContactformulierVeld::postUpdate

  • ContactformulierVeld::postInsert

  • Contactmoment::postSave

  • Contactmoment::postDelete

  • Contactmoment::postUpdate

  • Contactmoment::postInsert

  • Contactmomentattachment::postSave

  • Contactmomentattachment::postDelete

  • Contactmomentattachment::postUpdate

  • Contactmomentattachment::postInsert

  • Contactpersoon::postSave

  • Contactpersoon::postDelete

  • Contactpersoon::postUpdate

  • Contactpersoon::postInsert

  • ContactpersoonNieuwsbrief::postSave

  • ContactpersoonNieuwsbrief::postDelete

  • ContactpersoonNieuwsbrief::postUpdate

  • ContactpersoonNieuwsbrief::postInsert

  • Dienst::postSave

  • Dienst::postDelete

  • Dienst::postUpdate

  • Dienst::postInsert

  • DienstPersoneelStatus::postSave

  • DienstPersoneelStatus::postDelete

  • DienstPersoneelStatus::postUpdate

  • DienstPersoneelStatus::postInsert

  • Factuur::postSave

  • Factuur::postDelete

  • Factuur::postUpdate

  • Factuur::postInsert

  • FactuurBetaling::postSave

  • FactuurBetaling::postDelete

  • FactuurBetaling::postUpdate

  • FactuurBetaling::postInsert

  • FactuurRegel::postSave

  • FactuurRegel::postDelete

  • FactuurRegel::postUpdate

  • FactuurRegel::postInsert

  • FactuurRegelGroep::postSave

  • FactuurRegelGroep::postDelete

  • FactuurRegelGroep::postUpdate

  • FactuurRegelGroep::postInsert

  • FactuurRegelItem::postSave

  • FactuurRegelItem::postDelete

  • FactuurRegelItem::postUpdate

  • FactuurRegelItem::postInsert

  • IncomingMail::postSave

  • IncomingMail::postDelete

  • IncomingMail::postUpdate

  • IncomingMail::postInsert

  • IncomingMailAddress::postSave

  • IncomingMailAddress::postDelete

  • IncomingMailAddress::postUpdate

  • IncomingMailAddress::postInsert

  • Integration::postSave

  • Integration::postDelete

  • Integration::postUpdate

  • Integration::postInsert

  • Kassa::postSave

  • Kassa::postDelete

  • Kassa::postUpdate

  • Kassa::postInsert

  • KassaLocatie::postSave

  • KassaLocatie::postDelete

  • KassaLocatie::postUpdate

  • KassaLocatie::postInsert

  • Kassaknop::postSave

  • Kassaknop::postDelete

  • Kassaknop::postUpdate

  • Kassaknop::postInsert

  • Kassalogboek::postSave

  • Kassalogboek::postDelete

  • Kassalogboek::postUpdate

  • Kassalogboek::postInsert

  • Kassapagina::postSave

  • Kassapagina::postDelete

  • Kassapagina::postUpdate

  • Kassapagina::postInsert

  • Klant::postSave

  • Klant::postDelete

  • Klant::postUpdate

  • Klant::postInsert

  • KlantContactpersoon::postSave

  • KlantContactpersoon::postDelete

  • KlantContactpersoon::postUpdate

  • KlantContactpersoon::postInsert

  • Kortingscode::postSave

  • Kortingscode::postDelete

  • Kortingscode::postUpdate

  • Kortingscode::postInsert

  • KortingscodeArrangement::postSave

  • KortingscodeArrangement::postDelete

  • KortingscodeArrangement::postUpdate

  • KortingscodeArrangement::postInsert

  • KortingscodeBookProcess::postSave

  • KortingscodeBookProcess::postDelete

  • KortingscodeBookProcess::postUpdate

  • KortingscodeBookProcess::postInsert

  • KortingscodeProduct::postSave

  • KortingscodeProduct::postDelete

  • KortingscodeProduct::postUpdate

  • KortingscodeProduct::postInsert

  • Kwalificatie::postSave

  • Kwalificatie::postDelete

  • Kwalificatie::postUpdate

  • Kwalificatie::postInsert

  • LeverancierContact::postSave

  • LeverancierContact::postDelete

  • LeverancierContact::postUpdate

  • LeverancierContact::postInsert

  • Locatie::postSave

  • Locatie::postDelete

  • Locatie::postUpdate

  • Locatie::postInsert

  • LocatieKwalificatie::postSave

  • LocatieKwalificatie::postDelete

  • LocatieKwalificatie::postUpdate

  • LocatieKwalificatie::postInsert

  • Materiaal::postSave

  • Materiaal::postDelete

  • Materiaal::postUpdate

  • Materiaal::postInsert

  • Nieuwsbrief::postSave

  • Nieuwsbrief::postDelete

  • Nieuwsbrief::postUpdate

  • Nieuwsbrief::postInsert

  • OverigContact::postSave

  • OverigContact::postDelete

  • OverigContact::postUpdate

  • OverigContact::postInsert

  • PdfBackground::postSave

  • PdfBackground::postDelete

  • PdfBackground::postUpdate

  • PdfBackground::postInsert

  • PdfTemplate::postSave

  • PdfTemplate::postDelete

  • PdfTemplate::postUpdate

  • PdfTemplate::postInsert

  • PersoneelBeschikbaarheid::postSave

  • PersoneelBeschikbaarheid::postDelete

  • PersoneelBeschikbaarheid::postUpdate

  • PersoneelBeschikbaarheid::postInsert

  • PersoneelContact::postSave

  • PersoneelContact::postDelete

  • PersoneelContact::postUpdate

  • PersoneelContact::postInsert

  • PersoneelKosten::postSave

  • PersoneelKosten::postDelete

  • PersoneelKosten::postUpdate

  • PersoneelKosten::postInsert

  • PersoneelKwalificatie::postSave

  • PersoneelKwalificatie::postDelete

  • PersoneelKwalificatie::postUpdate

  • PersoneelKwalificatie::postInsert

  • PersoneelKwalificatieAttachment::postSave

  • PersoneelKwalificatieAttachment::postDelete

  • PersoneelKwalificatieAttachment::postUpdate

  • PersoneelKwalificatieAttachment::postInsert

  • PersoneelProfile::postSave

  • PersoneelProfile::postDelete

  • PersoneelProfile::postUpdate

  • PersoneelProfile::postInsert

  • PersoneelProfileBedrijf::postSave

  • PersoneelProfileBedrijf::postDelete

  • PersoneelProfileBedrijf::postUpdate

  • PersoneelProfileBedrijf::postInsert

  • ProductGroep::postSave

  • ProductGroep::postDelete

  • ProductGroep::postUpdate

  • ProductGroep::postInsert

  • ProductKwalificatie::postSave

  • ProductKwalificatie::postDelete

  • ProductKwalificatie::postUpdate

  • ProductKwalificatie::postInsert

  • ProductLabelChoice::postSave

  • ProductLabelChoice::postDelete

  • ProductLabelChoice::postUpdate

  • ProductLabelChoice::postInsert

  • ProductLabels::postSave

  • ProductLabels::postDelete

  • ProductLabels::postUpdate

  • ProductLabels::postInsert

  • ProductPrice::postSave

  • ProductPrice::postDelete

  • ProductPrice::postUpdate

  • ProductPrice::postInsert

  • ProductVereist::postSave

  • ProductVereist::postDelete

  • ProductVereist::postUpdate

  • ProductVereist::postInsert

  • QueuedMail::postSave

  • QueuedMail::postDelete

  • QueuedMail::postUpdate

  • QueuedMail::postInsert

  • Session::postSave

  • Session::postDelete

  • Session::postUpdate

  • Session::postInsert

  • Standaardbijlage::postSave

  • Standaardbijlage::postDelete

  • Standaardbijlage::postUpdate

  • Standaardbijlage::postInsert

  • Startmoment::postSave

  • Startmoment::postDelete

  • Startmoment::postUpdate

  • Startmoment::postInsert

  • Startmomentgroep::postSave

  • Startmomentgroep::postDelete

  • Startmomentgroep::postUpdate

  • Startmomentgroep::postInsert

  • Statusherinnering::postSave

  • Statusherinnering::postDelete

  • Statusherinnering::postUpdate

  • Statusherinnering::postInsert

  • Taak::postSave

  • Taak::postDelete

  • Taak::postUpdate

  • Taak::postInsert

  • Urenregistratie::postSave

  • Urenregistratie::postDelete

  • Urenregistratie::postUpdate

  • Urenregistratie::postInsert

  • Voucher::postSave

  • Voucher::postDelete

  • Voucher::postUpdate

  • Voucher::postInsert

  • VoucherKostenRegel::postSave

  • VoucherKostenRegel::postDelete

  • VoucherKostenRegel::postUpdate

  • VoucherKostenRegel::postInsert

  • VoucherProduct::postSave

  • VoucherProduct::postDelete

  • VoucherProduct::postUpdate

  • VoucherProduct::postInsert

  • VoucherTemplate::postSave

  • VoucherTemplate::postDelete

  • VoucherTemplate::postUpdate

  • VoucherTemplate::postInsert

  • VoucherTemplateProduct::postSave

  • VoucherTemplateProduct::postDelete

  • VoucherTemplateProduct::postUpdate

  • VoucherTemplateProduct::postInsert

  • Webhook::postSave

  • Webhook::postDelete

  • Webhook::postUpdate

  • Webhook::postInsert

  • csSetting::postSave

  • csSetting::postDelete

  • csSetting::postUpdate

  • csSetting::postInsert

  • sfDoctrineRecord::postSave

  • sfDoctrineRecord::postDelete

  • sfDoctrineRecord::postUpdate

  • sfDoctrineRecord::postInsert

  • sfGuardForgotPassword::postSave

  • sfGuardForgotPassword::postDelete

  • sfGuardForgotPassword::postUpdate

  • sfGuardForgotPassword::postInsert

  • sfGuardGroup::postSave

  • sfGuardGroup::postDelete

  • sfGuardGroup::postUpdate

  • sfGuardGroup::postInsert

  • sfGuardGroupPermission::postSave

  • sfGuardGroupPermission::postDelete

  • sfGuardGroupPermission::postUpdate

  • sfGuardGroupPermission::postInsert

  • sfGuardPermission::postSave

  • sfGuardPermission::postDelete

  • sfGuardPermission::postUpdate

  • sfGuardPermission::postInsert

  • sfGuardRememberKey::postSave

  • sfGuardRememberKey::postDelete

  • sfGuardRememberKey::postUpdate

  • sfGuardRememberKey::postInsert

  • sfGuardUser::postSave

  • sfGuardUser::postDelete

  • sfGuardUser::postUpdate

  • sfGuardUser::postInsert

  • sfGuardUserGroup::postSave

  • sfGuardUserGroup::postDelete

  • sfGuardUserGroup::postUpdate

  • sfGuardUserGroup::postInsert

  • sfGuardUserPermission::postSave

  • sfGuardUserPermission::postDelete

  • sfGuardUserPermission::postUpdate

  • sfGuardUserPermission::postInsert

Webhooks

GET /api2/webhooks

Via dit endpoint kunnen de geregistreerde “webhooks” opgevraagd worden.

Voorbeeld request:

GET /api2/webhooks HTTP/1.1
Host: demo.recras.nl
Accept: application/json

Voorbeeld response:

HTTP/1.1 200 OK
Content-Type: application/json

[
  {
     "id": 1,
     "created_by": null,
     "updated_by": null,
     "created_at": "-001-11-30T00:00:00+00:19",
     "updated_at": "-001-11-30T00:00:00+00:19",
     "name": "test",
     "url": "https://test.nl/webhook",
     "active": true
  }
]
Status Codes:

Webhook Registreren

POST /api2/webhooks

Met deze endpoint is het mogelijk een webhook aan te maken.

Voorbeeld request:

POST /api2/webhooks HTTP/1.1
Host: demo.recras.nl
Content-Type: application/json

{
  "url": "https://test.nl/webhook",
  "name": "",
  "active": true
}
JSON Parameters:
  • url (URL) – Verplicht URL van de webhook die wordt aangeroepen.

  • name (string) – Verplicht Naam van de webhook om in te hooken.

  • active (bool) – Of de webhook wel of niet actief is.

Voorbeeld response:

HTTP/1.1 201 OK
Content-Type: application/json

{
  "id": 1,
  "created_by": null,
  "updated_by": null,
  "created_at": "-001-11-30T00:00:00+00:19",
  "updated_at": "-001-11-30T00:00:00+00:19",
  "name": "test",
  "url": "https://test.nl/webhook",
  "active": true
}

Webhook Deregistreren

DELETE /api2/webhooks/<id>

Met deze endpoint is het mogelijk een webhook te verwijderen

Voorbeeld request:

DELETE /api2/webhooks HTTP/1.1
Host: demo.recras.nl

Voorbeeld response:

HTTP/1.1 200 OK

Webhook Update

PUT /api2/webhooks/<id>

Met deze endpoint is het mogelijk een webhook aan te passen.

Voorbeeld request:

PUT /api2/webhooks/<id> HTTP/1.1
Host: demo.recras.nl
Content-Type: application/json

{
  "url": "https://test.nl/webhook",
  "name": "",
  "active": true
}
JSON Parameters:
  • url (URL) – URL van de webhook die wordt aangeroepen.

  • name (string) – Naam van de webhook om in te hooken.

  • active (bool) – Of de webhook wel of niet actief is.

Voorbeeld response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 1,
  "created_by": null,
  "updated_by": null,
  "created_at": "-001-11-30T00:00:00+00:19",
  "updated_at": "-001-11-30T00:00:00+00:19",
  "name": "test",
  "url": "https://test.nl/webhook",
  "active": true
}