# Integración con Pantalla (POST)
# Preámbulo
Esta guía describe los parámetros que deberán ser utilizados para realizar pagos con tarjeta desde una tienda o carrito de compra en línea. Para completar una transacción se deberá enviar el requerimiento con los datos del pago a través de un mensaje post al Gateway de Cardnet. El Gateway mostrará una pantalla donde se deberá digitar la información sensitiva tales como número de tarjeta, fecha de expiración, CVV. Luego responderá el resultado de la transacción a una página de recibo del comercio donde se podrá identificar si la transacción fue aprobada o rechazada.
# Protocolo 3DS
3DS es un protocolo de mensajería que permite la autenticación de los tarjetahabientes en compras online aumentando la seguridad de la transacción. El mismo fue diseñado para proporcionar una experiencia de usuario sin fricción, mientras previene el uso no autorizado de tarjetas en linea y protege al comercio.
# Flujo Transacción
# Consideraciones
- Se debe tener en cuenta que la plataforma de comercio electrónico utiliza un certificado digital con encriptación TLS1.2, por lo tanto, las aplicaciones deberán soportar este nivel de encriptación.
- El proceso de cierre de los comercios es ejecutado de forma automática en la plataforma a las 7:00 PM. En caso de necesitar hacer el cierre a una hora diferente, deberá especificarlo a su ejecutivo de cuenta.
- Los ejemplos presentes en esta guía utilizan una ruta de solicitud (url) y parámetros exclusivos únicamente para el ambiente de certificaciones (QA). Los datos de producción deberán solicitarse al ejecutivo de cuenta.
- Para transacciones con el servicio de autenticación 3DSecure, se utilizará como código de respuesta de rechazo el valor TF, este sería únicamente para rechazos en los requerimientos de autenticación, esto incluye los casos donde el usuario no pudo completar el reto.
# Requerimiento de Pago
# Parametros de solicitud
Para establecer conexión con el Gateway de pago se deberán utilizar los siguientes campos:
TransactionType
[Mandatorio, Longitud: 4] - Valor que identifica el tipo de transacción.Amount
[Mandatorio, Longitud: 12] - Monto de la transacción.CurrencyCode
[Mandatorio, Longitud: 3] - Código de moneda en que se realizara la transacción. RD Peso = 214, US$=840.Tax
[Mandatorio, Longitud: 12] - Valor de ITBIS que sería cobrado en la transacción.MerchantNumber
[Mandatorio, Longitud: 15] - Número de afiliado que utilizara el comercio en la plataforma.MerchantTerminal
[Mandatorio, Longitud: 12] - Número de terminal que utilizara el comercio en la plataforma.ReturnUrl
[Mandatorio, Longitud: Variable] - Dirección de la página adonde el comprador seria redireccionado en el caso que la transacción sea aprobada.CancelUrl
[Mandatorio, Longitud: Variable] - Dirección de la página adonde el comprador seria redireccionado en el caso que la transacción sea rechazada.PageLanguaje
[Mandatorio, Longitud: 3] - Parámetro para identificar el lenguaje en que se mostrará la información en el Gateway de pago. Español= ESP O ENG, Ingles=ING.TransactionId
[Mandatorio, Longitud: 6] - Valor asignado por el comercio. Se debe respetar la longitud del campo.TxToken
[condicional, Longitud: 37] - Número de token de transaccion, utilizado para transacciones de confirmacion.KeyEncriptionKey
[Mandatorio, Longitud: 32] - Debe generar un MD5 con los valores de los campos MerchantType, MerchantNumber, MerchantTerminal, TransactionId, Amount, Tax.Ipclient
[Mandatorio, Longitud: 15] - Dirección IP de cliente.AcquiringInstitutionCode
[Mandatorio, Longitud: 3] - Código de adquirente.BatchId
[Opcional, Longitud: 3] - Número de lote de la transacción.OrdenID
[Mandatorio, Longitud: Variable] - Número de factura o identificación de la orden para el comercio.MerchantName
[Mandatorio, Longitud: 40] - Nombre del establecimiento estructurado de la siguiente manera:- Debe venir todo en mayúsculas
- Los primeros 22 bytes deben ser el “Terminal owner name”
- Los próximos 13 bytes deben incluir la ciudad donde está localizado el Terminal.
- Los próximos 3 bytes deben indicar el estado donde está localizado el Terminal, si aplica.
- Los últimos 2 bytes corresponden al código que identifica al país.
MerchantType
[Opcional, Longitud: 4] - Código de categoría del comercio.
# Ejemplo de solicitud
<form action=”https://lab.cardnet.com.do/authorize” method="post">
<input name="TransactionType" value="0200" type="hidden">
<input name="CurrencyCode" value="214" type="hidden">
<input name="AcquiringInstitutionCode" value="349" type="hidden">
<input name="MerchantType" value="5440" type="hidden">
<input name="MerchantNumber" value="349041263 " type="hidden">
<input name="MerchantTerminal" value="22222222" type="hidden">
<input name="ReturnUrl" value="https://www.urldelcliente.com" type="hidden">
<input name="CancelUrl" value="https://www.urldelcliente.com" type="hidden">
<input name="PageLanguaje" value="ENG" type="hidden">
<input name="OrdenId" value="686" type="hidden">
<input name="TransactionId" value="160088" type="hidden">
<input name="Amount" value="000000011799" type="hidden">
<input name="Tax" value="000000001523" type="hidden">
<input name="MerchantName" value="COMERCIO PARA REALIZAR PRUEBAS DO" type="hidden">
<input name="KeyEncriptionKey" value="1fc500b127d04b532f759d183944b057" type="hidden">
<input name="Ipclient" value="X.X.X.X" type="hidden">
<input name='loteid' Value='001' type="hidden">
<input name='seqid' Value='001' type="hidden">
</form>
# Parametros adicionales para 3DS
- Información Cliente
3DS_email
[Opcional, Longitud: 254] - Dirección de correo electrónico asociada con la cuenta que ingresó el Titular de la Tarjeta o está que vinculada al solicitante de la autorizacion.3DS_mobilePhone
[Opcional, Longitud: 15] - Número de telefono asociado a la cuenta.3DS_workPhone
[Opcional, Longitud: 15] - Número de telefono del trabajo o Negocio.3DS_homePhone
[Opcional, Longitud: 15] - Numero de telefono residencia.
- Información de Facturación
3DS_billAddr_line1
[Opcional, Longitud: 50] - Linea 1 para digitar direccion de facturacion asociada a la tarjeta utilizada para la compra.3DS_billAddr_line2
[Opcional, Longitud: 50] - Linea 2 para digitar direccion de facturacion asociada a la tarjeta utilizada para la compra.3DS_billAddr_line3
[Opcional, Longitud: 50] - Linea 3 para digitar direccion de facturacion asociada a la tarjeta utilizada para la compra.3DS_billAddr_city
[Opcional, Longitud: 50] - Ciudad de facturacion de la tarjeta utilizada para la compra.3DS_billAddr_state
[Opcional, Longitud: 3] - Estado de facturacion de la tarjeta utilizada para la compra. ISO 3166-1.3DS_billAddr_country
[Opcional, Longitud: 3] - Codigo postal de facturacion de la tarjeta utilizada para la compra. ISO 3166-1.3DS_billAddr_postCode
[Opcional, Longitud: 16] - Codigo postal de facturacion de la tarjeta utilizada para la compra.
- Información Referente a entrega de la orden
3DS_shipAddr_line1
[Opcional, Longitud: 50] - Linea 1 para digitar direccion de envio de la cuenta asociada a la compra.3DS_shipAddr_line2
[Opcional, Longitud: 50] - Linea 2 para digitar direccion de envio de la cuenta asociada a la compra.3DS_shipAddr_line3
[Opcional, Longitud: 50] - Linea 3 para digitar direccion de envio de la cuenta asociada a la compra.3DS_shipAddr_city
[Opcional, Longitud: 50] - Ciudad de envio asociada a la cuenta utilizada para la compra.3DS_shipAddr_state
[Opcional, Longitud: 3] - Estado de envio asociada a la cuenta utilizada para la compra.3DS_shipAddr_country
[Opcional, Longitud: 3] - Pais de envio asociada a la cuenta utilizada para la compra.3DS_shipAddr_postCode
[Opcional, Longitud: 16] - Codigo Postal de envio asociada a la cuenta utilizada para la compra.3DS_transType
[Opcional, Longitud: 3] - Campo utilizado para especificar el tipo de transacciones a realizar: Compra normal: 01(por defecto) Check Acceptance:03 Account Funding: 10 Transaccion para juegos de azar: 11 Prepaid Activation and Load: 28
# Ejemplo de solicitud con Campos Adicionales 3DSecure
<form action=”https://lab.cardnet.com.do/authorize” method="post">
<input name="TransactionType" value="0200" type="hidden">
<input name="CurrencyCode" value="214" type="hidden">
<input name="AcquiringInstitutionCode" value="349" type="hidden">
<input name="MerchantType" value="5440" type="hidden">
<input name="MerchantNumber" value="349041263 " type="hidden">
<input name="MerchantTerminal" value="22222222" type="hidden">
<input name="ReturnUrl" value="https://www.urldelcliente.com" type="hidden">
<input name="CancelUrl" value="https://www.urldelcliente.com" type="hidden">
<input name="PageLanguaje" value="ENG" type="hidden">
<input name="OrdenId" value="686" type="hidden">
<input name="TransactionId" value="160088" type="hidden">
<input name="Amount" value="000000011799" type="hidden">
<input name="Tax" value="000000001523" type="hidden">
<input name="MerchantName" value="COMERCIO PARA REALIZAR PRUEBAS DO" type="hidden">
<input name="KeyEncriptionKey" value="1fc500b127d04b532f759d183944b057" type="hidden">
<input name="Ipclient" value="X.X.X.X" type="hidden">
<input name='loteid' Value='001' type="hidden">
<input name='seqid' Value='001' type="hidden">
<input name="3DS_email" Value="cuenta@correo.com" type="hidden">
<input name="3DS_mobilePhone" Value="8095000000" type="hidden">
<input name="3DS_workPhone" Value="8094733300" type="hidden">
<input name="3DS_homePhone" Value="8095333333" type="hidden">
<input name="3DS_billAddr_line1" Value="Max Henrizque Urena" type="hidden">
<input name="3DS_billAddr_line2" Value="No.10" type="hidden">
<input name="3DS_billAddr_line3" Value="" type="hidden">
<input name="3DS_billAddr_city" Value="SantoDomingo" type="hidden">
<input name="3DS_billAddr_state" Value="DN" type="hidden">
<input name="3DS_billAddr_country" Value="DOP" type="hidden">
<input name="3DS_billAddr_postCode" Value="10111" type="hidden">
<input name="3DS_shipAddr_line1" Value="Max Henrizque Urena" type="hidden">
<input name="3DS_shipAddr_line2" Value="No.10" type="hidden">
<input name="3DS_shipAddr_line3" Value="" type="hidden">
<input name="3DS_shipAddr_city" Value="SantoDomingo" type="hidden">
<input name="3DS_shipAddr_state" Value="DN" type="hidden">
<input name="3DS_shipAddr_country" Value="DOP" type="hidden">
<input name="3DS_shipAddr_postCode" Value="10111" type="hidden">
</form>
# Respuesta a requerimiento de pago
# Formato de Respuesta
CreditCardNumber
[Longitud: 19] - Se deberán recibir los primero 6 y últimos 4 dígitos legibles, el resto deberá llegar enmascarado.ResponseCode
[Longitud: 2] - Código de respuesta recibido del banco emisor.AuthorizationCode
[Longitud: 6] - Número de autorización recibido del banco emisor.RetrievalReferenceNumber
[Longitud: 12] - Número de referencia asignado por Cardnet. Deberá ser único por cada transacción.OrdenID
[Longitud: Variable] - Número de factura o identificación de la orden para el comercio.TransactionId
[Longitud: 6] - Valor asignado.TxToken
[Longitud: 40] - Numero de token de transacción, utilizado para transacciones de confirmación.
# Ejemplo de respuesta
ResponseCode=00&TransactionID=009999&RemoteResponseCode=00&AuthorizationCode=026262&RetrivalReferenceNumber=000000000028&TxToken: txn-116020aff1f44171a6bfbf46bf9044a7
# Acceso Gateway Ztrans
# Parametros Ambiente Desarrollo Gateway Ztrans:
- Link Acceso: https://lab.cardnet.com.do/authorize
- Numero de Comercio: 349000000
- Terminal Id Comercio: 58585858
- Categoría del Comercio: 7997
- Tipo Transacción: 200
# Parametros Produccion Gateway Ztrans:
- Link Acceso: https://ecommerce.cardnet.com.do/authorize
- Numero de Comercio:
- Terminal Id Comercio:
- Categoría del Comercio:
- Tipo Transacción:
# Códigos de Respuesta
RESPONSE CODE | DESCRIPCIÓN CLIENTE |
---|---|
00 | Aprobada |
01 | Llamar al Banco |
02 | Llamar al Banco |
03 | Comercio Invalido |
04 | Rechazada |
05 | Rechazada |
06 | Error en Mensaje |
07 | Tarjeta Rechazada |
08 | Llamar al Banco |
09 | Request in progress |
10 | Aprobación Parcial |
11 | Approved VIP |
12 | Transacción Invalida |
13 | Monto Invalido |
14 | Cuenta Invalida |
15 | No such issuer |
16 | Approved update track 3 |
17 | Customer cancellation |
18 | Customer dispute |
19 | Reintentar Transacción |
20 | No tomo acción |
21 | No tomo acción |
22 | Transacción No Aprobada |
23 | Transacción No Aceptada |
24 | File update not supported |
25 | Unable to locate record |
26 | Duplicate record |
27 | File update edit error |
28 | File update file locked |
30 | File update failed |
31 | Bin no soportado |
32 | Tx. Completada Parcialmente |
33 | Tarjeta Expirada |
34 | Transacción No Aprobada |
35 | Transacción No Aprobada |
36 | Transacción No Aprobada |
37 | Transacción No Aprobada |
38 | Transacción No Aprobada |
39 | Tarjeta Invalida |
40 | Función no Soportada |
41 | Transacción No Aprobada |
42 | Cuenta Invalida |
43 | Transacción No Aprobada |
44 | No investment account |
51 | Fondos insuficientes |
52 | Cuenta Invalidad |
53 | Cuenta Invalidad |
54 | Tarjeta vencida |
56 | Cuenta Invalidad |
57 | Transacción no permitida |
58 | Transacción no permitida en terminal |
60 | Contactar Adquirente |
61 | Excedió Limte de Retiro |
62 | Tarjeta Restringida |
65 | Excedió Cantidad de Intento |
66 | Contactar Adquirente |
67 | Hard capture |
68 | Response received too late |
75 | Pin excedio Limte de Intentos |
77 | Captura de Lote Invalida |
78 | Intervención del Banco Requerida |
79 | Rechazada |
81 | Pin invalido |
82 | PIN Required |
85 | Llaves no disponibles |
89 | Terminal Invalida |
90 | Cierre en proceso |
91 | Host No Disponible |
92 | Error de Ruteo |
94 | Duplicate Transaction |
95 | Error de Reconciliación |
96 | Error de Sistema |
97 | Emisor no Disponible |
98 | Excede Limete de Efectivo |
99 | CVV or CVC Error response |
TF | Solicitud de autenticación rechazada o no completada. |