# Validación de PIN

En el ecosistema **Tarjeta Presente**, el Número de Identificación Personal (PIN) sirve como el **Método de Verificación del Titular (CVM)** más seguro. A diferencia del CVV estático utilizado en el comercio electrónico, una interacción de PIN implica un sofisticado intercambio criptográfico (handshake) entre el terminal de hardware, el chip de la tarjeta y el sistema de autorización del emisor para garantizar que los datos sensibles nunca se transmitan en "texto claro".

## Validación de PIN Online vs. Offline

La **Regional API** admite dos métodos distintos para validar el PIN de un cliente, determinados por la configuración de la tarjeta y las capacidades del terminal.

### Validación de PIN Offline

El PIN es validado localmente por el chip seguro de la propia tarjeta.

- **Proceso**: El cliente introduce su PIN en el terminal y este lo envía directamente al circuito integrado (IC) de la tarjeta para su comparación.
- **Beneficio**: Permite la verificación incluso si el terminal está temporalmente fuera de línea o en un entorno de baja conectividad.
- **Impacto en la API**: En su solicitud, `cardholder_verification_method` se establece en `offline_pin` y, dado que la verificación se realizó localmente, el `pin_block` no suele enviarse a la pasarela.

### Validación de PIN Online

El PIN es cifrado por el hardware y enviado al emisor de la tarjeta para su verificación en tiempo real.

- **Proceso**: El terminal cifra el PIN utilizando una clave de transacción única y lo empaqueta en un **PIN Block**.
- **Seguridad**: Utiliza **DUKPT** (Derived Unique Key Per Transaction) para garantizar que, incluso si la clave de una transacción se ve comprometida, todas las demás transacciones permanezcan seguras.
- **Impacto en la API**: Este método requiere la transmisión tanto del **`pin_block`** como del **`ksn`** (Key Serial Number) en la carga útil de la API.

## Los componentes del PIN Online Seguro

Al implementar el **PIN Online**, su integración de hardware debe proporcionar tres elementos criptográficos críticos a la Regional API:

### PIN Block

Una estructura de datos segura y cifrada (normalmente de 8 bytes para TDES o 16 bytes para AES) que transporta el PIN. La mayoría de las implementaciones utilizan el **formato ISO 9564-1 0** (ISO-0), que realiza una operación XOR del PIN del cliente con los últimos 12 dígitos del número de su tarjeta (PAN) para garantizar que el bloque resultante sea único para esa tarjeta específica.

### KSN (Key Serial Number)

Un identificador hexadecimal de 20 dígitos que actúa como el "mapa" para que la pasarela descifre el PIN. Se compone de un ID de clave base, un identificador de dispositivo y un contador de transacciones.

- **Función**: El KSN permite que el HSM (Hardware Security Module) de Getnet derive la **Working Key** exacta utilizada por el terminal para esa transacción específica.

### Cifrado DUKPT

El esquema de gestión **Derived Unique Key Per Transaction** (DUKPT) garantiza que el terminal genere una clave de cifrado nueva y no reutilizable para cada lectura de tarjeta. Esto evita "ataques de reproducción" (replay attacks) y garantiza la seguridad de extremo a extremo, desde el PIN pad físico hasta la pasarela de Getnet.

## Mapeo Técnico en la Regional API

Para cualquier transacción en la que `cardholder_verification_method` esté establecido en `online_pin`, los siguientes campos en el objeto `card` son obligatorios:

```json
"card": {
  "entry_mode": "chip",
  "cardholder_verification_method": "online_pin",
  "pin_block": "A0B6BA8D53C8D3C3",
  "ksn": "BC756011020000400001",
  "emv": "9f2701809f3303e0f8c8950580000080..."
}
```

| Campo | Requisito | Descripción |
| --- | --- | --- |
| **`cardholder_verification_method`** | Obligatorio | Establecer en `online_pin`. |
| **`pin_block`** | Obligatorio | Los datos del PIN cifrados en formato hexadecimal. |
| **`ksn`** | Obligatorio | El número de serie de la clave de 20 dígitos en formato hexadecimal. |

## Leer más

- **Modos de entrada de tarjeta**: Conozca la diferencia entre las cargas útiles de `chip`, `chip_contactless` y `magnetic_stripe`.
- **[Visión General de la Tecnología EMV](/es/global-api/sep-card-present/core-concepts-cp/emv-technology)**: Análisis detallado de las etiquetas TLV y los criptogramas de chip.
- **Pagos de Un Solo Paso**: Aprenda a ejecutar una venta completa con verificación de PIN.