POST/api/public/contact

Formularul public de contact al site-ului Zentor. Creează o solicitare în sistemul intern de lead-uri.

`POST /api/public/contact` procesează formularul de contact public al site-ului Zentor și înregistrează solicitarea în sistemul intern de lead-uri. Endpointul nu necesită autentificare în panoul de control și nu este idempotent. Fiecare transmitere reușită poate genera un nou lead. Prin urmare, frontendul ar trebui să dezactiveze butonul de trimitere după primul clic și să nu declanșeze reîncercări automate. Câmpurile obligatorii confirmate sunt `name`, `email` și `message`. Numele trebuie să aibă între 2 și 120 de caractere, adresa de e-mail trebuie să aibă un format valid, iar mesajul trebuie să respecte regulile de validare de pe server. Alte câmpuri pot fi trimise doar dacă sunt prevăzute în schema reală. Valorile necunoscute nu ar trebui folosite pentru a controla proprietățile interne ale lead-ului. Un formular corect verifică câmpurile obligatorii deja în browser, dar nu se bazează exclusiv pe această verificare. Serverul rămâne decisiv. În caz de eroare de validare, interfața ar trebui să marcheze câmpul afectat și să păstreze conținutul introdus. Un mesaj generic de succes are voie să apară abia după un răspuns pozitiv de la server. Formularul de contact nu este un canal sigur pentru parole, chei API, tokenuri de widget, date de plată sau înregistrări complete de clienți. Utilizatorii ar trebui să indice scenariul de utilizare, produsul afectat și o adresă de e-mail de serviciu la care pot fi contactați. În cazul unei probleme tehnice sunt utile numele tenantului, momentul, funcția afectată și pașii reproductibili, fără a transmite conținut personal inutil. Un flux realist: vizitatorul completează numele, e-mailul și mesajul, confirmă eventual notele privind protecția datelor ale site-ului și trimite formularul. Serverul validează datele, creează lead-ul și returnează un răspuns de succes. Dacă e-mailul este invalid sau numele este prea scurt, nu se creează un lead complet. Endpointul nu creează un tenant, nu rezervă un pachet și nu înlocuiește configurarea structurată a produsului sau procesul de consultanță. Pentru protecția împotriva spamului și a solicitărilor automate în serie, clientul ar trebui să respecte erorile de pe server și să nu pornească bucle infinite imediate. Un răspuns reușit ar trebui să golească câmpurile de introducere abia după ce serverul a confirmat preluarea. Dacă răspunsul nu vine, utilizatorul poate salva conținutul și îl poate retrimite mai târziu în mod controlat. Pentru încadrarea internă, mesajul ar trebui să conțină motivul real, fără formule de marketing sau anexe confidențiale. Un subiect clar și o descriere precisă a problemei reduc numărul întrebărilor suplimentare. API-ul în sine nu atribuie însă o prioritate garantată și nu confirmă un termen fix de procesare.

Autentificare și securitate

Nu este necesară autentificarea

Idempotent: Nu

Parametri

name(body, string, obligatoriu)— 2–120 caractere
email(body, string, obligatoriu)— Adresă de e-mail validă
message(body, string, obligatoriu)— 10–3000 de caractere
company(body, string)
phone(body, string)
topic(body, string)
consentGiven(body, boolean, obligatoriu)— Trebuie să fie true (consimțământul la protecția datelor)

Exemplu de cerere

{"name":"Max Mustermann","email":"max@example.com","message":"Mesajul dumneavoastră (minim 10 caractere).","consentGiven":true}

Exemplu de răspuns

{"ok":true,"message":"Solicitarea dumneavoastră a fost trimisă."}

Coduri de eroare

400 VALIDATION_ERROR — Câmp obligatoriu lipsă/invalid sau consimțământul la protecția datelor lipsă (array-ul de detalii cu mesajele de eroare individuale).

Dovadă test live

Succes (200) și caz negativ (400, câmpuri lipsă, inclusiv consimțământ lipsă) verificate live.

← Formulare publice