QR codes (click-to-chat)
CRUD de QR code e link click-to-chat com mensagem pré-preenchida: criar, listar, consultar e remover.
Crie QR codes e links click-to-chat com mensagem pré-preenchida — ideal para divulgar o WhatsApp do seu negócio em site, loja física (impresso) ou anúncio. O cliente escaneia o QR code (ou clica no link) e a conversa já abre com a mensagem preenchida, pronta para enviar.
QR codes não expiram sozinhos — ficam ativos até você removê-los.
{id} é o ID da conexão WhatsApp (veja Accounts).
POST /v1/accounts/{id}/qr-codes
Cria um QR code / link click-to-chat.
Path: id (obrig.) — ID da conexão.
Body (JSON):
{
"prefilledMessage": "Oi! Vim pelo site.",
"generateQrImage": "PNG"
}
| Campo | Tipo | Obrigatório | Regras |
|---|---|---|---|
prefilledMessage | string | Sim | obrig.; mensagem pré-preenchida da conversa |
generateQrImage | enum | Não | SVG | PNG, default PNG |
Resposta 201:
Resposta 201
{
"code": "ABC123",
"prefilledMessage": "Oi!",
"deepLinkUrl": "https://wa.me/message/ABC123",
"qrImageUrl": "https://..."
} | Campo | Descrição |
|---|---|
code | Código do QR code (usar em GET/DELETE /{code}) |
prefilledMessage | Mensagem pré-preenchida |
deepLinkUrl | Link click-to-chat (wa.me) |
qrImageUrl | URL da imagem do QR code (formato conforme generateQrImage) |
404 = ACCOUNT_NOT_FOUND.
curl -X POST https://api.wablastmessage.com/v1/accounts/ckv.../qr-codes \
-H "Authorization: Bearer wak_sua_chave" \
-H "Content-Type: application/json" \
-d '{
"prefilledMessage": "Oi! Vim pelo site.",
"generateQrImage": "PNG"
}'const res = await fetch('https://api.wablastmessage.com/v1/accounts/ckv.../qr-codes', {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + process.env.WABLAST_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
prefilledMessage: 'Oi! Vim pelo site.',
generateQrImage: 'PNG',
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
'https://api.wablastmessage.com/v1/accounts/ckv.../qr-codes',
headers={'Authorization': 'Bearer ' + os.environ['WABLAST_API_KEY']},
json={
'prefilledMessage': 'Oi! Vim pelo site.',
'generateQrImage': 'PNG',
},
)
print(res.status_code, res.json())<?php
$ch = curl_init('https://api.wablastmessage.com/v1/accounts/ckv.../qr-codes');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . getenv('WABLAST_API_KEY'),
'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'prefilledMessage' => 'Oi! Vim pelo site.',
'generateQrImage' => 'PNG',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE) . " " . $res; GET /v1/accounts/{id}/qr-codes
Lista todos os QR codes da conexão.
Resposta 200: array com o mesmo shape da criação, sem qrImageUrl na listagem.
Resposta 200
[
{
"code": "ABC123",
"prefilledMessage": "Oi!",
"deepLinkUrl": "https://wa.me/message/ABC123"
}
] GET /v1/accounts/{id}/qr-codes/{code}
Consulta um QR code específico. code = campo code retornado na criação.
Path: id (obrig.) — ID da conexão; code (obrig.) — código do QR code.
404 = QR_CODE_NOT_FOUND | ACCOUNT_NOT_FOUND.
DELETE /v1/accounts/{id}/qr-codes/{code}
Apaga o QR code — o link e a imagem param de funcionar.
Path: id (obrig.) — ID da conexão; code (obrig.) — código do QR code.
Resposta 200:
{ "success": true }