Desafío
Para iniciar un desafío, no basta con redirigir al comprador para la URL obtenida en el campo acs.url
, es necesario hacer un POST desde CReq. Al final de los desafíos, el solicitante 3DS recibirá información (en la URL apuntada en el campo notification_url
) sobre la transacción 3DS dentro del objeto CRes.
#
Envio del CReqEl CReq POST debe hacerse con el encabezado Content-Type
= application/x-www-form-urlencoded
cuando device_channel
= 02
o application/jose
cuando device_channel
= 01
. En esta forma, debe enviar el parámetro creq
, cuyo contenido es CReq codificado en Base64 URL-safe encoding.
#
EjemplosCReq JSON:
CReq Base64:
HTML de redirección al desafío:
#
Parámetros de CReqParámetro | Descripción | Formato | Obligatorio |
---|---|---|---|
threeDSRequestorAppURL | URL de la aplicación del comerciante. | < 256 AN | NO |
threeDSServerTransID | ID de la transacción 3DS Server | = 36 AN | SI |
acsTransID | ID de la transacción ACS | = 36 AN | SI |
challengeCancel | Indicador que informa al ACS y al DS de que la autentificación ha sido cancelada.
| = 2 N | NO |
challengeDataEntry | Contiene los datos que el portador ha escrito en el campo de texto de la interfaz nativa. | < 45 AN | NO |
challengeHTMLDataEntry | Contiene los datos que el portador ha escrito en el campo de texto de la interfaz HTML. | < 256 AN | NO |
challengeNoEntry | Indicador que informa de que el portador ha enviado una respuesta vacía.
| = 1 AN | NO |
challengeWindowSize | Dimensiones de la ventana de desafío mostrada al portador.
| = 2 N | Si |
messageType | Valor fijo CReq . | = 4 AN | SI |
messageVersion | Versión del mensaje 3DS: 2.1.0 ou 2.2.0 . | < 8 AN | SI |
oobContinue | Valor booleano que notifica al ACS que el portador ha completado la autenticación seleccionando el botón "Continuar" en un formulario de identificación OOB. | < 5 AN | NO |
resendChallenge | Indicador para que el PSC reenvíe el código de información del desafío al portador.
| = 1 AN | NO |
sdkTransID | ID de transacción 3DS SDK. Obligatorio cuando device_channel = 01 . | = 36 AN | COND. |
sdkCounterStoA | Contador utilizado como medida de seguridad en el canal seguro entre 3DS SDK y ACS. | < 3 AN | NO |
whitelistingDataEntry | Indicador proporcionado por el SDK al ACS para confirmar si el portador ha optado por la lista blanca.
| = 1 AN | NO |
messageExtension[] | Los datos necesarios para ayudar en los requisitos no definidos en el mensaje 3DS se cargan en una extensión del mensaje. | ||
criticalityIndicator | Un valor booleano que indica si el destinatario debe entender el contenido de la extensión para interpretar el mensaje completo. | < 5 AN | NO |
data | Datos cargados en la extensión. | Object | NO |
id | dentificador único de la extensión. | < 64 AN | NO |
name | Nombre de la extensión. | < 64 AN | NO |
#
Recepción del CResEl CRes llegará en formato JSON codificado en Base64 en la URL informada en el servicio de autenticación (campo notification_url
).
#
Parámetros del CResParámetro | Descripción | Formato |
---|---|---|
threeDSServerTransID | ID de transacción 3DS Server | = 36 AN |
acsCounterAtoS | Contador utilizado como medida de seguridad en el canal seguro entre ACS y 3DS SDK. | < 3 AN |
acsTransID | ID de transacción en el ACS | = 36 AN |
challengeCompletionInd | Indicador de estado del desafío.
| = 1 AN |
messageType | Valor fijo CRes . | = 4 AN |
messageVersion | Versión de los mensajes 3DS: 2.1.0 ou 2.2.0 . | < 8 AN |
sdkTransID | ID de transacción en el 3DS SDK | = 36 AN |
transStatus | Estado de la transacción según el protocolo 3DS 2.0.
| = 1 AN |
messageExtension[] | Los datos necesarios para asistir a los requisitos no definidos en el mensaje 3DS se cargan en una extensión del mensaje. | |
criticalityIndicator | Un valor booleano que indica si el destinatario debe entender el contenido de la extensión para interpretar el mensaje completo. | < 5 AN |
data | Datos cargados en la extensión. | Object |
id | Identificador único de la extensión. | < 64 AN |
name | Nombre de la extensión. | < 64 AN |