Cómo agregar compatibilidad con 3DS1 y 3DS2

Tanto 3DS1 como 3DS2 están disponibles para la integración de extremo a extremo de las citas del Centro de acciones. Puedes implementar una de ellas (o ambas) para tu integración.

Tanto 3DS1 como 3DS2 cumplirán con el requisito de autenticación reforzada de clientes de PSD2, pero existen algunas diferencias clave:

  • 3DS1: Puedes decidir activar 3DS1 para una transacción cuando detectas indicadores de que el cargo es fraudulento.
    • La implementación de 3DS1 requiere cambios en tu servidor de reservas.
  • 3DS2: 3DS2 solo se usará para transacciones en las que se aplique la directiva PSD2 (el banco adquirente y el banco del cliente se encuentran en el EEE).
    • La implementación de 3DS2 requiere cambios en tu feed de comercios.

Cómo implementar 3DS2

Para implementar 3DS2, debes agregar campos adicionales a tu feed de comercios en el mensaje TokenizationConfig. Si todos los pagos se realizan a la misma cuenta, repetirás el valor en cada entrada del comercio. Si los pagos se destinan a diferentes cuentas, los valores en cada entrada del comercio deberán corresponder a la cuenta que adquiere los fondos dentro de la transacción.

Cambios en el feed de comercios

  • merchant_of_record_name: Es el nombre del comerciante oficial. Este nombre visible para el usuario se mostrará en las verificaciones de 3DS2.
  • payment_country_code: Es el país en el que se procesará la transacción, en formato ISO 3166-1 alfa-2.
  • Mensaje CardNetworkParameters: Este mensaje se repite con los valores específicos para diferentes redes (solo se requiere para Visa y American Express)
    • card_network: Es la red (Visa, American Express) a la que se aplican estos valores.
    • acquirer_bin: Es el número de identificación bancaria del banco adquirente que se usa para procesar la tarjeta.
    • acquirer_merchant_id: Es el identificador de comerciante que el adquirente asigna al comercio para su uso en la autorización de transacciones (para transacciones Visa y American Express).

Si agregas estos campos a tu feed de comercios, recibirás un criptograma 3DS2 en el campo unparsed_payment_method_token que reciba tu servidor de reservas cada vez que se aplique la directiva PSD2 a la transacción. Debes pasar el unparsed_payment_method_token y su criptograma incorporado a tu socio de procesamiento de acuerdo con su especificación.

Cómo implementar 3DS1

Cambios en el servidor de reservas

Haremos una solicitud CreateBooking y, si determinas que se necesita 3DS1 para la transacción, se mostrará un Booking Failure desde tu método CreateBooking y especificaremos PAYMENT_REQUIRES_3DS1 como la causa. En esa respuesta de error, también deberás especificar el mensaje ThreeDS1Parameters dentro del mensaje PaymentFailureInformation:

  • acs_url: Es la URL desde la que se carga un formulario que se le presentará al usuario para la autenticación.
  • pa_req = Es una solicitud PaymentAuthentication. Se publicará en el formulario ACSUrl.
  • transaction_id = Es un identificador que usa el proveedor de ACS. Se publicará en el formulario ACSUrl.
  • md_merchant_data: Son los datos del Centro de acciones que se compartirán con el proveedor de ACS, si se proporcionan.

Luego, reenviaremos la solicitud CreateBooking original con el pa_response ubicado en el mensaje PaymentInformation. El campo pa_response contendrá la carga útil que nos muestra un proveedor de ACS, y deberás usarla para autorizar la transacción con tu procesador.

A continuación, se muestra un diagrama que describe el flujo de 3DS1:

Figura 1: Diagrama del proceso 3DS1
Figura 1: Diagrama del proceso de 3DS1