Klanten ======= .. KlantenCreate_: Create ------ .. http:post:: /api2/klanten Maak een nieuw contact van het type ``klant``. **Voorbeeld request**: .. sourcecode:: http POST /api2/klanten HTTP/1.1 Host: demo.recras.nl Accept: application/json { "naam": "Voorbeeldgroep", "adres": "Teststraat 1", "postcode": "1337 XD", "plaats": "Teststad", "provinciecode": "NL-NH", "website": "http://www.example.com", "bedrijf_id": 1, "soort_klant": "Familie", "afdeling": null, "factuur_adressering": null, "contactpersonen": [ { "id": 15, "hoofdcontact": false }, { "voornaam": "Test", "achternaam": "Contactpersoon", "geslacht": "man", "aanhef": null, "adres": "Teststraat 1", "postcode": "1337 XD", "plaats": "Teststad", "telefoon1": "0123456789", "email1": "test@example.com", "hoofdcontact": true } ], "extra_fields": [ { "name": "Shoe size", "type": "number", "value": 42, } ] } :json string naam: De naam van de klant :json string adres: Het adres van de klant :json string postcode: :json string plaats: :json string provinciecode: De ISO 3166-2 provinciecode, wordt gebruikt voor statistieken :json string website: De website van de klant :json int bedrijf_id: ``id``-nummer van een Bedrijf in Recras waar deze Klant bij hoort, het standaardbedrijf wordt ingevuld als dit veld leeggelaten is. :json string soort_klant: Een soort klant zoals gespecificeerd bij het Bedrijf :json string afdeling: :json string factuur_adressering: Het adres dat op de factuur getoond moet worden, indien afwijkend van het klantadres. :json array contactpersonen: **Verplicht** Een lijst van één of meer contactpersonen, deze kunnen reeds in Recras bestaan of nieuwe invoeren zijn. :json boolean contactpersonen.hoofdcontact: **Verplicht** voor ieder contactpersoon moet aangegeven worden of deze contactpersoon de hoofdcontactpersoon van deze klant is. Er kan slechts 1 hoofdcontactpersoon per klant zijn. :json array extra_fields: Array of extra fields. ``type`` can be one of the following: ``text``, ``number``, ``date``, ``singlechoice``, ``multiplechoice``. When ``type`` is ``number``, ``value`` is of type ``integer``. When ``type`` is ``date``, ``value`` is an ISO 8601 formatted date. When ``type`` is ``multiplechoice``, ``value`` is an array of string values. Indien een reeds bestaand contactpersoon gekoppeld wordt: :json int contactpersonen.id: ``id``-nummer van de contactpersoon Indien een nieuw contactpersoon ingevoerd wordt (zie ook ``/contactpersonen``) :json string voornaam: Voornaam van contactpersoon :json string achternaam: :json string geslacht: Geslacht van contactpersoon, mogelijkheden zijn 'man', 'vrouw', 'onbekend' :json string aanhef: Aanhef die gebruikt moet worden. Wanneer leeggelaten wordt de standaardaanhef gebruikt. :json string adres: :json string postcode: :json string plaats: :json string telefoon1: :json string telefoon2: :json string email1: :json string email2: **Voorbeeld response**: .. sourcecode:: http HTTP/1.1 201 Created Content-Type: application/json { "id": 83, "type": "klant", "displaynaam": "Voorbeeldgroep", "naam": "Voorbeeldgroep", "adres": "Teststraat 1", "postcode": "1337 XD", "plaats": "Teststad", "provinciecode": "NL-NH", "website": "http://www.example.com", "bedrijf_id": 1, "soort_klant": "Familie", "afdeling": null, "factuur_adressering": null } :statuscode 201: Klant aangemaakt :statuscode 200: Ingevoerde gegevens zijn samengevoegd met een bestaande klant :statuscode 406: Fout in de invoer :statuscode 403: Gebruiker heeft het recht ``editContact`` niet Read ---- .. http:get:: /api2/klanten Lijst van contacten van het type 'klant' in Recras. **Voorbeeld request**: .. sourcecode:: http GET /api2/klanten HTTP/1.1 Host: demo.recras.nl Accept: application/json **Voorbeeld response**: .. sourcecode:: http HTTP/1.1 200 OK Content-Type: application/json [ { "id": 62, "type": "klant", "displaynaam": "Pascal en Corry en kids", "naam": "Pascal en Corry en kids", "adres": null, "postcode": null, "plaats": null, "provinciecode": null, "website": null, "bedrijf_id": 1, "soort_klant": null, "afdeling": null, "factuur_adressering": null }, { "id": 17, "type": "klant", "displaynaam": "Gemeente Appingedam", "naam": "Gemeente Appingedam", "adres": "Testraat 23", "postcode": "8291KS", "plaats": "Assen", "provinciecode": "NL-DR", "website": "", "bedrijf_id": 2, "soort_klant": "", "afdeling": "", "factuur_adressering": "" } ] :statuscode 200: OK :query integer id>: The smallest ``id``-value to allow in the selection. New in ``v1.1.0`` .. http:get:: /api2/klanten/(int:id) Een specifieke klant. Het teruggegeven object bevat een veld ``contactpersonen``, dat een lijst van contactpersoon-objecten bevat. Het eerste van deze contactpersonen is het hoofdcontactpersoon van dit contact. **Voorbeeld request**: .. sourcecode:: http GET /api2/contacten/17 HTTP/1.1 Host: demo.recras.nl Accept: application/json **Voorbeeld response**: .. sourcecode:: http HTTP/1.1 200 OK Content-Type: application/json { "id": 17, "type": "klant", "displaynaam": "Gemeente Appingedam", "naam": "Gemeente Appingedam", "adres": "Testraat 23", "postcode": "8291KS", "plaats": "Assen", "provinciecode": "NL-DR", "website": "", "bedrijf_id": 2, "soort_klant": "", "afdeling": "", "factuur_adressering": "", "contactpersonen": [ { "id": 15, "voornaam": "Janny", "achternaam": "Jansen", "geslacht": "man", "aanhef": null, "adres": "Testraat 23", "postcode": "8291KS", "plaats": "Assen", "telefoon1": null, "telefoon2": null, "email1": null, "email2": null, "hoofdcontact": true } ] } :statuscode 200: OK :statuscode 404: Geen arrangement met dit ``id`` Update ------ .. http:put:: /api2/klanten/(int:id) Update een bestaande klant. Het gebruik van dit endpoint is nagenoeg gelijk aan `KlantenCreate_ `. Let hierbij op dat, indien het veld ``contactpersonen`` opgegeven wordt, exact de lijst contactpersonen zoals die in Recras moet staan opgegeven moet worden. Changelog --------- 1.1.0: Added the ``id>`` parameter to the customers list. 0.1.0: Old, basically unversioned API. The documentation may be outdated