Skip to main content

Developer QR Code Tools

The Developer → QR Code Tools page is a visible workspace for previewing the QR code API without writing a curl call: you type a phone number or URL, and the dashboard renders exactly what the API returns. Use it to verify the encoded deep link before a QR goes onto print collateral, signage, or a web embed. The page is available to the owner, admin, and developer roles. Everything it generates runs through the server-side /qr/* endpoints — the same routes the QR API guide documents — so what you preview is what your API integration gets.

Generate a QR code

Open Developer → QR Code Tools and pick one of the three tabs:
  • SMS — enter a phone number and optional message. Scanning the QR opens the device’s native SMS composer addressed to that number, with the message pre-filled.
  • WhatsApp — enter a phone number and optional message. Scanning opens a WhatsApp click-to-chat (wa.me) link to that number.
  • Custom URL — enter any http(s):// URL or plain text (event check-in codes, coupon URLs, support pages). Payloads that start with a script-execution scheme such as javascript: or data: are rejected by the server.
The preview renders as you type — no generate button — at a fixed 512-pixel edge length. Invalid input shows an inline error (for example, a phone number that isn’t in E.164 form, +<digits> with at most 15 digits) instead of firing a request. Once the preview renders, the page shows the QR image plus a caption and the exact encoded link underneath in monospace. Two actions are available:
  • Download PNG — saves the QR image as a PNG file for print or web use.
  • Copy Link — copies the encoded deep link (sms:<E.164>?body=…, https://wa.me/<digits>?text=…, or your custom URL) to the clipboard, so you can inspect or reuse exactly what a scanned device would open.
If clipboard access is unavailable (for example, in a browser that blocks it), a toast tells you to copy the link manually from the field. For programmatic generation — batch sticker runs, email embeds, or curl integration — use the /api/v1/qr/* endpoints directly; see Click-to-chat QR codes for print and web for request shapes, the size and format parameters, and the raw-PNG vs. data-URL envelope.

Sandbox vs. live numbers

Every number the dashboard normalizes is validated as a dialable international number before encoding, so both test and production numbers work. Use test API keys and sandbox-tier numbers while you prototype; the rendered QR behaves the same either way — scan it with any phone, yours or a customer’s. For high-volume generation (per-recipient one-time tokens, millions of codes), don’t call the render endpoints inline — generate once, store the assets, and serve them yourself. The on-demand endpoints are rate-limited for interactive use, the same constraint that applies when you call them from your own code.

Troubleshooting

  • 400 INVALID_PHONE on SMS or WhatsApp. The number must parse as a dialable international number. A shape like +12 or a bare country code is rejected — pass the full E.164 form.
  • Custom URL rejected. data: and javascript: (and similar script-execution schemes) are blocked. Encode a plain URL or text payload.
  • Preview never renders. One of the active tab’s required fields is empty — the SMS and WhatsApp tabs need a phone number, and Custom URL needs a URL.