# Crear un pago con verificación de tarjeta

Este documento aplica a los siguientes países:
Brasil | Chile | México | España | Uruguay
---|---|---|---|---|

En el Web Checkout de Getnet, la **verificación de tarjeta** es un proceso utilizado para validar la tarjeta de crédito de un cliente sin completar un cargo total. Durante este proceso, el sistema de pago verifica los datos de la tarjeta y consulta con el banco emisor para confirmar que la tarjeta es válida y está autorizada para transacciones.
Esta verificación ayuda a garantizar que la tarjeta pueda usarse en pagos futuros y reduce el riesgo de fraude antes de procesar una transacción real.

## Cómo funciona

Usa la verificación de tarjeta cuando quieras validar la tarjeta de crédito de un cliente sin completar un cargo total, confirmando con el banco emisor que la tarjeta es válida y está autorizada antes de procesar una transacción real. Características clave:

- **Validación de importe cero** — el proceso verifica los datos de la tarjeta sin acreditar ningún importe a la tarjeta. Getnet envía automáticamente una transacción interna de importe cero para que el emisor pueda validar la existencia y elegibilidad de la tarjeta.
- **Reducción de fraude** — validar la tarjeta de antemano ayuda a garantizar que pueda usarse en pagos futuros y reduce el riesgo de fraude antes de ejecutar una transacción real.
- **Sin transacción financiera** — no hay cargo; el resultado es un estado `VERIFIED`, no un pago.
- **Tokenización opcional** — tras una verificación exitosa, puedes tokenizar la tarjeta y usar `number_token` en lugar del número de tarjeta original en solicitudes de pago posteriores, lo que reduce el alcance de PCI DSS.

El flujo completo involucra al comprador, la página de Checkout y el Getnet WebCheckout / Regional API:

