Skip to main content
PATCH
Update a QR code
PATCH /v1/qr/{qr_id} requires QR codes: Write (qr_codes.update). Send at least one supported field. Omitted top-level fields remain unchanged.

Merge behavior

  • qr_config is recursively merged with the current public styling configuration. You can change one color or one gradient property without resending the complete design.
  • payload is replaced and normalized as a complete content payload. When changing it, send all values you want to preserve.
  • tag_ids replaces the complete tag set. Send [] to remove all tags. A non-empty array also requires tags.view.
  • Rule arrays replace their corresponding rule set. Send [] to clear a rule group and exp_clicks_rule: null to clear scan expiration.
  • qr_config: null resets the saved public styling configuration to renderer defaults.

Change styling surgically

See Style a QR code for accepted styles, colors, angles, logo rules, and precedence.

Change type or content type

If you change content_type, also send a complete matching payload. Static and dynamic types accept different content types. Changing a QR to static clears scheduling, UTM data, and dynamic rules because those features do not apply to static content. Custom logos are not supported. qr_config.logoUrl and qr_config.useCustomLogo return 422 validation_error. Success returns 200 OK with the complete updated QR code. An unavailable or cross-workspace biq_qr_... ID returns 404 resource_not_found.

Shared API behavior

Authentication is workspace-scoped; see Authentication. Errors use the standard envelope and request IDs described in Errors, and requests are subject to Rate limits.

Authorizations

Authorization
string
header
required

A workspace API key beginning with biqli_.

Path Parameters

qr
string
required
Pattern: ^biq_qr_[0-9A-HJKMNP-TV-Z]{26}$

Body

application/json
type
enum<string>
Available options:
static,
dynamic
content_type
enum<string>
Available options:
text,
link,
email,
phone,
sms,
wifi,
vcard,
event,
application,
whatsapp
title
string
Maximum string length: 255
payload
object

Fields must match content_type. See Create a QR code for required combinations.

qr_config
null | object

Public QR design. applyGradientToAll gives the matrix gradient precedence over both eye sections. Otherwise applyEyeFrameGradientToEye gives the eye-frame gradient precedence over the eye center. Custom logos are not supported.

utm
string | null
Maximum string length: 2000
activates_at
string<date-time> | null
expires_at
string<date-time> | null
geo_rules
object[]
device_rules
object[]
platform_rules
object[]
exp_clicks_rule
object | null
tag_ids
string[]
Maximum array length: 100

Response

Updated QR code.

qr_code
object
required
status
string
required
Allowed value: "success"