# Format des données
L'endpoint POST /api/v1/send/:code accepte deux formats de corps. Dans les deux cas, les headers d'authentification sont obligatoires.
# JSON
POST /api/v1/send/contact_acme_corp
Content-Type: application/json
X-KEY-PUNA: gk_prod_7f3a2b9c
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
{
"nom": "Alice Martin",
"email": "alice@example.com",
"message": "Bonjour, je souhaite obtenir un devis."
}
Toutes les clés de premier niveau sont acceptées. Les valeurs sont sanitisées contre le XSS avant stockage.
X-KEY-PUNA: valeur de la variableAPI_KEYdans le.env- voir ConfigurationAuthorization: token JWT du site - voir la vue "API" du site dans Gestion des sitescontact_acme_corp: code du formulaire - voir la vue "API" du site dans Gestion des formulaires
# Multipart / Form-data
POST /api/v1/send/contact_acme_corp
Content-Type: multipart/form-data
X-KEY-PUNA: gk_prod_7f3a2b9c
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
nom=Alice Martin
email=alice@example.com
fichier=<binary>
# Fichiers joints
- Stockés dans
storage/uploads/et référencés dans la soumission. - 12 types MIME acceptés par défaut : images (JPEG, PNG, GIF, WebP), PDF, archives (ZIP, RAR, 7z), documents Office (DOCX, XLSX, PPTX) et texte plat.
- Chaque fichier est validé par extension et par magic bytes.
- Les archives sont inspectées (protection contre les ZIP bombs, macros VBA, exécutables intégrés, path traversal).
- Si ClamAV est activé, chaque fichier est scanné avant stockage - un fichier infecté est rejeté avec une réponse
400.
Pour des exemples complets dans votre langage, voir :