# Endpoint

# POST /api/v1/send/:code

Endpoint unique pour recevoir les soumissions de formulaires. Voir Authentification pour les headers requis.

# Pipeline de traitement

Les middlewares sont exécutés dans l'ordre suivant :

Étape Middleware Rôle
1 authApiKeyAccess Vérifie X-KEY-PUNA, le token JWT et le code du formulaire
2 formRateLimiter Rate limiting par IP (voir codes d'erreur)
3 multipartUpload Parse le body JSON ou multipart, avec gestion des fichiers
4 validateUpload Valide les types MIME et extensions des fichiers
5 inspectArchive Inspecte le contenu des archives (ZIP bomb, macros, path traversal)
6 scanUpload Scan ClamAV (si CLAMAV_ENABLED=true)
7 moveFilesToUploads Déplace les fichiers vers storage/uploads/
8 updateFormFileKeys Met à jour les références de fichiers dans le body
9 sanitizeRequestBody Sanitise le contenu contre les injections XSS
10 updateFormTemplate Met à jour le template de colonnes du formulaire si nécessaire
11 sendHandler Persiste la soumission en base de données

# Codes de réponse

Code Corps Cause
200 { "success": true } Soumission enregistrée
400 { "success": false, "error": "..." } Fichier invalide, body manquant…
401 { "error": "Invalid API key" } Clé X-KEY-PUNA incorrecte
401 { "error": "Missing Bearer token" } Token absent ou mal formaté
401 { "error": "Invalid token" } Token JWT invalide ou expiré
403 { "error": "Site not found" } Site introuvable ou control_code KO
404 { "error": "Form not found" } Code formulaire inconnu
429 (rate limit) Trop de requêtes
500 { "success": false, "error": "..." } Erreur interne