Especificaciones de EMV Tags para Tarjeta Presente
En un entorno Tarjeta Presente, la seguridad de la transacción se basa en el intercambio de datos Tag Length Value (TLV) entre el chip de la tarjeta y la pasarela (gateway) de Getnet. Esta página proporciona una referencia técnica de las etiquetas EMV específicas que suelen incluirse en la carga de datos emv de la Regional API.
La anatomía de una etiqueta (TLV)
Cada elemento de datos dentro de la cadena emv generada por el hardware sigue el formato estándar TLV:
- Etiqueta (Tag): Un identificador hexadecimal de 1 o 2 bytes (p. ej.,
9F26). - Longitud (Length): El tamaño del valor siguiente en bytes.
- Valor (Value): La carga de datos real (un criptograma o un código de moneda).
EMV Tags principales (Obligatorias y Comunes)
Basándose en las cargas de datos de hardware validadas (como la integración de Chile/CLP), las siguientes etiquetas son fundamentales para una autorización con éxito.
| Etiqueta | Nombre | Origen | Descripción |
|---|---|---|---|
| 9F26 | Application Cryptogram (ARQC) | ICC | Un criptograma exclusivo de 8 bytes generado por el chip de la tarjeta y utilizado por el emisor para verificar la autenticidad de la tarjeta en cada transacción. |
| 9F02 | Amount, Authorized | Terminal | El importe de la transacción en formato numérico (en céntimos). |
| 9F34 | CVM Results | Terminal | Registra el resultado de la negociación del Método de Verificación del Titular (PIN Online verificado, Sin CVM). La pasarela lo utiliza para confirmar el método de verificación aplicado. |
| 95 | Terminal Verification Results (TVR) | Terminal | Un mapa de bits de 5 bytes que indica qué comprobaciones de seguridad se han realizado y sus resultados (autenticación de datos fuera de línea, verificación del PIN). |
| 9F33 | Terminal Capabilities | Terminal | Define las capacidades admitidas por el terminal para la entrada de datos de la tarjeta, el CVM y las funciones de seguridad. |
| 9F10 | Issuer Application Data (IAD) | ICC | Datos patentados del emisor integrados en la tarjeta, utilizados para la gestión de riesgos y la validación de criptogramas. |
| 9F36 | Application Transaction Counter (ATC) | ICC | Un contador mantenido por el chip de la tarjeta que se incrementa con cada transacción, evitando ataques de reproducción. |
| 9F37 | Unpredictable Number | Terminal | Un número aleatorio de 4 bytes generado por el terminal para cada transacción con el fin de garantizar la exclusividad del criptograma. |
| 5F2A | Transaction Currency Code | Terminal | El código numérico de moneda ISO 4217 (0032 para CLP, 0986 para BRL). |
| 5F34 | PAN Sequence Number (PSN) | ICC | Diferencia entre varias tarjetas emitidas para la misma cuenta que comparten el mismo Primary Account Number (PAN). |
| 9A | Transaction Date | Terminal | La fecha en que se inició la transacción, en formato AAMMDD. |
| 9C | Transaction Type | Terminal | Indica el tipo de transacción financiera (00 para Compra). |
| 9F1A | Terminal Country Code | Terminal | El código numérico de país ISO 3166-1 de la ubicación del terminal (0152 para Chile). |
Validación detallada de la carga de datos (Payload)
Para garantizar que su implementación sea robusta, su hardware debe concatenar estas etiquetas en una única cadena hexadecimal para el campo data.payment.card.emv.
El campo emv debe contener todas las etiquetas como una única cadena codificada en hexadecimal sin espacios. No incluya espacios ni separadores entre los elementos TLV.
Ejemplo de cadena decodificada
Este es un desglose de cómo la pasarela lee una carga útil de chip validada extraída de una transacción real:
9F26 08 819BA36F3F793414
- Etiqueta:
9F26(Application Cryptogram)- Longitud:
08(8 bytes)- Valor:
819BA36F3F793414(El ARQC)
La cadena emv completa en la solicitud de la API tendría este aspecto (todas las etiquetas concatenadas sin espacios):
9f2701809f3303e0f8c8950580000080009f37045d21705a9f100706010a03a0b8089f2608819ba36f3f7934149f360205b782021c009c01009f1a0204849a032002279f02060000000309605F2A0200325f3401019f34031e0300Prácticas recomendadas de seguridad
- No codifique listas de etiquetas (Hardcoding): Los requisitos de las etiquetas pueden evolucionar en función de las regulaciones regionales o las actualizaciones de los esquemas de tarjetas. Su analizador (parser) debe ser lo suficientemente flexible como para gestionar etiquetas inesperadas sin fallar.
- Codificación hexadecimal: Asegúrese de que todos los datos TLV se conviertan correctamente en una cadena codificada en hexadecimal antes de enviarlos a la API.
- Gestión de datos sensibles: Aunque en el estándar EMV existen etiquetas como
5A(PAN) o57(Track 2 Equivalent Data), suelen enviarse en campos dedicados de la API (card.number,card.track_2) en lugar de dentro de la cadenaemvgenérica para mantener el cumplimiento de PCI DSS. - Validación del ARQC: El Application Cryptogram (
9F26) es la etiqueta más crítica. Un ARQC no válido o inexistente provocará la denegación de la transacción.
Leer más
- Validación de PIN: Requisitos técnicos para la transmisión de
pin_blockyksn. - Modos de entrada de tarjeta: Cómo cambiar entre
chip,chip_contactlessymagnetic_stripe. - Visión General de la Tecnología EMV: Análisis detallado de las etiquetas TLV y los criptogramas de chip.
- Pagos de un solo paso: Guía paso a paso de su primera venta física.