Contactformulieren¶
Om contactformulieren snel te integreren kun je ook gebruik maken van onze Javascript-library.
Changelog¶
- 1.1.0 (2020-04-03)
The contact form fields are now always embedded (
Velden
), and updates to contact form fields are accepted with regular PUT-back semantics.Deprecated: The separate API for contact form fields is now deprecated, and should not be used for new integrations.
Read¶
- GET /api2/contactformulieren¶
Lijst van contactformulieren in Recras.
Dit endpoint is publiek toegankelijk.
Voorbeeld request:
GET /api2/contactformulieren HTTP/1.1 Host: demo.recras.nl Accept: application/json
Voorbeeld response:
HTTP/1.1 200 OK Content-Type: application/json [ { "id": 1, "naam": "Contactformulier", "Velden": [ { "id": 1, "naam": "Bedrijf of Groepsnaam", "soort_invoer": "contact.naam", "verplicht": false, "mogelijke_keuzes": null, "bijzonderheden_boeking": false, "field_identifier": "contact.naam" }, { "id": 2, "naam": "Afdeling", "soort_invoer": "contact.afdeling", "verplicht": false, "mogelijke_keuzes": null, "bijzonderheden_boeking": false, "field_identifier": "contact.afdeling" } ] }, { "id": 2, "naam": "Standaard Onlineboeking Contactformulier", "Velden": [] }, { "id": 3, "naam": "Kitelessen", "Velden": [] } ]
- Status Codes:
200 OK – OK
- GET /api2/contactformulieren/(int: id)¶
Een specifiek contactformulier.
Dit endpoint is publiek toegankelijk.
Voorbeeld request:
GET /api2/contactformulieren/1 HTTP/1.1 Host: demo.recras.nl Accept: application/json
Voorbeeld response:
HTTP/1.1 200 OK Content-Type: application/json { "id": 1, "naam": "Contactformulier", "Velden": [] }
- GET /api2/contactformulieren/(int: id)/velden¶
Deprecated: since version 1.1.0 this API is deprecated. All users are advised to use the
Velden
field on the/conctactformulieren/(int:id)
API.Een lijst van velden van een contactformulier. Het is ook mogelijk de velden met de rest van het formulier op te vragen, gebruik hiervoor
embed=Velden
.Dit endpoint is publiek toegankelijk.
Voorbeeld request:
GET /api2/contactformulieren/1/velden HTTP/1.1 Host: demo.recras.nl Accept: application/json
Voorbeeld response:
HTTP/1.1 200 OK Content-Type: application/json [ { "id": 1, "contactformulier_id": 1, "naam": "Bedrijf of Groepsnaam", "soort_invoer": "contact.naam", "verplicht": false, "mogelijke_keuzes": null, "sort_order": 1, "bijzonderheden_boeking": false, "field_identifier": "contact.naam" }, { "id": 2, "contactformulier_id": 1, "naam": "Afdeling", "soort_invoer": "contact.afdeling", "verplicht": false, "mogelijke_keuzes": null, "sort_order": 2, "bijzonderheden_boeking": false, "field_identifier": "contact.afdeling" } ]
- Status Codes:
200 OK – OK
- JSON Parameters:
id (integer) – Uniek
id
-nummer van een veldcontactformulier_id (integer) –
id
-nummer van het contactformuliernaam (string) – De naam van het veld zoals in Recras ingesteld
soort_invoer (string) –
Het soort invoerveld. Mogelijkheden:
contact.landcode
: Het veld ‘land’ van de Klant in Recras - een 2-letterige landcode volgens [ISO 3611-1-](https://nl.wikipedia.org/wiki/ISO_3166-1)contact.naam
: Het veld ‘naam’ van de Klant in Recras - tekstcontact.afdeling
: Het veld ‘afdeling’ van de Klant - tekstcontact.soort_klant
: Het veld ‘soort klant’ van de Klantcontact.extra
: Een extra veld van de Klantcontact.website
: Het veld ‘website’ van de Klantcontactpersoon.voornaam
: Het veld ‘voornaam’ van de Contactpersoon in Recras - tekstcontactpersoon.achternaam
: Het veld ‘achternaam van de Contactpersoon - tekstcontactpersoon.geslacht
: Het veld ‘geslacht’ van de Contactpersoon (suggestie voor presentatie:select
-element met mogelijke opties ‘man’, ‘vrouw’, ‘onbekend’)contactpersoon.adres
contactpersoon.postcode
contactpersoon.plaats
contactpersoon.telefoon1
contactpersoon.telefoon2
contactpersoon.email1
contactpersoon.nieuwsbrieven
: Aan welke nieuwsbrief-lijsten het contactpersoon moet worden toegevoegd - een lijst vanid
-nummers van nieuwsbrieven. Zie de begeleidende veldennewsletter_options
(voorkeur) enmogelijke_keuzes
.boeking.datum
: De datum waarop eeninformatie
-boeking wordt aangemaakt - een datumstring volgens [ISO8601](https://en.wikipedia.org/wiki/ISO_8601#Dates)-datumnotering, uitgezonderd het ‘ordinal date’-formaat.boeking.starttijd
: De starttijd van deinformatie
-boeking - een tijdstring volgens [ISO8601](https://en.wikipedia.org/wiki/ISO_8601#Times)-tijdnotering. Fracties van seconden worden niet ondersteund.boeking.groepsgrootte
: Het aantal personen - een geheel positief getal.boeking.arrangement
: Het arrangement op basis waarvan een boeking moet worden gemaakt - een getal dat correspondeerd met eenid
-nummer uit de arrangementen-API.tekst
: Een vrij veld met tekst (suggestie voor presentatie: HTMLinput
-element)veel_tekst
: Een vrij veld met veel tekst (suggestie voor presentatie: HTMLtextarea
-elemen)keuze
: Een keuze-veld waar meerdere keuzes aangevinkt mogen worden (suggestie voor presentatie: HTMLinput[type="checkbox"]
-element)keuze_enkel
: Een keuze-veld waar één keuze aangevinkt mag worden (suggestie voor presentatie: HTMLinput[type="radio"]
-element)
verplicht (boolean)
mogelijke_keuzes (array|null) – In het geval dat
soort_invoer
gelijk is aan ‘keuze’ of ‘keuze_enkel’, is dit een lijst van mogelijke keuzes. Alssoort_invoer
gelijk is aan ‘contactpersoon.nieuwsbrieven’, is dit een lijst met IDs van mogelijke nieuwsbrieven. Zie in dat geval de JSON-mapnewsletter_options
voor de namen bij de corresponderendeid
-nummers.sort_order – Suggestie van sorteervolgorde (sorteer oplopend voor overeenstemming met presentatie in Recras)
bijzonderheden_boeking (boolean) – Indicatie of dit veld in ‘bijzonderheden’ van de aangemaakte boeking wordt opgenomen
extra_field_name (string) – Als
soort_invoer
gelijk is aan ‘contact.extra’, is dit de naam van het extra veld.field_identifier (string) – Belangrijk voor terugposten Naam waarbij de invoer opgestuurd dient te worden.
Submit¶
- POST /api2/contactformulieren/(int: id)/opslaan¶
Een ingevuld contactformulier in Recras opslaan. Bij een contactformulier kunnen alleen de velden worden opgeslagen die in de bijbehorende velden-lijst opgesomd worden.
Dit endpoint is publiek toegankelijk. Wanneer een geldig contactformulier door een personeelslid met het recht
viewContact
ofeditContact
wordt opgeslagen, bevat de response een JSON-object met een integerklant_id
en eventueel een integerboeking_id
zodat een verwijzing naar de klant- of boekingsinformatie gemaakt kan worden.Voorbeeld request:
POST /api2/contactformulieren/1/opslaan HTTP/1.1 Host: demo.recras.nl { "contact.naam": "Lipsum BV", "contact.afdeling": null, "contactpersoon.voornaam": "Lorem", "contactpersoon.achternaam": "Ipsum", "contactpersoon.geslacht": "onbekend", "contactpersoon.adres": "Dolor Sit Ametstraat 42", "contactpersoon.postcode": "1337 VB", "contactpersoon.plaats": "Teststad", "contactpersoon.telefoon1": "0123456789", "contactpersoon.email1": "info@recras.nl", "boeking.datum": "2017-01-13", "boeking.starttijd": "09:00", "boeking.groepsgrootte": 120, "boeking.arrangement": 2, "veel_tekst_0": "Het betreft een personeelsfeest,\\nde heer Laoreet is dan 40 jaar in dienst.", "keuze_0": "bedrijfsuitje", "contact.extra[Taart]": "Monchoutaart" }
- JSON Parameters:
field_identifier – De ingevulde contactinformatie. Velden met het kenmerk
verplicht
moeten aanwezig zijn, overige velden kunnen worden leeggelaten door de waardenull
in te vullen of het veld niet in het object op te nemen.
Voorbeeld response:
HTTP/1.1 200 OK
- Status Codes:
200 OK – Contactformulier geaccepteerd
201 Created – Contactformulier geaccepteerd
406 Not Acceptable – Fout in de invoer
Voorbeeld response (door ingelogd personeelslid):
HTTP/1.1 200 OK Content-Type: application/json { "klant_id": 42, "boeking_id": 130 }
- JSON Parameters:
klant_id (integer) – Het
id
-nummer waarmee de klant is opgeslagen. Dit nummer hoeft niet nieuw te zijn; Recras probeert identieke inzendingen aan elkaar te koppelen.boeking_id (integer) – Het
id
-nummer van de aangemaakte boeking