Está en la página 1de 19

EPSON FISCAL PROXY

ESPECIFICACIÓN
EPSON FISCAL PROXY

FiscalProxy - Versión: 01.02.00 30/08/2018 Página 2/19

1 INTRODUCCIÓN .............................................................................................................................................................................. 3

2 EJECUTABLES ................................................................................................................................................................................ 4

2.1 PARA MS-WINDOWS (32 BITS) ........................................................................................................................................................ 4


2.2 PARA LINUX (32 BITS) ..................................................................................................................................................................... 4
3 INSTALACIÓN .................................................................................................................................................................................. 5

4 EQUIPOS SOPORTADOS ............................................................................................................................................................... 6

5 CONFIGURACIÓN............................................................................................................................................................................ 7

5.1 PUERTO DE COMUNICACIONES ........................................................................................................................................................ 7


5.2 BAUD RATE .................................................................................................................................................................................... 7
5.3 PORT............................................................................................................................................................................................. 8
5.4 LOG............................................................................................................................................................................................... 8
5.5 VERBOSE ....................................................................................................................................................................................... 8
5.6 OCULTAR CONSOLA ........................................................................................................................................................................ 8
5.7 CORS ........................................................................................................................................................................................... 8
5.8 TIMEOUT ........................................................................................................................................................................................ 9
5.9 AYUDA ........................................................................................................................................................................................... 9
6 EJEMPLOS DE INVOCACIÓN ......................................................................................................................................................... 9

6.1 WINDOWS ...................................................................................................................................................................................... 9


6.2 LINUX ............................................................................................................................................................................................ 9
7 COMUNICACIÓN HTTP ................................................................................................................................................................. 11

7.1 GET ............................................................................................................................................................................................ 11


7.2 POST ......................................................................................................................................................................................... 11
7.2.1 Envió texto plano ............................................................................................................................................................. 11
7.2.2 Respuesta texto plano ..................................................................................................................................................... 12
7.2.3 Envió en formato json ...................................................................................................................................................... 12
7.2.4 Respuesta application/json.............................................................................................................................................. 13
7.3 COMANDOS INTERNOS .................................................................................................................................................................. 13
7.3.1 Ocultar / Visualizar la ventana de ejecución.................................................................................................................... 14
7.3.2 Apagar la aplicación ........................................................................................................................................................ 14
7.4 ERRORES DE COMUNICACIÓN ........................................................................................................................................................ 15
8 DESCARGA DE REPORTES ......................................................................................................................................................... 15

8.1 REPORTE DE CINTA TESTIGO DIGITAL............................................................................................................................................ 16


8.2 REPORTE DE DUPLICADOS DE COMPROBANTES “A”, “A CON LEYENDA” Y “M” .................................................................................. 16
8.3 REPORTE RESUMEN DE TOTALES .................................................................................................................................................. 16
9 BATCH ............................................................................................................................................................................................ 17

10 LOG................................................................................................................................................................................................. 19

*** 19
EPSON FISCAL PROXY

FiscalProxy - Versión: 01.02.00 30/08/2018 Página 3/19

1 Introducción

Este documento describe las funciones de la herramienta FiscalProxy construido como una aplicación consola tanto para
el sistema operativo Ms-Windows como para sistema operativo Linux.
Esta herramienta permite comunicarse con un controlador fiscal Epson atravez de una conexión Ethernet vía el protocolo
HTTP.
Es importante saber que, para poder utilizar esta herramienta, el usuario debe conocer los comandos del controlador fiscal
al que intenta comunicarse. Dichos comandos se encuentran descriptos en el Manual de Especificaciones del Controlador
Fiscal en cuestión.
EPSON FISCAL PROXY

FiscalProxy - Versión: 01.02.00 30/08/2018 Página 4/19

2 Ejecutables

2.1 Para MS-Windows (32 bits)

• fiscalproxy.exe

2.2 Para Linux (32 bits)

• fiscalproxy
EPSON FISCAL PROXY

FiscalProxy - Versión: 01.02.00 30/08/2018 Página 5/19

3 Instalación

Se distribuye un archivo comprimido llamado EpsonFiscaProxy.01.02.00.zip.


Dicho archivo comprimido contiene el siguiente formato de directorios:
• doc: incluye la presente documentación.
• Linux: contiene el ejecutable.
• EpsonFiscalProxyInstaller.exe: contiene el instalador para Ms-Windows

En el caso de utilizar esta herramienta en Linux no se requiere instalación previa, solamente copie el ejecutable
en una carpeta de su sistema de archivos y agregue el usuario que va a ejecutar la aplicación al grupo lp.
En caso de utilizar la herramienta en Ms-Windows se requiere previamente la ejecución del ejecutable
EpsonFiscalProxyInstaller.exe.
EPSON FISCAL PROXY

