Behavior / Notes
- Use this endpoint to update mutable fields such as
name,info,pattern_info, expiry settings, geo-fencing, lead capture, password, and other advanced toggles. - Fields that are immutable after creation:
category,qr_type,custom_domain. Attempting to change them will return a validation error. PUTreplaces the mutable fields you submit — only include fields you want changed. (If your client supportsPATCH, prefer it for partial updates; otherwise send only the fields you intend to update.)- Validate new
infopayloads withPOST /qrcode/validate-info/before updating to avoid broken landing pages.
Request Body — Updatable Fields
The following fields may be included in the JSON request body. Only include fields you want to change. Common / Editable fields| Field | Type | Description |
|---|---|---|
name | string | New name for the QR Code |
info | string | JSON string containing updated QR content (see Components Reference) |
pattern_info | object or string | Design updates (pattern, colors, eyes, frame). Serialize if required by client |
expire_on | string (date-time) | Expiration timestamp (advanced feature) |
expire_on_text | string (HTML) | HTML displayed when QR is expired |
expire_on_timezone | string | Timezone for expiration (e.g., Asia/Kolkata) |
high_accuracy_confirmation | boolean | High-accuracy confirmation for location QR codes |
high_accuracy_geo_fencing | boolean | Toggle geo-fencing |
high_accuracy_geo_fencing_config | object | Geo-fencing config (displayText, fallback, mapLocation, range, unit, redirectUrl) |
high_accuracy_mode | boolean | Request location access behavior toggle |
high_accuracy_mode_text | string | Text shown when requesting location permission |
lead_list | integer or null | Lead list ID to capture leads. Set null to remove link. |
minimum_age | integer | Minimum age to access content |
password | string | Password to protect QR Code content |
Tip: Set lead_list: null to remove the lead list association.
Examples
Update QR Code Name
Update QR Code Content
Update Advanced Features
Update Geo-fencing Configuration
Update Lead List
Remove Lead List
Immutable-field errors
If an attempt is made to modify an immutable field (category, qr_type, custom_domain), the API will return a validation error describing the immutability.
Best Practices & Recommendations
- Validate before updating: Use
POST /qrcode/validate-info/to confirminfopayload correctness. - Sanitize HTML: Any HTML fields (
expire_on_text,high_accuracy_geo_fencing_config.displayText) should be sanitized to prevent XSS on landing pages. - Minimize update payloads: Send only the fields you intend to change to avoid accidental overwrites.
- Audit & versioning: Log update operations (who changed what and when) if your workflow requires auditability.
- Plan entitlements: Confirm advanced features (geo-fencing, expiry, custom domains, lead capture) are enabled in the account plan before updating.
- Test scanning: After UI/design changes (
pattern_info), test scanning across devices and apps to ensure scannability.
Authorizations
API key authentication. Enter your API key directly in the Authorization header.
Path Parameters
QR Code ID
Body
Request schema for updating QR codes. Note: category, qr_type, and custom_domain cannot be updated after creation.
Name of the QR Code
"Updated QR Code Name"
JSON data to update QR code content. See Components Reference for detailed structure examples for each category.
"{\"type\":\"url\",\"data\":{\"url\":\"https://updated-example.com\"}}"
JSON data to update QR code design. See Pattern Info Reference for complete customization options and field values.
"{\"dataInfo\":{\"pattern\":\"lightSquare\",\"gradientStyle\":\"Diagonal\",\"startColor\":\"#000\",\"endColor\":\"#000\",\"logo\":null},\"backGroundColor\":\"#ffffff\"}"
Expiration date and time for the QR code (advanced feature - requires plan quota)
"2025-12-31T23:59:59+05:30"
Custom HTML text to display when QR code is expired (advanced feature - requires plan quota)
"<div style=\"text-align:center\"><p>This QR code has expired</p></div>"
Timezone for expiration date (advanced feature - requires plan quota)
"Asia/Kolkata"
Enable high accuracy confirmation for location-based QR codes (advanced feature - requires plan quota)
true
Enable high accuracy geo-fencing for location-based QR codes (advanced feature - requires plan quota)
true
Configuration for high accuracy geo-fencing (advanced feature - requires plan quota)
Enable high accuracy mode for location-based QR codes (advanced feature - requires plan quota)
true
Text to display when requesting location access (advanced feature - requires plan quota)
"Location access required for this QR code"
Lead list ID for capturing leads (advanced feature - requires plan quota). Set to null to remove lead list.
1106
Minimum age requirement for accessing QR code content (advanced feature - requires plan quota)
18
Password protection for QR code access (advanced feature - requires plan quota)
"securepassword123"
Response
QR Code updated successfully
Internal QR code ID
2411719
Unique QR code identifier
"Q3493df1c0e074ac7"
Name of the QR code
"QR Code"
QR code type
"dy"
Human-readable QR code type
"Dynamic"
JSON data for QR code content
"{\"type\":\"url\",\"data\":{\"url\":\"https://scanova.io\"}}"
QR code design pattern information
null
SVG code for QR code
null
Thumbnail URL for QR code
null
Whether the QR code is active
true
QR code version
1
Creation timestamp
"2025-10-24T18:54:22.697338+05:30"
Last modification timestamp
"2025-10-24T18:54:22.697362+05:30"
List of tags associated with QR code
[]Whether the QR code is password protected
false
Whether the QR code has age restrictions
false
Whether the QR code uses designer features
false
Pattern type for QR code design
null
User who created the QR code
null
Password for QR code access
null
AI-generated QR code information
null
Wallet pass information
null
Whether the QR code is scannable
null
Number of custom form responses
0
Number of RSVP form responses
0
Number of restaurant feedback responses
0