QR API
QR endpoints exposed by the Devotel CPaaS API Base path:/api/v1/qr
Endpoint count: 3
Generate a QR code for arbitrary data
GET /api/v1/qr/generateimage/png bytes by default, or a base64 data URL in the standard envelope when format=json. Script-execution URL schemes (javascript:, data:, vbscript:, …) are rejected with 400; rendering runs fully in-cluster — the payload never leaves the platform.
string
required
Payload to encode (plain text or a URL, max 2048 chars). Must not start with a script-execution URL scheme such as
javascript: or data:.integer
Image edge length in pixels (50–1024, default 300). The output PNG is always square.
string (enum: png|json)
png (default) returns raw image/png bytes; json returns the standard envelope with data.qr_data_url as a base64 data URL.string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to
true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.Generate an SMS deep-link QR code
GET /api/v1/qr/smssms:<phone>?body=… deep link: scanning it opens the device’s native SMS composer addressed to the given number with an optional pre-filled body. The phone number is validated and normalised to E.164 before encoding. Returns image/png bytes by default, or a base64 data URL in the standard envelope when format=json.
string
required
Destination phone number in international format (e.g.
+15551234567). Rejected with 400 when it is not a dialable international number.string
Optional pre-filled message body for the deep link (max 1024 chars). URL-encoded into the encoded
wa.me / sms: payload.integer
Image edge length in pixels (50–1024, default 300). The output PNG is always square.
string (enum: png|json)
png (default) returns raw image/png bytes; json returns the standard envelope with data.qr_data_url as a base64 data URL.string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to
true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.Generate a WhatsApp click-to-chat QR code
GET /api/v1/qr/whatsapphttps://wa.me/<phone>?text=… click-to-chat deep link: scanning it opens a WhatsApp chat with the given number and an optional pre-filled message. The phone number is validated as a dialable international number before encoding. Returns image/png bytes by default, or a base64 data URL in the standard envelope when format=json.
string
required
Destination phone number in international format (e.g.
+15551234567). Rejected with 400 when it is not a dialable international number.string
Optional pre-filled message body for the deep link (max 1024 chars). URL-encoded into the encoded
wa.me / sms: payload.integer
Image edge length in pixels (50–1024, default 300). The output PNG is always square.
string (enum: png|json)
png (default) returns raw image/png bytes; json returns the standard envelope with data.qr_data_url as a base64 data URL.string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to
true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.