[go: up one dir, main page]

0% encontró este documento útil (0 votos)
13 vistas53 páginas

ProgrammingManualV1 1r3

El manual de programación para impresoras fiscales Sewoo LK-T200-FP, Oki ML-620-FP y Oki ML-420-FP proporciona información detallada sobre las funciones y comandos disponibles en las librerías de enlace dinámico para interactuar con el hardware de estas impresoras. Incluye un histórico de versiones que documenta cambios y mejoras a lo largo del tiempo, así como una guía sobre la normativa aplicable y la estructura de comandos fiscales. Los programadores deben utilizar este manual para integrar software de puntos de venta con las impresoras fiscales, asegurando el cumplimiento de los requisitos establecidos por la Dirección General de Ingresos.

Cargado por

Ricardo Soldini
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
13 vistas53 páginas

ProgrammingManualV1 1r3

El manual de programación para impresoras fiscales Sewoo LK-T200-FP, Oki ML-620-FP y Oki ML-420-FP proporciona información detallada sobre las funciones y comandos disponibles en las librerías de enlace dinámico para interactuar con el hardware de estas impresoras. Incluye un histórico de versiones que documenta cambios y mejoras a lo largo del tiempo, así como una guía sobre la normativa aplicable y la estructura de comandos fiscales. Los programadores deben utilizar este manual para integrar software de puntos de venta con las impresoras fiscales, asegurando el cumplimiento de los requisitos establecidos por la Dirección General de Ingresos.

Cargado por

Ricardo Soldini
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 53

Manual de Programación Impresora Fiscal

MANUAL DE PROGRAMACIÓN

IMPRESORAS FISCALES
SEWOO LK – T200 – FP
OKI ML – 620 - FP
OKI ML – 420 - FP

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:1


Manual de Programación Impresora Fiscal

Histórico del documento

V 0.1: 17/05/2011 • Versión inicial


PM
V 0.2: 02/06/2011 • Se modificó orden de los campos de las tablas definitorias de registros de acceso a
JE la memoria fiscal y memoria de auditoría (alíneación a 32 bits)
V 0.3: 02/06/2011 • Se agregaron prototipos de funciones fiscales de la dll de usuario
PM • Se agregaron prototipos de funciones de control de la impresión en la dll de usuario
V 0.4: 13/06/2011 • Se corrigieron errores en los tipos de datos de retorno y se agregaron tipos de
PM ítems (anulación de ítem vendido)
V 0.5: 16/06/2011 • Se agregaron varios registros a las estructuras de datos fiscales retornados y de
PM status.
• Se agregaron nuevos comandos no considerados inicialmente en el desarrollo.
• Se agregaron acumuladores y contadores para las distintas formas de pago
requeridas en las facturas
• Se agregó una base impositiva auxiliar para futuro uso
• Se agregó una tabla de codificación de todos los comandos
• Se agregó una tabla de secuencia de ejecución de comandos
V 0.6: 20/06/2011 • Se modificó el formato de los datos de entrada a los comandos de la dll de usuario
PM • A comando total se le agregó el monto del pago
• Se modificaron algunas secuencias de comandos fiscales
V 0.7: 24/06/2011 • Se agregó referencia a definición de bits de estado extendido del módulo fiscal
PM • Se cambió formato a ASCII de los datos de entrada a la dllFiscalUser.dll
V 0.8: 06/07/2011 • Se cambió nombre a tipo de dato Ffloat a Dfix
PM • Se actualizaron las tablas de retorno de datos desde el módulo fiscal
• Se agregó un parámetro a las funciones de la dll para que pueda almacenar lo
retornado por el módulo fiscal
V 0.9: 08/07/2011 • Se agregó estructura para comando openDctoFiscal.
PM
V 0.10: • Se modificó estructura del campo de ítem.
08/07/2011 • Se clarificó lo relacionado con el largo de los campos tipo string, ahora se deben
PM finalizar todos ellos con el caracter 0 (null terminated)
V 0.11: • Se cambió comando total por pago y se modificó estructura agregando medios de
14/07/2011 pago para los documentos fiscales
PM • Se corrigieron algunos tipos de datos de estructuras de retorno

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:2


Manual de Programación Impresora Fiscal

V 0.12: • Se agregaron tasas impositivas calculadas en las tablas 4.2.1 y 4.2.2


21/07/2011 • Se cambiaron de posición dos campos en la tabla 2.3.1
PM
V 0.13: • Se agregaron tasas impositivas calculadas en las tablas 2.2.1 y 2.3.1
22/07/2011 • Se agregaron distintos tipos de ítem a la estructura de retorno para la lectura de
PM memoria de auditoría (tabla 2.3.1)
V 0.14: • Se agregó comando de serialización
29/07/2011 • Se eliminaron campos de número de serie de estructura de inicialización fiscal y
PM del módulo de impresión
V 0.15: • Se agregó uso compartido de campos de registro de ítem para el caso de
02/08/2011 descuentos por ítem
PM
V 1.0r1: • Se modificaron estructuras para lectura de datos de auditoría para generación de
04/08/2011 archivos XML Encriptados
PM
V 1.0r2: • Se agregaron comandos fiscales para emisión de reportes de usuario
31/08/2011
PM
V 1.1r0: • Se agregaron los parámetros de configuración de hoja al comando ConfigMi
18/10/2011 • Se corrigió un parámetro en la función SetDateTime.
JE/PM
V 1.1r1: • Se agregó comando Descripción de items
07/11/2011 • Se eliminó comando de comentario dentro de los documentos fiscales
PM
V 1.1r2: • Se agregaron definiciones de nuevos bits de control
16/11/2011
PM
V 1.1r3: • Se actualizador los contadores fiscales.
22/11/2011 • Se revisaron/corrigieron los parámetros de comandos.
JE

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:3


Manual de Programación Impresora Fiscal

Índice de contenidos
1.- Introducción a la utilización de las librerías fiscales...........................................................................6
1.1.- Normativa utilizada..........................................................................................................................7
...................................................................................................................................................................7
Equipos Fiscales ..........................................................................................................................7
2.- Comandos Fiscales utilizados para documentos Fiscales................................................................8
2.1.- Abrir comprobante fiscal .............................................................................................................8
2.1.1.- Tabla de definición de estructura de apertura de documento fiscal.......................................8
2.2.1.- Tabla de definición de estructura de ítem de venta...............................................................9
2.3.- Subtotal comprobante fiscal........................................................................................................10
2.4.- Pago.............................................................................................................................................10
2.4.1.- Tabla de definición de estructura de pago...........................................................................11
2.5.- Cancelar comprobante fiscal.......................................................................................................12
2.6.- Descuento....................................................................................................................................12
2.6.1.- Tabla de definición de estructura utilizada en comando descuento....................................12
2.7.- Cerrar documento fiscal..............................................................................................................13
2.8.- Ejecutar zeta................................................................................................................................13
2.9.- Imprimir reporte X......................................................................................................................14
2.10.- Impresión de texto libre en documentos fiscales......................................................................14
3.- Comandos Fiscales utilizados para Documentos No Fiscales. ..........................................................16
3.1.- Abrir comprobante no fiscal........................................................................................................16
3.2.- Imprimir texto No Fiscal.............................................................................................................16
3.3.- Cerrar documento no fiscal.........................................................................................................16
4.- Comandos fiscales para petición de información fiscal y de estado...................................................18
4.1.- Comando de envío de status del sistema.....................................................................................18
4.1.1.- Tabla de definición de estructura de status del sistema.......................................................18
4.2.- Comando de envío de valores de contadores y acumuladores fiscales.......................................19
4.2.1.- Tabla de definición de estructura de datos fiscales retornados por la Ifiscal asociada al
último cierre de día.........................................................................................................................19
4.2.2.- Tabla de definición de estructura de datos fiscales retornados por la Ifiscal asociada al
documento en proceso....................................................................................................................22
5.- Comandos Fiscales utilizados para controlar la impresión.................................................................23
5.1.- Fin de línea..................................................................................................................................24
5.2.- Form Feed...................................................................................................................................24
5.3.- Cambio de formato de impresión................................................................................................24
Tabla 5.3.1.- Definición de estructura de bits para comando printRT:...........................................25
5.4.- Impresión de códigos de barra....................................................................................................25
Tabla 5.4.1.- Definición de estructura datos para comando printBarCod......................................25
Tabla 5.4.2.- Definición de tipos de códigos de barras:..................................................................26
5.5- Comando de corte de papel..........................................................................................................26

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:4


Manual de Programación Impresora Fiscal

5.6.- Apertura de cajón........................................................................................................................26


