guide

QR Code Types — URL, vCard, WiFi & More

What Are QR Code Types?

All QR codes work the same way — they encode data into a scannable pattern. The "type" refers to what data format is encoded inside. Different types trigger different actions when scanned:

  • A URL QR code opens a website
  • A vCard QR code saves a contact to your phone
  • A WiFi QR code connects your device to a network
  • An Email QR code opens a pre-filled email

Understanding these types helps you create the right QR code for your specific use case.

URL QR Codes

What they do: Open a web page in the scanner's browser.

Best for: Marketing materials, product packaging, business cards, event promotions, restaurant menus.

How to create:

curl -X POST https://qrmint.dev/api/v1/generate \
  -H "Content-Type: application/json" \
  -d '{"data": "https://example.com", "size": 400}'

Tips:

  • Use HTTPS URLs (more trustworthy and secure)
  • Shorter URLs create simpler, more scannable QR codes
  • Consider using a URL shortener like LinkShrink for very long URLs
  • Add UTM parameters for tracking: ?utm_source=qr&utm_medium=print

Use cases:

  • Link to your website or landing page
  • Direct to a specific product page
  • Open an app download link
  • Share a Google Maps location
  • Embed on invoices for quick payment or verification — tools like Faktuj.pl let you generate free VAT invoices that pair perfectly with QR codes

vCard QR Codes

What they do: Save contact information directly to the scanner's phone contacts.

Best for: Business cards, networking events, conference badges, employee IDs.

Data format:

BEGIN:VCARD
VERSION:3.0
N:Doe;John
FN:John Doe
ORG:Example Corp
TEL:+1-555-123-4567
EMAIL:john@example.com
URL:https://example.com
END:VCARD

How to create:

curl -X POST https://qrmint.dev/api/v1/generate \
  -H "Content-Type: application/json" \
  -d '{
    "data": "BEGIN:VCARD\nVERSION:3.0\nN:Doe;John\nFN:John Doe\nORG:Example Corp\nTEL:+1-555-123-4567\nEMAIL:john@example.com\nEND:VCARD",
    "size": 400
  }'

Or use the vCard QR generator on QRMint for an easy form-based approach.

Tips:

  • Include only essential fields — more data means a more complex QR code
  • Test on both iOS and Android — vCard handling differs between platforms
  • Always include your name, phone, and email at minimum

WiFi QR Codes

What they do: Automatically connect the scanner's device to a WiFi network — no typing passwords.

Best for: Homes, offices, hotels, cafes, Airbnb rentals, conference venues.

Data format:

WIFI:T:WPA;S:MyNetworkName;P:MyPassword;;

Where:

  • T = Authentication type (WPA, WEP, or nopass)
  • S = Network name (SSID)
  • P = Password

How to create:

curl -X POST https://qrmint.dev/api/v1/generate \
  -H "Content-Type: application/json" \
  -d '{"data": "WIFI:T:WPA;S:CafeWiFi;P:welcome2026;;", "size": 400}'

Or use the WiFi QR generator for a user-friendly form.

Tips:

  • WPA/WPA2 is the most common authentication type
  • For open networks, use T:nopass and omit the P field
  • The SSID is case-sensitive — make sure it matches exactly
  • Place the QR code near the router for best context

Common placements:

  • Hotel room cards
  • Cafe table tents (next to the menu QR code)
  • Office reception desks
  • Airbnb welcome guides

Email QR Codes

What they do: Open the user's email app with a pre-filled recipient, subject, and body.

Best for: Customer support, feedback collection, event RSVPs, quick contact.

Data format:

mailto:hello@example.com?subject=Inquiry&body=Hi, I'd like to know more about...

How to create:

curl -X POST https://qrmint.dev/api/v1/generate \
  -H "Content-Type: application/json" \
  -d '{"data": "mailto:support@example.com?subject=Support Request", "size": 400}'

Or use the Email QR generator.

Tips:

  • Keep the subject and body short — long strings make complex QR codes
  • URL-encode special characters in the subject and body
  • Works with any email client the user has installed

SMS QR Codes

What they do: Open the messaging app with a pre-filled phone number and optional message.

Best for: Customer service hotlines, opt-in text campaigns, quick contact for tradespeople.

Data format:

sms:+15551234567?body=Hello, I'm interested in your services

How to create:

curl -X POST https://qrmint.dev/api/v1/generate \
  -H "Content-Type: application/json" \
  -d '{"data": "sms:+15551234567?body=Hi there!", "size": 400}'

Or use the SMS QR generator.

Tips:

  • Include the country code in the phone number
  • Keep the pre-filled message short and relevant
  • Some older Android devices use smsto: instead of sms: — test on both

Plain Text QR Codes

What they do: Display raw text when scanned. No internet connection required.

Best for: Serial numbers, inventory codes, instructions, Wi-Fi passwords (manual entry), quick notes.

How to create:

curl -X POST https://qrmint.dev/api/v1/generate \
  -H "Content-Type: application/json" \
  -d '{"data": "Meeting Room 3B - PIN: 4829", "size": 400}'

Tips:

  • Text QR codes work offline — no internet needed
  • Keep text under 300 characters for reliable scanning
  • Great for situations where you just need to share a short piece of information

Comparison Table

Type Opens Internet Needed Best For
URL Web browser Yes Marketing, menus, products
vCard Contacts app No Business cards, networking
WiFi WiFi settings No (to scan) Hotels, cafes, offices
Email Email client No (to compose) Support, feedback
SMS Messaging app No (to compose) Contact, opt-ins
Text Text display No Serial numbers, notes

How to Choose the Right Type

Ask yourself:

  1. What action should the scanner take? — This determines the type
  2. Will they have internet? — If not, avoid URL type
  3. How much data? — More data = more complex QR code = harder to scan
  4. What device will they use? — Test on both iOS and Android

Create Any QR Code Type for Free

QRMint supports all QR code types through a single API. Just format your data correctly and generate:

const types = {
  url: 'https://example.com',
  vcard: 'BEGIN:VCARD\nVERSION:3.0\nFN:John Doe\nTEL:+1555123456\nEND:VCARD',
  wifi: 'WIFI:T:WPA;S:NetworkName;P:password;;',
  email: 'mailto:hello@example.com?subject=Hi',
  sms: 'sms:+1555123456?body=Hello',
  text: 'Any plain text here'
};

const response = await fetch('https://qrmint.dev/api/v1/generate', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ data: types.url, size: 400 })
});

No API keys. No signup. Free forever.


Try creating different QR code types now — use the QRMint playground or browse the API documentation.

qr-codetypesvcardwifiurlemailsmsguide
Share this article: Twitter LinkedIn
← Back to Blog
Part of the SoftVoyagers Ecosystem