Saltar al contenido

Referencia de QrConfig

El cuerpo que envías con POST a /api/qr/generate (y el que sobrescriben las plantillas y el endpoint de IA). Todo lo que no indiques toma el valor por defecto del motor: no hay ningún campo obligatorio aparte de content.

Fuente de verdad: Models/QrModels.cs en el backend .NET. La lista de abajo cubre todos los campos públicos; para obtener el esquema completo con tipos y nulabilidad, ejecuta pnpm docs:schema en el repositorio del frontend, que regenera esta página a partir de los modelos de C#.

Contenido

CampoTipoPor defectoNotas
contentstringobligatorioURL o texto que se codifica. Máximo 4296 caracteres.
eccLevelenumMCorrección de errores (ECC). L 7% · M 15% · Q 25% · H 30%. Súbela a H si añades un logo.

Salida

CampoTipoPor defectoNotas
fileFormatenumpngpng, jpg, svg, pdf, webp.
responseTypeenumbase64base64 devuelve JSON; binary devuelve el archivo tal cual.
outputWidthint800Píxeles. Hasta 4096.
outputHeightint—Por defecto, igual a outputWidth. Cámbialo solo si necesitas un formato no cuadrado.
pixelsPerModuleint10Resolución por módulo del QR. Aumenta outputWidth si este no está definido.
qualityint90Calidad JPG/WebP de 1 a 100.
transparentBackgroundboolfalseSolo PNG/SVG/WebP.

Colores

CampoTipoPor defectoNotas
primaryColorhex#000000Color de los módulos. #RGB, #RRGGBB, #RRGGBBAA.
secondaryColorhex—Lo usan los degradados y los módulos conectados.
backgroundColorhex#FFFFFFColor de la zona silenciosa.
foregroundStyleenumsolidsolid, linearGradient, radialGradient, sweepGradient.
gradientTypeenumlinearForma abreviada equivalente a foregroundStyle.
gradientDirectionenumverticalvertical, horizontal, diagonal, diagonal-reverse.
gradientColorshex[]—De 2 a 6 paradas.
gradientStopsfloat[]uniformePosiciones de 0 a 1. Debe coincidir con gradientColors.length.
gradientAngleint0Grados; si se indica, prevalece sobre gradientDirection.

Módulos (los puntos)

CampoTipoPor defectoNotas
qrShapeenumsquareLienzo exterior: square, roundedsquare, circle.
qrShapeRadiusint0Radio de las esquinas cuando qrShape: roundedsquare.
moduleShapeenumsquareUna de 27. Consulta Patrones.
moduleScalefloat1.00.5–1.0. Encoge cada módulo para un aspecto más aireado.
moduleRotationfloat0Grados.
moduleStyleenumsolidsolid, outline, striped.
modulePatternenumstandardstandard, checker, alternating.
moduleSizeVariationfloat00–0.3 añade una variación orgánica a cada módulo.
connectedStyleenumnonenone, fluid, sharp, round. Une los módulos adyacentes.

Patrones de localización (los 3 ojos grandes)

CampoTipoPor defectoNotas
finderOuterShapeenumsquaresquare, roundedsquare, circle, diamond, octagon, target, double.
finderInnerShapeenumsquaresquare, roundedsquare, circle, diamond, star, dot.
finderOuterColorhex—Por defecto, primaryColor.
finderInnerColorhex—Por defecto, primaryColor.
finderStyleenumstandardstandard, flat, embossed.
CampoTipoPor defectoNotas
logoUrlurl—URL pública que se descarga en el servidor. PNG/JPG/GIF/BMP/WebP, ≤ 10 MB.
logoBase64string—Alternativa en línea como data URI.
logoFilemultipart—Parte binaria si usas multipart/form-data.
logoShapeenumsquaresquare, circle, rounded.
logoSizePercentfloat185–30. Sube siempre eccLevel a H cuando sea ≥ 20.
logoBorderWidthint0Grosor del borde en píxeles.
logoBorderColorhex#FFFFFF
logoShadowboolfalseSombra bajo el logo.
logoBackgroundenumnonenone, solid, match-bg.
cleanBehindLogobooltrueBorra los módulos que quedan bajo el logo para que no compita con el QR.

Textos superpuestos

CampoTipoNotas
centerTextobjectBanda en el centro: { text, color?, backgroundColor?, height?, fontSize?, bold?, fontFamily? }.
circularTextobjectTexto curvado alrededor del QR: { text, color?, fontSize?, position? }.
ctaTextstringTexto bajo el QR (p. ej., «SCAN ME»).
ctaTextStyleobject{ color?, fontSize?, fontFamily?, bold?, italic? }.

Marcos

CampoTipoNotas
frameobject{ enabled, shape, color, width, padding, cornerRadius, fillColor? }. Formas: rectangle, speech-bubble, badge, shield, circle.

Imagen de fondo

CampoTipoNotas
backgroundImageUrl / backgroundImageBase64url/stringImagen suave que se renderiza detrás del QR.
backgroundImageBlendModeenumnormal, multiply, screen, overlay.
backgroundImageOpacityfloat0–1.
backgroundImageBlurintPíxeles.
backgroundImageFitenumcover, contain, stretch.

Efectos

CampoTipoNotas
shadowobject{ color, blur, offsetX, offsetY }.
glowobject{ color, blur, intensity }.
embossobject{ depth, lightAngle, lightColor?, shadowColor? }.
noisefloat0–0.3 añade grano de película.
blurintPíxeles.
edgeFadefloat0–0.5 difumina el borde del lienzo.
colorFilterenumnone, sepia, bw, cool, warm.

Específicos de IA (solo en /api/qr/ai/generate*)

CampoTipoNotas
promptstringDescripción en lenguaje natural.
stylePresetenumminimal, artistic, corporate, playful, luxury, tech, nature.
creativityfloat0–1. Controla la temperatura del LLM y lo atrevido del diseño.
strictScannabilityboolCon true, el motor corrige automáticamente ECC y contraste.
llmProviderenumSolo Marketplace: openai, anthropic, google, mistral, cohere, groq.
llmApiKeystringSolo Marketplace. Se reenvía una vez y nunca se registra.
llmModelstringOpcional; por defecto, el modelo económico de referencia del proveedor.

Orden de validación

  1. JSON bien formado → INVALID_JSON si no lo es.
  2. Tipos y límites de los campos → VALIDATION_ERROR con details[].
  3. Contraste de color → LOW_CONTRAST si es < 4:1 y strictScannability: true.
  4. Tamaño del logo frente a la ECC → LOGO_TOO_LARGE si es demasiado agresivo.
  5. Decodificación de ida y vuelta según ISO 18004 → QR_GENERATION_FAILED si el resultado renderizado no se puede volver a leer.

Consulta Errores para ver la matriz completa de códigos de error.

Regenerar esta página

cd frontend
pnpm docs:schema   # reads ../Models/QrModels.cs and rewrites this file

El script es tools/gen-docs-schema.ts. Cualquier campo que se añada al modelo de C# con un atributo [Description] aparece aquí automáticamente.