Adiós tarjetas de visita: crea tu código QR vCard
¿Sigues usando tarjetas de visita cuando te reúnes con un cliente? Y si las sigues usando… ¿no le has puesto un código QR?
Desde la pandemia, escanear un QR con el móvil ya no le suena raro a nadie. Entonces, ¿no es más fácil que tu contacto pase directamente a su agenda, en vez de que alguien teclee tu nombre, tu teléfono y tu correo a mano (y se equivoque en un dígito)?
El QR no guarda un enlace, sino la vCard tal cual: un texto con tus datos. La cámara lo lee, reconoce que es un contacto y le pregunta a la agenda si quiere guardarla.
Qué es una vCard
vCard es un formato estándar para intercambiar datos de contacto. Es texto plano: una línea por dato, con una etiqueta delante. Los ficheros suelen tener la extensión .vcf, y es el mismo formato que usa tu móvil cuando compartes un contacto.
Con un código QR vCard puedes pasar a la agenda de otra persona datos como estos:
| Dato | Etiqueta en la vCard |
|---|---|
| Nombre y apellidos | N (por partes) y FN (nombre completo, tal como se muestra) |
| Teléfono móvil y fijo | TEL con TYPE=CELL, TYPE=WORK… |
| Correo electrónico | EMAIL |
| Dirección postal (calle, ciudad, provincia, código postal, país) | ADR |
| Empresa u organización | ORG |
| Cargo dentro de la empresa | TITLE |
| Sitio web | URL |
vCard de ejemplo
Esta es una vCard completa de una persona inventada. Puedes copiarla y cambiar los datos por los tuyos:
BEGIN:VCARD
VERSION:3.0
N:Ejemplo Núñez;Ana;;;
FN:Ana Ejemplo Núñez
ORG:Empresa Ficticia SL
TITLE:Desarrolladora
TEL;TYPE=CELL:+34600000000
EMAIL;TYPE=INTERNET:[email protected]
URL:https://example.com
END:VCARD
Cómo se lee:
BEGINyENDabren y cierran la ficha.VERSIONdice qué versión del formato usas.Nva por partes, separadas por punto y coma: apellidos; nombre; segundos nombres; tratamiento (Sra., Dr.); sufijos. Las partes vacías se dejan en blanco, por eso acaba en;;;.FNes el nombre tal como quieres que aparezca en la agenda.- Escribe el teléfono con el prefijo del país (
+34en España) para que funcione desde cualquier sitio. - Si un dato lleva una coma o un punto y coma de verdad (por ejemplo,
Ejemplo, S.L.), escríbelo con una barra delante:Ejemplo\, S.L.. Si no, el formato lo confunde con un separador.
Cómo crear tu código QR vCard
Opción 1: con un generador web
Es lo más rápido. Generadores como QR Code Generator tienen una opción «vCard»: rellenas un formulario y descargas la imagen.
Antes de imprimir nada, fíjate en una cosa: el QR debe ser estático, es decir, llevar tus datos dentro. Algunos generadores crean QR dinámicos, que en realidad guardan un enlace a su web. Si ese servicio cambia sus condiciones o cierra, tus tarjetas impresas dejan de funcionar. Para comprobarlo, escanéalo: si el móvil te ofrece guardar un contacto, es estático; si te ofrece abrir una web, es dinámico.
Opción 2: con Node.js
Si prefieres no dar tus datos a una web de terceros, puedes generarlo en tu ordenador con la librería qrcode. Necesitas Node.js instalado:
npm install qrcode
Guarda esto como generar-qr.mjs:
import QRCode from 'qrcode';
// Escapa los caracteres que la vCard usa como separadores
const escapar = (texto) =>
texto.replace(/\\/g, '\\\\').replace(/,/g, '\\,').replace(/;/g, '\;');
const contacto = {
nombre: 'Ana',
apellidos: 'Ejemplo Núñez',
empresa: 'Empresa Ficticia SL',
cargo: 'Desarrolladora',
movil: '+34600000000',
email: '[email protected]',
web: 'https://example.com',
};
const vcard = [
'BEGIN:VCARD',
'VERSION:3.0',
`N:${escapar(contacto.apellidos)};${escapar(contacto.nombre)};;;`,
`FN:${escapar(`${contacto.nombre} ${contacto.apellidos}`)}`,
`ORG:${escapar(contacto.empresa)}`,
`TITLE:${escapar(contacto.cargo)}`,
`TEL;TYPE=CELL:${contacto.movil}`,
`EMAIL;TYPE=INTERNET:${contacto.email}`,
`URL:${contacto.web}`,
'END:VCARD',
].join('\r\n'); // la norma pide saltos de línea CRLF
await QRCode.toFile('contacto.png', vcard, { errorCorrectionLevel: 'M', width: 600 });
await QRCode.toFile('contacto.svg', vcard, { errorCorrectionLevel: 'M' });
console.log(`QR generado con ${Buffer.byteLength(vcard)} bytes de datos`);
Y ejecútalo:
node generar-qr.mjs
# QR generado con 222 bytes de datos
Obtienes contacto.png para usar en el móvil o en la web y contacto.svg para la imprenta: un SVG se puede ampliar sin que se pixele.
Opción 3: en una sola línea desde la terminal
Si ya tienes la vCard guardada en contacto.vcf, la librería trae una orden que la convierte sin escribir código:
npx qrcode -e M -o contacto.png "$(cat contacto.vcf)"
-e M es el nivel de corrección de errores (lo explico más abajo) y -o el fichero de salida. Si lo terminas en .svg, te lo da en SVG.
Pruébalo: escanea este QR
Este es el QR que genera el código anterior. Apunta la cámara del móvil y verás cómo te ofrece guardar a Ana Ejemplo Núñez (no te preocupes, no existe):
- iPhone: abre la Cámara, encuadra el código y toca el aviso que aparece abajo. También puedes usar el control «Escanear Código» del Centro de control.
- Android: abre la cámara y apunta al código; si no lo detecta, usa el lector de QR de los ajustes rápidos o Google Lens. El nombre exacto cambia según el fabricante.
Tarjeta de visita con código QR: cómo imprimirla bien
Si quieres seguir entregando algo físico, por política de marketing de tu empresa o porque te gusta, imprime el QR en la tarjeta. Unos consejos para que se lea a la primera:
- Pocos datos. Cuanto más texto lleva la vCard, más cuadraditos tiene el QR y más pequeños salen al imprimirlos. Nombre, móvil, correo y web suelen bastar.
- Contraste alto. Módulos oscuros sobre fondo claro, nunca al revés, y sin fotos detrás.
- Margen blanco alrededor. El QR necesita un borde vacío para que la cámara sepa dónde empieza. Los generadores ya lo añaden: no lo recortes.
- Nivel de corrección adecuado. El QR repite parte de la información para poder leerse aunque esté sucio o doblado. Para una tarjeta,
MoQvan bien. - Prueba antes de imprimir cien. Imprime una al tamaño real y escanéala con un iPhone y un Android.
| Nivel | Superficie dañada que aguanta (aprox.) |
|---|---|
L |
7 % |
M (por defecto) |
15 % |
Q |
25 % |
H |
30 % |
Más corrección significa más cuadraditos para los mismos datos, así que no subas a H si no lo necesitas.
Qué ganas con un QR vCard
- No necesitas llevar tarjetas. Enseñas el QR desde tu móvil (guárdalo como imagen o en la pantalla de bloqueo) y el contacto se crea en el móvil del cliente.
- Datos sin erratas. Si mantienes las tarjetas impresas, con un simple gesto con el móvil tendrán todos tus datos de manera inequívoca, sin perder tiempo copiándolos.
- Funciona sin internet si el QR es estático: los datos van dentro del código.
Un QR estático no caduca: tus datos van dentro.
Límites que debes conocer
- No se actualiza solo. Si cambias de teléfono o de empresa, tienes que generar un QR nuevo y reimprimir. Es el precio de no depender de un servicio externo.
- Lo lee cualquiera. Todo lo que pongas en la vCard lo puede guardar quien haga una foto a tu tarjeta. Piensa si quieres incluir tu dirección o tu móvil personal.
- Sin foto. Se puede meter una foto en la vCard, pero no cabe en un QR razonable: el límite de un QR, en su versión más grande, ronda los 2.900 bytes.
Si te interesa por qué estos pequeños cambios no son lo mismo que «transformarse digitalmente», lo cuento en Digitalización vs transformación digital. Y si lo que quieres es que te escriban en vez de llamarte, mira el generador de código mailto. Para elegir el correo que pones en la tarjeta, tienes direcciones de correo para humanos: fáciles de dictar y de escribir bien a la primera.
Fuentes
Comprobado en noviembre de 2026:
- Formato vCard: RFC 6350 (vCard 4.0, vigente) y RFC 2426 (vCard 3.0): propiedades obligatorias, orden de los campos de
NyADR, escape de comas y puntos y coma, saltos de línea CRLF y tipotext/vcard. - Compatibilidad de la 4.0: error 978696 de Mozilla (2014, Android 4.4 no importaba vCard 4.0) y incidencia 6155 de /e/OS. No hay documentación oficial de Google ni de Apple sobre qué versiones aceptan sus agendas.
- Librería
qrcodepara Node.js 1.5.4: API, opciones de la CLI, niveles de corrección de errores y capacidad máxima (2.953 bytes con nivelL). - Escanear un QR: Apple, iPhone y iPad y Android.
Ejecutado con Node.js 24.21.0 y qrcode 1.5.4 en Linux. El script y la orden de la terminal se han ejecutado tal cual, y los QR generados se han leído de vuelta con jsqr 1.4.0 para comprobar que contienen la vCard completa, tildes incluidas.