Nivel inicial9 min de lectura · Publicado el

Adiós tarjetas de visita: crea tu código QR vCard

Código QR vCard: una tarjeta de visita tachada, un QR que guarda el texto BEGIN:VCARD y el móvil que lo convierte en un contacto. Tu tarjeta de visita, en QRrubentejera.com BEGIN:VCARDFN:Ana Ejemplo…END:VCARDAnaGuardar
El QR no lleva un enlace: lleva la vCard tal cual, un texto con tus datos que empieza por BEGIN:VCARD. La cámara del móvil lo lee y ofrece guardarlo como contacto.

¿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:

  • BEGIN y END abren y cierran la ficha. VERSION dice qué versión del formato usas.
  • N va 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 ;;;.
  • FN es el nombre tal como quieres que aparezca en la agenda.
  • Escribe el teléfono con el prefijo del país (+34 en 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:

  1. 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.
  2. Contraste alto. Módulos oscuros sobre fondo claro, nunca al revés, y sin fotos detrás.
  3. 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.
  4. Nivel de corrección adecuado. El QR repite parte de la información para poder leerse aunque esté sucio o doblado. Para una tarjeta, M o Q van bien.
  5. 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 N y ADR, escape de comas y puntos y coma, saltos de línea CRLF y tipo text/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 qrcode para Node.js 1.5.4: API, opciones de la CLI, niveles de corrección de errores y capacidad máxima (2.953 bytes con nivel L).
  • 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.