FiscalProxy - Versión: 01.02.00 30/08/2018 Página 6/19

4 Equipos soportados

Los presentes ejecutables brindan soporte para los siguientes modelos/versiones de equipos:
• Modelo TM-U220AFII, versión Hera v.: 22.00.
• Modelo TM-U220AFII, versión Demeter v.: 22.01.
• Modelo TM-T900FA, versión Ceres v.: 1.00.
• Modelo TM-T900FA versión Vesta v:1.01
EPSON FISCAL PROXY

FiscalProxy - Versión: 01.02.00 30/08/2018 Página 7/19

5 Configuración

FiscalProxy puede ser configurado por parámetros en la línea de comandos o por un archivo de configuración, el mismo
debe ser llamado fiscalproxy.ini
Para obtener las opciones de la línea de comandos, ejecute FiscalProxy de la siguiente manera:
fiscalproxy –help

5.1 Puerto de comunicaciones


Selecciona el puerto de comunicaciones donde se encuentra conectado el controlador fiscal Epson.
El valor 0 selecciona el puerto USB, el valor 1 (COM1/ttyS0/ttyUSB0), el valor 2 (COM2/ttyS1/ttyUSB1) y así
sucesivamente.
command line formato corto
-c=1
command line formato largo
--comm-port=1
archivo ini
--comm-port=1

5.2 Baud rate


Selecciona la velocidad de comunicaciones con el controlador fiscal Epson. Este valor es válido únicamente cuando se
utiliza la comunicación serie. La siguiente lista muestra los valores válidos:
1. 9600
2. 19200
3. 38400
4. 57600
5. 115200

command line formato corto


-b=9600
command line formato largo
--baud-rate=9600
archivo ini
baud-rate=9600
EPSON FISCAL PROXY

FiscalProxy - Versión: 01.02.00 30/08/2018 Página 8/19

5.3 Port
Selecciona el número de puerto de red por donde la conexión HTTP será establecida.
command line formato corto
-p=8888
command line formato largo
--port=8888
archivo ini
port=8888

5.4 Log
Habilita el log de comunicaciones.
command line formato corto
-l
command line formato largo
--log
archivo ini
log=1

5.5 Verbose
Habilita salida verbosa
command line formato largo
--verbose

5.6 Ocultar consola


Esta opción solamente es válida en Windows y permite que FiscalProxy quede oculta al usuario.
command line formato largo
--hide

5.7 CORS
Esta opción permite configurar la(s) uri que soporten CORS
archivo ini
cors=*
EPSON FISCAL PROXY

FiscalProxy - Versión: 01.02.00 30/08/2018 Página 9/19

5.8 Timeout
Define el tiempo máximo que se espera por la respuesta a una petición de conexión. El valor se expresa en segundos. El
rango es de 0 a 999999 segundos
command line formato corto
-t=9999
command line formato largo
--timeout=9999
archivo ini
timeout=9999

5.9 Ayuda
Muestra ayuda
command line formato corto
-h -?
command line formato largo
--help

6 Ejemplos de invocación

Se detallan un ejemplo de configuración del archivo ini y el mismo en la versión command line.
[FiscalProxy]
comm-port=0
baud-rate=9600
log=False
port=8888
cors=*
timeout=0

6.1 Windows
fiscalproxy –com-port=0 –b=9600 –port=8888 –verbose –-log

6.2 Linux
./fiscalproxy –com-port=0 –b=9600 –port=8888 –verbose –-log
EPSON FISCAL PROXY

FiscalProxy - Versión: 01.02.00 30/08/2018 Página 10/19


EPSON FISCAL PROXY

FiscalProxy - Versión: 01.02.00 30/08/2018 Página 11/19

7 Comunicación HTTP

Únicamente se soportan los métodos GET y POST

7.1 GET
Se provee este método para obtener la configuración de FiscalProxy. Cuando este método es invocado FiscalProxy
retorna en el body el siguiente mensaje:

Comm port: 0
Baud rate: 9600
Interface state: idle

7.2 POST
Este método permite el envió de comandos fiscales y obtener la respuesta que entrega el controlador fiscal Epson. Se
proveen dos formatos distintos para el envió/recepción de los datos:

1. Formato texto plano


2. Formato json

7.2.1 Envió texto plano


En este caso se envía el comando 020A con la extensión 0000.

POST /ext HTTP/1.1


Host: 127.0.0.1:8888
Cache-Control: no-cache
020A|0000

• Cada campo debe ser separado con el carácter | (pipe).


• La notación es ASCII hexadecimal
• Los primeros 4 (cuatro) caracteres son obligatorios y representan el comando a ejecutar.
• Los segundos 4 (cuatro) caracteres representan la extensión del comando y también son obligatorios.
• Algunos comandos fiscales requieren más campos, los mismos deben ser separados con el carácter | (pipe)
EPSON FISCAL PROXY