5.7.- Test mecanismo de impresión.....................................................................................................27
5.8.- Reimpresión de reportes Z..........................................................................................................27
5.9.- Reimpresión de Transacciones fiscales.......................................................................................28
5.10.- Reimpresión de Documentos no fiscales..................................................................................28
6.- Comandos Fiscales utilizados para inicialización y o configuración del sistema..............................30
6.1.- Inicializar Impresora Fiscal.........................................................................................................30
Tabla 6.1.1.- Definición de estructura de inicialización................................................................30
6.2.- Lectura de datos de inicialización. .............................................................................................31
6.3.- Cambio de fecha y hora. ............................................................................................................31
6.4.- Lectura de fecha y hora. .............................................................................................................32
6.5.- Comando de reactivación de la impresora fiscal. ......................................................................32
6.6- Inicialización de líneas del encabezado de usuario para los documentos fiscales.......................33
Tabla 6.6.1.- Definición de estructura datos para comando setHeader:.........................................33
6.7- Inicialización de líneas de pie de página de los documentos fiscales..........................................34
Tabla 6.7.1.- Definición de estructura datos para comando setFooter:..........................................34
6.8- Lectura de serialización...............................................................................................................34
Tabla 6.8.1.- Definición de estructura datos de retorno para comando de lectura de datos de
serialización:...................................................................................................................................35
6.9- Comando de verificación.............................................................................................................35
6.10- Configuración de mecanismo de impresión...............................................................................35
6.11- Serialización...............................................................................................................................36
Tabla 6.11.1.- Definición de estructura datos para grabación de datos de serialización:...............37
7.- Comandos DGI (Comandos de lectura de memoria fiscal y auditoría)..............................................38
7.1.- Lectura de encabezado de facturas..............................................................................................38
7.1.1.- Tabla de definición de estructura de datos fiscales que se retorna al invocar al “Comando
de lectura de encabezado de facturas”, esta información se guarda en archivo XML encriptado.38
a......................................................................................................................................................38
7.2.- Leer memoria fiscal entre un rangos de fechas...........................................................................38
7.2.1.- Tabla de definición de estructura de datos fiscales que se retorna al invocar “Comando leer
memoria fiscal entre un rangos de fechas”, esta información se guarda en archivo XML
encriptado.......................................................................................................................................39
7.3.- Leer memoria de auditoría entre un rangos de fechas................................................................41
7.3.1.- Tabla de definición de estructura de datos genérica sobre la cual se obtienen los datos
necesarios para ser utilizados por el “Comando leer memoria de auditoría entre un rangos de
fechas”, esta información se guarda en archivo XML encriptado.................................................41
7.4.- Verificar conexión.......................................................................................................................44
8.0.- Tabla de códigos numéricos asociados a los comandos fiscales......................................................46
9.0.- Tabla de definición de estados fiscales............................................................................................49
Anexos.....................................................................................................................................................51
A1: Tipos de datos usados...................................................................................................................51
A2: Ejemplo de uso dllFiscalDGI.dll y dllUser.dll en C#...................................................................52

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:5


Manual de Programación Impresora Fiscal

1.- Introducción a la utilización de las librerías fiscales.

El siguiente documento entrega información referente a todas las funciones disponibles tanto en las dll
de usuario y DGI, las que permiten comunicarse de forma abstracta con el hardware de las impresoras fiscales
LK-T200-FP, ML-420-FP y ML-620-FP.

Los programadores de aplicaciones o integradores de software deben hacer uso de este manual para
enlazar el software de manejo de puntos de ventas o aplicaciones de usuario que deseen interactuar con la
impresora fiscal deseada.

Toda la interacción se basa en el llamado de distintas funciones contenidas en las librerías de enlace
dinámico (DLL´s) disponibles para este sistema. Existen dos librerías denominadas dllFiscalUSER.dll y
dllFiscalDGI.dll, la primera de ellas posee las funciones de acceso a la impresora fiscal disponibles para el
usuario de estas máquinas. La segunda librería posee las funciones de acceso a la impresora fiscal disponibles
específicamente para la Dirección General de Ingresos (DGI).

Cada una de las librerías se encargan de encapsular y traducir comandos de alto nivel (funciones de
acceso) en una secuencia de información binaria entendible solo por la impresora fiscal, la cual se transfiere
físicamente a través del puerto fiscal o del puerto de usuario. Esto permite liberar al usuario de realizar drivers
o módulos de control complejos de implementar.

Todos los métodos incluidos en las librerías retornan el estado de ejecución final que envía la impresora
fiscal medíante una variable del tipo BOOL. En caso que el retorno sea FALSO, se recomienda invocar el
método readStatus(BYTE*) para obtener la causa exacta del error.

En todos los valores de entrada a la librería fiscal en formato tipo String, deben ser finalizados con el
caracter de fin de cadena (char 0). Para el caso de los campos de solo un byte del tipo ASCII, no es necesario
el caracter 0.

Se utiliza para validación del contenido de los registros el algoritmo CRC16 con polinomio generador
1021 (X16 + X15 + X2 + 1), tanto en la información de llegada a la impresora fiscal como la que retorna esta.

Las funciones de las librerías están divididas en los siguientes ítems funcionales:

– Comandos de usuario asociados a Documentos Fiscales.


– Comandos de usuario asociados a Documentos No Fiscales.
– Comandos de control de impresión.
– Comandos de inicialización y configuración.
– Comandos DGI

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:6


Manual de Programación Impresora Fiscal

1.1.- Normativa utilizada.

Cada invocación a una función de las librerías corresponde a la ejecución de uno o mas comandos
fiscales en la impresora fiscal, todos estos comandos cumplen con lo exigido por la Dirección General de
Ingresos y que se encuentran definidos en los siguientes documentos:

Equipos Fiscales
• Normativa - Decreto Ejecutivo No. 53 "Por la cual se establecen
las normas relativas a la adopción de Equipos Fiscales para la
emisión de Comprobantes Fiscales y otros documentos"
• Normativa - Resolución No. 201-8407 "Por medio de la cual se
adoptan norma y procedimientos para la homologación y
autorización para distribuir o enajenar Equipos Fiscales en el
territorio nacional"
• Normativa - Resolución No. 201-568 "Por medio de la cual se
dictan requerimientos técnicos para los Equipos Fiscales que
sean utilizados en el territorio nacional"
• Normativa - Resolución No. 201-1513 "Por medio de la cual se
establece la fecha efectiva de adopción de los equipos Fiscales
en el Territorio Nacional y se modifica una especificación
aplicable a dichos equipos."
• Esquema XML - Memorias del Equipo Fiscal
• Resolución Sellos de Goma

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:7


Manual de Programación Impresora Fiscal

2.- Comandos Fiscales utilizados para documentos Fiscales.

Los siguientes comandos están presentes en la librería. dllFiscalUSER.dll.

2.1.- Abrir comprobante fiscal

Este es el primer comando que se ejecuta al momento de abrir un ticket fiscal, este comando es el
indicador para que los contadores de los documentos fiscales se incrementen de por vida, al momento de
ejecutarse este comando la impresora responde imprimiendo las líneas del encabezado y el comprobante fiscal.

Este comando es rechazado por la impresora si existe algún documento abierto.

