PCI/Charge/Authenticate (PCI)
Integración del modo experto
Documentación de referencia, para ver cómo integrarlo, está aquí: Servicio de autenticación de portador (modo experto)
Parámetros de entrada
amount
Monto de la transacción a autentificar Su valor debe ser un entero positivo, en la fracción monetaria más pequeña.
Ejemplo: 30050 para 300,50 EUR.
Formato
currency
Moneda de la transacción a autentificar Código alfabético en mayúsculas según la norma ISO 4217 (por ejemplo: "EUR" para el euro).
Formato
transactionCategory
Categoría de la transacción. Generalmente se valorará con PAYMENT por un pago clásico.
Valores posibles
Valores | Descripción |
---|---|
ADD_CARD | Agregar una tarjeta a un wallet. |
PAYMENT | Pago clásico (incluye pagos recurrentes o varias cuotas). |
Formato
productType
Tipo de producto correspondiente en la transacción.
Valores posibles
Valores | Descripción |
---|---|
ACCOUNT_FUNDING | Depósito en una cuenta |
CHECK_ACCEPTANCE | Verificación de la aceptación |
GOODS_OR_SERVICE_PURCHASE | Compra de un bien o servicio. Valor utilizado si el campo no se transmite en la solicitud. |
PREPAID_ACTIVATION_AND_LOAD | Activación y cargo de una tarjeta prepagada |
QUASI_CASH_TRANSACTION | Transacciones en efectivo (por ejemplo: cheque de vacaciones, boleto de lotería, etc.) |
Formato
merchant.name
Nombre del comercio.
Formato
merchant.mid
Número de afiliación.
Formato
merchant.tid
Terminal ID. Identificador del punto de venta definido en la afilación de aceptación.
Este campo solo se utiliza en Colombia para elegir entre REDEBAN y CREDIBANCO.
Formato
merchant.mcc
Código específico del DS emisor que describe el tipo de actividad, producto o servicio del comerciante. (Código de categoría de comerciante = MCC)
Formato
networkPreference
Camino: paymentForm.networkPreference
Nombre de la red preferida recomendada por el vendedor.
Valores posibles
VALOR | Descripción |
---|---|
AMEX | Red American Express (Safekey) |
CB | Red Carte Bancaire |
MASTERCARD | Red Mastercard |
VISA | Red Visa |
ELO | Red Elo (Brasil) |
DINERS | Red Diners |
DISCOVER | Red Discover |
OSB | Red OSB |
Formato
accountType
Camino: paymentForm.accountType
Tipo de tarjeta. Este campo es obligatorio en Brasil
Valores posibles
Valores | Descripción |
---|---|
DEBIT | Tarjeta débito |
CREDIT | Tarjeta crédito |
Formato
paymentForm.pan
El PAN (Primary Account Number) es el número principal de la tarjeta, generalmente compuesto por 16 dígitos).
Formato
expiryMonth
Camino: paymentForm.expiryMonth
Mes de expiración en 2 dígitos. Ejemplo: "09" por septiembre.
Formato
expiryYear
Camino: paymentForm.expiryYear
Año de expiración en 2 dígitos. Ejemplo: "25" por 2025.
Formato
cardHolderName
Camino: paymentForm.cardHolderName
Nombre completo del titular de la tarjeta
Formato
installmentNumber
Camino: paymentForm.installmentNumber
Cantidad de cuotas.
Formato
customer.reference
Identificador del comprador en el sitio web comercial.
Formato
customer.email
E-mail del comprador.
- Especificaciones de la estructura del correo electrónico: RFC-2822
Formato
address
Camino: customer.billingDetails.address
Dirección de facturación.
Atención: Los caracteres > y < no están permitidos.
Formato
address2
Camino: customer.billingDetails.address2
Información adicional sobre la dirección de facturación.
Atención: Los caracteres > y < no están permitidos.
Formato
category
Camino: customer.billingDetails.category
Tipo de cliente.
Formato
Valores posibles
Valores | Descripción |
---|---|
PRIVATE | Cliente de tipo Particular |
COMPANY | Cliente de tipo Empresa |
cellPhoneNumber
Camino: customer.billingDetails.cellPhoneNumber
Teléfono móvil del comprador.
Acepta todos los formatos:
Ejemplos:
- 0623456789
- +33623456789
- 0033623456789
- (+34) 824 65 43 21
- 87 77 12 34
Formato
city
Camino: customer.billingDetails.city
Ciudad de facturación.
Formato
country
Camino: customer.billingDetails.country
País del comprador (en letras mayúsculas, según la norma ISO 3166-1 alfa-2).
Formato
Valores posibles
Ejemplos de valores posibles:
País | Código |
---|---|
AUSTRIA | AT |
Brasil | BR |
CÓRCEGA | FR |
COSTA DE MARFIL | CI |
FRANCIA | FR |
GUADALUPE | GP |
INDIA | IN |
MARTINICA | MQ |
NUEVA CALEDONIA | NC |
SAN PEDRO Y MIQUELÓN | PM |
POLINESIA FRANCESA | PF |
district
Camino: customer.billingDetails.district
Barrio de la dirección de facturación.
Formato
firstName
Camino: customer.billingDetails.firstName
Nombre del comprador.
Formato
identityCode
Camino: customer.billingDetails.identityCode
Identificación nacional. Identifica de manera única a cada ciudadano en un país.
Formato
identityType
Camino: customer.billingDetails.identityType
Tipo del documento de identidad.
Formato
language
Camino: customer.billingDetails.language
Código del idioma del comprador según la norma ISO 639-1.
Permite especificar el idioma en el que se envían los e-mails de confirmación de pago.
Formato
Valores posibles
Ejemplos de valores posibles:
Idioma | Código |
---|---|
Alemán (Alemania) | DE |
Inglés (Reino Unido) | EN |
Inglés (Estados Unidos) | EN |
Chino (tradicional) | ZH |
Español (España) | ES |
Español (Chile) | ES |
Francés (Francia) | FR |
Italiano (Italia) | IT |
Japonés (Japón) | JP |
Holandés (Países Bajos) | NL |
Polaco (Polonia) | PL |
Portugués (Brasil) | PT |
Portugués (Portugal) | PT |
Ruso (Rusia) | RU |
lastName
Camino: customer.billingDetails.lastName
Nombre del comprador.
Formato
legalName
Camino: customer.billingDetails.legalName
Razón social.
Formato
phoneNumber
Camino: customer.billingDetails.phoneNumber
Número de teléfono del comprador.
Acepta todos los formatos:
Ejemplos:
- 0123456789
- +33123456789
- 0033123456789
- (00.571) 638.14.00
- 40 41 42 42
Formato
state
Camino: customer.billingDetails.state
Región (estado) de la dirección de facturación. Es recomendable pero no obligatorio transmitir el valor ISO-3166-2.
Formato
streetNumber
Camino: customer.billingDetails.streetNumber
Número de calle de la dirección de facturación.
Carácteres aceptados:
- Caracteres alfabéticos (de la "A" a la "Z" y desde la "a" hasta la "z")
- Espacio
Formato
title
Camino: customer.billingDetails.title
Tratamiento del comprador.
Ejemplos:
- Sr.
- Sr.
- Sra.
Formato
zipCode
Camino: customer.billingDetails.zipCode
Código postal de la dirección de facturación.
Formato
address
Camino: customer.shippingDetails.address
Dirección de entrega.
Atención: Los caracteres > y < no están permitidos.
Formato
address2
Camino: customer.shippingDetails.address2
Segunda línea de la dirección de facturación.
Atención: Los caracteres > y < no están permitidos.
Formato
category
Camino: customer.shippingDetails.category
Tipo de cliente.
Formato
Valores posibles
Valores | Descripción |
---|---|
PRIVATE | Cliente de tipo Particular |
COMPANY | Cliente de tipo Empresa |
city
Camino: customer.shippingDetails.city
Ciudad de entrega.
Formato
country
Camino: customer.shippingDetails.country
País de entrega (en letras mayúsculas, según la norma ISO 3166-1 alfa-2).
Formato
Valores posibles
Ejemplos de valores posibles:
País | Código |
---|---|
AUSTRIA | AT |
Brasil | BR |
CÓRCEGA | FR |
COSTA DE MARFIL | CI |
FRANCIA | FR |
GUADALUPE | GP |
INDIA | IN |
MARTINICA | MQ |
NUEVA CALEDONIA | NC |
SAN PEDRO Y MIQUELÓN | PM |
POLINESIA FRANCESA | PF |
deliveryCompanyName
Camino: customer.shippingDetails.deliveryCompanyName
Nombre de la empresa emisora del producto.
Formato
district
Camino: customer.shippingDetails.district
Barrio de la dirección de facturación.
Formato
firstName
Camino: customer.shippingDetails.firstName
Nombre del destinatario.
Formato
identityCode
Camino: customer.shippingDetails.identityCode
Identificación nacional. Identifica de manera única a cada ciudadano en un país.
Formato
lastName
Camino: customer.shippingDetails.lastName
Nombre del comprador.
Formato
legalName
Camino: customer.shippingDetails.legalName
Razón social en caso de entrega a una empresa.
Formato
phoneNumber
Camino: customer.shippingDetails.phoneNumber
Número de teléfono del comprador.
Acepta todos los formatos:
Ejemplos:
- 0123456789
- +33123456789
- 0033123456789
- (00.571) 638.14.00
- 40 41 42 42
Formato
shippingMethod
Camino: customer.shippingDetails.shippingMethod
Modo de entrega.
Formato
Valores posibles
VALOR | Descripción |
---|---|
RECLAIM_IN_SHOP | Retiro en tienda. |
RELAY_POINT | Uso de una red de puntos de retiro de terceros (Kiala, Alveol, etc.). |
RECLAIM_IN_STATION | Retiro en un aeropuerto, una estación o una agencia de viajes. |
PACKAGE_DELIVERY_COMPANY | Entrega por transportista (Colissimo, UPS, etc.). |
ETICKET | Emisión de un ticket electrónico, descarga de producto virtual. |
CARD_HOLDER_ADDRESS | Entrega al comprador. Reservado para su uso futuro. |
VERIFIED_ADDRESS | Entrega a una dirección verificada. Reservado para su uso futuro. |
NOT_VERIFIED_ADDRESS | Entrega a una dirección no verificada. Reservado para su uso futuro. |
SHIP_TO_STORE | Entrega en tienda. Reservado para su uso futuro. |
DIGITAL_GOOD | Entrega digital. Reservado para su uso futuro. |
ETRAVEL_OR_ETICKET | Boleto electronico. Reservado para su uso futuro. |
OTHER | Otros Reservado para su uso futuro. |
PICKUP_POINT | Retiro en un punto de relevo. Reservado para su uso futuro. |
AUTOMATED_PICKUP_POINT | Recoger en el punto de relevo automático. Reservado para su uso futuro. |
shippingSpeed
Camino: customer.shippingDetails.shippingSpeed
Plazo de entrega.
Formato
Valores posibles
Ejemplos de valores posibles:
VALOR | Descripción |
---|---|
STANDARD | Entrega estándar |
EXPRESS | Entrega en 24 horas |
PRIORITY | Entrega prioritaria (Click & Collect) |
state
Camino: customer.shippingDetails.state
Región de la dirección de facturación.
Formato
streetNumber
Camino: customer.shippingDetails.streetNumber
Número de calle de la dirección de facturación.
Carácteres aceptados:
- Caracteres alfabéticos (de la "A" a la "Z" y desde la "a" hasta la "z")
- Espacio
Formato
zipCode
Camino: customer.shippingDetails.zipCode
Código postal de la dirección de facturación.
Formato
insuranceAmount
Camino: customer.shoppingCart.insuranceAmount
Monto del seguro para todo el pedido expresado en su unidad monetaria más pequeña (el centimo del euro).
Ejemplo: 30050 para 300,50 EUR.
Formato
shippingAmount
Camino: customer.shoppingCart.shippingAmount
Monto de los gastos de entrega para todo el pedido expresado en su unidad monetaria más pequeña (el centimo para el euro).
Ejemplo: 30050 para 300,50 EUR.
Formato
taxAmount
Camino: customer.shoppingCart.taxAmount
Monto de los impuestos para toda la orden expresados en su unidad monetaria más pequeña (el centimo para el euro).
Ejemplo: 30050 para 300,50 EUR.
Formato
cartItemInfo
Camino: customer.shoppingCart.cartItemInfo
cardItemInfo es una lista que contiene objetos Customer/ShoppingCartItemInfo.
Permite describir cada artículo del carrito.
Formato
productAmount
Camino: customer.shoppingCart.cartItemInfo.productAmount
Cantidad de ingresos expresados en su unidad monetaria más pequeña (el centimo para el euro).
Ejemplo: 30050 para 300,50 EUR.
Formato
productLabel
Camino: customer.shoppingCart.cartItemInfo.productLabel
Nombre del producto.
Formato
productQty
Camino: customer.shoppingCart.cartItemInfo.productQty
Cantidad de producto.
Formato
productRef
Camino: customer.shoppingCart.cartItemInfo.productRef
Referencia del producto.
Formato
productType
Camino: customer.shoppingCart.cartItemInfo.productType
Tipo de producto.
Valores posibles
VALOR | Descripción |
---|---|
FOOD_AND_GROCERY | Alimentos y productos comestibles. |
AUTOMOTIVE | Automotriz / Motocicleta |
ENTERTAINMENT | Entretenimiento / Cultura |
HOME_AND_GARDEN | Casa y jardín |
HOME_APPLIANCE | Equipo de la casa |
AUCTION_AND_GROUP_BUYING | Subastas y compras a granel |
FLOWERS_AND_GIFTS | Flores y regalos |
COMPUTER_AND_SOFTWARE | Computadoras y software |
HEALTH_AND_BEAUTY | Salud y belleza |
SERVICE_FOR_INDIVIDUAL | Servicios a domicilio |
SERVICE_FOR_BUSINESS | Servicios de negocios |
SPORTS | Deportes |
CLOTHING_AND_ACCESSORIES | Ropa y accesorios |
TRAVEL | Viajes |
HOME_AUDIO_PHOTO_VIDEO | Sonido, imagen y video |
TELEPHONY | Telefonía |
Formato
productVat
Camino: customer.shoppingCart.cartItemInfo.productVat
Tipo de producto.
Monto del impuesto sobre el producto (en la unidad más pequeña de la moneda).
Valores posibles
VALOR | Descripción |
---|---|
Un número entero | Monto de la transacción. Su valor debe ser un entero positivo (por ejemplo: 1234 para 12,34 EUR). |
Un número decimal, inferior a 100 | Porcentaje aplicado sobre el importe. Ejemplos: 20,0 o 19,6532 |
Para expresar un porcentaje aplicado al monto del producto en cuestión, el valor debe tener un máximo de 4 dígitos después del punto decimal. El decimal es obligatorio para expresar un porcentaje. La posición decimal está marcada por el carácter ".".
Formato
device.deviceType
Tipo de dispositivo en el que se realiza la autentificación.
Valores posibles
VALOR | Descripción |
---|---|
BROWSER | la autentificación se lleva a cabo en un navegador |
Formato
device.acceptHeader
El contenido exacto del encabezado HTTP accept, tal como lo envió el navegador del cliente.
Formato
device.userAgent
Contenido exacto del encabezado HTTP "user-agent" enviado por el navegador. Debe truncarse si el valor supera los 2048 caracteres.
Obtenido del navegador del cliente a través de la propiedad “navigator.userAgent”.
Código Javascript que permite obtener el valor:
const language = navigator.userAgent;
Formato
device.ip
Dirección IP del navegador tal como la devuelve el cliente en los encabezados HTTP. Format IPV4 (ejemplo: 1.12.123.255) o IPV6 (ejemplo: 2011:0db8:85a3:0101:0101:8a2e:0370:7334). Longitud variable máximo 45 caracteres.
Formato
device.javaEnabled
Booleano que representa la capacidad del navegador para ejecutar Java. El valor es el que devuelve la función “navigator.javaEnabled()” y puede ser true o false.
Código Javascript que permite obtener el valor:
const javaEnabled = navigator.javaEnabled();
Formato
device.language
Obtenido del navegador del cliente a través de la propiedad “navigator.language”.
Ejemplos: “en”, “en-US”, “de”, “fr”, etc.
Código Javascript que permite obtener el valor:
const language = navigator.language;
Formato
device.colorDepth
Este valor representa la profundidad de la paleta de colores utilizada para visualizar las imágenes en bits por píxel.
Obtenido del navegador del cliente a través de la propiedad “screen.colorDepth”.
Código Javascript que permite obtener el valor:
const colorDepth = screen.colorDepth;
Formato
device.screenHeight
La altura total de la pantalla del cliente en píxeles. El valor es aquel devuelto por la propiedad “screen.height”. De 1 a 6 caracteres.
Código Javascript que permite obtener el valor:
const screenHeight = screen.height;
Formato
device.screenWidth
El ancho total de la pantalla del cliente en píxeles. El valor es aquel devuelto por la propiedad “screen.width”. De 1 a 6 caracteres.
Código Javascript que permite obtener el valor:
const screenWidth = screen.width;
Formato
timeZoneOffset
Camino: device.timeZoneOffset
Diferencia de tiempo entre la hora UTC y la hora local del navegador del cliente, en minutos. Su valor es de -120 para un usuario en el huso horario UTC+2 y 570 para el huso horario UTC−09:30.
Código Javascript que permite obtener el valor:
const timeZoneOffset = new Date().getTimezoneOffset();
Formato
id
ID único de autentificación, en formato UUID.
Nulo a la primera llamada.
Cuando se necesitan varias llamadas al Web Service PCI/Charge/Authenticate para realizar la autentificación de un comprador, el valor del ID transmitido debe ser el mismo para cada llamada de la misma autentificación. En ese caso, debe usarse el identificador proporcionado en la respuesta anterior.
Formato
name
Camino: instructionResult.name
Nombre de la instrucción.
Valores posibles
VALOR | Descripción |
---|---|
CHALLENGE | Instrucción Challenge, que permite la autentificación interactiva del usuario con el ACS. |
FINGERPRINT | Instrucción Fingerprint, que permite la autentificación interactiva del usuario con el ACS. |
Formato
value
Camino: instructionResult.value
Resultado como una cadena JWT, o un código de error en texto plano en caso de error ('timeout' por ejemplo).
Formato
challengePreference
Camino: instructionResult.protocol.challengePreference
Indica si el vendedor ha solicitado un "challenge" o no.
Valores posibles
VALOR | Tarjeta 3DS2 | |
---|---|---|
NO_PREFERENCE | La elección de la preferencia se delega al emisor de la tarjeta. | |
NO_CHALLENGE_REQUESTED | Permite solicitar una autentificación sin interacción (frictionless). | |
CHALLENGE_REQUESTED | Permite solicitar una autentificación fuerte para la transacción. | |
CHALLENGE_MANDATED | Permite indicar que, por razones reglamentarias, la transacción requiere una autentificación fuerte. | |
DATA_ONLY | Permite solicitar una autentificación sin interacción, tratada por el DS y no por el ACS del banco emisor.La transacción no cuenta con transferencia de responsabilidad. La autentificación se desactiva si la red es incompatible con esta funcionalidad. El Web Service PCI/Charge/Authenticate devuelve un código de error INT_808 si el campotransactionCategory su valor no puede serPAYMENT . |
Formato
name
Camino: instructionResult.protocol.name
Nombre del protocolo de autentificación del titular de la tarjeta.
Valores posibles
VALOR | Descripción |
---|---|
THREEDS | Protocolo 3-D Secure |
Formato
network
Camino: instructionResult.protocol.network
Red en la que se autentificó el medio de pago.
Este campo es obligatorio para gestionar el tiempo de espera en el método 3ds, cuando el campo instructionResult.value se establece en TIMEOUT.
Redes compatibles actualmente
VALOR |
---|
CB |
VISA |
MASTERCARD |
AMEX_SAFEKEY |
PROTECTBUY |
Formato
simulation
Camino: instructionResult.protocol.simulation
Booleano que indica si la autentificación debe realizarse en modo de simulación. Si establece el valor de este campo obligatorio en:
true
, se activa el modo de simulación.false
, no se activa el modo simulación.
El modo de simulación permite lograr una integración comercial sin estar en producción, ni utilizar tarjetas reales.
Formato
version
Camino: instructionResult.protocol.version
Versión del protocolo de autentificación del titular de la tarjeta.
Versiones actualmente soportadas
VALOR | Descripción |
---|---|
1.0.2 | Versión 1.0.2 |
2.1.0 | Versión 2.1.0 |
2.2.0 | Versión 2.2.0 |
Formato
protocolRequest.name
Nombre del protocolo de autentificación del titular de la tarjeta.
Valores posibles
VALOR | Descripción |
---|---|
THREEDS | Protocolo 3-D Secure |
Formato
version
Camino: protocolRequest.version
Permite forzar la versión del protocolo de autentificación utilizado.
Versiones actualmente soportadas
VALOR | Descripción |
---|---|
2 | 3D Secure 2 |
Formato
challengePreference
Camino: protocolRequest.challengePreference
Indica si el vendedor ha solicitado un "challenge" o no.
Valores posibles
VALOR | Tarjeta 3DS2 | |
---|---|---|
NO_PREFERENCE | La elección de la preferencia se delega al emisor de la tarjeta. | |
NO_CHALLENGE_REQUESTED | Permite solicitar una autentificación sin interacción (frictionless). | |
CHALLENGE_REQUESTED | Permite solicitar una autentificación fuerte para la transacción. | |
CHALLENGE_MANDATED | Permite indicar que, por razones reglamentarias, la transacción requiere una autentificación fuerte. | |
DATA_ONLY | Permite solicitar una autentificación sin interacción, tratada por el DS y no por el ACS del banco emisor.La transacción no cuenta con transferencia de responsabilidad. La autentificación se desactiva si la red es incompatible con esta funcionalidad. El Web Service PCI/Charge/Authenticate devuelve un código de error INT_808 si el campotransactionCategory su valor no puede serPAYMENT . |
Formato
recurring.expiryDate
Fecha de expiración de la recurrencia. Ejemplo: 24/12/19
Formato
unit
Camino: recurring.frequency.unit
Unidad de frecuencia de la recurrencia.
Valores posibles
Valores | Descripción |
---|---|
DAY | En días |
MONTH | En meses |
YEAR | En años |
Formato
value
Camino: recurring.frequency.value
Valor de la frecuencia de la recurrencia, expresado en unidad de frecuencia. Ejemplo: 12
Formato
Referencia de la respuesta
Existen varias respuestas posibles dependiendo del contexto:
Respuesta | Contexto |
---|---|
AuthenticationResponseData | Objeto que contiene el resultado de la autentificación. |
Consulte la referencia de cada respuesta para más información.