Le corps que vous envoyez en POST à /api/qr/generate (et que les modèles et l'endpoint IA
remplacent). Tout ce qui n'est pas défini prend la valeur par défaut du moteur : aucun
champ n'est obligatoire à part content.
Source de vérité : Models/QrModels.cs dans le backend .NET. La liste ci-dessous couvre
tous les champs publics ; pour un export complet du schéma, avec les types et la nullabilité, exécutez
pnpm docs:schema dans le dépôt du frontend : cette commande régénère cette page à partir des
modèles C#.
| Champ | Type | Défaut | Remarques |
|---|
content | string | obligatoire | URL ou texte à encoder. 4296 caractères maximum. |
eccLevel | enum | M | Correction d'erreurs. L 7% · M 15% · Q 25% · H 30%. Passez à H si vous ajoutez un logo. |
| Champ | Type | Défaut | Remarques |
|---|
fileFormat | enum | png | png, jpg, svg, pdf, webp. |
responseType | enum | base64 | base64 renvoie du JSON ; binary renvoie le fichier brut. |
outputWidth | int | 800 | Pixels. Jusqu'à 4096. |
outputHeight | int | — | Vaut outputWidth par défaut. À remplacer uniquement si vous avez besoin d'un format non carré. |
pixelsPerModule | int | 10 | Résolution par module du QR. Augmente outputWidth s'il n'est pas défini. |
quality | int | 90 | Qualité JPG/WebP de 1 à 100. |
transparentBackground | bool | false | PNG/SVG/WebP uniquement. |
| Champ | Type | Défaut | Remarques |
|---|
primaryColor | hex | #000000 | Couleur des modules. #RGB, #RRGGBB, #RRGGBBAA. |
secondaryColor | hex | — | Utilisée par les dégradés et les modules connectés. |
backgroundColor | hex | #FFFFFF | Couleur de la zone de silence. |
foregroundStyle | enum | solid | solid, linearGradient, radialGradient, sweepGradient. |
gradientType | enum | linear | Forme abrégée équivalente à foregroundStyle. |
gradientDirection | enum | vertical | vertical, horizontal, diagonal, diagonal-reverse. |
gradientColors | hex[] | — | De 2 à 6 arrêts. |
gradientStops | float[] | réguliers | Positions de 0 à 1. Doit correspondre à gradientColors.length. |
gradientAngle | int | 0 | Degrés ; remplace gradientDirection s'il est défini. |
| Champ | Type | Défaut | Remarques |
|---|
qrShape | enum | square | Zone extérieure : square, roundedsquare, circle. |
qrShapeRadius | int | 0 | Rayon des coins lorsque qrShape: roundedsquare. |
moduleShape | enum | square | Une valeur parmi 27. Voir Motifs. |
moduleScale | float | 1.0 | 0.5–1.0. Réduit chaque module pour un rendu plus aéré. |
moduleRotation | float | 0 | Degrés. |
moduleStyle | enum | solid | solid, outline, striped. |
modulePattern | enum | standard | standard, checker, alternating. |
moduleSizeVariation | float | 0 | 0–0.3 ajoute une variation organique à chaque module. |
connectedStyle | enum | none | none, fluid, sharp, round. Relie les modules adjacents. |
| Champ | Type | Défaut | Remarques |
|---|
finderOuterShape | enum | square | square, roundedsquare, circle, diamond, octagon, target, double. |
finderInnerShape | enum | square | square, roundedsquare, circle, diamond, star, dot. |
finderOuterColor | hex | — | Vaut primaryColor par défaut. |
finderInnerColor | hex | — | Vaut primaryColor par défaut. |
finderStyle | enum | standard | standard, flat, embossed. |
| Champ | Type | Défaut | Remarques |
|---|
logoUrl | url | — | URL publique récupérée côté serveur. PNG/JPG/GIF/BMP/WebP, ≤ 10 MB. |
logoBase64 | string | — | Alternative en data URI dans la requête. |
logoFile | multipart | — | Partie binaire si vous utilisez multipart/form-data. |
logoShape | enum | square | square, circle, rounded. |
logoSizePercent | float | 18 | 5–30. Relevez toujours eccLevel à H à partir de 20. |
logoBorderWidth | int | 0 | Épaisseur de la bordure en pixels. |
logoBorderColor | hex | #FFFFFF | |
logoShadow | bool | false | Ombre portée sous le logo. |
logoBackground | enum | none | none, solid, match-bg. |
cleanBehindLogo | bool | true | Efface les modules sous le logo pour qu'il n'entre pas en conflit avec le QR. |
| Champ | Type | Remarques |
|---|
centerText | object | Bandeau au centre : { text, color?, backgroundColor?, height?, fontSize?, bold?, fontFamily? }. |
circularText | object | Texte incurvé autour du QR : { text, color?, fontSize?, position? }. |
ctaText | string | Légende sous le QR (par exemple « SCAN ME »). |
ctaTextStyle | object | { color?, fontSize?, fontFamily?, bold?, italic? }. |
| Champ | Type | Remarques |
|---|
frame | object | { enabled, shape, color, width, padding, cornerRadius, fillColor? }. Formes : rectangle, speech-bubble, badge, shield, circle. |
| Champ | Type | Remarques |
|---|
backgroundImageUrl / backgroundImageBase64 | url/string | Image discrète rendue derrière le QR. |
backgroundImageBlendMode | enum | normal, multiply, screen, overlay. |
backgroundImageOpacity | float | 0–1. |
backgroundImageBlur | int | Pixels. |
backgroundImageFit | enum | cover, contain, stretch. |
| Champ | Type | Remarques |
|---|
shadow | object | { color, blur, offsetX, offsetY }. |
glow | object | { color, blur, intensity }. |
emboss | object | { depth, lightAngle, lightColor?, shadowColor? }. |
noise | float | 0–0.3 ajoute un grain argentique. |
blur | int | Pixels. |
edgeFade | float | 0–0.5 estompe le bord de la zone. |
colorFilter | enum | none, sepia, bw, cool, warm. |
| Champ | Type | Remarques |
|---|
prompt | string | Description en langage courant. |
stylePreset | enum | minimal, artistic, corporate, playful, luxury, tech, nature. |
creativity | float | 0–1. Contrôle la température du LLM et l'audace. |
strictScannability | bool | À true, le moteur corrige automatiquement l'ECC et le contraste. |
llmProvider | enum | Marketplace uniquement : openai, anthropic, google, mistral, cohere, groq. |
llmApiKey | string | Marketplace uniquement. Transmise une seule fois, jamais journalisée. |
llmModel | string | Facultatif ; par défaut, le modèle phare économique du fournisseur. |
- JSON bien formé →
INVALID_JSON sinon.
- Types et bornes des champs →
VALIDATION_ERROR avec details[].
- Contraste des couleurs →
LOW_CONTRAST si < 4:1 et strictScannability: true.
- Taille du logo par rapport à l'ECC →
LOGO_TOO_LARGE si elle est trop agressive.
- Aller-retour de décodage ISO 18004 →
QR_GENERATION_FAILED si le rendu ne peut pas être relu.
Consultez Erreurs pour la matrice complète des codes d'erreur.
cd frontend
pnpm docs:schema # reads ../Models/QrModels.cs and rewrites this file
Le script est tools/gen-docs-schema.ts. Tout champ ajouté au modèle C# avec
un attribut [Description] apparaît ici automatiquement.