POST/api/public/contact
Openbaar contactformulier van de Zentor-website. Maakt een aanvraag in het interne lead-systeem.
`POST /api/public/contact` verwerkt het openbare contactformulier van de Zentor-website en legt de aanvraag vast in het interne leadsysteem. Het endpoint vereist geen dashboardauthenticatie en is niet idempotent. Elke succesvolle verzending kan een nieuwe lead genereren. De frontend moet de verzendknop daarom na de eerste klik uitschakelen en geen automatische herhalingen uitlokken. Tot de bevestigde verplichte velden behoren `name`, `email` en `message`. De naam moet tussen 2 en 120 tekens lang zijn, het e-mailadres moet een geldig formaat hebben, en het bericht moet voldoen aan de serverzijdige validatieregels. Aanvullende velden mogen alleen worden verzonden als ze in het daadwerkelijke schema zijn voorzien. Onbekende waarden mogen niet worden gebruikt om interne eigenschappen van de lead te sturen. Een correct formulier controleert de verplichte velden al in de browser, maar vertrouwt niet uitsluitend op deze controle. De server blijft bepalend. Bij een validatiefout moet de interface het betrokken veld markeren en de ingevoerde inhoud behouden. Een algemene succesmelding mag pas verschijnen na een positief antwoord van de server. Het contactformulier is geen veilig kanaal voor wachtwoorden, API-sleutels, widget-tokens, betalingsgegevens of volledige klantgegevens. Gebruikers moeten de toepassing, het betrokken product en een bereikbaar zakelijk e-mailadres opgeven. Bij een technisch probleem helpen tenantnaam, tijdstip, betrokken functie en reproduceerbare stappen, zonder onnodige persoonsgegevens over te dragen. Een realistisch verloop: de bezoeker vult naam, e-mail en bericht in, bevestigt eventueel de privacyinformatie van de pagina en verzendt het formulier. De server valideert de gegevens, maakt de lead aan en levert een succesantwoord. Bij een ongeldig e-mailadres of een te korte naam wordt geen volledige lead aangemaakt. Het endpoint maakt geen tenant aan, boekt geen pakket en vervangt niet de gestructureerde productconfiguratie of het adviestraject. Ter bescherming tegen spam en geautomatiseerde massa-aanvragen moet de client de foutmeldingen van de server respecteren en geen directe oneindige lussen starten. Bij een succesvol antwoord mogen de invoervelden pas worden leeggemaakt wanneer de server de ontvangst heeft bevestigd. Blijft het antwoord uit, dan kan de gebruiker de inhoud veiligstellen en later gecontroleerd opnieuw verzenden. Voor de interne toewijzing moet het bericht de daadwerkelijke aanleiding bevatten, zonder marketingfrasen of vertrouwelijke bijlagen. Een duidelijk onderwerp en een precieze probleembeschrijving beperken het aantal vervolgvragen. De API zelf kent echter geen gegarandeerde prioriteit toe en bevestigt geen vaste afhandelingstermijn.
Auth & beveiliging
Geen authenticatie vereist
Idempotent: Nee
Parameters
name(body, string, vereist)— 2–120 tekensemail(body, string, vereist)— Geldig e-mailadresmessage(body, string, vereist)— 10–3000 tekenscompany(body, string)phone(body, string)topic(body, string)consentGiven(body, boolean, vereist)— Moet true zijn (toestemming voor gegevensbescherming)Voorbeeld-request
{"name":"Max Mustermann","email":"max@example.com","message":"Uw bericht (min. 10 tekens).","consentGiven":true}Voorbeeld-response
{"ok":true,"message":"Uw aanvraag is verzonden."}Foutcodes
400 VALIDATION_ERROR — Verplicht veld ontbreekt/onjuist, of toestemming voor gegevensbescherming ontbreekt (details-array met individuele foutmeldingen).Live-testbewijs
Succes (200) en negatief geval (400, ontbrekende velden inclusief ontbrekende toestemming) live geverifieerd.