QR Codes & Short Links
Generate a QR code (or short link) that opens a WhatsApp chat with your number when scanned or tapped, optionally with a pre-filled outgoing message. Useful for receipts, posters, packaging, and in-store signage.
1. Create a QR code
POST /api/v25.0/{PHONE_NUMBER_ID}/message_qrdls
Authorization: Bearer pk_live_<your-key>
Content-Type: application/jsonRequest body
{
"prefilled_message": "Hi, I'd like to know more about your Diwali offer",
"generate_qr_image": "PNG"
}| Field | Notes |
|---|---|
prefilled_message | The text auto-populated in the user’s compose box (≤ 250 chars). Leave empty for an empty compose box |
generate_qr_image | PNG, SVG, or omit to skip the image |
Response — 200
{
"code": "ABCD1234",
"prefilled_message": "Hi, I'd like to know more about your Diwali offer",
"deep_link_url": "https://wa.me/message/ABCD1234",
"qr_image_url": "https://scontent.fb.com/qr/ABCD1234.png"
}| Field | Notes |
|---|---|
code | Short opaque code — also the key for the update/delete endpoints below |
deep_link_url | The wa.me/message/… link. Stable for the life of the code |
qr_image_url | Temporary URL — download and host the image yourself for long-term use. Expires after ~1 hour |
2. List all QR codes on a phone number
GET /api/v25.0/{PHONE_NUMBER_ID}/message_qrdls
Authorization: Bearer pk_live_<your-key>Response — 200
{
"data": [
{
"code": "ABCD1234",
"prefilled_message": "Hi, I'd like to know more about your Diwali offer",
"deep_link_url": "https://wa.me/message/ABCD1234"
}
]
}3. Update a QR code (change the prefilled message)
POST /api/v25.0/{PHONE_NUMBER_ID}/message_qrdls/{QR_CODE_ID}
Authorization: Bearer pk_live_<your-key>
Content-Type: application/json{ "prefilled_message": "Hi, I'd like to redeem the Diwali coupon" }The code and deep_link_url stay the same — printed posters keep
working, the in-WhatsApp prompt changes.
4. Delete a QR code
DELETE /api/v25.0/{PHONE_NUMBER_ID}/message_qrdls/{QR_CODE_ID}
Authorization: Bearer pk_live_<your-key>Response — 200
{ "success": true }Once deleted, the wa.me/message/{QR_CODE_ID} link returns a “this link
isn’t available” page in WhatsApp. There’s no undelete.
Errors
| Body | When |
|---|---|
(#100) prefilled_message exceeds 250 characters | Trim the message |
(#100) Maximum 100 QR codes per phone number reached | Delete unused ones first |
cURL
# Create
curl -X POST \
"https://api.splashifypro.com/api/v25.0/$PHONE_NUMBER_ID/message_qrdls" \
-H "Authorization: Bearer $SPLASHIFY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prefilled_message": "Hi, I want to book a slot",
"generate_qr_image": "PNG"
}'
# Delete
curl -X DELETE \
"https://api.splashifypro.com/api/v25.0/$PHONE_NUMBER_ID/message_qrdls/ABCD1234" \
-H "Authorization: Bearer $SPLASHIFY_API_KEY"Notes
- Codes are case-sensitive. Don’t normalise —
ABCD1234andabcd1234are different codes. - Per-phone-number limit: 100. Audit and delete stale codes periodically. The list endpoint paginates if needed.
- No analytics on scans. Meta does not report scan counts per code; if you need attribution, point the prefilled message at a short URL on your side and log the redirect.