# Crear un Pago Autenticado con 3DS con un Proveedor Externo

Esta guía le orienta en la creación de un pago autenticado con 3D Secure (3DS) utilizando una solución 3DS externa de terceros. Al utilizar este enfoque, la autenticación es realizada por su proveedor externo, y debe proporcionar los datos de autenticación resultantes al crear el pago a través de la Global API de GetNet.

## Requisitos

Antes de seguir los pasos, necesita:

  * Cree su cuenta poniéndose en contacto con el Equipo de Soporte de Integración para obtener sus credenciales de la API (`client_id` y `client_secret`).
  * Genere su Bearer token con sus credenciales utilizando el endpoint de Access Token.
  * Tenga una integración activa con un proveedor 3DS de terceros (ej., Cardinal Commerce, Adyen, Stripe, etc.).
  * Asegúrese de que su proveedor externo soporte las marcas de tarjetas y los países en los que opera.

> **Importante para transacciones europeas**: Para todas las transacciones dentro del Espacio Económico Europeo (EEE), la autenticación 3DS es **obligatoria** en cumplimiento con la PSD2 y los requisitos de Autenticación Reforzada de Clientes (SCA). Todos los pagos con tarjeta procesados en Europa deben ser autenticados mediante 3DS, a menos que se aplique una exención de SCA válida y sea aceptada por el emisor de la tarjeta. Para obtener más información sobre las exenciones de SCA, consulte la documentación de referencia de [Taxes and Regulations](https://www.google.com/search?q=/developer-resources/taxes-regulations).

## Entendiendo la Autenticación 3DS de Terceros

Al utilizar una solución 3DS externa de terceros, el flujo de autenticación es gestionado íntegramente por su proveedor externo. El proceso funciona de la siguiente manera:

1.  El cliente completa la autenticación a través de su proveedor 3DS de terceros.
2.  Usted recibe los datos de respuesta de la autenticación del proveedor externo.
3.  Usted incluye estos datos de autenticación al crear el pago a través de la API de pagos de GetNet.

Este enfoque le permite utilizar su infraestructura 3DS existente mientras sigue procesando pagos a través de GetNet.

El siguiente diagrama ilustra el flujo de autenticación simplificado:

<img height="311" width="1011" src="https://static-devportal-ux.sensedia-eng.com/Pagonxt/production/documentations/diagram-authenticated-payment-with-getnet-s-solution-1-1772649523367-5edld6rj.png" />

### Cuándo Utilizar 3DS de Terceros

Considere utilizar una solución 3DS de terceros si:

  * Ya tiene una integración 3DS existente con otro proveedor
  * Necesita mantener la coherencia a través de múltiples procesadores de pago
  * Su proveedor externo ofrece funciones adicionales de prevención de fraudes que desea aprovechar
  * Requiere funciones o configuraciones 3DS específicas que no están disponibles en la solución nativa de GetNet

Si está empezando desde cero o no tiene una integración de terceros existente, considere utilizar la [solución 3DS nativa de GetNet](https://www.google.com/search?q=/en/products/online-payments/regional-api%3Fdoc%3Dcreate-3ds-payment) para obtener una experiencia de integración más fluida.

## Campos de Autenticación Obligatorios

Al utilizar la autenticación 3DS externa, debe capturar y proporcionar los siguientes campos de su proveedor externo:

| Campo        | Descripción                                                                                              |   Requerido  | Protocol Version |
| :----------- | :------------------------------------------------------------------------------------------------------- | :---------: | :--------------: |
| **tdsver** | La versión del protocolo 3DS utilizada en la autenticación (ej., "1.0.2" o "2.2.0") | Sí | Ambos |
| **eci** | *Electronic Commerce Indicator* - un código que indica el resultado y el nivel de la autenticación | Sí | Ambos |
| **xid** | Un identificador de transacción único generado en el flujo 3DS, vinculando la autenticación al pago | Sí | Solo 3DS 1.0 |
| **ucaf** | *Universal Cardholder Authentication Field* - un valor criptográfico que demuestra que la autenticación fue completada | Condicional | Solo 3DS 1.0 |
| **tdsdsxid** | Un identificador de transacción generado por el protocolo 3DS 2.x (equivalente a `ds_trans_id`) | Sí | Solo 3DS 2.x |
| **cavv** | *Cardholder Authentication Verification Value* - prueba criptográfica de autenticación | Condicional | Solo 3DS 2.x |

<Callout type="note">

Los campos exactos obligatorios pueden variar dependiendo de la versión del protocolo 3DS (1.0 o 2.x) y de su proveedor externo. Consulte la documentación de su proveedor para conocer los campos específicos que devuelven y sus nombres de campo exactos.

</Callout>

## Pasos de Implementación

### Paso 1: Completar la Autenticación con el Proveedor Externo

Siga la guía de integración de su proveedor 3DS de terceros para completar el flujo de autenticación. Esto suele implicar:

1.  Iniciar la petición de autenticación con su proveedor
2.  Redirigir al cliente para que complete la autenticación (si se requiere un Challenge)
3.  Recibir la respuesta de autenticación con los campos obligatorios

Los pasos exactos dependen de la API y el SDK de su proveedor externo. Consulte su documentación para obtener detalles específicos de implementación.

### Paso 2: Extraer los Datos de Autenticación

Una vez completada la autenticación, extraiga los campos de autenticación obligatorios de la respuesta de su proveedor externo. Asegúrese de capturar todos los campos listados en la sección de [Campos de Autenticación Obligatorios](https://www.google.com/search?q=%23required-authentication-fields) anterior.

Los nombres exactos y la estructura de los campos dependen de la API de su proveedor externo. Consulte la documentación de su proveedor para identificar dónde se encuentra cada campo obligatorio en su respuesta.

### Paso 3: Crear el Pago con los Datos de Autenticación

Una vez que haya extraído los datos de autenticación de su proveedor externo, cree el pago a través de la API de GetNet incluyendo los campos de autenticación en su petición de pago.

Llame al endpoint [Create - Authorize](https://www.google.com/search?q=/en/products/online-payments/regional-api/swagger%23tag/payments/post/dpm/payments-gwproxy/v2/payments), incluyendo:

  * Detalles de pago estándar (importe, divisa, cliente, información de la tarjeta)
  * Los datos de autenticación 3DS obtenidos de su proveedor externo

**Ejemplo de petición con datos de 3DS 2.x:**

```json
curl --request POST \
  --url https://api-sbx.globalgetnet.com/dpm/payments-gwproxy/v2/payments \
  --header 'authorization: Bearer <your-token>' \
  --header 'content-type: application/json' \
  --header 'x-seller-id: 54f88e68-7764-4e87-8830-756b1e2c02f8' \
  --header 'x-transaction-channel-entry: XX' \
  --data '{
  "idempotency_key": "16c7f8ee-51a6-470d-bb76-ef762b62bfb7",
  "request_id": "16ac03dc-73db-453f-9bea-b1391669d5d3",
  "order_id": "ORDER-12345",
  "data": {
    "amount": 118708,
    "currency": "EUR",
    "customer_id": "customer-123",
    "payment": {
      "payment_method": "CREDIT",
      "save_card_data": false,
      "transaction_type": "FULL",
      "number_installments": 1,
      "tdsver": "2.2.0",
      "eci": "05",
      "tdsdsxid": "f7e5f76e-6388-43e6-b8cd-49b251a1f89c",
      "cavv": "aglgsCXwXPJDRA1aTlXIMVQnQakX",
      "card": {
        "expiration_month": "05",
        "expiration_year": "25",
        "cardholder_name": "CARD HOLDER",
        "security_code": "282",
        "number_token": "775c2b646c11d5e0d0d75a722c558a14d24abdb1df3752fcbbe2d61e51fc25f28d028b3139622a78fb03256e7701c35f64cc4920bb2d5f3224c86f42e131a9f9"
      }
    }
  }
}'
```

**Ejemplo de petición con datos de 3DS 1.0:**

```json
curl --request POST \
  --url https://api-sbx.globalgetnet.com/dpm/payments-gwproxy/v2/payments \
  --header 'authorization: Bearer <your-token>' \
  --header 'content-type: application/json' \
  --header 'x-seller-id: 54f88e68-7764-4e87-8830-756b1e2c02f8' \
  --header 'x-transaction-channel-entry: XX' \
  --data '{
  "idempotency_key": "16c7f8ee-51a6-470d-bb76-ef762b62bfb7",
  "request_id": "16ac03dc-73db-453f-9bea-b1391669d5d3",
  "order_id": "ORDER-12345",
  "data": {
    "amount": 118708,
    "currency": "EUR",
    "customer_id": "customer-123",
    "payment": {
      "payment_method": "CREDIT",
      "save_card_data": false,
      "transaction_type": "FULL",
      "number_installments": 1,
      "tdsver": "1.0.2",
      "xid": "VDdnR0kyU1g4ZXlxMkhWTlp0VnA=",
      "eci": "05",
      "ucaf": "Y2F2dlZhbHVlSW5IZXg=",
      "card": {
        "expiration_month": "05",
        "expiration_year": "25",
        "cardholder_name": "CARD HOLDER",
        "security_code": "282",
        "number_token": "775c2b646c11d5e0d0d75a722c558a14d24abdb1df3752fcbbe2d61e51fc25f28d028b3139622a78fb03256e7701c35f64cc4920bb2d5f3224c86f42e131a9f9"
      }
    }
  }
}'
```

**Ejemplo de respuesta:**

```json
{
  "idempotency_key": "16c7f8ee-51a6-470d-bb76-ef762b62bfb7",
  "seller_id": "54f88e68-7764-4e87-8830-756b1e2c02f8",
  "payment_id": "b4bd779a-98c3-4f99-a028-518de149ed16",
  "order_id": "ORDER-12345",
  "amount": 118708,
  "currency": "EUR",
  "status": "APPROVED",
  "payment_method": "CREDIT",
  "received_at": "2025-08-13T10:34:01.239Z",
  "transaction_id": "MCC50204G3010",
  "original_transaction_id": "MCC50204G3010",
  "authorized_at": "2025-08-13T10:34:01.239Z",
  "reason_code": "00",
  "reason_message": "captured",
  "acquirer": "GETNET",
  "brand": "MASTERCARD",
  "authorization_code": "105020",
  "acquirer_transaction_id": "305020602020306050404010"
}
```

## Consideraciones Importantes

Al utilizar la autenticación 3DS externa, tenga en cuenta lo siguiente:

  * **Integridad de los datos**: Garantice la integridad y autenticidad de los datos de autenticación recibidos del proveedor externo antes de enviarlos a GetNet.
  * **Validación de campos**: Las transacciones pueden ser rechazadas por el emisor si faltan campos de autenticación o son inválidos. Verifique siempre que todos los campos obligatorios están presentes y correctamente formateados.
  * **Compatibilidad del proveedor**: El proveedor externo debe soportar las marcas de tarjetas y los países en los que opera. Verifique la compatibilidad antes de implementar.
  * **Gestión de errores**: Implemente un manejo de errores adecuado para los casos en que la autenticación falle o falten campos obligatorios.

## Próximos Pasos

Ahora que ha creado con éxito un pago autenticado con 3DS utilizando un proveedor externo, puede explorar más funciones de la Global API de GetNet:

  * Aprenda sobre la [Autenticación 3DS con GetNet](https://www.google.com/search?q=/en/products/online-payments/regional-api%3Fdoc%3Dcreate-3ds-payment) si desea utilizar la solución 3DS nativa de GetNet.
  * Revise los [conceptos de Autenticación 3DS](https://www.google.com/search?q=/en/products/online-payments/regional-api%3Fdoc%3D3ds-authentication) para obtener más información sobre cómo funciona 3DS.