Prototipo Método:
BOOL openDctoFiscal(BYTE* dataOpenDocto, BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
openDctoFiscal BYTE* Puntero con la dirección de TRUE si el comando fue
la estructura que define los ejecutado exitosamente por la
campos de la apertura de impresora fiscal,
un documento fiscal FALSE en caso contrario
(ver tabla siguiente)

retValue: puntero a la
BYTE* dirección de la variable
donde se almacenará la
estructura de retorno
indicada en la tabla 4.2.2

2.1.1.- Tabla de definición de estructura de apertura de documento fiscal.

Información Tipo de dato Largo


Tipo de documento fiscal ASCII 1 caracter
ASCII equivalente al tipo de
documento:
'0'=Factura
'1'=Nota CR
'2'=Nota DB
Razón social comprador ASCII String de largo máximo 101 (incuido
char 0) que indica la razón social del
comprador
RUC comprador ASCII String de largo máximo 21 (incuido
char 0) que indica la razón social del
comprador

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:8


Manual de Programación Impresora Fiscal

Número de factura de referencia ASCII 8 bytes decimales


Fecha de factura de referencia ASCII 8 bytes hexadecimales, en formato
segundos transcurridos
Serial Fiscal de referencia ASCII String de largo máximo 14 (null
terminated) que indica el número de
serial fiscal definido por la la factura de
referencia
DV de referencia ASCII 2 bytes decimales

2.2.- Imprimir ítem

Este comando envía a la impresora líneas de ítem, que incluyen la descripción para un ítem en
particular, el valor del artículo, la cantidad, el código del artículo y el código del impuesto al cual esta sujeto.

Con este comando también es posible efectuar los procesos de descuento y devolución de un ítem.

Este comando se puede ejecutar tantas veces como sea necesario. Para finalizar el ingreso de ítems,
es necesaria la recepción del comando total.

Es permitida la recepción del comando subtotal entre comandos de ítems.

Prototipo Método:
BOOL ítem(BYTE* ítem, BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
ítem BYTE* Puntero con la dirección de la TRUE si el comando fue
estructura que define los campos del ejecutado exitosamente
ítem de venta por la impresora fiscal,
(ver tabla siguiente) FALSE en caso contrario

BYTE* retValue: puntero a la dirección de la


variable donde se almacenará la
estructura de retorno indicada en la
tabla 4.2.2

2.2.1.- Tabla de definición de estructura de ítem de venta.

Información Tipo de dato Largo


Código del ítem ASCII 10 caracteres alfanuméricos
Descripción del ítem ASCII El largo máximo del string de la
descripción se define de acuerdo al
Número de caracteres por línea

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:9


Manual de Programación Impresora Fiscal

(ver tabla 6.10.1)


(null terminated)

Valor unitario del ítem a vender o ASCII 7 enteros + '.' + 2 decimales


cancelar o bien (10 caracteres fijos)
Valor Descuento al ítem
Cantidad vendida o cancelada o ASCII 5 enteros + '.' +3 decimales
bien el porcentaje de descuento al (9 caracteres fijos)
ítem
Tipo de ítem ASCII 1 caracter
ASCII equivalente al tipo de ítem,
valores posibles:
'0'=venta
'1'=devolución
'2'=descuento
Base impositiva asociada al ítem ASCII 1 caracter
ASCII equivalente al tipo de impuesto
asociado al ítem, valores posibles:
'0'=Exento
'1'=7%
'2'=10%
'3'=15%

2.3.- Subtotal comprobante fiscal

Este comando se utiliza para enviarle a la impresora Fiscal el valor temporal acumulado de las ventas
realizadas durante la impresión del comprobante fiscal.

Un uso alternativo de este comando es la validación de la correspondencia entre los valores del sistema
de facturación (aplicación de clientes) y lo almacenado por la impresora fiscal.

Prototipo Método:
BOOL subTotal(Float subTotalValue, BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
subTotal ASCII 9 enteros + '.' + 2 decimales TRUE si el comando fue
(12 caracteres fijos) ejecutado exitosamente por la
impresora fiscal,
BYTE* retValue: puntero a la FALSE en caso contrario
dirección de la variable
donde se almacenará la
estructura de retorno
indicada en la tabla 4.2.2

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:10


Manual de Programación Impresora Fiscal

2.4.- Pago

Este comando se utiliza para indicarle a la impresora Fiscal el fin del ingreso de ítems y el comienzo de
la impresión de los tipos de pago, además del valor del cambio. Pueden existir varios tipos de pago, asociados
todos a un comando total en particular. (Total en efectivo, total en tarjetas, etc).

Posteriormente a la ejecución de este comando, solo se permiten los comandos de cierre de documento
fiscal y de cancelación del mismo.

Prototipo Método:
BOOL pago(BYTE totalType, BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
pago BYTE* Puntero con la dirección de TRUE si el comando fue
la estructura que define los ejecutado exitosamente por la
campos del pago de la impresora fiscal,
venta FALSE en caso contrario
(ver tabla siguiente)

BYTE* retValue: puntero a la


dirección de la variable
donde se almacenará la
estructura de retorno
indicada en la tabla 4.2.2

2.4.1.- Tabla de definición de estructura de pago.

Información Tipo de dato Largo


Operación de pago ASCII 1 caracter
ASCII equivalente al tipo de operación
de pago, valores posibles:
'0'=Cancelación pago
'1'=Pago normal
Forma de pago ASCII 1 caracter
ASCII equivalente a la forma de pago,
valores posibles:
'0'=Total efectivo
'1'=Total tarjeta de débito
'2'=Total tarjeta de crédito
'3'=Total cheque
'4'=Total clubes
'5'=Total bonos
'6'=Total certificados
'7'=Total pagos Notas de crédito
'8'=Total otros medios de pago 2

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:11


Manual de Programación Impresora Fiscal

'9'=Total otros medios de pago 3


Descripción del pago ASCII El largo máximo del string de la forma
de pago se define de acuerdo al
Número de caracteres por línea-13
(ver tabla 6.10.1)
(null terminated)

Valor del pago ASCII 9 enteros + '.' + 2 decimales


(12 caracteres)

2.5.- Cancelar comprobante fiscal

Este comando permite la anulación del cualquier comprobante fiscal que se esté imprimiendo, en
cualquier etapa anterior al cierre del documento fiscal.

Prototipo Método:
BOOL abortDcto(BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
abortDcto BYTE* retValue: puntero a la TRUE si el comando fue
dirección de la variable ejecutado exitosamente por la
donde se almacenará la impresora fiscal,
estructura de retorno FALSE en caso contrario
indicada en la tabla 4.2.2

2.6.- Descuento

Este comando permite la realización de descuentos al total bruto del comprobante fiscal , siempre antes
de que sean calculados los impuestos. Una vez que la impresora Fiscal recibe este comando, no se puede
recibir ningún comando de ítem.

Prototipo Método:
BOOL discount(BYTE* discountValue, BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
discount BYTE* Puntero con la dirección de TRUE si el comando fue
la estructura del ítem ejecutado exitosamente por la
(ver tabla siguiente) impresora fiscal,
FALSE en caso contrario
BYTE* retValue: puntero a la
dirección de la variable
donde se almacenará la
estructura de retorno

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:12


Manual de Programación Impresora Fiscal

indicada en la tabla 4.2.2

2.6.1.- Tabla de definición de estructura utilizada en comando descuento.

Información Tipo de dato Largo


Porcentaje del descuento ASCII 2 enteros + '.' + 2 decimales
(12 caracteres)
Descripción del descuento ASCII El largo máximo del string de la
descripción se define de acuerdo al
Número de caracteres por línea
(ver tabla 6.10.1)
(null terminated)

2.7.- Cerrar documento fiscal

Este comando le indica a la impresora, que se debe finalizar el comprobante fiscal que se está
imprimiendo. Con este comando se imprime lo siguiente:

– Todos los pagos


– El monto del cambio
– El pie de página del ticket.

Al finalizar este comando, el total de la venta se almacena en la memoria de trabajo y se queda a la


espera de un nuevo documento (fiscal o no fiscal) y se imprime el fin del ticket.

Prototipo Método:
BOOL closeDcto(BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
closeDcto BYTE* retValue: puntero a la TRUE si el comando fue
dirección de la variable ejecutado exitosamente por la
donde se almacenará la impresora fiscal,
estructura de retorno FALSE en caso contrario
indicada en la tabla 4.2.2

2.8.- Ejecutar zeta

Este comando le indica a la impresora fiscal, que se debe realizar un cierre de día, este comando solo
puede ejecutarse cuando el sistema se encuentre en estado de apertura de comprobante fiscal o no fiscal.

Al finalizar este comando, se imprime un ticket con el resumen de los totales fiscales díarios. Posterior a
la impresión del reporte indicado, se vuelcan los datos de totales e impuestos a la memoria fiscal.

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:13


Manual de Programación Impresora Fiscal

Prototipo Método:
BOOL zeta(BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
zeta BYTE* retValue: puntero a la TRUE si el comando fue
dirección de la variable ejecutado exitosamente por la
donde se almacenará la impresora fiscal,
estructura de retorno FALSE en caso contrario
indicada en la tabla 4.2.1

2.9.- Imprimir reporte X

Este comando le indica a la impresora, que se debe realizar un reporte X. Este comando puede ser
ejecutado en cualquier momento.

Al finalizar este comando, se imprime un ticket con el resumen de los totales fiscales díarios. Este
comando no altera ningún acumulador ni contador fiscal, solamente permite la impresión de un documento con
la misma información que entrega un reporte Z.

Prototipo Método:
BOOL printX(BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printX BYTE* retValue: puntero a la TRUE si el comando fue
dirección de la variable ejecutado exitosamente por la
donde se almacenará la impresora fiscal,
estructura de retorno FALSE en caso contrario
indicada en la tabla 4.2.1

2.10.- Impresión de texto para descripción Items.

Este comando le indica a la impresora Fiscal que debe imprimir el texto indicado como una
descripción adicional de un item en la transacción fiscal en curso.

Prototipo Método:
BOOL printItemDesc(BYTE* text)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printItemDesc BYTE* Contenido del string a TRUE si el comando fue
imprimir en el documento ejecutado exitosamente por la
fiscal impresora fiscal,

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:14


Manual de Programación Impresora Fiscal

El largo máximo del texto se FALSE en caso contrario


define de acuerdo al
Número de caracteres por
línea
(ver tabla 6.10.1)

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:15


Manual de Programación Impresora Fiscal

3.- Comandos Fiscales utilizados para Documentos No Fiscales.

3.1.- Abrir comprobante no fiscal.

Permite imprimir cualquier tipo de reporte distintos de los fiscales, como por ejemplo voucher de
tarjetas de crédito, cupones de descuento y otros similares. EL encabezado del reporte siempre comienza con
el texto: “DOCUMENTO NO FISCAL”

Prototipo Método:
BOOL openDctoNoFiscal(BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
openDctoNoFiscal BYTE* retValue: puntero a la TRUE si el comando fue
dirección de la variable ejecutado exitosamente por la
donde se almacenará la impresora fiscal,
estructura de retorno FALSE en caso contrario
indicada en la tabla 4.2.2

3.2.- Imprimir texto No Fiscal.

Este comando le indica a la impresora Fiscal que se imprimirá una línea de texto libre. Este comando
solo se puede utilizar posteriormente a la recepción del comando de apertura de comprobante no fiscal. No
existe límite para el número de líneas ni su contenido.

Prototipo Método:
BOOL printTextNoFiscal(BYTE* freeText)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printTextNoFiscal BYTE* String constituyente de la TRUE si el comando fue
línea de texto libre que se ejecutado exitosamente por la
enviara a la impresora impresora fiscal,
fiscal, el largo del string es FALSE en caso contrario
variable y solo definido por
caracter de fin de string
(char 0)

3.3.- Cerrar documento no fiscal.

Este comando le indica a la impresora fiscal que se debe finalizar la impresión de texto libre. Este
comando solo se puede utilizar posteriormente a la recepción del comando de apertura de comprobante no
fiscal.

Prototipo Método:

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:16


Manual de Programación Impresora Fiscal

BOOL closeDctoNoFiscal()
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
closeDctoNoFiscal ninguno TRUE si el comando fue
ejecutado exitosamente por la
impresora fiscal,
FALSE en caso contrario

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:17


Manual de Programación Impresora Fiscal

4.- Comandos fiscales para petición de información fiscal y de estado.

Los siguientes comandos están presentes en las librerías. dllFiscalDGI.dll y dllFiscalUSER.dll.

4.1.- Comando de envío de status del sistema.

Este comando le indica a la dll y a la impresora Fiscal que deben retornar inmedíatamente la
estructura de datos que contienen el estado del sistema. No existe secuencia en la ejecución de este comando
y puede ser ejecutado en cualquier momento.

Prototipo Método:
BOOL readStatus(BYTE* statusPtr)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
readStatus BYTE* StatusPtr:Puntero con la TRUE si el status fue leído
dirección de la variable exitosamente de la impresora
donde se almacenará el fiscal (existe conexión),
status leído desde la Ifiscal FALSE en caso contrario (no
indicado en la estructura existe conexión con la
indicada en la tabla 4.1.1 impresora fiscal)

4.1.1.- Tabla de definición de estructura de status del sistema.

Offset Información Tipo de dato Descripción


0 Resumen de Estatus BYTE En valor 1 indica que no
general del Sistema existen errores de ningún tipo
1 Resumen Error de BYTE En valor 1 indica que existe
hardware en módulo fiscal error de hardware en el módulo
fiscal
2 Resumen Error de BYTE En valor 1 indica que existe
hardware en módulo de error de hardware en el módulo
impresión de impresión
3 Resumen Error Fiscal en BYTE En valor 1 indica que existe un
módulo fiscal error fiscal funcional
4 Comando ejecutado por el BYTE En valor 1 indica que el último
módulo fiscal comando fue ejecutado
exitosamente por el módulo
fiscal
5 Otros Errores BYTE En valor 1 indica que existen
otros errores
6 Error dll BYTE En valor 1 indica que la dll
encontró algún error en el
último comando
7 Código del último BYTE Ver tabla 8

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:18


Manual de Programación Impresora Fiscal

comando ejecutado
exitosamente
8 Estatus detallado módulo Unsigned Long Long 64 Bits (8 bytes) que indican
fiscal detalladamente el estado del
módulo fiscal (ver documento:
IF_LK_T200_FP_StatusBitsDe
scription.pdf
16 Estatus detallado dll Unsigned Long Long 64 Bits (8 bytes) que indican
detalladamente el estado de la
dll, ver documento:
DLL_StatusBitsDescription.pdf
24 Version del microcodigo Unsigned Long Long Version del microcodigo Fiscal
Fiscal

4.2.- Comando de envío de valores de contadores y acumuladores fiscales.

Este comando le indica a la impresora Fiscal que debe retornar inmedíatamente la estructura
de datos que contienen el resumen de todos los contadores y acumuladores fiscales hasta el momento anterior
a la ejecución de este comando. No existe secuencia en la ejecución de este comando y puede ser ejecutado
en cualquier momento.

Prototipo Método:
BOOL readCont(BYTE* retValue
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
readCont BYTE* RetValue:Puntero con la TRUE si los contadores
dirección de la variable donde fiscales fueron leídos
se almacenará la estructura exitosamente,
que contiene los datos FALSE en caso contrario
fiscales retornados desde la
Ifiscal y que se definen en las
tablas 4.2.1 y 4.2.2
(nota: las estructuras se
retornan una a continuación
de la otra)

4.2.1.- Tabla de definición de estructura de datos fiscales retornados por la Ifiscal asociada al último
cierre de día.

Posición Información Tipo de dato Largo Fuente de la información


0 Fecha y hora último Z Ulong 4 Último Zeta
4 Número de último Z Ulong 4 Último Zeta

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:19


Manual de Programación Impresora Fiscal

8 Núm. Factura inicial Ulong 4 Último Zeta


(factura de cierre)
12 Núm. Factura final Ulong 4 Último Zeta
16 Núm. Facturas Ulong 4 Último Zeta
anuladas
20 Numero Documentos Ulong 4 Último Zeta
No Fiscales
24 Total Descuento Float Double 8 Último Zeta
Facturas
32 Total Ventas Factura Float Double 8 Último Zeta
40 Total Exento Fact. Float Double 8 Último Zeta
48 Total 7% Fact. Float Double 8 Último Zeta
56 Total 10% Fact. Float Double 8 Último Zeta
64 Total 15% Fact. Float Double 8 Último Zeta
72 Total x% Fact. Float Double 8 Último Zeta
80 Total notas DB Float Double 8 Último Zeta
88 Total Exento notas Float Double 8 Último Zeta
DB.
96 Total 7% notas DB. Float Double 8 Último Zeta
104 Total 10% notas DB. Float Double 8 Último Zeta
112 Total 15% notas DB. Float Double 8 Último Zeta
120 Total x% notas DB. Float Double 8 Último Zeta
128 Total ISC notas DB. Float Double 8 Último Zeta
136 Total ISC Fact. Float Double 8 Último Zeta
144 Total notas CR Float Double 8 Último Zeta
152 Total Exento notas Float Double 8 Último Zeta
CR.
160 Total 7% notas CR. Float Double 8 Último Zeta
168 Total 10% notas CR. Float Double 8 Último Zeta
176 Total 15% notas CR. Float Double 8 Último Zeta
184 Total x% notas CR. Float Double 8 Último Zeta
192 Total ISC notas CR. Float Double 8 Último Zeta
200 Total pagos efectivo Float Double 8 Último Zeta
208 Núm. de notas CR Ulong 4 Último Zeta
212 Núm. de notas DB Ulong 4 Último Zeta
216 Reservado Float Double 8 -

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:20


Manual de Programación Impresora Fiscal

224 Total pagos Tdébito Float Double 8 Último Zeta


232 Total pagos Tcrédito Float Double 8 Último Zeta
240 Total pagos cheque Float Double 8 Último Zeta
248 Total pagos clubes Float Double 8 Último Zeta
256 Total pagos bonos Float Double 8 Último Zeta
264 Total pagos Float Double 8 Último Zeta
certificados
272 Total pagos Notas de Float Double 8 Último Zeta
Crédito
280 Total pagos otros2 Float Double 8 Último Zeta
288 Total pagos otros3 Float Double 8 Último Zeta
296 Núm. Pagos efectivo Ulong 4 Último Zeta
300 Núm. Pagos Tdébito Ulong 4 Último Zeta
304 Núm. Pagos Tcrédito Ulong 4 Último Zeta
308 Núm. Pagos cheque Ulong 4 Último Zeta
312 Núm. Pagos clubes Ulong 4 Último Zeta
316 Núm. Pagos bonos Ulong 4 Último Zeta
320 Núm. Pagos Ulong 4 Último Zeta
certificados
324 Núm. Pagos Notas de Ulong 4 Último Zeta
Crédito
328 Núm. Pagos otros2 Ulong 4 Último Zeta
332 Núm. Pagos otros3 Ulong 4 Último Zeta
336 Total 7% calculado Float Double 8
Facturas
344 Total 10% calculado Float Double 8
Facturas
352 Total 15% calculado Float Double 8
Facturas
360 Total x% calculado Float Double 8 Tasa impositiva auxiliar para
Facturas futuros usos
368 Total ISC calculado Float Double 8
Facturas
376 Total 7% calculado Float Double 8
Notas DB
384 Total 10% calculado Float Double 8
Notas DB
392 Total 15% calculado Float Double 8

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:21


Manual de Programación Impresora Fiscal

Notas DB
400 Total x% calculado Float Double 8 Tasa impositiva auxiliar para
Notas DB futuros usos
408 Total ISC calculado Float Double 8
Notas DB
416 Total 7% calculado Float Double 8
Notas CR
424 Total 10% calculado Float Double 8
Notas CR
432 Total 15% calculado Float Double 8
Notas CR
440 Total x% calculado Float Double 8 Tasa impositiva auxiliar para
Notas CR futuros usos
448 Total ISC calculado Float Double 8
Notas CR
456 Descuento Total Float Double 8
464 Numero Descuentos Ulong 4

4.2.2.- Tabla de definición de estructura de datos fiscales retornados por la Ifiscal asociada al
documento en proceso.

Posición Información Tipo de dato Largo Fuente de la información


0 Tipo de documento BYTE 1 documento en proceso:
0=factura
1=Nota de crédito
2=Nota de débito
3=Documento no fiscal
1 Nombre comprador ASCII 101 Transacción en curso
103 RUC Comprador ASCII 21 Transacción en curso
123 Número de documento Ulong 4 Transacción en curso
Fecha y hora de inicio de Ulong 4 Transacción en curso
documento
Número de ítems de Ulong 4 Transacción en curso
documento
Núm. Factura referencia Ulong 4 Transacción en curso
Fecha de factura Ulong 4 Transacción en curso
referencia
Subtotal documento Float Double 8 Transacción en curso
Total General documento Float Double 8 Transacción en curso

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:22


Manual de Programación Impresora Fiscal

Descuento global Float Double 8 Transacción en curso


Documento
Total Exento Documento Float Double 8 Transacción en curso
Total 7% Documento Float Double 8 Transacción en curso
Total 10% Documento Float Double 8 Transacción en curso
Total 15% Documento Float Double 8 Transacción en curso
Total x% Documento Float Double 8 Transacción en curso
Total ISC Documento Float Double 8 Transacción en curso
Total pagos efectivo Float Double 8 Transacción en curso
Núm. Pagos efectivo Ulong 4 Transacción en curso
Total pagos Tdébito Float Double 8 Transacción en curso
Núm. Pagos Tdébito Ulong 4 Transacción en curso
Total pagos Tcrédito Float Double 8 Transacción en curso
Núm. Pagos Tcrédito Ulong 4 Transacción en curso
Total pagos cheque Float Double 8 Transacción en curso
Núm. Pagos cheque Ulong 4 Transacción en curso
Total pagos clubes Float Double 8 Transacción en curso
Núm. Pagos clubes Ulong 4 Transacción en curso
Total pagos bonos Float Double 8 Transacción en curso
Núm. Pagos bonos Ulong 4 Transacción en curso
Total pagos certificados Float Double 8 Transacción en curso
Núm. Pagos certificados Ulong 4 Transacción en curso
Total pagos Notas de Float Double 8 Transacción en curso
Crédito
Núm. Pagos Notas de Ulong 4 Transacción en curso
Crédito
Total pagos otros2 Float Double 8 Transacción en curso
Núm. Pagos otros2 Ulong 4 Transacción en curso
Total pagos otros3 Float Double 8 Transacción en curso
Núm. Pagos otros3 Ulong 4 Transacción en curso
Total 7% calculado Float Double 8
Total 10% calculado Float Double 8
Total 15% calculado Float Double 8
Total x% calculado Float Double 8 Tasa impositiva auxiliar para
futuros usos
Total ISC calculado Float Double 8

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:23


Manual de Programación Impresora Fiscal

5.- Comandos Fiscales utilizados para controlar la impresión.

Los siguientes comandos están presentes en la librería. dllFiscalUSER.dll y tienen por finalidad enviar a
la impresora fiscal una serie de información de control que permite cambiar los atributos de impresión y o
imprimir códigos de barra.

5.1.- Fin de línea.

Este comando le indica al mecanismo de impresión de la impresora Fiscal que debe avanzar un
cierto número de líneas.

Prototipo Método:
BOOL printLF(BYTE numLF)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printLF BYTE Hexadecimal indicador del TRUE si el comando fue
Número de fines de línea ejecutado exitosamente por la
solicitados impresora fiscal,
(0 a 255) FALSE en caso contrario

5.2.- Form Feed.

Este comando le indica al mecanismo de impresión de la impresora Fiscal que debe avanzar un
cierto número de lineas indicado por la variable numLineas y posteriormente reimprimir el encabezado del
documento fiscal en proceso.

Prototipo Método:
BOOL printFF(BYTE numLineas)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printFF BYTE Hexadecimal indicador del TRUE si el comando fue
Número de fines de línea ejecutado exitosamente por la
solicitados impresora fiscal,
(0 a 255) FALSE en caso contrario

5.3.- Cambio de formato de impresión.

Este comando le indica al mecanismo de impresión de la impresora Fiscal que debe utilizar el
formato de impresión que se indica, este formato es válido hasta que no se defina uno distinto o que el sistema
sea apagado.

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:24


Manual de Programación Impresora Fiscal

Prototipo Método:
BOOL printRT(BYTE format)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printRT BYTE Byte hexadecimal que TRUE si el comando fue
indica el ejecutado exitosamente por la
Formato de impresión de impresora fiscal,
acuerdo a la tabla de bits FALSE en caso contrario
que se indica en la figura
siguiente

Tabla 5.3.1.- Definición de estructura de bits para comando printRT:

Posición del bit Característica seleccionada

0 1=Reducido (font 9x24)


0=Normal (font 12x24)
1 No usado
2 No usado
3 1=Negrita
0=Normal
4 1=Doble Alto
0=Normal
5 1=Doble ancho
0=Normal
6 No usado
7 1=Subrayado
0=Normal

5.4.- Impresión de códigos de barra (Válido solo para OKI ML-620 y ML-420).

Este comando le indica al mecanismo de impresión de la impresora Fiscal que debe imprimir un
código de barra con las características indicadas. ESTE COMANDO NO ESTA IMPLEMENTADO.

Prototipo Método:
BOOL printBarCode(BYTE format)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printBarCode BYTE* Características y datos del TRUE si el comando fue

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:25


Manual de Programación Impresora Fiscal

código de barra ejecutado exitosamente por la


impresora fiscal,
FALSE en caso contrario

Tabla 5.4.1.- Definición de estructura datos para comando printBarCode:

Offset largo formato Contenido


1 BYTE Tipo de código de barras soportado por la impresora (ver tabla
0
1.4.2)
1 1 BYTE Número de caracteres del código de barras
2 1 BYTE Alto del código de barras
3 1 BYTE Ancho del código de barras
4 Unsigned
5 Número de bytes del código de barras
INT
9 nn ASCII Datos del código de barras

Tabla 5.4.2.- Definición de tipos de códigos de barras (Válido solo para OKI ML-620 y ML-420):

Código Bar Code System Número de caracteres del código de barras


0 UPC-A 11 ≤ k ≤ 12 48 ≤ d ≤ 57
1 UPC-E 11 ≤ k ≤ 12 48 ≤ d ≤ 57
2 EAN13 12 ≤ k ≤ 13 48 ≤ d ≤ 57
3 EAN8 7 ≤ k ≤ 8 48 ≤ d ≤ 57
4 CODE 39 1 ≤ k 48 ≤ d ≤ 57, 65 ≤ d ≤ 90,32,36,37,43,45,46,47
5 ITF 1 ≤ k (even number) 48 ≤ d ≤ 57
6 CODABAR 1 ≤ k 48 ≤ d ≤ 57, 65 ≤ d ≤ 68, 36,43,45,46,47,58

5.5- Comando de corte de papel (Válido solo para OKI ML-620 y ML-420).

Este comando le indica al mecanismo de impresión de la impresora Fiscal que debe cortar el
papel.

Prototipo Método:
BOOL cutPaper()
Nombre Método Tipo de dato del Parámetros Retorno
parámetro

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:26


Manual de Programación Impresora Fiscal

cutPaper ninguno TRUE si el comando fue


ejecutado exitosamente por la
impresora fiscal,
FALSE en caso contrario

5.6.- Apertura de cajón (Válido solo para OKI ML-620 y ML-420).

Este comando le indica al mecanismo de impresión de la impresora Fiscal que debe realizar la
activación del solenoide de control de apertura del cajón conectado. Este comando no tiene secuencia y puede
ser invocado en cualquier momento.

Prototipo Método:
BOOL openCD()
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
openCD ninguno TRUE si el comando fue
ejecutado exitosamente por la
impresora fiscal,
FALSE en caso contrario

5.7.- Test mecanismo de impresión.

Este comando le indica a la impresora Fiscal que debe realizar el test del mecanismo de
impresión que consiste en la impresión de un patern standard que permite validar el estado del mecanismo.
Este comando solo puede ser invocado cuando se está a la espera de algún tipo de documento fiscal o no
fiscal.

Prototipo Método:
BOOL testMecPrt()
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
testMecPrt ninguno TRUE si el comando fue
ejecutado exitosamente por la
impresora fiscal,
FALSE en caso contrario

5.8.- Reimpresión de reportes Z.

Este comando le indica a la impresora Fiscal que debe reimprimir un reporte zeta específico o
un grupo de ellos por rangos de fechas. Este comando solo puede ser invocado cuando se está a la espera de
algún tipo de documento fiscal o no fiscal.

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:27


Manual de Programación Impresora Fiscal

Prototipo Método:
BOOL printCopiasZetas(ulong numTraDesde, ulong numTraHasta, ulong startDate, ulong endDate)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printCopiasZetas Ulong Número de zeta inicial
si este número es cero se
deben considerar los
parámetros de fecha

Ulong Número de zeta inicial


TRUE si el comando fue
si este número es cero se
ejecutado exitosamente por la
deben considerar los
impresora fiscal,
parámetros de fecha
FALSE en caso contrario
Ulong Fecha de inicio del periodo
a imprimir

Ulong Fecha de fin del periodo a


imprimir

5.9.- Reimpresión de Transacciones fiscales.

Este comando le indica a la impresora Fiscal que debe reimprimir una copia de una o mas
transacciones fiscales almacenadas en la memoria de auditoría, para ello se le debe indicar el número
específico de la transacción o el rango de fechas deseado. Este comando solo puede ser invocado cuando se
está a la espera de algún tipo de documento fiscal o no fiscal.

Prototipo Método:
BOOL printCopiasTrFiscales(ulong numTraDesde, ulong numTraHasta, ulong startDate, ulong
endDate)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printCopiasTrFiscales Ulong Número de documento TRUE si el comando fue
fiscal inicial ejecutado exitosamente por la
si este número es cero se impresora fiscal,
deben considerar FALSE en caso contrario
parámetros de fecha

Ulong Número de documento


fiscal final
si este número es cero se
deben considerar los
parámetros de fecha

Ulong Fecha de inicio del periodo


a imprimir

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:28


Manual de Programación Impresora Fiscal

Ulong Fecha de fin del periodo a


imprimir

5.10.- Reimpresión de Documentos no fiscales.

Este comando le indica a la impresora Fiscal que debe reimprimir una copia de una o mas
transacciones no fiscales almacenadas en la memoria de auditoría, para ello se le debe indicar el número
específico de la transacción no fiscal o el rango de fechas deseado. Este comando solo puede ser invocado
cuando se está a la espera de algún tipo de documento fiscal o no fiscal.

Prototipo Método:
BOOL printCopiasTrNoFiscales(ulong numTraDesde, ulong numTraHasta, ulong startDate, ulong
endDate)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printCopiasTrNoFiscales Ulong Número de documento
fiscal inicial
si este número es cero se
deben considerar
parámetros de fecha

Ulong Número de documento


TRUE si el comando fue
fiscal final
ejecutado exitosamente por la
si este número es cero se
impresora fiscal,
deben considerar los
FALSE en caso contrario
parámetros de fecha

Ulong Fecha de inicio del periodo


a imprimir

Ulong Fecha de fin del periodo a


imprimir

5.11- Comando de cambio de márgenes de impresión (Válido solo para OKI ML-620 y ML-420).

Este comando le indica al mecanismo de impresión de la impresora Fiscal que debe cambiar los
márgenes de impresión del documento, estos son indicados con dos variables del tipo BYTE.

Prototipo Método:
BOOL setMargins(BYTE leftMargin, BYTE rightMargin)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
setMargins BYTE Márgen Izquierdo TRUE si el comando fue
ejecutado exitosamente por la
BYTE Margen Derecho impresora fiscal,

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:29


Manual de Programación Impresora Fiscal

FALSE en caso contrario

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:30


Manual de Programación Impresora Fiscal

6.- Comandos Fiscales utilizados para inicialización y o configuración del sistema.

Estos comandos permiten inicializar los parámetros fiscales y u operativos de la impresora


fiscal.

6.1.- Inicializar Impresora Fiscal.

Este comando le indica a la impresora, que debe comenzar el modo fiscal de funcionamiento. Una vez
ejecutado el comando, se imprime un reporte que indica los siguientes datos del contribuyente:

– Razón Social.
– Dirección fiscal.
– RUC Contribuyente
– DV Contribuyente.
– Tasas de impuestos permitidas.

Este comando solo debe ser ejecutado una sola vez en la vida fiscal del sistema. Los datos indicados
anteriormente quedan permanentemente almacenados en la memoria fiscal y de transacciones y no puede ser
borrada.

Prototipo Método:
BOOL initFiscal(BYTE* initString, BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
initFiscal BYTE* Puntero con la dirección de TRUE si el proceso fue
la variable donde se realizado exitosamente en la
encuentra la información impresora fiscal,
requerida para la FALSE en caso contrario
inicialización Fiscal (ver
siguiente tabla)

BYTE* retValue: puntero a la


dirección de la variable
donde se almacenará la
estructura de retorno
indicada en la tabla
siguiente

Tabla 6.1.1.- Definición de estructura de inicialización.

Posición largo formato Contenido


101 ASCII String componente a la razón social del establecimiento
0
(null terminated)
53 ASCII String componente de la dirección del establecimiento
100
(null terminated)

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:31


Manual de Programación Impresora Fiscal

21 ASCII String componente del RUC del usuario


152
(null terminated)
172 1 BYTE Dígito verificador
173 1 BYTE Binario equivalente a la Tasa de impuesto 1 en %
174 1 BYTE Binario equivalente a la Tasa de impuesto 2 en %
175 1 BYTE Binario equivalente a la Tasa de impuesto 3 en %
176 1 BYTE Binario equivalente a la Tasa de impuesto 4 en %
177 1 BYTE Binario equivalente a la Tasa de impuesto 5 en %

6.2.- Lectura de datos de inicialización.

Este comando se utiliza para indicarle a la impresora Fiscal que debe enviar a la dll la información
asociada a la última inicialización fiscal realizada.

Prototipo Método:
BOOL getInitInfo(BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
getInitInfo BYTE* Puntero con la dirección de TRUE si el comando fue
la estructura donde se ejecutado exitosamente por la
almacenará la información impresora fiscal,
de inicialización de la FALSE en caso contrario
impresora fiscal de acuerdo
a lo indicado en la tabla
6.1.1

6.3.- Cambio de fecha y hora.

Este comando se utiliza para indicarle a la impresora Fiscal que debe cambiar la fecha y hora de su
reloj interno.

La nueva fecha debe ser mayor a la indicada en la última transacción fiscal realizada.

Prototipo Método:
BOOL setDateTime(Unsigned Int newDate, Ulong* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
setDateTime Unsigned Int NewDate:Variable donde se TRUE si el comando fue
encuentra la nueva fecha y ejecutado exitosamente por la

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:32


Manual de Programación Impresora Fiscal

hora a configurar impresora fiscal,


FALSE en caso contrario
Ulong* retValue: puntero a la
dirección de la variable
donde se almacenará la
valor de la fecha y hora que
utiliza la Ifiscal

formato: segundos
transcurridos desde el
01/01/2000 a las 12:00:00

6.4.- Lectura de fecha y hora.

Este comando se utiliza para indicarle a la impresora Fiscal que debe enviar a la dll la fecha y hora de
su reloj interno.

Prototipo Método:
BOOL getDateTime(Ulong* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
getDateTime Ulong* retValue: puntero a la TRUE si el comando fue
dirección de la variable ejecutado exitosamente por la
donde se almacenará la impresora fiscal,
valor de la fecha y hora que FALSE en caso contrario
utiliza la Ifiscal

formato: segundos
transcurridos desde el
01/01/2000 a las 12:00:00

6.5.- Comando de reactivación de la impresora fiscal.

Este comando se utiliza para reactivar la impresora Fiscal posteriormente a que esta haya quedado
inoperativa al desconectar el módulo fiscal o intentar la intervención del mismo.

Prototipo Método:
BOOL restartSys(Unsigned Int newDate)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
restartSys Unsigned Int NewDate:Variable donde se TRUE si el comando fue
encuentra la nueva fecha y ejecutado exitosamente por la
hora a configurar impresora fiscal,
FALSE en caso contrario

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:33


Manual de Programación Impresora Fiscal

6.6- Inicialización de líneas del encabezado de usuario para los documentos fiscales.

Este comando le indica a la impresora Fiscal que debe almacenar la o las líneas de encabezado
opcionales de usuario de los documentos fiscales “facturas”. Si la línea se define vacia, la primera posición del
string debe tener el caracter 0 (null char). Para el caso de las impresoras OKI ML-620 y OKI Ml-420 solo se
permiten definir 2 lineas de encabezado de usuario de 80 caracteres cada una, en el caso de la impresora
Sewoo TK-200FP se permiten hasta un máximo de 5 lineas de hasta 40 caracteres cada una.

Prototipo Método:
BOOL setHeader(BYTE* headerStruct)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
setHeader BYTE* Puntero con la dirección de TRUE si el comando fue
la estructura que contiene ejecutado exitosamente por la
las líneas de header de los impresora fiscal,
documentos fiscales, de FALSE en caso contrario
acuerdo a la tabla que sigue

Tabla 6.6.1.- Definición de estructura datos para comando setHeader:

Offset largo formato Contenido


Número de ASCII
caracteres por String que define la primera línea del encabezado de las
0 línea definidos en facturas (null terminated)
la tabla 6.10.1
Número de ASCII
caracteres por String que define la segunda línea del encabezado de las
- línea definidos en facturas (null terminated)
la tabla 6.10.1
Número de ASCII
caracteres por String que define la tercera línea del encabezado de las
- línea definidos en facturas (null terminated)
la tabla 6.10.1 (Válido solo para SEWOO LK – T200 – FP)

Número de ASCII
caracteres por String que define la cuarta línea del encabezado de las
- línea definidos en facturas (null terminated)
la tabla 6.10.1 (Válido solo para SEWOO LK – T200 – FP)

Número de ASCII
caracteres por String que define la quinta línea del encabezado de las
- línea definidos en facturas (null terminated)
la tabla 6.10.1 (Válido solo para SEWOO LK – T200 – FP)

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:34


Manual de Programación Impresora Fiscal

6.7- Inicialización de líneas de pie de página de los documentos fiscales.

Este comando le indica a la impresora Fiscal que debe almacenar la o las líneas de pie de
página de los documentos fiscales “facturas”. Si la línea se define vacia, la primera posición del string debe
tener el caracter 0 (null char). ESTE COMANDO NO ESTA IMPLEMENTADO

Prototipo Método:
BOOL setFooter(BYTE* footerStruct)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
setFooter BYTE* Puntero con la dirección de TRUE si el comando fue
la estructura que contiene ejecutado exitosamente por la
las líneas de pie de página impresora fiscal,
de los documentos fiscales FALSE en caso contrario
“facturas”, de acuerdo a la
tabla que sigue

Tabla 6.7.1.- Definición de estructura datos para comando setFooter (Válido solo para versión 2.x.x de
microcódigo fiscal):

Offset largo formato Contenido


Número de ASCII
caracteres por
0 línea definidos String que define la primera línea del pie de páginas de las
en la tabla facturas (null terminated)
6.10.1
Número de ASCII
caracteres por
- línea definidos String que define la segunda línea del pie de páginas de las
en la tabla facturas (null terminated)
6.10.1

6.8- Lectura de serialización.

Este comando le indica a la impresora Fiscal que debe enviar los números de serie asociados a
la impresora fiscal.

Prototipo Método:
BOOL readSerNum(BYTE* serialStruct)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
readSerNum BYTE* SerialStruct:Dirección de la TRUE si el comando fue

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:35


Manual de Programación Impresora Fiscal

variable donde se ejecutado exitosamente por la


almacenarán los números impresora fiscal,
de serie y versiones FALSE en caso contrario
asociados a la IFiscal de
acuerdo a la siguiente tabla

Tabla 6.8.1.- Definición de estructura datos de retorno para comando de lectura de datos de
serialización:

Offset largo formato Contenido


Número Serial Fiscal
0 14 ASCII
(null terminated)
Número de serie del mecanismo de impresión
14 14 ASCII
(null terminated)
Número de serie del módulo fiscal
28 14 ASCII
(null terminated)

6.9- Comando de verificación.

Este comando le indica a la impresora Fiscal que debe realizar un self test y posteriormente
almacenar en la estructura indicada el status e imprimir un reporte con el estado de los componentes mas
relevantes del sistema.

Prototipo Método:
BOOL test(BYTE* statusStruct)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
test BYTE* Puntero con la dirección de TRUE si el comando fue
la variable donde se ejecutado exitosamente por la
almacenará el status leído impresora fiscal,
desde la IFiscal. FALSE en caso contrario
Ver tabla 4.1.1

6.10- Configuración de mecanismo de impresión.

Este comando configura en la dll correspondiente las características del mecanismo de


impresión asi como algunos bits auxiliares. Como respuesta a este comando la dll responde con lo indicado en
la tabla 6.10.1.

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:36


Manual de Programación Impresora Fiscal

Prototipo Método:
BOOL configMI(BYTE* configMIStruct)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
configMI BYTE* Puntero con la dirección de TRUE si el comando fue
la variable desde donde se ejecutado exitosamente por la
leerá la configuración del impresora fiscal,
mecanismo de impresión. FALSE en caso contrario
Ver tabla sgte.

Tabla 6.10.1.- Definición de estructura datos de configuración del mecanismo de impresión.

Offset largo formato Contenido


0 1 BYTE Margen izquierdo de impresión
1 1 BYTE Margen derecho de impresión
2 1 BYTE Byte de habilitación de características (ver tabla siguiente)
3 4 Unsigned Long Modelo de mecanismo de impresión

Tabla 6.10.2.- Definición de bits de habilitación de características de impresión.

Posición del bit Característica seleccionada

0 (bit de solo lectura)


1=Módulo de impresión configurado
1 No usado
2 1=Archivo de eventos habilitado
3 1=Puerto de debug habilitado
4 1=Impresión de reportes de estado habilitado
5 1=Impresión de reportes de error habilitados
6 1=Habilitación de impresión de códigos de barra
7 1=Cajón de dinero habilitado

6.11- Serialización.

Este comando serializa la impresora fiscal de acuerdo a lo requerido por la DGI, la información
necesaria para realizar este proceso se indica en la sgte. tabla.

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:37


Manual de Programación Impresora Fiscal

Prototipo Método:
BOOL serializar(BYTE* serialStruct)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
serializar BYTE* Puntero con la dirección de TRUE si el comando fue
la variable desde donde se ejecutado exitosamente por la
leerán los datos que se impresora fiscal,
utilizarán en la serialización. FALSE en caso contrario
Ver tabla sgte.

Tabla 6.11.1.- Definición de estructura datos para grabación de datos de serialización:

Offset largo formato Contenido


Número Serial Fiscal
(null terminated)
2 caracteres para identificar al fabricante o importador
0 14 ASCII
2 caracteres para identificar a la marca del equipo
2 caracteres para identificar el modelo del equipo fiscal
7 caracteres para un número correlativo de la máquina
Número de serie del mecanismo de impresión
14 14 ASCII
(null terminated)

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:38


Manual de Programación Impresora Fiscal

7.- Comandos DGI (Comandos de lectura de memoria fiscal y auditoría)

Los siguientes comandos están presentes en la librería dllFiscalDGI.dll y permiten generar un archivo XML
encriptado con el algoritmo AES

7.1.- Lectura de encabezado de facturas.

Este comando le indica a la impresora Fiscal que debe retornar los strings que
componen el encabezado de las facturas que imprime la impresora fiscal.

Prototipo Método:
BOOL readHeaderFact(STRING nombreArchivo)
Nombre Método Tipo de dato parámetro Parámetros Retorno
readHeaderFact Nombre archivo de TRUE si archivo xml fue
BYTE* salida, incluido el generado con éxito.
directorio destino FALSE en caso contrario

7.1.1.- Tabla de definición de estructura de datos fiscales que se retorna al invocar al “Comando de
lectura de encabezado de facturas”, esta información se guarda en archivo XML encriptado.

Offset Campo Formato Largo en bytes


0 Razón social ASCII 101
100 Dirección fiscal ASCII 53
152 RUC contribuyente ASCII 21
172 DV contribuyente BYTE 1
17 Nro. De serial fiscal ASCII 14

7.2.- Leer memoria fiscal entre un rangos de fechas.

Este comando le indica a la impresora Fiscal que debe retornar la información


de la memoria fiscal en el rango de fechas indicado.

Prototipo Método:
BOOL readFiscalMem(Ulong Fecha Inicial, Ulong FechaFinal, STRING nombreArchivo)
Nombre Método Tipo de dato parámetro Parámetros Retorno
readFiscalMem Ulong Fecha inicial TRUE si archivo xml fue
generado con éxito.
Ulong Fecha final
FALSE en caso contrario
BYTE* Nombre archivo de salida

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:39


Manual de Programación Impresora Fiscal

7.2.1.- Tabla de definición de estructura de datos fiscales que se retorna al invocar “Comando leer
memoria fiscal entre un rangos de fechas”, esta información se guarda en archivo XML encriptado.

Offset Campo Formato Largo en bytes


0 Fecha y hora de emisión Unsigned INT 4
4 Número de Z Unsigned INT 4
8 Última factura de cierre Unsigned INT 4
8 Factura inicial Unsigned INT 4
16 Núm. Facturas anuladas Unsigned INT 4
12 Total exento Float Double 8
20 Total facturas Float Double 8
44 Total 7% facturas Float Double 8
52 Total 10% facturas Float Double 8
60 Total 15% facturas Float Double 8
68 Total x% facturas Float Double 8
76 Total ISC facturas Float Double 8
72 Núm. de notas DB Unsigned INT 4
84 Total Notas DB Float Double 8
92 Total 7% Notas DB Float Double 8
100 Total 10% Notas DB Float Double 8
108 Total 15% Notas DB Float Double 8
116 Total x% Notas DB Float Double 8
124 Total ISC Notas DB Float Double 8
72 Núm. de notas CR Unsigned INT 4
132 Total Notas CR Float Double 8
140 Total 7% Notas CR Float Double 8
148 Total 10% Notas CR Float Double 8
156 Total 15% Notas CR Float Double 8
164 Total x% Notas CR Float Double 8
172 Total ISC Notas CR Float Double 8
172 Núm. De comprobantes no Unsigned INT 4
fiscales
176 Total pagos efectivo Float Double 8
184 Núm. Pagos efectivo Unsigned INT 4

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:40


Manual de Programación Impresora Fiscal

188 Total pagos Tdébito Float Double 8


196 Núm. Pagos Tdébito Unsigned INT 4
200 Total pagos Tcrédito Float Double 8
208 Núm. Pagos Tcrédito Unsigned INT 4
212 Total pagos cheque Float Double 8
220 Núm. Pagos cheque Unsigned INT 4
224 Total pagos clubes Float Double 8
232 Núm. Pagos clubes Unsigned INT 4
236 Total pagos bonos Float Double 8
244 Núm. Pagos bonos Unsigned INT 4
248 Total pagos certificados Float Double 8
256 Núm. Pagos certificados Unsigned INT 4
260 Total pagos Notas de Crédito Float Double 8
268 Núm. Pagos Notas de Crédito Unsigned INT 4
272 Total pagos otros2 Float Double 8
280 Núm. Pagos otros2 Unsigned INT 4
284 Total pagos otros3 Float Double 8
272 Núm. Pagos otros3 Unsigned INT 4
Total 7% calculado Facturas Float Double 8
Total 10% calculado Facturas Float Double 8
Total 15% calculado Facturas Float Double 8
Total x% calculado Facturas Float Double 8
Total ISC calculado Facturas Float Double 8
Total 7% calculado Notas DB Float Double 8
Total 10% calculado Notas DB Float Double 8
Total 15% calculado Notas DB Float Double 8
Total x% calculado Notas DB Float Double 8
Total ISC calculado Notas DB Float Double 8
Total 7% calculado Notas CR Float Double 8
Total 10% calculado Notas CR Float Double 8
Total 15% calculado Notas CR Float Double 8
Total x% calculado Notas CR Float Double 8
Total ISC calculado Notas CR Float Double 8

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:41


Manual de Programación Impresora Fiscal

7.3.- Leer memoria de auditoría entre un rangos de fechas.

Este comando le indica a la impresora Fiscal que debe retornar la información


de transacciones almacenadas en la memoria de auditoría en el rango de fechas indicado.

Prototipo Método:
BOOL readAuditMem(BYTE Fecha Inicial, BYTE FechaFinal, STRING nombreArchivo)
Nombre Método Tipo de dato parámetro Parámetros Retorno
readAuditMem BYTE Fecha inicial TRUE si archivo xml fue
generado con éxito.
BYTE Fecha final
FALSE en caso contrario
BYTE* Nombre archivo de
salida, incluido el
directorio destino

7.3.1.- Tabla de definición de estructura de datos genérica sobre la cual se obtienen los datos
necesarios para ser utilizados por el “Comando leer memoria de auditoría entre un rangos de fechas”,
esta información se guarda en archivo XML encriptado.

Cada documento fiscal almacenado en la memoria de auditoría está compuesto de 3 partes, un


encabezado, ítems y resumen del documento. El número de ítems puede ser variable y además los ítems
pueden corresponder a 4 tipos distintos de operaciones, siendo estos:

– ítem de venta, devolución o descuento


– ítem de descuento al total
– ítem de subtotal
– ítem pago

Las tablas siguientes entregan un detalle de los diferentes componentes de una transacción amacenada
en la memoria de auditoría.

Encabezado del documento


Campo Formato Largo Observaciones
Código de tipo de registro CONST 1 Valor Cte=4
de encabezado de indica encabezado de
documento documento fiscal

Código (tipo) documento BYTE 1 Tipo de documento:


0=factura
1=Nota de crédito
2=Nota de débito
3=Documento no fiscal
Fecha y hora de emisión Unsigned INT 4
Número de documento Unsigned INT 4

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:42


Manual de Programación Impresora Fiscal

Aplicado a Unsigned INT 4 Número de factura al cual


se aplica la nota de DB o
nota de CR
RUC cliente ASCII 21 Entidad destino del
documento
Nombre cliente ASCII 101 Entidad destino del
documento
Número de ítems Unsigned INT 4
Detalle del documento
ítem de venta, devolución o descuento al ítem
Código de tipo de registro CONST 1 Valor Cte=0
de ítem de venta indica ítem de venta,
devolución o descuento

Código artículo ASCII 11 Codificación del producto


(¿código de barras?)
Descripción ASCII 41 Descripción del ítem
Precio de venta Float Double 8 Precio unitario del
producto
Cantidad vendida Float Double 8 Cantidad del producto
Tipo de ítem BYTE 1 Binario equivalente al tipo
de ítem, valores posibles:
'0'=venta
'1'=devolución
'2'=descuento
Código impuesto BYTE 1 valores posibles:
'0'=Exento
'1'=7%
'2'=10%
'3'=15%
'4'=x%
Total del ítem Float Double 8 valor del producto
CRC_h BYTE 1 CRC byte msb
CRC_l BYTE 1 CRC byte lsb
Descuento al Total
Código de tipo de registro CONST 1 Valor Cte=1
de ítem de venta indica descuento al total
Porcentaje de descuento Float Double 8 Valor del porcentaje de
descuento asociado al
total de la venta
Descripción del descuento ASCII 41 Descripción del descuento

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:43


Manual de Programación Impresora Fiscal

que se esta realizando


Subtotal de la transacción
Código de tipo de registro CONST 1 Valor Cte=2
de subtotal de Subtotal transacción
transacción
Valor del subtotal Float Double 8 Valor del subtotal
calculado por la Ifiscal
para la transacción
CRC_h BYTE 1 CRC byte msb
CRC_l BYTE 1 CRC byte lsb
Pago
Código de tipo de registro CONST 1 Valor Cte=3
de pago Pago
Código del pago BYTE 1 valores posibles:
'0'=Pago
'1'=Anulación pago
Código para la forma de BYTE 1 1 caracter
pago ASCII equivalente a la
forma de pago, valores
posibles:
'0'=Total efectivo
'1'=Total tarjeta de débito
'2'=Total tarjeta de crédito
'3'=Total cheque
'4'=Total clubes
'5'=Total bonos
'6'=Total certificados
'7'=Total otros medios de
pago 1
'8'=Total otros medios de
pago 2
'9'=Total otros medios de
pago 3
Descripción del pago ASCII 41 Descripción del pago que
se esta realizando
Valor de pago Float Double 8 Valor del pago
Saldo a pagar Float Double 8 Saldo restante por pagar
CRC_h BYTE 1 CRC byte msb
CRC_l BYTE 1 CRC byte lsb
Totales del documento
Código de tipo de registro CONST 1 Valor Cte=5
de totales de documento indica ítem de venta,
devolución o descuento

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:44


Manual de Programación Impresora Fiscal

Descuento global Float Double 8


Total exento Float Double 8
Total ventas Float Double 8
Total Notas DB Float Double 8
Total Notas CR Float Double 8
Total 7% Float Double 8
Total 10% Float Double 8
Total 15% Float Double 8
Total x% Float Double 8 Tasa impositiva auxiliar
para futuros usos
Total ISC Float Double 8
Total pagos efectivo Float Double 8
Total pagos Tdébito Float Double 8
Total pagos Tcrédito Float Double 8
Total pagos cheque Float Double 8
Total pagos clubes Float Double 8
Total pagos bonos Float Double 8
Total pagos certificados Float Double 8
Total pagos Notas de Float Double 8
Crédito
Total pagos otros2 Float Double 8
Total pagos otros3 Float Double 8
Total 7% calculado Float Double 8
Total 10% calculado Float Double 8
Total 15% calculado Float Double 8
Total x% calculado Float Double 8
Total ISC calculado Float Double 8

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:45


Manual de Programación Impresora Fiscal

7.4.- Verificar conexión.

Este comando le indica a la impresora Fiscal que debe retornar el status de la


impresora fiscal, indicando con esto que se encuentra conectada al sistema.

Prototipo Método:
BOOL checkConec(BYTE* statusPtr)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
checkConec BYTE* Puntero con la dirección de TRUE si el status fue leído
la variable donde se exitosamente de la impresora
almacenará el status leído fiscal (existe conexión),
desde la IFiscal. FALSE en caso contrario (no
Ver tabla 4.1.1 existe conexión con la
impresora fiscal)

Este comando establese el canal de comunicacion para la impresora, debe llamarse antes de
realizar cualquier llamada a otras funciones.

Prototipo Método:
BOOL WOpenPort(LPCWSTR PortName, DWORD baudRate)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
WOpenPort LPCWSTR Puntero a un string con el TRUE si la conexion fue
nombre del puerto existosa, FALSE en caso
conectado a la impresora contrario (no existe conexión
con la impresora fiscal)
DWORD BaudRate del puerto de
comunicaciones.

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:46


Manual de Programación Impresora Fiscal

8.0.- Tabla de códigos numéricos asociados a los comandos fiscales.

Ítem Nombre comando (método o función) Código numérico Función


Comandos asociados a documentos fiscales
1 openDctoFiscal 0x20 Enviar a la impresora fiscal el
comando de apertura de
documento fiscal
2 Ítem 0x21 Enviar a la impresora fiscal toda la
información relativa al ítem del
documento fiscal
3 subTotal 0x22 Enviar a la impresora fiscal el
subtotal parcial de la transacción
fiscal y esperar del módulo fiscal el
valor calculado por el
4 pago 0x23 Enviar a la impresora fiscal el
comando de forma de pago
5 abortDcto 0x24 Enviar a la impresora fiscal el
comando de cancelación del
documento fiscal
6 discount 0x25 Enviar a la impresora fiscal el
comando de descuento al total del
documento fiscal
7 closeDcto 0x26 Enviar a la impresora fiscal el
comando cierre del documento
fiscal
8 zeta 0x27 Enviar a la impresora fiscal el
comando de cierre de día
9 printX 0x28 Enviar a la impresora fiscal el
comando de impresión de reporte X
10 printText 0x29 Enviar a la impresora fiscal el
comando de impresión de texto
libre en el documento fiscal
Comandos asociados a documentos no fiscales
11 openDctoNoFiscal 0x30 Enviar a la impresora fiscal el
comando de apertura de
documento no fiscal
12 printTextNoFiscal 0x31 Enviar a la impresora fiscal el
comando de impresión de texto
libre en el documento no fiscal
13 closeDctoNoFiscal 0x32 Enviar a la impresora fiscal el
comando de cierre del documento
no fiscal
Comandos asociados a lectura de información de la impresora fiscal

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:47


Manual de Programación Impresora Fiscal

14 readStatus 0x40 Enviar a la impresora fiscal el


comando de petición de status
15 readCont 0x41 Enviar a la impresora fiscal el
comando de petición de contadores
y acumuladores fiscales
Comandos asociados al control del mecanismo de impresión
16 printLF 0x50 Enviar al módulo de impresión el
comando de impresión fin de línea
17 printFF 0x51 Enviar al módulo de impresión el
comando de impresión fin de
pagina
18 printRT 0x52 Enviar al módulo de impresión el
comando de impresión de texto
enriquecido
19 printBarCode 0x53 Enviar al módulo de impresión el
comando de impresión de códigos
de barra
20 cutPaper 0x54 Enviar al módulo de impresión el
comando de corte de papel
21 openCD 0x55 Enviar al módulo de impresión el
comando de apertura del cajón de
dinero
22 testMecPrt 0x56 Enviar al módulo de impresión el
comando de test
23 printCopiaZetas 0x57 Enviar al módulo de impresión el
comando de reimpresión de cierres
de día (o reportes zeta)
24 printCopiaTrFiscales 0x58 Enviar al módulo de impresión el
comando de reimpresión de
transacciones fiscales
25 printCopiaTrNoFiscales 0x59 Enviar al módulo de impresión el
comando de reimpresión de
transacciones No fiscales
26 setMargins 0x5A Enviar al módulo de impresión el
comando de cambio de margenes
de impresión
Comandos asociados a inicialización y configuración
27 initFiscal 0x60 Enviar a la impresora fiscal el
comando de inicialización fiscal
28 getInitInfo 0x61 Enviar a la impresora fiscal el
comando de lectura de datos de
inicialización fiscal
29 setDateTime 0x62 Enviar a la impresora fiscal el

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:48


Manual de Programación Impresora Fiscal

comando de cambio de fecha y


hora
30 getDateTime 0x63 Enviar a la impresora fiscal el
comando de lectura de fecha y hora
31 restartSys 0x64 Enviar a la impresora fiscal el
comando de reactivación del
módulo fiscal
32 setHeader 0x65 Enviar a la impresora fiscal el
comando de inicialización del
encabezamientos de facturas
33 setFooter 0x66 Enviar a la impresora fiscal el
comando de inicialización del pie
de páginas de facturas
34 readSerNum 0x67 Enviar a la impresora fiscal el
comando de lectura de números de
serie
35 test 0x68 Enviar a la impresora fiscal el
comando de autoverificacion
36 configMI 0x69 Enviar a la impresora fiscal el
comando de configuración del
módulo de impresión
37 serializar 0x6a Enviar a la impresora fiscal el
comando de serialización
Comandos especiales DGI
38 readHeaderFact 0x70 Enviar a la impresora fiscal el
comando de lectura del
encabezamiento de las facturas
39 readFiscalMem 0x71 Enviar a la impresora fiscal el
comando de lectura de memoria
fiscal
40 readAuditMem 0x72 Enviar a la impresora fiscal el
comando de lectura de memoria de
auditoría
41 checkConec 0x73 Enviar a la impresora fiscal el
comando de verificación de
conexión

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:49


Manual de Programación Impresora Fiscal

9.0.- Tabla de definición de estados fiscales.

Código Mnemónico Observaciones


0 Modo entrenamiento Pendiente por Panamá
1 Estado de espera de apertura de
documento
2 Estado documento fiscal abierto
3 Estado documento fiscal totalizado
4 Estado documento no fiscal abierto
5 Estado de error fiscal
6 Estado de error temporal del
mecanismo de impresión
7 Estado de error de hardware del
módulo fiscal
8 Estado rescatando información DGI

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:50


Manual de Programación Impresora Fiscal

10.0.- Secuencias permitidas de ejecución de comandos fiscales.

La tabla siguiente muestra la secuencia de ejecución permitida de los distintos comandos fiscales
definidos en los puntos anteriores de acuerdo al estado fiscal en que se encuentre y a la dll que pertenece el
comando.

Estado Códigos de comandos permitidos Dll utilizada


1 0x10,0x20,0x24,0x30,0x40-0x41,0x50-0x56,0x60- DllFiscalUSER.dll
0x6a,0x70-0x73
2 0x21-0x22-0x23-0x24,0x40-0x41 DllFiscalUSER.dll
3 0x24-0x25-0x26,0x40-0x41 DllFiscalUSER.dll
4 0x31-0x32,0x40-0x41 DllFiscalUSER.dll
8 0x40-0x41,0x60-0x6a,0x70-0x73 DllFiscalUSER.dll
6 0x40-0x41,0x70-0x73 DllFiscalUSER.dll
7 0x40-0x41,0x70-0x73 DllFiscalUSER.dll
8 0x40-0x41,0x70-0x73 DllFiscalDGI.dll

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:51


Manual de Programación Impresora Fiscal

Anexos

A1: Tipos de datos usados

Nombre Largo en bytes Valores posibles


BYTE 1 0-0xFF
Unsigned Int 4 0-0xFFFFFFFF
Uint
Unsigned Long 4 0-0xFFFFFFFF
Ulong
Unsigned Long Long 8 0-0xFFFFFFFFFFFFFFFF
BYTE* 4 (validar largo en Vc++) Puntero a un string
BOOL 1 TRUE-FALSE
ASCII 1 0x20-0x7F
Float Double (64 bits) 8
CONST (constante numérica) 1 0-0xFF

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:52


Manual de Programación Impresora Fiscal

A2: Ejemplo de uso dllFiscalDGI.dll y dllUser.dll en C#.

// Declaracion de dlls:

[DllImport("dllFiscalUSER.dll")] // Definición de libreria fiscal de


// usuario
[DllImport("dllFiscalDGI.dll")] // Definición de libreria fiscal
// DGI
[return: MarshalAs(UnmanagedType.Bool)] // Definición de tipo de datos de
// retorno para C#
public static extern unsafe bool test(byte* status);// Definición de Prototipos
// de funciones fiscales que
// utilizará el programa de usuario
public static extern unsafe bool infoX(byte* status);

..........

// Uso de las funciones fiscales en el manual de programación:

unsafe void SendTestAndInfoXCommands(){


byte * ptr = stackalloc[1000];
if(test(ptr)){
// Comando test ejecutado sin errores
if(infoX()){
// Comando informe X ejecutado sin errores
}
else{
// Error al ejecutar comando informe X
}
}else{
// Error al Ejecutar el comando test
}
}

Manual de programación Versión Dcto.1.1r3 © Andes Electrónica Ltda Chile Pág.:53

También podría gustarte