Host to Host Pinpad Wifi
Protocolo de mensajería
Seguridad TLS 1.2
SSL (Secure Sockets Layer) o Capa de Conexiones Seguras. Es un protocolo que hace uso de certificados digitales para establecer comunicaciones seguras a través de red. Desde el 2015 ha sido sustituido por TLS (Transport Layer Security) el cual está basado en SSL y son totalmente compatibles.
Seguridad en la Red WI-FI del Comercio
En el caso de que la red del Comercio requiera usar conexiones por WI-FI se exige que la red sea una red cifrada *WPA2-PSK (AES).
Recomendaciones de seguridad para una red WI-FI: Cambiar regularmente la contraseña de red WI-FI
- Al cambiar regularmente la contraseña de red WI-FI evita que terceras personas puedan hacer uso de la red del comercio.
- Configurar la red WI-FI como “No visible” Al ocultar la red WI-FI se evita que personas externas al comercio puedan encontrar e intentar acceder a la red del comercio. Ahora cada vez que se intente conectar un nuevo dispositivo, será necesario colocar primero la *SSID, para posteriormente ingresar la contraseña
- Registrar y restringir las conexiones por MAC Al tener habilitadas las conexiones por MAC, se especifica que equipos pueden hacer uso de la red WI-FI, evitando que cualquier otro equipo haga uso de la red del comercio.
- Restringir el acceso a la “Configuración del Router” desde WI-FI Al restringir el acceso a la configuración del Router desde conexiones WI-FI se evita que desde dispositivos WIFI se pueda acceder a esta configuración y se modifiquen sus parámetros.
- Monitorear regularmente las conexiones WI-FI Los Router actuales permiten conocer los dispositivos que están conectados a la red WIFI. Es recomendable monitorear para poder evitar algún dispositivo que esté conectado sin autorización.
*WPA2-PSK (AES): Sistema de protección para redes inalámbricas WI-FI. Es el último estándar de encriptación WI-FI y AES es el más reciente algoritmo de cifrado.
*SSID: Difusión de un SSID de red. Un SSID es el nombre público de una red de área local inalámbrica (WLAN) que sirve para diferenciarla de otras redes inalámbricas en la zona. SSID es el nombre de la red que se especifica al configurar la red WI-Fi.
Archivo de implementación TLS
La implementación de TLS realizada es la de autenticación mutua two-way, es decir el PinPad valida a la caja y a la inversa. Para implementar TLS entre el Pinpad vx680 y la caja del comercio se requieren de los siguientes archivos:
Certificados TLS del Pinpad:
- Certificado cliente: "client.PEM": Certificado con el que se presenta al Servidor.
- Llave de validación del certificado de cliente: "client.key": Necesario para validar que el certificado cargado es el que corresponde.
- Certificado para validar el servidor: "CA.PEM": Para validar el certificado del Servidor.
Certificados TLS del Servidor (Caja del Comercio):
- Certificado servidor: "server.PEM": Certificado con el que se presenta al cliente.
- Llave de validación del certificado de servidor: "server.key": Llave privada usada para firmar.
- Certificado para validar el cliente: "CAClient.PEM": Para validar el certificado del cliente.
Implementación TLS
Se debe cifrar el canal de comunicación con la versión más reciente del protocolo de comunicación TLS. Se debe usar la autenticación doble (Two-way TLS) para darle mayor seguridad a proceso.
El cliente tiene la CA del certificado del servidor en su almacén de confianza. Durante el protocolo de enlace TLS, el cliente compara la CA certificado en su almacén de confianza con el envío del certificado desde el servidor para verificar la identidad del servidor. El servidor tiene la CA del certificado del cliente en su almacén de confianza. Durante el protocolo de enlace TLS, el servidor compara la CA en su almacén de confianza con el envío del certificado del cliente para verificar la identidad del cliente.
Dependiendo del lenguaje o plataforma, se debe especificar la ubicación de los “Almacenes de Certificados” (KeyStore y TrustStore). Dependiendo del lenguaje o plataforma se crea un KeyStore para el certificado y la llave privada del Servidor y un TrustStore para el “Certificado CA” del Pinpad.
//Especificamos el KeyStore que contiene el certificado del Servidor y la llave privada
KeyStore keyStore = KeyStore.getInstance("JKS");
keyStore.load(new FileInputStream("server/serverKeyStore.jks"),"servpass".toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(keyStore, "servpass".toCharArray());
//Especificamos el TrustStore que contiene el Certificado CA del cliente
KeyStore trustedStore = KeyStore.getInstance("JKS");
trustedStore.load(new FileInputStream("server/serverTrustedCerts.jks"),"servpass".toCharArray());
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(trustedStore);
//Creamos la instancia TLS
SSLContext sc = SSLContext.getInstance("TLSv1.2");
TrustManager[] trustManagers = tmf.getTrustManagers();
KeyManager[] keyManagers = kmf.getKeyManagers();
sc.init(keyManagers, trustManagers, null);
//se crea el socket que se usara para la comunicación
SSLServerSocketFactory ssf = sc.getServerSocketFactory();
serverSocket = (SSLServerSocket) ssf.createServerSocket(port);
try {
//Esperamos que el PINPAD se conecte
Socket aClient = serverSocket.accept();
System.out.println("client accepted");
aClient.setSoLinger(true, 1000);
aClient.setSoTimeout(10 * 1000);
//Leemos lo enviado desde el PINPAD
BufferedReader input = new BufferedReader(new InputStreamReader(aClient.getInputStream()));
String recibido = input.readLine();
System.out.println("Recibido " + recibido);
//Enviamos ACK al Pinpad
PrintWriter output = new PrintWriter(aClient.getOutputStream());
output.println("0004ACK ");
output.flush();
//Enviamos Comando al Pinpad
output.println("0025CONN|00|01|Texto línea 1|");
output.flush();
} catch (Exception e) {
e.printStackTrace();
}
Protocolo de comunicación TCP/IP
Este protocolo permite la comunicación entre un ECR (Electronic Cash Register) y un PINPAD a través de una red que soporte el protocolo TCP/IP. Es importante tener en consideración el control de errores sobre las funciones de TCP/IP para asegurar que cada uno de los mensajes llegue al destinatario y hacer gestión sobre los reintentos cuando sea necesario. El siguiente diagrama ejemplifica la construcción de los comandos en el protocolo TCP/IP.
Donde:
- LARGO_DATA: 4 bytes indicando el largo del mensaje, sin incluir estos 4 bytes.
- DATA: Es el mensaje que se quiere enviar.
Diagrama genérico de secuencia de comandos
El diagrama que se describe corresponde a la generalización del comportamiento de cada uno de los comandos.
Flujo de venta detallado
Diagrama
Ejemplo de venta:
0100|00|N|N|N|12100|CL|CR||0|0|
0110|00|2017111611350940|01|||||5197||MASTERCARD|MC|N| 4
0200|12100|0||0|0|2017111611350940|00|597044440001|S4HOST2HOST3DES1||||17111611361100
000000000754||0123456789ABCDEF|||||5197| v
0210|00|2017111611350940|0737|9.12S4HOST2HOST3DES1
171116113517FO00050000B000000000000012100P1Q0123456789ABCDEFa000000000000000000000000
00NU1711161136110000000000075400000000000000000CL0000000d597044440001e00h0010050081G3
F3308F4S0t74 0000000000000000326-478-322 15.30C
6-E051-I152-O0180152171116B8738FEAC1697887380000669B8C9262000000800000152000000012100
0000000000000014A78003040000716800000000000000FF-P0100224403020002
E0F8C826478322RA00000000410109-A1EL20212223242526272829VI0 6MC0 67DC0
6AX012345OTTP06TR01TE0 TM0 TC12TD12TJ12TH12T812T90
-B41205240-C2100-P000000000000-I0-J0-K000W0161111005CR 0000-
4F552D8E65F6056E543A481CDD07D2525E2D7347C32D2CA5756F176482684949FD0443BCB1235018CC0CD
DC7C0EA41BF| (
0500|2017111611350940|513|9.12S4HOST2HOST3DES1
171116113521FO00000005B000000000000012100D4EF600979
BGA1B5296BH0D9C83C5A59B574F7AF35145C606D5D4ID5879B9816C5A304236AB90B081A60A0P1Q012345
6789ABCDEFS0
T0000000000W0161111005CRCMC0000a00000000000003000000000000NU1711161136110000000000075
400000000000000000CL0000000d597044440001e00g
APROBADOh0010050081ptS4HOST2HOST3DES16-E051-I1529-A1EL20212223242526272829VI0 6MC0
67DC0 6AX012345OTTP06TR01TE0 TM0 TC12TD12TJ12TH12T812T90
-B11205243-C0000-P100000800000|
0510|00|2017111611350940|597044440001|S4HOST2HOST3DES1|0 |0000|600979
B|12100||00||5197|001005008|CREDITO||************5197|MC|171116|113521||||||||1|1|1|1
|0|05|CR|0|0|0000|SIN CUOTAS|||||||0000|||0000|||0000|||005|
APROBADO|N||0|1||001005008|Y|||
NOTA: Si por algún motivo el pinpad responde un comando en un formato que no corresponde (tipo de dato erróneo, largo incorrecto, separador incorrecto o faltante, etcétera) la caja debe solicitar reversa según el “flujo de ejecución de reversa a solicitud de la caja” detallado a continuación. Posteriormente se debe iniciar un nuevo flujo de venta.
Flujo ejecución de reversa a solicitud de la caja
La caja no tuvo respuesta de algún comando o no tuvo respuesta de un mensaje SPDH en vuelo, por lo tanto no pudo terminar una venta que inicio, luego no sabe si está aprobada o rechazada, en este caso debe solicitar una reversa al pinpad.
Ejemplo de reversa:
0400|2019062813081650|
0410|00|2019062813081650|0643|9.07S4CAJAHOST000010
190628130853FT00000000B000000000000650000P1Q0123456789ABCDEFa000000150000000000000000
00NU2019062813091100100100000100000000000000000CL0000000d597044440001e00h0010030051G3
F27A500S0t74 0000000000000000326-018-973 18.21P
6-E071-I152-O0180152190628236E485C1DC23FC81980067116EE3A5C000000800000152000000650000
0000000000000110A04001220000000000000000000000FF-P0101221F03020002
00080826018973A00000000410109-A1EL20252627 VI123456MC123456DC
AX123456OTTP06TR1 TE0 TM0 TC12TD12TJ12TH12T812T90
-B41205240-C2100-P000000000000-I0-J1-K000-M1W0161111005CR 0000|
0500|2019062813081650|643|9.07S4CAJAHOST000010
190628130853FT00000000B000000000000650000P1Q0123456789ABCDEFa000000150000000000000000
00NU2019062813091100100100000100000000000000000CL0000000d597044440001e00h0010030051G3
F27A500S0t74 0000000000000000326-018-973 18.21P
6-E071-I152-O0180152190628236E485C1DC23FC81980067116EE3A5C000000800000152000000650000
0000000000000110A04001220000000000000000000000FF-P0101221F03020002
00080826018973A00000000410109-A1EL20252627 AX123456OTTP06TR1 TE0 TM0 TC12TD12TJ12TH12T812T90
-B41205240-C2100-P000000000000-I0-J1-K000-M1W0161111005CR 0000|
0510|00|2019062813081650|597044440001|S4CAJAHOST000010|||265404
B|650000||00||0003|001003005|CREDITO||************0003|
|190628|130853||||||||1|1|1|1|0|05|CR|0|0|0000|SIN
CUOTAS|||||||0000|||0000|||0000|||000|REVERSA APLICADA|N||0|1||001003005|Y|||
Diagrama Inicialización y conexión al PINPAD
Flujo de ejecución de comandos al PINPAD
Manejo de contexto
Descripción de comandos
0100 - Comando Lectura de tarjeta
Igual al Retail estándar vx805
0200 - Comando Requerimiento de venta/anulación
Igual al Retail estándar vx805
0400 - Comando Requerimiento de reversa
Igual al Retail estándar vx805
0500 - Comando Requerimiento de validación/actualización
Igual al Retail estándar vx805
0520 - Comando Requerimiento de validación respuesta de transacción
Este comando es un homologo al 500, donde caja entrega el mensaje spdh al pinpad, pero el pinpad cuando la transacción está aprobada oculta el mensaje en pantalla, si la transacción es rechazada se comporta igual al comando 510. Al finalizar la transacción caja debe enviar comando 1100 al pinpad con el mensaje que se requiere desplegar en pantalla (Aprobado).
Requerimiento
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | |
Comando | 4 | Valor 0520 | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Indicador de contexto | 16 | Valor alfanumérico Formato aaaammddhhmmssmm | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Largo mensaje | 4 | Valor Numérico | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Mensaje SPDH | 2048 | Valor alfanumérico (máximo) | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
Nota: No despliega glosa en pantalla del PINPAD ni actualiza parámetros
Respuesta
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | |
Comando | 4 | Valor 0530 | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Código Respuesta | 2 | Valor numérico De acuerdo a Tabla de códigos de respuesta decomandos | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Indicador de contexto | 16 | Valor alfanumérico Formato aaaammddhhmmssmm | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Código de comercio | 12 | Valor alfanumérico | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Terminal ID | 16 | Valor Alfanumérico Campo “t” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Número Ticket/Boleta | 20 | Valor alfanumérico Campo “S” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Empleado | 4 | Valor alfanumérico Campo “T” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Código Autorización | 8 | Valor Alfanumérico (máximo) Campo “F” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Monto | 18 | Valor numérico (máximo) Campo “B” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Monto vuelto | 18 | Valor numérico (máximo) | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Numero de Cuotas | 2 | Valor numérico Del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Monto Cuota | 14 | Valor numérico Del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Últimos 4 Dígitos Tarjeta | 4 | Valor Numérico | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Número Operación | 6 | Correlativo de transacción del terminal (máximo) | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Glosa Tipo de Tarjeta | 7 | Valor alfanumérico (máximo) Valor de glosa en Tabla tipo de tarjeta de acuerdo “Tipo de tarjeta” del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Fecha Contable | 6 | Valor alfanumérico Se utiliza sólo si es transacción de Debito Del campo “a” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Número de Cuenta | 19 | Valor alfanumérico Número de tarjeta enmascarado para incluir en el voucher Campo “E” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Abreviación de la tarjeta | 2 | Valor alfanumérico Del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Fecha Transacción | 6 | Formato AAMMDD Del encabezado mensaje SPDH | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Hora Transacción | 6 | Formato HHMMSS Del encabezado mensaje SPDH | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Campo Impresión | 8192 | Campo depende si la caja requiere voucher formateado (máximo) | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Transacción premiada | 1 | Valor numérico Posición 1, campo “f” mensaje SPDH (1: Entrega Pto. de Venta) (2: Entrega Diferida) |
(3: Devolución al Tarjeta Habiente) |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Tipo promoción | 1 | Valor numérico Posición 2, campo “f” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Código promoción | 8 | Valor alfanumérico Posición 3-10, campo “f” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Nombre promoción | 21 | Valor alfanumérico Posición 11-31, campo “f” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Glosa vale premio | 62 | Valor alfanumérico Posición 32-93, campo “f” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Texto vale premio | 27 | Valor alfanumérico Posición 94-120, campo “f” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Flag permite cuotas | 1 | Valor numérico Del campo “W” mensaje SPDH |
0 |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Flag de gracia | 1 | Valor numérico Del campo “W” mensaje SPDH |
0 |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Flag C2C | 1 | Valor numérico Del campo “W” mensaje SPDH |
0 |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Flag C3C | 1 | Valor numérico Del campo “W” mensaje SPDH |
0 |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Flag NCuotas | 1 | Valor numérico Del campo “W” mensaje SPDH |
0 |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Flag máximo de cuotas | 2 | Valor numérico Del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Tipo de menú | 2 | Valor alfanumérico Del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Indicador transacción con gracia | 1 | Valor numérico Del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Tipo cuotas | 1 | Valor numérico Del campo “W” mensaje SPDH (1 : Normal) (3 : C3C o C2C) (4 : Cic o N-cuotas) |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Tasa aplicada | 4 | Valor numérico Del campo “W” mensaje SPDH Solo se imprime en voucher si “Flag imprimir tasa = 1” |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Glosa tipo cuota | 30 | Valor alfanumérico Del campo “W” mensaje SPDH (Glosa a imprimir en voucher) |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Glosa tipo cuota 2 | 22 | Valor alfanumérico Del campo “W” mensaje SPDH (Glosa que se despliega en PINPAD) |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Glosa promoción | 10 | Valor alfanumérico Del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Id promoción | 8 | Valor alfanumérico Del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Flag imprimir tasa | 1 | Valor numérico Del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Periodo diferido | 3 | Valor numérico Del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Diferido 1 periodo | 3 | Valor numérico Del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Diferido 1 valor tasa | 4 | Valor numérico Del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Diferido 1 valor cuota | 14 | Valor numérico Del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Diferido 2 periodo | 3 | Valor numérico Del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Diferido 2 valor tasa | 4 | Valor numérico Del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Diferido 2 valor cuota | 14 | "Valor numérico Del campo “W” mensaje SPDH" |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Diferido 3 periodo | 3 | Valor numérico Del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Diferido 3 valor tasa | 4 | Valor numérico Del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Diferido 3 valor cuota | 14 | Valor numérico Del campo “W” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Número de secuencia transacción original | 9 | Valor alfanumérico (máximo) Campo “i”. Sólo para anulaciones |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Código respuesta Transbank | 3 | Valor Numérico | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Glosa respuesta Transbank | 48 | Valor alfanumérico (máximo) Campo “g” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Flag transacción con PIN | 1 | Valor alfanumérico (Y: Transacción autentificada con PIN) (N: Transacción autentificada por firma) |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Nombre tarjetahabiente | 26 | Valor alfanumérico Sólo si “Flag transacción con PIN = N” |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Flag tipo voucher | 1 | Valor numérico (0: Venta con PIN, sin firma, sin glosa) (1: Venta normal, con firma, con glosa) (2: Venta con PIN, con firma, sin glosa) (3: Venta normal, con firma, sin glosa) Posición 8, subcampo “B” campo “9” mensaje SPDH |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Flag modalidad cuotas | 1 | Valor alfanumérico (0: Modalidad 3.1) (1: Modalidad nuevas cuotas) |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Glosa transacción afecta a ahorro | 40 | Valor alfanumérico (máximo) (Se debe imprimir en el voucher cuando corresponda) |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Número de secuencia | 9 | Valor numérico | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Flag mensaje terminal | 1 | Valor alfanumérico (Y: El mensaje es terminal y NO se debe enviar el mensaje SPDH de respuesta) (N: Se debe enviar el mensaje SPDH de respuesta) |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Largo mensaje | 4 | Valor numérico | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Mensaje SPDH Venta/Reversa | 2048 | Valor alfanumérico (máximo) | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
0560 - Comando Requerimiento de validación respuesta de transacción
Este comando es un homologo al 540, donde la caja entrega el mensaje spdh al pinpad. La diferencia es que el comportamiento definido para el pinpad con este comando es de omitir la glosa de aprobado en pantalla.
La glosa que indica la aprobación de la transacción solo será mostrada en pantalla cuando el pinpad reciba el comando 1100 desde la caja, este comando debe incluir el código del mensaje que se requiere desplegar, para este caso Aprobado.
Cuando la caja requiera finalizar la aprobación de la transacción, una vez haya recibido el comando 570 con el flag terminal en Y, debe enviar el comando 1100 con el código de mensaje a mostrar en el pinpad.
Requerimiento
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
<STX> |
1 | Indica inicio de comando Valor Hexa 0x02 | STX |
Comando | 4 | Valor 0560 | 560 |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Indicador de contexto | 16 | Valor alfanumérico Id entregado por el pinpad por cada transacción |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Largo mensaje | 4 | Valor Numérico | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Mensaje SPDH | 2048 | Valor alfanumérico (máximo) | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Nombre Comercio | 40 | Valor Alfanumérico Campo paramétrico en caja enviado al pinpad |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Dirección Comercio | 40 | Valor Alfanumérico Campo paramétrico en caja enviado al pinpad |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Comuna Comercio | 40 | Valor Alfanumérico Campo paramétrico en caja enviado al pinpad Puede ser comuna o ciudad |
|
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
<ETX> |
1 | Indica Fin de comando Valor Hexa 0x03 | ETX |
<LRC> |
1 | Byte resultado de la operación XOR del mensaje |
Timeout de espera por comando 560 de 125seg, ya que hay hasta 4 interacción con el usuario
Respuesta
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO | |
---|---|---|---|---|
1 | Indica inicio de comando Valor Hexa 0x02 | STX | ||
Comando | 4 | Valor 0570 | 570 | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Código Respuesta PinPad | 2 | "Valor numérico En caso de rechazo se debe desplegar en el punto de venta: RECHAZO PINPAD - De acuerdo a Tabla de códigos de respuesta de comandos" |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Indicador de contexto | 16 | Valor alfanumérico Id entregado por el pinpad por cada transacción |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Código de comercio | 12 | Valor numérico Código del comercio entregado por TBK y configurado en la caja, se imprime en voucher |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Terminal ID | 16 | Valor Alfanumérico Dirección lógica entregada por TBK y configurada en la caja, se imprime en voucher |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Número Ticket/Boleta | 20 | Valor alfanumérico Campo opcional, si viene se imprime en voucher si no viene se omite el campo |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Empleado | 4 | Valor alfanumérico Campo opcional, si viene se imprime en voucher si no viene se omite el campo |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Código Autorización | 8 | Valor Alfanumérico (máximo) Código de autorización de la transacción enviado por TBK ejemplo: [AB 12 C3] Se imprime lo que viene en el voucher |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Monto | 18 | Valor numérico (máximo) Monto total autorizado (incluye el monto de la venta, propina, vuelto y donación según sea el caso) Se imprime en voucher |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Monto vuelto | 18 | Valor numérico (máximo) Vuelto seleccionado por cliente, solo aplica en débito Se imprime en voucher |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Numero de Cuotas | 2 | Valor numérico Cantidad de cuotas de la transacción (para ventas sin cuotas se informa “00”) Se imprime en voucher |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Monto Cuota | 14 | Valor numérico Si el monto informado es vacío o 0 caja debe omitir la línea completa en el voucher. Se imprime en voucher si viene el campo |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Últimos 4 Dígitos Tarjeta | 4 | Valor Numérico No se imprime |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Número Operación | 9 | Correlativo de transacción del terminal También conocido como número de secuencia este campo se debe imprimir en voucher de venta y anulación. |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Glosa Tipo de Tarjeta | 7 | Valor alfanumérico (máximo) Valor de glosa en Tabla tipo de tarjeta |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Fecha Contable | 6 | Valor alfanumérico Se utiliza sólo si es transacción de Debito Caja no debe formatear (ej: DDAAMM), simplemente debe transferir el valor al voucher (XX/XX/XX) |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Número de Cuenta | 19 | Valor alfanumérico Número de tarjeta enmascarado para incluir en el voucher |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Abreviación de la tarjeta | 2 | Valor alfanumérico Valor a imprimir en el voucher |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Fecha Transacción | 6 | Formato AAMMDD Valor a imprimir en el voucher |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Hora Transacción | 6 | Formato HHMMSS Valor a imprimir en el voucher |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Campo Impresión | 8192 | Campo depende si la caja requiere voucher formateado (máximo) En el comando 510 no se envía el voucher En el comando 550 se envía voucher siempre |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Transacción premiada | 1 | Valor numérico 1 : transacción premiada En este caso caja debe imprimir voucher PEL además del de venta [vacío] : transacción sin premio |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Tipo promoción | 1 | Valor numérico 1 : Entrega Pto. de Venta 2 : Entrega Diferida 3 : Devolución al Tarjeta Habiente |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Código promoción | 8 | Valor alfanumérico Valor a imprimir en el voucher premiado |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Nombre promoción | 21 | Valor alfanumérico Valor a imprimir en el voucher de premio |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Glosa vale premio | 62 | Valor alfanumérico Valor a imprimir en el voucher de premio |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Texto vale premio | 27 | Valor alfanumérico Valor a imprimir en el voucher de premio |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Flag permite cuotas | 1 | Valor numérico Campo informativo de la configuración del comercio |
0 | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Flag de gracia | 1 | Valor numérico Campo informativo de la configuración del comercio |
0 | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Flag C2C | 1 | Valor numérico Campo informativo de la configuración del comercio |
0 | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Flag C3C | 1 | Valor numérico Campo informativo de la configuración del comercio |
0 | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Flag NCuotas | 1 | Valor numérico Campo informativo de la configuración del comercio |
0 | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Flag máximo de cuotas | 2 | Valor numérico Campo informativo de la configuración del comercio |
0 | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Tipo de menú | 2 | Valor alfanumérico Indicador del tipo de menú por el cual se realizó la transacción CR : CRÉDITO DB : DÉBITO PREPAGO NB : NO BANCARIA Valor de tipo en Tabla tipo de tarjeta Una venta hecha como débito puede ser autorizada como prepago |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Indicador transacción con gracia | 1 | Valor numérico Indicador de modalidad de la transacción 0 transacción sin mes gracia 1 transacción con mes gracia |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Tipo cuotas | 1 | Valor numérico 0 Sin cuotas 1 Cuotas normales 3 C3C o C2C 4 CIC o N-cuotas |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Tasa aplicada | 4 | Valor numérico Solo se imprime en voucher si “Flag imprimir tasa = 1” |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Glosa tipo cuota | 30 | Valor alfanumérico Glosa a imprimir en voucher Si el campo informado viene vacío caja debe omitir la línea en el voucher. |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Glosa tipo cuota 2 | 22 | Valor alfanumérico Glosa que se despliega en pinpad |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Glosa promoción | 10 | Valor alfanumérico Glosa que se despliega en pinpad |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Id promoción | 10 | Valor alfanumérico Glosa que se despliega en pinpad |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Flag imprimir tasa | 1 | Valor numérico [vacío] o 0 no imprime tasa aplicada 1 imprime tasa aplicada |
0 | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Periodo diferido | 3 | Valor numérico Periodo diferido seleccionado, valor a imprimir en voucher |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Diferido 1 periodo | 3 | Valor numérico No utilizado |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Diferido 1 valor tasa | 4 | Valor numérico No utilizado |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Diferido 1 valor cuota | 14 | Valor numérico No utilizado |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Diferido 2 periodo | 3 | Valor numérico No utilizado |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Diferido 2 valor tasa | 4 | Valor numérico No utilizado |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Diferido 2 valor cuota | 14 | Valor numérico No utilizado |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Diferido 3 periodo | 3 | Valor numérico No utilizado |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Diferido 3 valor tasa | 4 | Valor numérico No utilizado |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Diferido 3 valor cuota | 14 | Valor numérico No utilizado |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Número de secuencia transacción original | 9 | Valor alfanumérico (máximo) También conocido como número de operación original de la venta, No se está usando este campo, no se imprime |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Código respuesta Transbank | 3 | Valor numérico Código de respuesta una vez finalizada la transacción. Se debe desplegar en el punto de venta. EJ: RESPUESTA TRANSBANK - |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Glosa respuesta Transbank | 48 | Valor alfanumérico (máximo) Glosa que despliega el pinpad una vez finalizada la transacción. Se debe desplegar en el punto de venta. EJ: RESPUESTA TRANSBANK - |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Flag transacción con PIN | 1 | Valor alfanumérico Y: Transacción autentificada con PIN N: Transacción autentificada por firma |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Nombre tarjetahabiente | 26 | Valor alfanumérico Sólo imprimir si “Flag tipo voucher = 1, 2 ó 3” |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Flag tipo voucher | 1 | Valor numérico Según el número recibido se debe imprimir voucher con o sin firma: 0 = Sin firma 1 o 2 o 3 = con firma Cabeceras de los voucher: Para ventas con crédito: “VENTA CREDITO” Para ventas con débito (siempre sin firma): “VENTA DEBITO” Para ventas con no bancaria: “VENTA NO BANCARIA” Para ventas con prepago (sin firma): “VENTA PREPAGO” Para anulaciones con crédito (sin firma): “ANULACION CREDITO” Para anulaciones con no bancaria (sin firma): “ANULACION NO BANCARIA” |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Flag modalidad cuotas | 1 | Valor alfanumérico 0 : Modalidad 3.1 (No utilizado) 1: Modalidad cuotas 4.0 |
1 | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Glosa transacción afecta a ahorro | 40 | Valor alfanumérico (máximo) Se debe imprimir en el voucher cuando sea distinta de vacío Campo 9, subcampo D |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Número de secuencia | 9 | Valor numérico No se está usando este campo, este no se imprime También conocido como número de operación |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Flag mensaje terminal | 1 | Valor alfanumérico Y: El mensaje es terminal y NO se debe enviar el mensaje SPDH de respuesta N: Se debe enviar el mensaje SPDH de respuesta |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Largo mensaje | 4 | Valor numérico | ||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Mensaje SPDH Venta/Reversa | 2048 | Valor alfanumérico (máximo) | ||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Propina | 18 | Valor numérico Monto Propina o Donación |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Voucher de Rechazo | 1024 | Valor numérico Cuando transacción es declinada por EMV se debe imprimir un voucher especial. Si este campo viene vacío no se imprime, si viene con dato se imprime Este voucher se imprime solo, sin voucher de venta |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Voucher PEL | 1024 | Valor alfanumérico Voucher de PEL si viene la caja debe imprimirlo, solo una vez junto al voucher de venta No se debe imprimir en duplicado Este voucher se imprime junto al de venta |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
LABEL - EMV | 32 | Valor alfanumérico Si el campo viene con datos caja debe incluirlo en el voucher en la posición indicada |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
RID - EMV | 32 | Valor alfanumérico Si el campo viene con datos caja debe incluirlo en el voucher en la posición indicada |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Modelo pinpad | 6 | Valor numérico Caja debe incluirlo en el voucher ejemplo: VX805 Campo obligatorio |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Versión de pinpad | 6 | Valor numérico Caja debe incluirlo en el voucher ejemplo: 12.34A Campo obligatorio |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Saldo Prepago | 40 | Valor alfanumérico (máximo) Indica el saldo de una tarjeta de prepago la cual se debe imprimir en voucher cuando es venta de prepago y cuando viene el saldo. Nota: El Pinpad agrega esa glosa al voucher tal como viene en la mensajería. |
||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
<ETX> |
1 | Indica Fin de comando Valor Hexa 0x03 | ETX | |
<LRC> |
1 | Byte resultado de la operación XOR del mensaje |
0600 - Solicitud comando Cierre batch
Igual al Retail estándar vx805
0700 - Validación comando Cierre batch
Igual al Retail estándar vx805
1100 - Comando despliegue mensaje
Con este comando la caja puede mostrar en pantalla del pinpad algunos mensajes predefinidos.
Requerimiento
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO | |
---|---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes |
||
Comando | 4 | Valor 1100 | ||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Código mensaje | 4 | Valor Numérico Revisar: Tabla de código de mensajes | ||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Timeout mensaje | 2 | Valor Numérico (00 -> 09) | ||
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
Respuesta
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | |
Comando | 4 | Valor 1110 | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Código respuesta | 2 | Valor numérico De acuerdo a Tabla de códigos de respuesta de comandos | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
CONN - Comando Conexión PINPAD – Caja
Comando enviado desde el PINPAD a la Caja de modo de establecer la conexión. La caja debe abrir un puerto de conexión el cual no debe ser cerrado en ningún momento.w
Requerimiento
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | |
Comando | 4 | Valor ‘CONN’ | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Número Serial | 15 | Valor alfanumérico Número serial del PINPAD | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Data | 20 | Valor alfanumérico (TRANSBANK VER. 4.01A) Identificador de la aplicación más la versión de la aplicación | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
Respuesta
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO | |
---|---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | Obligatorio | |
Comando | 4 | Valor ‘CONN’ | Obligatorio | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Código Retorno | 2 | Valor numérico (00: Prompt de inicio) (01: Glosa de rechazo) | Obligatorio | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Número de Líneas | 2 | Valor numérico (00 -> 99) Cantidad de líneas de glosas a desplegar. | Obligatorio | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Glosa | 16 | Valor alfanumérico Glosa descripción de error. | Opcional | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
ECHO - Comando Echo Caja – PINPAD
Comando que permite a la Caja verificar que el PINPAD se encuentra conectado, identificarlo por su número de serie y versión de aplicación.
Requerimiento
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | Obligatorio |
Comando | 4 | Valor ‘ECHO’ | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
Respuesta
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | Obligatorio |
Comando | 4 | Valor ‘ECHO’ | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Código Retorno | 2 | Valor numérico (00: OK, Prompt de inicio) (01: NOK, Glosa de rechazo) | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Número Serial | 15 | Valor alfanumérico Número serial del PINPAD | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Data | 20 | Valor alfanumérico (TRANSBANK VER. 4.01A) Identificador de la aplicación más la versión de la aplicación | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
ISES - Comando Inicio de Sesión Caja- PINPAD
Este comando permite abrir una sesión con el PINPAD desde la Caja.
Requerimiento
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | Obligatorio |
Comando | 4 | Valor ‘ISES’ | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
Respuesta
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | Obligatorio |
Comando | 4 | Valor ‘ISES’ | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Código Retorno | 2 | Valor numérico (00: OK) (Otro: Error) | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Batería | 3 | Valor numérico (000 -> 100) Porcentaje de carga de batería. | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
FSES - Comando Fin de Sesión Caja – PINPAD
Este comando permite cerrar una sesión con el PINPAD desde la Caja.
Requerimiento
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | Obligatorio |
Comando | 4 | Valor ‘FSES’ | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
Respuesta
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | Obligatorio |
Comando | 4 | Valor ‘FSES’ | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Código Retorno | 2 | Valor numérico (00: OK) (Otro: Error) | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
VOUC - Comando Solicitud Impresión Voucher Caja – PINPAD
Requerimiento
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO | |
---|---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | Obligatorio | |
Comando | 4 | Valor ‘VOUC’ | Obligatorio | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Time Out | 5 | Valor numérico (00000 -> 99999) Timeout del comando en milisegundos. | Obligatorio | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Glosa 1 | 16 | Valor alfanumérico Glosa a desplegar primera línea en pantalla. | Obligatorio | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Glosa 2 | 16 | Valor alfanumérico Glosa a desplegar segunda línea en pantalla. | Obligatorio | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
||
Voucher a Imprimir | 4000 | Valor alfanumérico Voucher separado por “\n” para nueva línea, “\c” para corte de voucher | Obligatorio | |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
Respuesta
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | Obligatorio |
Comando | 4 | Valor ‘VOUC’ | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Código Retorno | 2 | Valor numérico (00: Impresión OK) (01: Error en la impresión) | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
REIM - Comando Solicitud Reimpresión Último Voucher PINPAD – Caja
Comando enviado desde el PINPAD a la Caja de modo de que la caja envíe al PINPAD el Voucher de la última venta. Para enviar este comando se debe presionar en el PINPAD [ENTER] + [5]
Requerimiento
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | Obligatorio |
Comando | 4 | Valor ‘REIM’ | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
Respuesta
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | Obligatorio |
Comando | 4 | Valor ‘REIM’ | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Código Retorno | 2 | Valor numérico (00: Recibido OK) (01: No existe impresión disponible) | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Time Out | 5 | Valor numérico (00000 -> 99999) Timeout del comando en milisegundos. | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Glosa 1 | 16 | Valor alfanumérico Glosa a desplegar primera línea en pantalla. | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Glosa 2 | 16 | Valor alfanumérico Glosa a desplegar segunda línea en pantalla. | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Voucher a Imprimir | 4000 | Valor alfanumérico Voucher separado por \n para nueva línea, \c para corte de voucher |
Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
REST - Comando Reset Socket Caja – PINPAD
Comando permite a la Caja realizar un reset al socket del PINPAD.
Requerimiento
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | Obligatorio |
Comando | 4 | Valor ‘REST’ | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
Respuesta
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | Obligatorio |
Comando | 4 | Valor ‘REST’ | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Código Retorno | 2 | Valor numérico (00: Recibido OK) (01: Error Mensaje) | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
LKEY - Comando Carga de Llave PINPAD – Caja
Comando ejecutado a través del menú del PINPAD, el cual permite solicitar a la caja una ‘Carga de llaves’ a la Caja. La transacción de carga de llaves debe ser construida tal como lo define el manual de “Especificaciones Técnicas”.
Requerimiento
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | Obligatorio |
Comando | 4 | Valor ‘LKEY’ | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
Respuesta
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | Obligatorio |
Comando | 4 | Valor ‘LKEY’ | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Código Retorno | 2 | Valor numérico (00: Recibido OK) (01: Error en carga de llaves) | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
0000 - Comando TEST PINPAD – Caja
Comando enviado desde el PINPAD hacia la Caja para mantener el socket abierto.
Requerimiento
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
Comando | 4 | Valor ‘0000’ | Obligatorio |
Respuesta
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
Comando | 4 | Valor ‘0000’ | Obligatorio |
CLSB - Comando Cierre Batch PINPAD – Caja
Comando ejecutado a través del menú del PINPAD, el cual permite indicar a la caja el envío de una solicitud de ‘Cierre batch’.
Requerimiento
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | Obligatorio |
Comando | 4 | Valor ‘CLSB’ | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
Respuesta
DATO | LARGO | COMENTARIO | VALOR POR DEFECTO |
---|---|---|---|
LARGO_DATA | 4 | Valor numérico (0000 -> 9999) Indicando el largo del mensaje, sin incluir estos 4 bytes | Obligatorio |
Comando | 4 | Valor ‘CLSB’ | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
|
Código Retorno | 2 | Valor numérico (00: Recibido OK) (Otro: Error) | Obligatorio |
Separador |
1 | Valor ASCII: | Valor hexadecimal: 0x7c |
Otros datos
Tabla de marcas de tajetas
Nombre | Abreviación |
---|---|
VISA | VI |
MASTERCARD | MC |
DINERS | DC |
AMEX | AX |
MAGNA | MG |
PRESTO | TP |
MAS | TM |
CMR | TC |
RIPLEY | TR |
MAESTRO | MT |
ELECTRON | EL |
DEBITO | DB |
Tabla de tipo de tarjeta
Código | Glosa |
---|---|
CR | CREDITO |
DB | DEBITO |
NB | NO BANCARIA |
Null (vacío) | Se despliega Menú en PINPAD. |
Tabla de códigos de respuesta de comandos
Código de respuesta | Glosa |
---|---|
00 | RESPUESTA OK |
84 | NO EXISTE CODIGO DE MENSAJE |
86 | ERROR DE LECTURA. |
87 | PINPAD SIN MASTER KEY |
89 | TRANSACCIÓN DECLINADA POR LA TARJETA CHIP |
90 | TARJETA NO PERMITIDA PARA EL MODO SELECCIONADO |
91 | ERROR CANTIDAD DE CUOTAS |
92 | NO COINCIDE CON TARJETA DE PRIMER “TAPEO” |
93 | ERROR DE MONTO MÍNIMO |
94 | ERROR DE VALIDACIÓN MONTO VUELTO |
95 | ERROR ID DE CONTEXTO |
96 | NO COINCIDE LOS 4 ULTIMOS DIGITOS |
97 | LA TRANSACCIÓN NO PERMITE REVERSA |
98 | ERROR DE FORMATO DEL MENSAJE |
99 | CANCELACIÓN DEL COMANDO A TRAVÉS DE LA TECLA [CANCEL] / TIMEOUT |
Tabla de códigos de mensajes de despliegue en PINPAD
Código de respuesta | Glosa |
---|---|
0000 | APROBADO |
0001 | ERROR INTERNO DE MENSAJERIA |
0002 | ERROR INTERNO DE MENSAJERIA |
0003 | NIVEL DE BATERIA BAJO |
0004 | CANCELACION DE OPERACIÓN |
0005 | EMISOR NO DISPONIBLE |
0006 | TERMINAL NO DISPONIBLE |
0007 | NO HAY CONFIRMACION |
0008 | ERROR EN OPERACIÓN CON POS |
0009 | MAXIMO INTENTOS SUPERADOS CONEXIÓN SWITCH SERVER |
0010 | CANCELACION DE OPERACIÓN |
0011 | MEDIOS DE PAGO NO DISPONIBLES |
0014 | ERROR INTERNO DE SISTEMA |
0015 | ERROR INTERNO DE SISTEMA |
0016 | ERROR INTERNO DE MENSAJERIA |
0017 | ERROR INTERNO DE MENSAJERIA |
0018 | TRANSACCION DE VENTA INEXISTENTE |
0019 | TRANSACCION ORIGINAL NO ES UNA VENTA |
0020 | TRANSACCION ORIGINAL NO TERMINADA |
0021 | TRANSACCION PENDIENTE EMISOR |
0022 | MONTO A ANULAR MAYOR AL MONTO DE VENTA |
0023 | MONTO A ANULAR DISTINTO AL MONTO DE VENTA |
0024 | TARJETA NO PERMITIDA |
0025 | ERROR RESPUESTA TERMINAL |
0026 | ERROR RESPUESTA TERMINAL |