Skip to main content
Three free tools bring customers to your number. None of them sends a message by itself, so none of them costs anything per use. Find them in the console under Connections → Settings → Messaging, or use the API below. Reads need messages:read; changes need connections:write.
  • The prefilled message is up to 140 characters. A number can have up to 2,000 codes.
  • PATCH …/qr-codes/{code} changes the message; the link and image stay the same, so printed codes keep working.
  • qr_image_url is a short-lived Meta link, so download the image when you create it. The console draws a fresh, printable SVG from deep_link_url at any time.
  • Meta does not count scans, to protect people’s privacy.
  • Opening a link with a typed message hides your ice breakers for that chat.
An opt-in link is wa.me/{your number}/signup/{id}. WhatsApp shows the person your invitation; when they agree, they get your thank-you message, optionally with a promo code. Use it to collect marketing consent inside WhatsApp itself.
Links cannot be deleted. Turn one off with PATCH …/signup-links/{id} and "status": "DISABLED"; people who tap it see an error until you turn it back on.
Meta does not offer opt-in links for businesses or people in the EEA, UK, Brazil, Japan, South Korea, Nigeria, South Africa or Turkey. A request from those markets returns 422 with meta.code: 2494165.

Conversation starters

Ice breakers are up to 4 suggestions (80 characters each) a customer can tap in an empty chat. Commands are up to 30 /name shortcuts with a description. Neither may contain emoji.
The PUT replaces everything, so send empty arrays to clear. A tapped ice breaker or command arrives as an ordinary inbound message, so your inbox, automations and message.received webhook handle it like any other. To see ice breakers yourself, delete your existing chat with the number first; WhatsApp only shows them in a new chat.