![](https://static-devportal-ux.sensedia-eng.com/Pagonxt/production/documentations/flow-payment-cardverif-wbc-1787834617593-tf5xcwmb.png)

## Requisitos

Antes de seguir los pasos, necesitas:

* Configurar tu Web Checkout mediante [Portal](/es/web-checkout/first-steps-wbc/configuration-by-portal) o mediante [API](/es/web-checkout/first-steps-wbc/configration-by-api) (dependiendo de tu ubicación).
* Generar tu token siguiendo el documento de [Authentication](/es/web-checkout/first-steps-wbc/authentication-token-wbc).

## Payment intent con verificación de tarjeta

![](https://static-devportal-ux.sensedia-eng.com/Pagonxt/staging/documentations/checkout-lightbox-1-1772821188558-89xdacu8.png)

Para pasar por la verificación de tarjeta, estos parámetros deben enviarse en el payment intent.

Endpoint|
---|
`POST /payment-intent`|

**Campos obligatorios**
| Atributo | Tipo | Descripción | Ejemplo |
|---|---|---|---|
|`configurations`| Object | Conjunto de opciones de pago. | -- |
|`preauthorization`| Boolean | Indica si es un pago de tipo preautorizado. | `false`|
|`card_verification`| Boolean | Indica si es un pago de tipo verificación de tarjeta. | `true` |
|`3ds`| Boolean | Indica si es un pago de tipo 3DS. | `false`|

El siguiente bloque de código muestra los campos que deben enviarse en el [payment intent endpoint](https://docs.globalgetnet.com/en/products/online-payments/web-checkout/swagger#tag/payment-intent/post/payment-intent).

```json
"configurations": {
        "preauthorization": false,
        "card_verification": true,
        "3ds": false
    }
```

> **Argentina**: `card_verification` y `preauthorization` **no están disponibles** para Argentina.

### Paso 1: Verificar una tarjeta

Un pago de importe cero comienza con la autorización. Este paso valida los datos del cliente y de la tarjeta. Usa el [Card verification endpoint](https://docs.globalgetnet.com/en/products/online-payments/regional-api/swagger#tag/cards/post/dpm/cofre-gw-proxy/v1/cards/verification) para iniciar la transacción.

La siguiente tabla muestra los campos que debes enviar:

| Atributo          | Tipo   | Descripción                       | Ejemplo                           |
| ------------------ | ------ | --------------------------------- | --------------------------------- |
| `number_token`     | String | Número de tarjeta tokenizado.            | `dfe05208b105578c070f806c80abd3a` |
| `brand`            | String | Marca de la tarjeta.                       | `Mastercard`                      |
| `cardholder_name`  | String | Nombre del titular impreso en la tarjeta. | `JOAO DA SILVA`                   |
| `expiration_month` | String | Mes de expiración de la tarjeta (dos dígitos).  | `12`                              |
| `expiration_year`  | String | Año de expiración de la tarjeta (dos dígitos).   | `28`                              |
| `security_code`    | String | Código de seguridad. CVV o CVC.        | `123`                             |

El siguiente bloque de código muestra un ejemplo de solicitud y respuesta para autorizar un pago.

#### Ejemplo de solicitud:
```json
curl --request POST \
  --url https://api.pre.globalgetnet.com/dpm/cofre-gw-proxy/v1/cards/verification \
  --header 'authorization: Bearer ' \
  --header 'content-type: application/json' \
  --header 'x-seller-id: 54f88e68-7764-4e87-8830-756b1e2c02f8' \
  --header 'x-transaction-channel-entry: XX' \
  --data '{
  "number_token": "dfe05208b105578c070f806c80abd3a",
  "brand": "Mastercard",
  "cardholder_name": "JOAO DA SILVA",
  "expiration_month": "12",
  "expiration_year": "28",
  "security_code": "123"
}'
```

#### Ejemplo de respuesta:

```json
{
  "status": "VERIFIED",
  "verification_id": "ae267804-503c-4163-b1b1-f5da5120b74e",
  "authorization_code": "6964722471672911",
  "transaction_id": "1002217281190421"
}
```

El sistema de Getnet envía automáticamente una transacción interna de importe cero junto con los datos de la tarjeta, lo que permite al emisor validar la existencia y elegibilidad de la tarjeta.
Tras una validación exitosa, puedes crear los pagos.

<Callout type="warning">

Esta es una verificación sin transacción financiera, en la que no se acredita ningún importe a la tarjeta.

</Callout>

### Paso 2: Pago con datos de tarjeta tokenizados

En lugar de enviar el número de tarjeta original en tu solicitud de pago, puedes usar tokenización para mejorar la seguridad y reducir el alcance de cumplimiento de PCI DSS. Para usar una tarjeta tokenizada:

1. Tokeniza la tarjeta llamando al [Card Tokenization endpoint](https://docs.globalgetnet.com/en/products/online-payments/regional-api/swagger#tag/cards/post/dpm/cofre-gw-proxy/v1/tokens/card) con `card_number` y `customer_id`.
2. En tu solicitud de pago, sustituye el campo `card_number` por `number_token`, usando el valor del token recibido del endpoint de tokenización.

Al usar number_token, debes excluir la propiedad `card_number` de la solicitud. Para conocer todos los detalles sobre tokenización, consulta la documentación de [Tokenization and Vault](https://docs.globalgetnet.com/es/products/online-payments/regional-api?doc=api-ref-tokenization-and-vault).

| Atributo          | Tipo   | Descripción                       | Ejemplo                           |
| ------------------ | ------ | --------------------------------- | --------------------------------- |
| `card_number`      | String | Número de tarjeta.            | `5155901222280001` |
| `customer_id`      | String | Identificador del comprador. | `customer_21081826`                      |

Utiliza el Card Tokenization endpoint para tokenizar la tarjeta.

#### Ejemplo de solicitud:
```json
curl --request POST \
  --url https://api-sbx.globalgetnet.com/dpm/cofre-gw-proxy/v1/tokens/card \
  --header 'authorization: Bearer <your-token>' \
  --header 'content-type: application/json' \
  --header 'x-seller-id: 54f88e68-7764-4e87-8830-756b1e2c02f8' \
  --data '{
  "card_number": "5155901222280001",
  "customer_id": "customer-123"
}'
```

#### Ejemplo de respuesta:
```json
{
  "number_token": "dfe05208b105578c070f806c80abd3af09e246827d29b866cf4ce16c205849977c9496cbf0d0234f42339937f327747075f68763537b90b31389e01231d4d13c"
}
```

## Ver también

Puedes explorar más pagos de la API de Getnet Web Checkout:

* Aprende cómo [crear un pago con preautorización](/es/web-checkout/payment-guides-wbc/payment-preauth-wbc).
* Aprende cómo [crear un pago con 3DS](/es/web-checkout/payment-guides-wbc/payment-3ds-wbc).