Generar Autenticación
Luego de Validar BIN y Comercio (Versioning) se generá la Autenticacion 3DS 2.1.
Se deberán de enviar en el Header el campo threeDSServerTransID con el valor enviado en la respuesta en el API Validar BIN y Comercio (Versioning).
Ambiente | EndPoint | Método |
Pre-Producción | https://uatalgreq.3dsecurekey.cloud/requestor/authentication | POST |
Producción | POST |
Headers
Cabecera | Valor | Requerido |
Content-Type | application/json | SI |
key | (Compartido por Alignet) | SI |
threeDSServerTransID | f281382d-7757-41d2-9248-d6f4adf242fb | SI |
Request
Prámetro | Tipo | Long. | Descripción | Req. |
messageType | String | 4 | Identifica el tipo de mensaje que se pasa.
| SI |
acctNumber | String | 13-19 | Número de cuenta que se usará en la solicitud de autorización para transacciones de pago. Puede ser representado por PAN, token. | SI |
cardExpiryDate | String | 4 | Fecha de vencimiento del PAN o token suministrado al solicitante de 3DS por el titular de la tarjeta. | SI |
deviceChannel | String | 2 | Indica el tipo de interfaz de canal que se utiliza para iniciar la transacción 01 = App-based (APP) 02 = Browser (BRW) 03 = 3DS Requestor Initiated (3RI) | SI |
messageCategory | String | 2 | Identifica la categoría del mensaje para un caso de uso específico. 01- PA 02- NPA | SI |
messageVersion | String | 5 | Versión del protocolo identificador Este será el número de versión del protocolo de la especificación utilizada por el sistema que crea este mensaje | SI |
threeDSRequestorAuthenticationInd | String | 2 | Indica el tipo de solicitud de autenticación. 01 = Payment transaction
as part of EMV token ID&V | SI |
acquirerBIN | String | 11 | Adquirir el código de identificación de la institución asignado por el DS que recibe el mensaje AReq. | SI |
acquirerMerchantID | String | 35 | Identificador del comerciante asignado por el adquiriente. | SI |
browserAcceptHeader | String | 2048 | El contenido exacto de HTTP acepta los encabezados enviados al Solicitante de 3DS desde el navegador del titular de la tarjeta. | SI |
browserIP |
String |
45 | La dirección IP del navegador devuelta por los encabezados HTTP al solicitante 3DS. | SI |
browserJavaEnabled | Boolean | true/false | Booleano que representa la capacidad del navegador del titular de la tarjeta para ejecutar Java. | SI |
browserLanguage | String | 1–8 | Valor que representa el idioma del navegador como se define en IETF BCP47. | SI |
browserColorDepth | String | 1–2 | Valor que representa la profundidad de bits de la paleta de colores para mostrar imágenes, en bits por píxel. Este campo acepta los siguientes valores:
| SI |
browserScreenHeight | String | 1–6 | Altura total de la pantalla del titular de la tarjeta en píxeles. | SI |
browserScreenWidth | String | 1–7 | Ancho total de la pantalla del titular de la tarjeta en píxeles. | SI |
browserTZ | String | 1–5 | Diferencia horaria entre la hora UTC y la hora local del navegador del titular de la tarjeta, en minutos. | SI |
browserUserAgent | String | 2048 | Contenido exacto del encabezado de usuario de HTTP. | SI |
purchaseAmount | String | 48 | Importe de compra en unidades menores de moneda con todos los signos de puntuación eliminados. | SI |
purchaseCurrency | String | 3 | Moneda en la que se expresa el importe de la compra. | SI |
purchaseExponent | String | 1 | Unidades menores de moneda como se especifica en el exponente de moneda ISO 4217. | SI |
purchaseDate | String | 14 | Fecha y hora de la compra, expresada en UTC. | SI |
purchaseNumber | String | 1-26 | Número de pedido de la compra. Este valor es generado por el comercio | SI |
cardholderName | String | 2-45 | Nombre del titular de la tarjeta | NO |
addrMatch | String | 1 | Indica si la Dirección de envío del titular de la tarjeta y la Dirección de facturación del titular de la tarjeta son las mismas. | NO |
billAddrCity | String | 50 | La ciudad de la dirección de facturación del titular de la tarjeta asociada con la tarjeta utilizada para esta compra. | NO |
billAddrCountry | String | 3 | El país de la dirección de facturación del titular de la tarjeta asociada con la tarjeta utilizada para esta compra. | NO |
billAddrLine1 | String | 50 | Primera línea de la calle o parte local equivalente de la dirección de facturación del titular de la tarjeta asociada a la tarjeta utilizada para esta compra. | NO |
billAddrLine2 | String | 50 | Segunda línea de la calle o parte local equivalente de la dirección de facturación del titular de la tarjeta asociada a la tarjeta utilizada para esta compra. | NO |
billAddrLine3 | String | 50 | Tercera línea de la calle o parte local equivalente de la dirección de facturación del titular de la tarjeta asociada a la tarjeta utilizada para esta compra. | NO |
billAddrPostCode | String | 16 | Código postal u otro código postal de la dirección de facturación del titular de la tarjeta asociada a la tarjeta utilizada para esta compra. | NO |
billAddrState | String | 3 | El estado o provincia de la dirección de facturación del titular de la tarjeta asociada con la tarjeta utilizada para esta compra. | NO |
homePhone | JSON Object |
| El número de teléfono de la casa proporcionado por el titular de la tarjeta. | NO |
cc | String | 1–3 | ||
subscriber | String | 15 | ||
String | 254 | La dirección de correo electrónico asociada con la cuenta que ha ingresado el titular de la tarjeta o que está en el archivo del solicitante de 3DS. | NO | |
mcc | String | 4 | Código específico de DS que describe el tipo de negocio, producto o servicio del Comerciante. | NO |
merchantCountryCode | String | 3 | Código de país del comerciante. | NO |
merchantName | String | 40 | Nombre del comerciante asignado por el Adquiriente o Sistema de pago. | NO |
threeRIInd | String | 2 | Indica el tipo de 3RIsolicitud 01 = Recurring transaction | NO |
mobilePhone | JSON Object | El número de teléfono móvil proporcionado por el titular de la tarjeta. | NO | |
cc | String | 1–3 | ||
subscriber | String | 15 | ||
shipAddrCity | String | 50 | Parte de la ciudad de la dirección de envío solicitada por el titular de la tarjeta. | NO |
shipAddrCountry | String | 3 | País de la dirección de envío solicitada por el titular de la tarjeta. | NO |
shipAddrLine1 | String | 50 | Primera línea de la calle o parte local equivalente de la dirección de envío solicitada por el titular de la tarjeta. | NO |
shipAddrLine2 | String | 50 | Segunda línea de la calle o parte local equivalente de la dirección de envío solicitada por el titular de la tarjeta. | NO |
shipAddrLine3 | String | 50 | Tercera línea de la calle o parte local equivalente de la dirección de envío solicitada por el titular de la tarjeta. | NO |
shipAddrPostCode | String | 16 | El código postal u otro código postal de la dirección de envío solicitada por el titular de la tarjeta. | NO |
shipAddrState | String | 3 | El estado o provincia de la dirección de envío asociada con la tarjeta utilizada para esta compra. | NO |
transType | String | 2 | Identifica el tipo de transacción que se autentica. | NO |
workPhone | JSON Object |
| El número de teléfono del trabajo proporcionado por el titular de la tarjeta. | NO |
cc | String | 1–3 | ||
subscriber | String | 15 | ||
acctID | String | 64 | Información adicional acerca de la cuenta proporcionada opcionalmente por el solicitante 3DS. | NO |
acctInfo | Object |
| Información adicional sobre la cuenta del titular de la tarjeta proporcionada por el solicitante 3DS. | NO |
acctType | String | 2 | Indica el tipo de cuenta. Por ejemplo, para un producto de tarjeta multi-cuenta. | NO |
merchantRiskIndicator | Object | La evaluación del comerciante del nivel de riesgo de fraude para la autenticación específica tanto para el titular de la tarjeta como para la autenticación que se lleva acabo. | NO | |
deliveryEmailAddress | String | |||
deliveryTimeframe | String | |||
giftCardAmount | String | |||
giftCardCount | String | |||
giftCardCurr | String | |||
preOrderDate | String | |||
preOrderPurchaseInd | String | |||
reorderItemsInd | String | |||
shipIndicator | String | |||
payTokenInd | Boolea n | True/false | Un valor de Verdadero indica que la transacción fue desmarcada antes de ser recibida por el ACS. | NO |
threeDSRequestorAuthenticationInfo | Object | Información sobre cómo el solicitante 3DS autenticó al titular de la tarjeta antes o durante la transacción. | NO | |
threeDSReqAuthData | String | |||
threeDSReqAuthMethod | String | |||
threeDSReqAuthTimestamp | String | |||
threeDSRequestorPriorAuthentication Info | Object | Información sobre cómo el solicitante 3DS autenticó al titular de la tarjeta como parte de una transacción 3DS anterior. | NO | |
threeDSReqPriorAuthData | String | |||
threeDSReqPriorAuthMethod | String | |||
threeDSReqPriorAuthTimest amp | String | |||
threeDSReqPriorRef | String | |||
broadInfo | Object | 4096 | Información no estructurada enviada entre el Servidor 3DS, el DS y el ACS. |
Ejemplo
{
"messageType": "pArq",
"threeDSCompInd": "N",
"acctNumber": "427831******3877",
"threeDSRequestorID": "V3DSTSReqTestID",
"threeDSRequestorName": "V3DSTSReqTestName",
"cardExpiryDate": "2612",
"deviceChannel": "02",
"notificationURL": "https://requestor-challenge.api.alignet.io/tds-alignet-requestor-rest/api/v2/challenge",
"messageCategory": "01",
"messageVersion": "2.1.0",
"threeDSRequestorAuthenticationInd": "01",
"threeDSRequestorChallengeInd": "01",
"acquirerBIN": "426029",
"acquirerMerchantID": "104209",
"cardholderName": "Challenge One",
"transType":"01",
"merchantCountryCode": "604",
"purchaseAmount": "1",
"purchaseCurrency": "840",
"purchaseExponent": "2",
"mcc": "1234",
"merchantName": "BDS /https://interiors-boutique.com",
"purchaseDate": "20230413094026",
"purchaseNumber":"100010",
"browserAcceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"browserIP": "1.12.123.255",
"browserJavaEnabled": "true",
"browserLanguage": "en",
"browserColorDepth": "32",
"browserScreenHeight": "1920",
"browserScreenWidth": "1080",
"browserTZ": "0",
"browserUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0"
}
Response
Estos podrían ser diferentes objetos dependiendo de la versión del protocolo, si existió frictionless, challenge o hubo un error en la autenticación.
Parámetro | Tipo | Long. | Descripción |
threeDSServerTransID | String | 36 | Identificador de transacción único universal asignado por el servidor 3DS para identificar una sola transacción. Este campo reemplaza al valor del campo XID de la versión 1.1 |
acsChallengeMandated | String | 1 | Indicación de si se requiere un desafío para que la transacción sea autorizada debido a mandatos locales / regionales u otra variable:
Este dato contendrá un valor si únicamente se supere la validación (blanco o nulo, formato o longitud permitida) de los campos enviados por la pasarela en el mensaje PArq. |
acsOperatorID | String | 32 | DS asignado identificador de ACS. Cada DS puede proporcionar una ID única para cada ACS de forma individual. Este dato contendrá un valor si únicamente se supere la validación (blanco o nulo, formato o longitud permitida) de los campos enviados por la pasarela en el mensaje PArq. |
acsTransID | String | 36 | Identificador de transacción único universal asignado por el servidor ACS para identificar una sola transacción. Este dato contendrá un valor si únicamente se supere la validación (blanco o nulo, formato o longitud permitida) de los campos enviados por la pasarela en el mensaje PArq. |
acsURL | String | 2048 | URL completa del ACS que se utilizará para el desafío. |
acsReferenceNumber | String | 32 | Identificador único asignado por el ACS. Este dato contendrá un valor si únicamente se supere la validación (blanco o nulo, formato o longitud permitida) de los campos enviados por la pasarela en el mensaje PArq. |
authenticationType | String | 2 | Indica el tipo de método de autenticación que el Emisor usará para desafiar al Titular de la Tarjeta, Este campo será enviado solo si la transacción termina como transStatus: C
Este dato contendrá un valor si únicamente se supere la validación (blanco o nulo, formato o longitud permitida) de los campos enviados por la pasarela en el mensaje PArq. |
authenticationValue | String | 28 |
Este dato contendrá un valor si únicamente se supere la validación (blanco o nulo, formato o longitud permitida) de los campos enviados por la pasarela en el mensaje PArq. |
cardholderInfo | String | 128 | Texto proporcionado por el ACS / Emisor al titular de la tarjeta durante una transacción sin Friction que no fue autenticada por el ACS. Este campo será opcional. Por Ejemplo:” Se necesita autenticación adicional para esta transaccion. Comuníquese con (Nombre del emisor) al xxx-xxx-xxx”. Este dato contendrá un valor si únicamente se supere la validación (blanco o nulo, formato o longitud permitida) de los campos enviados por la pasarela en el mensaje PArq. |
dsReferenceNumber | String | 32 | Identificador único asignado por la marca para rastrear el DS aprobado. Este dato contendrá un valor si únicamente se supere la validación (blanco o nulo, formato o longitud permitida) de los campos enviados por la pasarela en el mensaje PArq. |
dsTransID | String | 36 | Identificador de transacción único universal asignado por el servidor DS para identificar una sola transacción. Este dato contendrá un valor si únicamente se supere la validación (blanco o nulo, formato o longitud permitida) de los campos enviados por la pasarela en el mensaje PArq. |
eci | String | 2 | El valor específico del sistema de pago proporcionado por el ACS para indicar los resultados del intento de autenticar al titular de la tarjeta. Este campo será enviado solo si la transacción termina como transStatus: Y/N/U/A/R. Además, este dato contendrá un valor si únicamente se supere la validación (blanco o nulo, formato o longitud permitida) de los campos enviados por la pasarela en el mensaje PArq. |
messageExtension | Array | 81920 bytes | Los datos necesarios para cumplir con los requisitos no definidos de otra manera en el mensaje 3-D Secure se transmiten en una extensión de mensaje. Este campo es opcional dependiendo del DS de la marca y contendrá un valor si únicamente se supere la validación (blanco o nulo, formato o longitud permitida) de los campos enviados por la pasarela en el mensaje PArq. |
messageType | String | 4 | Identifica el tipo de mensaje que se pasa:
|
messageVersion | String | 5–8 | Identificador de la versión del protocolo Este será el número de versión del protocolo de la especificación utilizada por el sistema que crea este mensaje. |
transStatus | String | 1 | Indica si una transacción califica como una transacción autenticada o verificación de cuenta.
|
transStatusReason | String | 2 | Proporciona información sobre por qué el campo Estado de transacción tiene el valor especificado. Para 01-PA, obligatorio si el campo transStatus = N, U o R. Para 02-NPA, condicional según lo definido por el DS:
Además, Este dato contendrá un valor si únicamente se supere la validación (blanco o nulo, formato o longitud permitida) de los campos enviados por la pasarela en el mensaje PArq. |
vci | String | 4 | Campo que identifica como termino la autenticación de manera específica:
Este campo será enviado solo si la transacción termina como transStatus: Y/N/U/A/R. Además, Este dato contendrá un valor si únicamente se supere la validación (blanco o nulo, formato o longitud permitida) de los campos enviados por la pasarela en el mensaje PArq. |
errorCode | String | 3 | Este campo se enviará vacío |
errorComponent |
String |
1 |
Este campo se enviará vacío |
errorDescription | String | 2048 | Este campo se enviará vacío |
errorDetail | String | 2048 | Este campo se enviará vacío |
errorMessageType | String | 4 | Este campo se enviará vacío |
Si el valor del campo transStatus es igual a C, se deberá iniciar el proceso de Autenticación con Challenge.
Si el valor del campo transStatus es igual a Y o A, se acaba el proceso de Autenticación y los datos requeridos de Autenticación para Autorizar se enviarán en el API Autorizar con Autenticacion PayIn Tarjeta eCommerce.
Ejemplo tranStatus R
{
"threeDSServerTransID": "f281382d-7757-41d2-9248-d6f4adf242fb",
"acsTransID": "e95bf31b-d133-4a2d-9fb3-8e08133b64f9",
"acsReferenceNumber": "3DS_LOA_ACS_TILS_020100_00136",
"acsOperatorID": "10057951",
"acsURL": null,
"authenticationType": null,
"authenticationValue": null,
"acsChallengeMandated": null,
"dsReferenceNumber": "VISA.V 17 0003",
"dsTransID": "e4ca571a-5f4f-4f49-9ef7-6860d2cc6842",
"eci": "07",
"vci": "TSRS",
"messageType": "pArs",
"messageVersion": "2.1.0",
"transStatus": "R",
"p_messageVersion": "1.0.5",
"errorCode": "",
"errorComponent": "",
"errorDescription": "",
"errorDetail": "",
"errorMessageType": ""
}
Ejemplo tranStatus C
{
"threeDSServerTransID": "30cc899b-8c39-4428-b278-4b3deb7197c0",
"acsTransID": "da688615-bacd-4b3e-a2e2-9cbbf85a44d2",
"acsReferenceNumber": "3DS_LOA_ACS_TILS_020100_00136",
"acsOperatorID": "10057951",
"acsURL": "https://acs.kapital24.uz:9605/browser",
"authenticationType": "02",
"authenticationValue": null,
"acsChallengeMandated": "Y",
"dsReferenceNumber": "VISA.V 17 0003",
"dsTransID": "dda37e1e-5bf2-42c4-845d-7c61ef769b04",
"eci": "07",
"vci": "TSC",
"messageType": "pArs",
"messageVersion": "2.1.0",
"transStatus": "C",
"p_messageVersion": "1.0.5",
"errorCode": "",
"errorComponent": "",
"errorDescription": "",
"errorDetail": "",
"errorMessageType": ""
}