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. .. code-block:: json { "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 ------------------- .. http:get:: /api2/webhooks Via dit endpoint kunnen de geregistreerde "webhooks" opgevraagd worden. **Voorbeeld request**: .. sourcecode:: http GET /api2/webhooks HTTP/1.1 Host: demo.recras.nl Accept: application/json **Voorbeeld response**: .. sourcecode:: http 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 } ] :statuscode 200: no error Webhook Registreren ---------------------- .. http:post:: /api2/webhooks Met dit endpoint is het mogelijk een webhook aan te maken. **Voorbeeld request**: .. sourcecode:: http 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 URL url: **Verplicht** URL van de webhook die wordt aangeroepen. :json string name: **Verplicht** Naam van de webhook om in te hooken, zie hierboven voor een lijst met beschikbaren webhooks. :json bool active: Of de webhook wel of niet actief is. **Voorbeeld response**: .. sourcecode:: http 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 ---------------------- .. http:delete:: /api2/webhooks/ Met dit endpoint is het mogelijk een webhook te verwijderen **Voorbeeld request**: .. sourcecode:: http DELETE /api2/webhooks HTTP/1.1 Host: demo.recras.nl **Voorbeeld response**: .. sourcecode:: http HTTP/1.1 200 OK Webhook Update ---------------------- .. http:put:: /api2/webhooks/ Met dit endpoint is het mogelijk een webhook aan te passen. **Voorbeeld request**: .. sourcecode:: http PUT /api2/webhooks/ HTTP/1.1 Host: demo.recras.nl Content-Type: application/json { "url": "https://test.nl/webhook", "name": "", "active": true } :json URL url: URL van de webhook die wordt aangeroepen. :json string name: Naam van de webhook om in te hooken. :json bool active: Of de webhook wel of niet actief is. **Voorbeeld response**: .. sourcecode:: http 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 }