Manual de Integración
...
Fecha | Revisión | Cambios – Motivo |
06/01/2014 | 1.0 | Creación del documento |
17/08/2015 | 1.1 | Definición de librería como servicio. Explicación de integración |
23/10/2015 | 1.2 | Agregado de Operación Procesar Mensaje Crédito Débito. Incorporación de identificador único de transacción en VTOL Server, campo: 166-trxReferenceNumber |
09/11/2015 | 1.3 | Agregado de campo 1102–Proveedor seleccionado en mensaje Procesar Operación con Tarjeta |
13/05/2016 | 1.4 | Agregado de campo 137–ConfVersion en GetConfiguration, 10–inputMode en Sale/VoidSale/Etc y 1010–currentSessionId en el mensaje Crear sesión |
16/05/2016 | 1.5 | Revisión del documento |
06/06/2016 | 1.6 | Agregado del valor FORCED_CLOSE en el campo 1008–closeSessionAction del mensaje Cerrar Sesión |
14/07/2016 | 1.7 | Agregados los tipos de transacciones CashBack, VoidCashBack, ServicePayment y VoidServicePayment |
18/08/2016 | 1.8 | Agregado del anexo "Mecanismo de Autorización Telefónica" |
15/09/2016 | 1.9 | Agregado de campo 57 - Tipo de Cuenta en la respuesta al POS para el procesamiento de operación con tarjeta. |
19/09/2016 | 1.10 | Se modifica la condición del campo 1113 – cardIsDebit. |
21/09/2016 | 1.11 | Posibilidad de recibir desde el POS, el valor que indica la capacidad de captura de la terminal. |
23/09/2016 | 1.12 | Agregado del tipo de operación "Cancelar Lectura de Tarjeta" |
06/10/2016 | 1.13 | Se incorpora definición de timeout de EMVKIT. Se eliminan los campos: Store y Node de los mensajes: Leer Datos de la Tarjeta - Cancelar Lectura de Tarjeta - Procesar Operación con Tarjeta - Procesar Mensaje Crédito Debito - Obtener Configuración de POS - Cerrar Sesión |
05/04/2017 | 1.14 | Agregado de propiedad approveInSecondInstance en sección de Configuración de PINPAD |
16/05/2017 | 1.15 | Modificación del apartado Mecanismo de Autorización Telefónica |
17/05/2017 | 1.16 | Agregado del valor MSR Chip en campo inputMode |
30/05/2017 | 1.17 | Agregado del apartado "Circuito Operativo de EMVKIT" |
06/06/2017 | 1.18 | Actualización de la tabla Prefijo en el apartado Formato Interface POS. Mayor detalle del campo MasterKey Position, incluyendo el valor 99. |
07/07/2017 | 1.19 | Agregado del campo promocional en Configuración de POS para indicar que se aplica una promoción sobre un plan de pago. |
23/04/2018 | 1.20 | Revisión general del documento. Agregado de apartado Pagos Parciales. |
11/05/2018 | 1.21 |
|
...
- Capturar el Track I y el Track II de la tarjeta por medio del PINPAD
- Capturar información del CHIP por medio del PINPAD
- Soporte PINPAD VX820 VISA/POSNET vía RS232 o USB
- Identificar la tarjeta o proveedor
- Facilitar los datos de tarjeta encriptados, los cuales solo podrán ser desencriptados por VTOL Server o por el HOST autorizador según corresponda
- Facilitar el PAN enmascarado según normas PCI (solo visibles los primeros 6 y últimos 4 dígitos)
- Capturar el CVC por medio del PINPAD
- Capturar la fecha de vencimiento por medio del PINPAD en caso de que el ingreso sea manual
- Capturar el PIN por medio del PINPAD
- Capturar el tipo de cuenta por medio del PINPAD
- Evaluar bines de excepción
- Proveer código de banco emisor cuando la tarjeta sea 'Mastercard'
- Soportar modo de ingreso CHIP, BANDA y MANUAL
- Suministrar la configuración de VTOL Server a la aplicación de punto de venta (prefijos, tarjetas, cuotas, intereses, etc)
- Manejar contingencia entre PINPAD, caja y VTOL
- Comunicación entre aplicativo punto de venta y VTOL Server
- Resolver las reglas de negocio propias de cada PINPAD (VISA/POSNET)
- Funcionalidad de Cashbackventa con cashback
- Soporte de operaciones de venta como devoluciones, anulación de venta, anulación de devolución
- Gestionar la mensajería con VTOL Server
...
Ejemplo de configuración para el PINPAD de POSNET (FD)
#serie
#PPVX820POSNET.portName=COM3
#USB
PPVX820POSNET.portName=COM9
PPVX820POSNET.dataBits=7
PPVX820POSNET.stopBits=1
PPVX820POSNET.baudRate=115200
PPVX820POSNET.parity=EVEN
#Timeout por defecto en esperar la respuesta del Pinpad.
PPVX820POSNET.timeout=30000
PPVX820POSNET.timeoutMilisecondsWrite=150
PPVX820POSNET.language=1
#Tamaño maximo del buffer de lectura del puerto serie.
PPVX820POSNET.bufferSize=2048
PPVX820POSNET.nativeImpleClass=com.synthesis.vtolClientLib.deviceAdapters.RxTxSimpleSerialNativeLibWrapperImpl
#PPVX820POSNET.nativeImpleClass=com.synthesis.vtolClientLib.deviceAdapters.JavaCommSimpleSerialNativeLibWrapperImpl
#PPVX820POSNET.nativeImpleClass=com.synthesis.vtol.ar.client.test.pinpad.POSNETVx820VA0600PinpadEmulatorConnector
#PPVX820POSNET.nativeImpleClass=com.synthesis.vtol.ar.client.test.pinpad.POSNETVx8203DESPinpadEmulatorConnector
Wiki Markup |
---|
#\[TEC\]:Timeout entre comandos expresado en segundos / Formato: NNN |
PPVX820POSNET.y01Tec=035
Wiki Markup |
---|
#\[TOM\]:Timeout Ingreso de Datos expresado en segundos / Formato: NNN |
PPVX820POSNET.y06Tom=020
#Tiempo de espera luego de enviar un Y06 (en millisecs)
PPVX820POSNET.y06ProcessWait=1000
#Tiempo de espera para un ACK de respuesta (en millisecs)
PPVX820POSNET.ackResponseTimeout=1000
#Version de la aplicacion del PINPAD
PPVX820POSNET.firmwareVersion=A0700
#Versiones de Firmware que requieren mensaje de inicialización (separadas por coma).
PPVX820POSNET.requiredInitAppVersions=A0600,A0700
#Indica si el aprobado en 2da. decisión del PINPAD está habilitado
PPVX820POSNET.approveInSecondInstance=true
...
Número | Nombre del campo | Tipo de dato | Obligatorio | Descripción |
11 | trxType | Alfanumérico | Obligatorio | Tipo de Transacción:
|
...
Response from Full library:
|
C. Cancelar Lectura de Tarjeta
...
Número | Nombre del campo | Tipo de dato | Obligatorio | Descripción |
11 | trxType | Alfanumérico | Obligatorio | Tipo de Transacción:
|
12 | amount | Importe | Obligatorio | Monto de la transacción. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
13 | currencyPosCode | Alfanumérico | Obligatorio | Tipos de Moneda:
|
14 | payments | Numérico | Obligatorio | Cantidad de cuotas. 2 dígitos como máximo |
15 | plan | Alfanumérico | Obligatorio | Plan. 1 caracter de longitud |
16 | originalDate | Fecha | Opcional | Este campo debe viajar si el tipo de transacción es Refund. Se trata de la fecha de la transacción original en el formato YYYYMMDD |
17 | originalTrxTicketNr | Numérico | Opcional | Este campo debe viajar si el tipo de transacción es Refund y es opcional cuando el tipo de transacción es VoidSale. Se trata del número de ticket de la transacción original. 4 dígitos como máximo |
18 | referedSale | Numérico | Condicional a tarjeta AMEX | Se usa para indicar si una venta se hizo de forma referida. SOLO para AMEX. Se debe encender este campo con el valor 1 |
22 | authorizationCode | Alfanumérico | Condicional si fue realizada la autorización telefónica | Código de autorización telefónica. 6 dígitos como máximo. Este campo se encuentra presente sólo si la transacción se autorizó off-line por teléfono |
53 | paymentCondition | Alfanumérico | Opcional | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción |
54 | additionalAmount | Alfanumérico |
| Contiene el Importe del "Cash Back". Se usa en transacciones del tipo CashBack o Sale + CashBack. Debe contener 12 dígitos como máximo |
70 | effectiveDate | Alfanumérico | Opcional AMEX | Fecha efectiva. Se usa para AMEX con formato YYMM |
73 | interestAmount | Alfanumérico | Opcional | Este campo es por si se necesita enviar el monto de los intereses en el mensaje a Autorizar. Normalmente el monto que llega del POS ya contiene los intereses en el caso de pagar en cuotas. Existe algún caso de alguna tarjeta especial donde el monto hay que enviarlo libre de intereses y justamente el monto de los intereses viaja en este campo |
74 | requestAccountNumber | Alfanumérico | Opcional, default = 0 | Indica si puede recibir el número de cuenta (Visa y Posnet). Valores posible:
|
101 | differDate | Alfanumérico | Opcional | Fecha diferida. Solo utilizada para AMEX |
118 | terminalCapability | Alfanumérico | Opcional | Capacidad de captura. Valores 1 = Manual / 2 = Lectura de Banda / 5 = Lectura de Chip |
130 | posPeriod | Numérico | Opcional | Indica el Periodo del POS en que se realiza la operación. Solamente es registrado en VTOL. Longitud 5 |
131 | turn | Numérico | Opcional | Indica Turno en que se realiza la operación. Solamente es registrado en VTOL. Longitud 2 |
132 | operatorCode | Alfanumérico | Opcional | Código de operador. Solamente es registrado en VTOL. Longitud 20 |
133 | operatorName | Alfanumérico | Opcional | Nombre de operador. Solamente es registrado en VTOL. Longitud 50 |
134 | sellerCode | Alfanumérico | Opcional | Código del vendedor que realiza la operación. Solamente es registrado en VTOL. Longitud 20 |
135 | sellerName | Alfanumérico | Opcional | Nombre del vendedor que realiza la operación. Solamente es registrado en VTOL. Longitud 50 |
136 | attentionMode | Alfanumérico | Opcional | Modalidad de atención (AU ó AS). Longitud 2 |
1102 | provider | Alfanumérico |
| Proveedor / tarjeta seleccionada manualmente de la lista devuelta por la librería en la operación Leer Datos de la Tarjeta. Por Ejemplo: Si la operación Leer Datos de Tarjeta retorna la lista {VI, EL}, en la operación Procesar Operación con Tarjeta se debe enviar el valor seleccionado entre las dos opciones VI o EL. |
1103 | cardContextId | Numérico | Obligatorio | Identifica el contexto de la tarjeta. Es un valor de referencia a la tarjeta leída a través del PINPAD. Es el valor devuelto por la última operación "Leer Datos Tarjeta" |
...
Número | Nombre del campo | Tipo de dato | Obligatorio | Descripción |
6 | cardNumber | Numérico | Obligatorio si es Manual | Número de tarjeta. Sólo presente si el modo de ingreso fue Manual. |
7 | expiration | Numérico | Obligatorio si es Manual | Formato YYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
8 | Cvc | Numérico | Obligatorio si es Manual. Además es opcional según la tarjeta. | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
9 | track2 | Alfanumérico | Obligatorio si es MSR | Track2 de la tarjeta entero (se envía todo el contenido del track2 en este campo) Este campo sólo está presente si la banda magnética / chip de la tarjeta pudo ser leído. |
10 | inputMode | Alfanumérico | Obligatorio | Forma en que se ingresó/leyó la tarjeta. Valores posibles:
|
11 | trxType | Alfanumérico | Obligatorio | Tipo de Transacción:
|
12 | amount | Importe | Obligatorio | Monto de la transacción. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
13 | currencyPosCode | Alfanumérico | Obligatorio | Tipos de Moneda:
|
14 | payments | Numérico | Obligatorio | Cantidad de cuotas. 2 dígitos como máximo |
15 | plan | Alfanumérico | Obligatorio | Plan. 1 caracter de longitud |
16 | originalDate | Fecha | Opcional | Este campo debe viajar si el tipo de transacción es Refund. Se trata de la fecha de la transacción original en el formato YYYYMMDD |
17 | originalTrxTicketNr | Numérico | Opcional | Este campo debe viajar si el tipo de transacción es Refund y es opcional cuando el tipo de transacción es VoidSale. Se trata del número de ticket de la transacción original. 4 dígitos como máximo |
18 | referedSale | Numérico | Condicional a tarjeta AMEX | Se usa para indicar si una venta se hizo de forma referida. SOLO para AMEX. Se debe encender este campo con el valor 1 |
22 | authorizationCode | Alfanumérico | Condicional a si fue realizada la autorización telefónica | Código de autorización telefónica. 6 dígitos como máximo. Este campo se encuentra presente sólo si la transacción se autorizó off-line por teléfono |
53 | paymentCondition | Alfanumérico | Opcional | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción |
54 | additionalAmount | Alfanumérico |
| Contiene el Importe del "Cash Back". Se usa en transacciones del tipo CashBack o Sale + CashBack. Debe contener 12 dígitos como máximo |
70 | effectiveDate | Alfanumérico | Opcional AMEX | Fecha efectiva. Se usa para AMEX con formato YYMM |
73 | interestAmount | Alfanumérico | Opcional | Este campo es por si se necesita enviar el monto de los intereses en el mensaje a Autorizar. Normalmente el monto que llega del POS ya contiene los intereses en el caso de pagar en cuotas. Existe algún caso de alguna tarjeta especial donde el monto hay que enviarlo libre de intereses y justamente el monto de los intereses viaja en este campo |
74 | requestAccountNumber | Alfanumérico | Opcional, default = 0 | Indica si puede recibir el número de cuenta (Visa y Posnet). Valores posible:
|
101 | differDate | Alfanumérico | Opcional | Fecha diferida. Solo utilizada para AMEX |
130 | posPeriod | Numérico | Opcional | Indica el Periodo del POS en que se realiza la operación. Solamente es registrado en VTOL. Longitud 5 |
131 | turn | Numérico | Opcional | Indica Turno en que se realiza la operación. Solamente es registrado en VTOL. Longitud 2 |
132 | operatorCode | Alfanumérico | Opcional | Código de operador. Solamente es registrado en VTOL. Longitud 20 |
133 | operatorName | Alfanumérico | Opcional | Nombre de operador. Solamente es registrado en VTOL. Longitud 50 |
134 | sellerCode | Alfanumérico | Opcional | Código del vendedor que realiza la operación. Solamente es registrado en VTOL. Longitud 20 |
135 | sellerName | Alfanumérico | Opcional | Nombre del vendedor que realiza la operación. Solamente es registrado en VTOL. Longitud 50 |
136 | attentionMode | Alfanumérico | Opcional | Modalidad de atención (AU ó AS). Longitud 2 |
1103 | cardContextId | Numérico | Obligatorio. | Identifica el contexto de la tarjeta. Es un valor de referencia a la tarjeta leída a través del PINPAD. Es el valor devuelto por la última operación "Leer Datos Tarjeta" |
...