Pular para o conteúdo

Referência de QrConfig

O corpo que você envia por POST para /api/qr/generate (e que os modelos e o endpoint de IA substituem). Tudo o que ficar sem valor usa o padrão do motor — não há nenhum campo obrigatório além de content.

Fonte de verdade: Models/QrModels.cs no backend .NET. A lista abaixo cobre todos os campos públicos; para um dump completo do esquema, com tipos e nulabilidade, execute pnpm docs:schema no repositório do frontend, que gera esta página de novo a partir dos modelos C#.

Conteúdo

CampoTipoPadrãoObservações
contentstringobrigatórioURL ou texto a codificar. Máx. 4296 caracteres.
eccLevelenumMCorreção de erros. L 7% · M 15% · Q 25% · H 30%. Suba para H ao adicionar um logo.

Saída

CampoTipoPadrãoObservações
fileFormatenumpngpng, jpg, svg, pdf, webp.
responseTypeenumbase64base64 devolve JSON; binary devolve o arquivo bruto.
outputWidthint800Pixels. Até 4096.
outputHeightint—Por padrão, igual a outputWidth. Substitua só se precisar de um formato não quadrado.
pixelsPerModuleint10Resolução por módulo do QR. Aumenta outputWidth se este não estiver definido.
qualityint90Qualidade JPG/WebP de 1 a 100.
transparentBackgroundboolfalseSó PNG/SVG/WebP.

Cores

CampoTipoPadrãoObservações
primaryColorhex#000000Cor dos módulos. #RGB, #RRGGBB, #RRGGBBAA.
secondaryColorhex—Usada pelos degradês e pelos módulos conectados.
backgroundColorhex#FFFFFFCor da zona de silêncio.
foregroundStyleenumsolidsolid, linearGradient, radialGradient, sweepGradient.
gradientTypeenumlinearForma abreviada equivalente a foregroundStyle.
gradientDirectionenumverticalvertical, horizontal, diagonal, diagonal-reverse.
gradientColorshex[]—De 2 a 6 paradas.
gradientStopsfloat[]uniformePosições de 0 a 1. Deve coincidir com gradientColors.length.
gradientAngleint0Graus; se definido, substitui gradientDirection.

Módulos (os pontos)

CampoTipoPadrãoObservações
qrShapeenumsquareTela externa: square, roundedsquare, circle.
qrShapeRadiusint0Raio dos cantos quando qrShape: roundedsquare.
moduleShapeenumsquareUma de 27. Veja Padrões.
moduleScalefloat1.00.5–1.0. Reduz cada módulo para um visual mais arejado.
moduleRotationfloat0Graus.
moduleStyleenumsolidsolid, outline, striped.
modulePatternenumstandardstandard, checker, alternating.
moduleSizeVariationfloat00–0.3 adiciona uma variação orgânica a cada módulo.
connectedStyleenumnonenone, fluid, sharp, round. Une módulos adjacentes.

Padrões localizadores (os 3 olhos grandes)

CampoTipoPadrãoObservações
finderOuterShapeenumsquaresquare, roundedsquare, circle, diamond, octagon, target, double.
finderInnerShapeenumsquaresquare, roundedsquare, circle, diamond, star, dot.
finderOuterColorhex—Por padrão, primaryColor.
finderInnerColorhex—Por padrão, primaryColor.
finderStyleenumstandardstandard, flat, embossed.
CampoTipoPadrãoObservações
logoUrlurl—URL pública baixada pelo servidor. PNG/JPG/GIF/BMP/WebP, ≤ 10 MB.
logoBase64string—Alternativa com data URI embutido.
logoFilemultipart—Parte binária se você usar multipart/form-data.
logoShapeenumsquaresquare, circle, rounded.
logoSizePercentfloat185–30. Suba sempre eccLevel para H quando for ≥ 20.
logoBorderWidthint0Espessura da borda em pixels.
logoBorderColorhex#FFFFFF
logoShadowboolfalseSombra projetada sob o logo.
logoBackgroundenumnonenone, solid, match-bg.
cleanBehindLogobooltrueApaga os módulos sob o logo para que ele não brigue com o QR.

Textos sobrepostos

CampoTipoObservações
centerTextobjectFaixa atravessando o centro: { text, color?, backgroundColor?, height?, fontSize?, bold?, fontFamily? }.
circularTextobjectTexto curvado ao redor do QR: { text, color?, fontSize?, position? }.
ctaTextstringLegenda embaixo do QR (por exemplo, "SCAN ME").
ctaTextStyleobject{ color?, fontSize?, fontFamily?, bold?, italic? }.

Molduras

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

Imagem de fundo

CampoTipoObservações
backgroundImageUrl / backgroundImageBase64url/stringImagem suave renderizada atrás do QR.
backgroundImageBlendModeenumnormal, multiply, screen, overlay.
backgroundImageOpacityfloat0–1.
backgroundImageBlurintPixels.
backgroundImageFitenumcover, contain, stretch.

Efeitos

CampoTipoObservações
shadowobject{ color, blur, offsetX, offsetY }.
glowobject{ color, blur, intensity }.
embossobject{ depth, lightAngle, lightColor?, shadowColor? }.
noisefloat0–0.3 adiciona granulação de filme.
blurintPixels.
edgeFadefloat0–0.5 esmaece a borda da tela.
colorFilterenumnone, sepia, bw, cool, warm.

Específicos de IA (só em /api/qr/ai/generate*)

CampoTipoObservações
promptstringDescrição em linguagem natural.
stylePresetenumminimal, artistic, corporate, playful, luxury, tech, nature.
creativityfloat0–1. Controla a temperatura do LLM e a ousadia.
strictScannabilityboolQuando true, o motor corrige automaticamente ECC/contraste.
llmProviderenumSó no marketplace: openai, anthropic, google, mistral, cohere, groq.
llmApiKeystringSó no marketplace. Repassada uma única vez, nunca registrada em log.
llmModelstringOpcional; por padrão, o modelo barato principal do provedor.

Ordem de validação

  1. JSON bem formado → INVALID_JSON caso contrário.
  2. Tipos e limites dos campos → VALIDATION_ERROR com details[].
  3. Contraste de cores → LOW_CONTRAST se for menor que 4:1 e strictScannability: true.
  4. Tamanho do logo vs ECC → LOGO_TOO_LARGE se for agressivo demais.
  5. Decodificação de ida e volta ISO 18004 → QR_GENERATION_FAILED se a imagem renderizada não puder ser lida de novo.

Veja Erros para a matriz completa de códigos de erro.

Como gerar esta página de novo

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

O script é tools/gen-docs-schema.ts. Qualquer campo adicionado ao modelo C# com um atributo [Description] aparece aqui automaticamente.