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 momenteel alleen via de REST-API te beheren.

De payloads hebben een standaard wrapperstructuur, waarin data de daadwerkelijke payload bevat. version bevat het huidige versienummer, deze verandert wanneer er wijzigingen 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

  • Arrangement::postSave

  • Arrangement::postDelete

  • Arrangement::postUpdate

  • Arrangement::postInsert

  • Attachment::postSave

  • Attachment::postDelete

  • Attachment::postUpdate

  • Attachment::postInsert

  • Bedrijf::postSave

  • Bedrijf::postDelete

  • Bedrijf::postUpdate

  • Bedrijf::postInsert

  • Betaalmethode::postSave

  • Betaalmethode::postDelete

  • Betaalmethode::postUpdate

  • Betaalmethode::postInsert

  • Boeking::postSave

  • Boeking::postDelete

  • Boeking::postUpdate

  • Boeking::postInsert

  • Boekingsmail::postSave

  • Boekingsmail::postDelete

  • Boekingsmail::postUpdate

  • Boekingsmail::postInsert

  • BoekingsmailZending::postSave

  • BoekingsmailZending::postDelete

  • BoekingsmailZending::postUpdate

  • BoekingsmailZending::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

  • Contact::postSave

  • Contact::postDelete

  • Contact::postUpdate

  • Contact::postInsert

  • Contactformulier::postSave

  • Contactformulier::postDelete

  • Contactformulier::postUpdate

  • Contactformulier::postInsert

  • Contactmoment::postSave

  • Contactmoment::postDelete

  • Contactmoment::postUpdate

  • Contactmoment::postInsert

  • Contactpersoon::postSave

  • Contactpersoon::postDelete

  • Contactpersoon::postUpdate

  • Contactpersoon::postInsert

  • Dienst::postSave

  • Dienst::postDelete

  • Dienst::postUpdate

  • Dienst::postInsert

  • Factuur::postSave

  • Factuur::postDelete

  • Factuur::postUpdate

  • Factuur::postInsert

  • FactuurBetaling::postSave

  • FactuurBetaling::postDelete

  • FactuurBetaling::postUpdate

  • FactuurBetaling::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

  • Kassalogboek::postSave

  • Kassalogboek::postDelete

  • Kassalogboek::postUpdate

  • Kassalogboek::postInsert

  • Klant::postSave

  • Klant::postDelete

  • Klant::postUpdate

  • Klant::postInsert

  • Kortingscode::postSave

  • Kortingscode::postDelete

  • Kortingscode::postUpdate

  • Kortingscode::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

  • Materiaal::postSave

  • Materiaal::postDelete

  • Materiaal::postUpdate

  • Materiaal::postInsert

  • OverigContact::postSave

  • OverigContact::postDelete

  • OverigContact::postUpdate

  • OverigContact::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

  • ProductGroep::postSave

  • ProductGroep::postDelete

  • ProductGroep::postUpdate

  • ProductGroep::postInsert

  • QueuedMail::postSave

  • QueuedMail::postDelete

  • QueuedMail::postUpdate

  • QueuedMail::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

  • Urenregistratie::postSave

  • Urenregistratie::postDelete

  • Urenregistratie::postUpdate

  • Urenregistratie::postInsert

  • Voucher::postSave

  • Voucher::postDelete

  • Voucher::postUpdate

  • Voucher::postInsert

  • VoucherTemplate::postSave

  • VoucherTemplate::postDelete

  • VoucherTemplate::postUpdate

  • VoucherTemplate::postInsert

  • Webhook::postSave

  • Webhook::postDelete

  • Webhook::postUpdate

  • Webhook::postInsert

  • sfGuardGroup::postSave

  • sfGuardGroup::postDelete

  • sfGuardGroup::postUpdate

  • sfGuardGroup::postInsert

  • sfGuardUser::postSave

  • sfGuardUser::postDelete

  • sfGuardUser::postUpdate

  • sfGuardUser::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 dit 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": "Contactpersoon::postInsert",
  "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, zie hierboven voor een lijst met beschikbaren webhooks.

  • 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": "Contactpersoon::postInsert",
  "url": "https://test.nl/webhook",
  "active": true
}

Webhook Deregistreren

DELETE /api2/webhooks/<id>

Met dit 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 dit 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": "Contactpersoon::postInsert",
  "url": "https://test.nl/webhook",
  "active": true
}