Tutorial - Wi-Fi poster for cafes
A 10 minute walk-through to render a print-ready Wi-Fi join QR for a cafe poster.
Tutorial: Wi-Fi poster for cafes
In this 10 minute walk-through, you will generate a Wi-Fi join poster. A guest scans the QR with their phone camera, taps "Join Network", and they are online with no password to type.
What you will build
A 6 x 6 inch print-ready PNG showing your cafe's Wi-Fi QR. Black modules on white background, your bracket logo in the middle.
Step 1: Plan your QR
| Param | Value | Why |
|---|---|---|
data_type | wifi | Triggers the auto-join action |
payload.ssid | "Cafe Plein Soleil" | Your network's name |
payload.password | "Welcome2026" | The shared password |
payload.auth | "WPA" | Almost certainly correct (modern routers) |
size_inches | 6 | Big enough to scan from a meter away |
color | "black" | Maximum contrast |
background | "white" | Print friendly |
format | "png" | Universal compatibility |
Step 2: Make the call
cURL
curl -X POST https://api.qrstudio.agency/api/v1/generate/ \
-H "X-Api-Key: smk_..." \
-H "Content-Type: application/json" \
-d '{
"data_type": "wifi",
"payload": {
"ssid": "Cafe Plein Soleil",
"password": "Welcome2026",
"auth": "WPA"
},
"size_inches": 6,
"color": "black",
"background": "white",
"pattern": "rounded"
}' \
--output cafe-wifi.pngPython
import requests
r = requests.post(
"https://api.qrstudio.agency/api/v1/generate/",
headers={"X-Api-Key": "smk_..."},
json={
"data_type": "wifi",
"payload": {
"ssid": "Cafe Plein Soleil",
"password": "Welcome2026",
"auth": "WPA",
},
"size_inches": 6,
"color": "black",
"background": "white",
"pattern": "rounded",
},
)
open("cafe-wifi.png", "wb").write(r.content)Step 3: Test the scan
- Open your phone's Camera (iOS) or Google Lens / Android scanner.
- Point it at
cafe-wifi.pngon your screen. - Tap the "Join Network" prompt.
- Phone connects automatically.
If the phone shows the raw WIFI:T:WPA;...;; string instead of a join
button, the OS is too old (iOS 11+ / Android 10+ required).
Step 4: Make it pretty
Add your cafe's logo in the center for branding. Custom logos require Starter plan or higher.
curl -X POST https://api.qrstudio.agency/api/v1/generate/ \
-H "X-Api-Key: smk_..." \
-F "data_type=wifi" \
-F 'payload={"ssid":"Cafe Plein Soleil","password":"Welcome2026","auth":"WPA"}' \
-F "size_inches=6" \
-F "color=black" \
-F "background=white" \
-F "logo_file=@/path/to/cafe-logo.png" \
--output cafe-wifi-branded.pngStep 5: Add a "scan me" frame
{
"data_type": "wifi",
"payload": { "ssid": "Cafe Plein Soleil", "password": "Welcome2026", "auth": "WPA" },
"size_inches": 6,
"color": "black",
"background": "white",
"pattern": "rounded",
"frame_style": "scan-me-bottom",
"frame_color": "#6c48e8",
"frame_label": "Free Wi-Fi"
}Step 6: Print
Send cafe-wifi-branded.png to any print shop. The PNG is rendered at
300 DPI by default, so 6 x 6 inches at the printer's native resolution
gives you a crisp output.
tip: Add human-readable text Underneath the QR, also print the password in plain text:
Free Wi-Fi Network: Cafe Plein Soleil Password: Welcome2026 Or scan the QR above
Older phones, kids' devices, broken cameras: give them a fallback.
Common issues
warning: Special characters in password Passwords with
\,;,,,:,"get auto-escaped by the API per the Wi-Fi QR spec. You do not need to escape them yourself.
warning: Open networks For a Wi-Fi without a password, set
"auth": "NOPASS"and skippassword.
warning: Hidden SSID If your network is hidden (broadcasts no beacon), set
"hidden": truein the payload.
What is next
- vCard business cards: same flow, different data type
- Print quality guide: DPI, sizes, prep
- Dynamic campaign with analytics