qr_config when creating or updating a static or dynamic QR code. The same design contract applies to both types. Create, Retrieve, Update, and List responses always return a complete normalized configuration with renderer defaults filled in.
Shape fields
The eye frame does not support
diamond.
Flat colors
Each section has a color and a color mode:
Set a mode to
flat or gradient. Colors must use six-digit hexadecimal notation such as #214687; three-digit hex, alpha channels, CSS names, and RGB strings are rejected.
Gradient object
When a section usesgradient, provide its complete gradient object:
midpoint is an integer from 5 through 95. It controls where the blended midpoint color appears.
Gradient inheritance and precedence
applyGradientToAll and applyEyeFrameGradientToEye reproduce the dashboard’s Apply to all controls.
- When
matrixColorModeisgradientandapplyGradientToAllistrue,matrixGradientrenders the matrix, eye frames, and eye centers. Eye-frame and eye color/gradient fields remain stored but do not affect rendering. - Otherwise, when
eyeFrameColorModeisgradientandapplyEyeFrameGradientToEyeistrue,eyeFrameGradientrenders the eye frames and eye centers. Eye color/gradient fields remain stored but do not affect rendering. - Otherwise, the matrix, eye frame, and eye center each use their own active flat color or gradient.
true, the matrix gradient wins because it has the highest precedence. applyGradientToAll: true requires matrixColorMode: "gradient". applyEyeFrameGradientToEye: true requires eyeFrameColorMode: "gradient".
Matrix gradient applied everywhere
Eye-frame gradient applied to the eye
Logo visibility
showLogo defaults to true and uses the standard Biqli logo. Set it to false only when the workspace plan includes QR logo customization. Otherwise the API returns 403 upgrade_required with the current and required plan.
The public API does not accept custom logos. logoUrl, useCustomLogo, upload data, and arbitrary extra qr_config fields return 422 validation_error.
Updating an existing design
PATCH /v1/qr/{qr_id} recursively merges qr_config, including individual gradient properties. Send qr_config: null to reset the saved public design. Unknown fields and incomplete active gradients return 422 validation_error.