FiscalProxy - Versión: 01.02.00 30/08/2018 Página 12/19

• Cualquier carácter ASCII no imprimible y diferente del caracter line feed (0x0A) o el carácter carriage return
(0x0D) será impreso de la siguiente manera x’HH’ donde HH representa el valor hexadecimal del mismo

7.2.2 Respuesta texto plano


La respuesta es enviada en el body del mensaje HTTP

0000|C08A|0000|Vesta|54|1|1|0|39|TM-T900F|4194176|201330031|524288|N|x'00'

• Cada campo es separado por el carácter | (pipe)


• El primer campo es el código de retorno
• El segundo campo es el estado fiscal
• El tercer campo es el estado de la impresora
• Los campos adicionales se separan por el carácter pipe (|)
• Cualquier carácter ASCII no imprimible y diferente del caracter line feed (0x0A) o el carácter carriage return
(0x0D) será impreso de la siguiente manera x’HH’ donde HH representa el valor hexadecimal del mismo

7.2.3 Envió en formato json


En este caso se envía el comando 020A con la extensión 0000.

POST /ext HTTP/1.1


Host: 127.0.0.1:8888
{
"command" : "020A",
"command_extension" : "0000",
"fields" : []
}

• El campo “command” del tipo string, debe tener cuatro dígitos de largo y su notación debe ser ASCII hexadecimal
• El campo “command_extension” del tipo string, debe tener cuatro dígitos de largo y su notación debe ser ASCII
hexadecimal
• El campo “fields” del tipo array es opcional y depende del comando a ejecutar, su notación debe ser ASCII
• Si algún campo adicional requiere notación ASCII no imprimible se deberá ingresar con el siguiente formato:
x’HH’ donde HH representa el carácter hexadecimal deseado
EPSON FISCAL PROXY

FiscalProxy - Versión: 01.02.00 30/08/2018 Página 13/19

• Solamente se soportan caracteres Unicode imprimibles y correspondientes a la tabla ASCII, además la notación
\uHHHH no es soportada

7.2.4 Respuesta application/json


La respuesta es enviada en el body del mensaje HTTP en formato json

{
"return code": "0000",
"fiscal status": "C08A",
"printer status": "0000",
"fields": [
"Vesta",
"54",
"1",
"1",
"0",
"39",
"TM-T900F",
"4194176",
"201330031",
"524288",
"N",
"x'00'"
]
}

• El campo “return code” es el código de retorno, su notación es ASCII hexadecimal


• El campo “fiscal status” es el estado fiscal, su notación es ASCII hexadecimal
• El campo “printer status” es el estado de la impresora de la impresora, su notación es ASCII hexadecimal
• El campo “fields” del tipo array representan los campos extras que puede devolver un comando
• Cualquier carácter ASCII no imprimible y diferente del caracter line feed (0x0A) o el carácter carriage return
(0x0D) será impreso de la siguiente manera x’HH’ donde HH representa el valor hexadecimal del mismo.

7.3 Comandos internos

Es posible remotamente controlar ciertos aspectos de la aplicación.


EPSON FISCAL PROXY

FiscalProxy - Versión: 01.02.00 30/08/2018 Página 14/19

7.3.1 Ocultar / Visualizar la ventana de ejecución

Enviando el siguiente json es posible ocultar la ventana de ejecución

POST /internal_command HTTP/1.1


Host: 127.0.0.1:8888
{
"internal_command": "hide window"
}

Para volver a visualizar la ventana de ejecución

POST /internal_command HTTP/1.1


Host: 127.0.0.1:8888
{
"internal_command": "show window"
}

7.3.2 Apagar la aplicación


Para que la aplicación finalice su ejecución envié lo siguiente

POST /internal_command HTTP/1.1


Host: 127.0.0.1:8888
{
"internal_command": "shutdown"
}
EPSON FISCAL PROXY

FiscalProxy - Versión: 01.02.00 30/08/2018 Página 15/19

7.4 Errores de comunicación


El manejo del resultado del envió de un comando hacía el controlador fiscal Epson intenta respetar el estándar HTTP. La
siguiente es la lista de errores y posibles causas del mismo.

Código de retorno HTTP Descripción Comentario


200 Resultado exitoso
El formato del comando es
400 Formato inválido inválido o la trama tiene un
largo inválido
La petición se interrumpió
423 Timeout debido al tiempo de espera
máximo especificado

8 Descarga de reportes

La nueva generación de controladores fiscales (CFNG), tal como lo establece la Resolución General AFIP 3561/2013,
emite tres reportes firmados electrónicamente por el equipo:

• Reporte de Cinta Testigo Digital (Cód. 909)


• Reporte de Duplicados de Comprobantes “A”, “A con Leyenda” y “M” (Cód. 908)
• Reporte Resumen de Totales (Cód. 905)

