Download a QR code with JSON options
Method POST {API_BASE}/v2.1/client/{key}/{crid}/qrcode
Same behavior as GET, with color and size options accepted in the JSON body for legacy clients.
Authorization
Required scope
client_v2
The API key is intentionally kept in the path for V2 compatibility:
/v2.1/client/{key}/{crid}/... or /v2.1/user/{key}/{crid}/....
Client routes require the client_v2 scope. User routes require the user_v2
scope. Unknown, expired, revoked, malformed, or wrong-scope keys return the
legacy JSON error envelope.
Parameters
| Name | In | Type | Required | Constraints | Description |
|---|---|---|---|---|---|
key |
Path | string |
Required |
API key kept in the URL for V2 compatibility. Requires client_v2 or user_v2 depending on the route.
|
|
crid |
Path | string |
Required | Client reference ID, usually an order or campaign reference. |
Request body
| Name | Type | Required | Description |
|---|---|---|---|
dark |
string
|
Optional | |
light |
string
|
Optional | |
extension |
string
|
Optional |
Filename extension hint only; image body remains PNG.
Default
png
|
size |
integer
|
Optional |
Default
256
Constraints
min 64
|
Responses
PNG QR code image.
Invalid key, CRID, payload, message state or business precondition.
Key is authenticated but scope or platform constraints are invalid.
{
"status": 1,
"error": "forbidden"
}
forbidden
{
"status": 1,
"error": "forbidden"
}
invalidPlatformConstraint
{
"status": 1,
"error": "key_invalid"
}
API key backend is temporarily unavailable.
{
"status": 1,
"error": "auth_unavailable"
}