La descarga de estos tres Reportes Fiscales es obligatoria para el contribuyente usuario con una periodicidad semanal.
Los reportes “2” y “3” se deben presentar a la AFIP.

Para este tipo de comandos solo es posible utilizar el formato JSON. La descarga es realizada en forma automática
utilizando una característica de HTTP que se denomina Chunked Transfer Encoding (Codificación de transferencia
Fragmentada)
Para los tres tipos de reportes es posible consultar por rango de números de Z ó fechas. Consulte al manual de
especificaciones técnicas de la impresora fiscal Epson para determinar cuáles son los rangos permitidos para estas
entradas.
EPSON FISCAL PROXY

FiscalProxy - Versión: 01.02.00 30/08/2018 Página 16/19

8.1 Reporte de Cinta Testigo Digital

POST /audit/docs HTTP/1.1


Host: 127.0.0.1:8888
{"from_z_num":1,"until_z_num":1}

En este ejemplo se solicita el reporte de cinta testigo digital desde el Z número uno al Z número uno

POST /audit/docs HTTP/1.1


Host: 127.0.0.1:8888
{"from_date":"2010-01-01","until_date":"2018-12-31"}

En este ejemplo se solicita el reporte de cinta testigo digital desde el 1 de Enero del 2010 hasta 31 de Diciembre del 2018

El siguiente ejemplo muestra como desde la utilidad llamada curl es posible obtener el reporte de manera automática

curl -J -d '{"from_z_num":1,"until_z_num":1}' -X POST http://127.0.0.1:8888/audit/docs -OJ

8.2 Reporte de Duplicados de Comprobantes “A”, “A con Leyenda” y “M”

POST /audit/docs HTTP/1.1


Host: 127.0.0.1:8888
{"from_z_num":1,"until_z_num":999, "ticket_category_a_only": true}

En este ejemplo se solicita el Reporte de Duplicados de Comprobantes “A”, “A” con leyenda y “M” desde el Z número 1
hasta el Z número 999

8.3 Reporte Resumen de Totales

POST /audit/summary HTTP/1.1


Host: 127.0.0.1:8888
{"from_z_num":1,"until_z_num":1}
EPSON FISCAL PROXY

FiscalProxy - Versión: 01.02.00 30/08/2018 Página 17/19

9 BATCH

Batch es una sintaxis especial para codificar una secuencia de comandos en JSON. Cuando el dispositivo recibe el batch,
éste ejecuta todos los comandos listados en él. Cada comando es ejecutado secuencialmente en el orden de aparición
definido en el JSON. Por cada comando ejecutado es verificado el código de retorno de la impresora fiscal para poder
continuar con la ejecución del próximo.

POST /ext/batch HTTP/1.1


Host: 127.0.0.1:8888
[{
"command": "020A",
"command_extension": "0000",
"fields": []
},
{
"command": "0970",
"command_extension": "0000",
"ignore error":true
},
{
"command": "0001",
"command_extension": "0000",
"repeat": 3
}
]

La estructura esta definida por:


• Un array de objetos contiene todo el batch.
• Cada objeto es un comando con sintaxis similar al protocolo extendido.
• Cada comando puede tener dos parámetros opcionales:
o El campo booleano “ignore error ” permite ignorar error y continuar con la ejecución del batch.
o El campo numérico “repeat” permite especificar el número de veces que ese comando será ejecutado.
EPSON FISCAL PROXY

FiscalProxy - Versión: 01.02.00 30/08/2018 Página 18/19

[
{
"return code": "0000",
"fiscal status": "C000",
"printer status": "0000",
"fields": [
"Jana",
"54",
"1",
"2",
"0",
"39",
"TM-T900F",
"8388480",
"3445784576",
"524288",
"N",
"x'00'"
]
},
[
{
"return code": "0000",
"fiscal status": "C000",
"printer status": "0000"
},
{
"return code": "0000",
"fiscal status": "C000",
"printer status": "0000"
},
{
"return code": "0000",
"fiscal status": "C000",
"printer status": "0000"
}
]
]

El JSON de respuesta posee la misma estructura del envió:

• Un array de objetos contiene toda la respuesta.


• Cada objeto es un respuesta similar a la sintaxis del protocolo extendido.
EPSON FISCAL PROXY

FiscalProxy - Versión: 01.02.00 30/08/2018 Página 19/19

10 Log

Cuando la opción log es habilitada un archivo llamado fiscalproxy.log es creado en la carpeta donde fiscalproxy es
ejecutado y lleva cuenta de todos los comandos ejecutados. A continuación un ejemplo.

[01/08/2017 17:41:32.674] Cmd: 0210|0000


[01/08/2017 17:41:33.172] Ans: 0802|C080|0000

Donde Cmd es el comando enviado y Ans es la respuesta del controlador fiscal

***

También podría gustarte