Manual de Comandos Tiquedoras
Manual de Comandos Tiquedoras
Manual de Comandos Tiquedoras
Documento: DSB-MCMD-2013AR025-EFH/00
1. D
DEESSC
CRRIIPPC
CIIÓ
ÓNNG
GEEN
NEER
RAALL -------------------------------------------------------------------------------------------------------- 5
Estaciones de impresión ----------------------------------------------------------------------------------------------------------- 5
Acceso al interior de las impresoras fiscales ----------------------------------------------------------------------------------- 5
Comunicaciones -------------------------------------------------------------------------------------------------------------------- 5
Modos de funcionamiento (entrenamiento y fiscal) ---------------------------------------------------------------------------- 6
1.1. COMUNICACIONES CON EL HOST ---------------------------------------------------------------------------------------------------- 7
1.2. MEMORIA FISCAL ---------------------------------------------------------------------------------------------------------------------- 9
1.3. ACUMULADORES ----------------------------------------------------------------------------------------------------------------------12
1.4. BLOQUEOS -----------------------------------------------------------------------------------------------------------------------------13
1.5. CORTE EN LA ALIMENTACIÓN ELÉCTRICA -----------------------------------------------------------------------------------------13
1.6. ACTUALIZACIÓN DEL FIRMWARE ---------------------------------------------------------------------------------------------------14
2. COMANDOS FISCALES --------------------------------------------------------------------------------------------------------- 15
2.1. ESTRUCTURA DE LOS COMANDOS --------------------------------------------------------------------------------------------------15
2.2. CAMPOS DE LOS COMANDOS --------------------------------------------------------------------------------------------------------15
2.2.1. Tipos de datos y abreviaturas ------------------------------------------------------------------------------------------- 15
2.2.2. Longitud de los campos -------------------------------------------------------------------------------------------------- 16
2.2.3. Campos vacíos ------------------------------------------------------------------------------------------------------------- 16
2.2.4. Campos de montos -------------------------------------------------------------------------------------------------------- 16
2.2.5. Cantidades ----------------------------------------------------------------------------------------------------------------- 17
2.2.6. Campos con texto --------------------------------------------------------------------------------------------------------- 18
2.2.7. Campos opcionales ------------------------------------------------------------------------------------------------------- 19
2.3. CLASIFICACIÓN DE LOS COMANDOS------------------------------------------------------------------------------------------------20
2.3.1. Comandos de inicialización, baja fiscal y configuración ------------------------------------------------------------ 20
2.3.2. Comandos de diagnóstico y consulta ----------------------------------------------------------------------------------- 20
2.3.3. Comandos de control fiscal ---------------------------------------------------------------------------------------------- 20
2.3.4. Comandos de comprobante fiscal --------------------------------------------------------------------------------------- 20
2.3.5. Comandos de comprobantes no fiscales -------------------------------------------------------------------------------- 20
2.3.6. Comandos de comprobantes no fiscales homologados --------------------------------------------------------------- 20
2.3.7. Comando de código de barras ------------------------------------------------------------------------------------------- 21
2.3.8. Comandos de control de la impresora ---------------------------------------------------------------------------------- 21
2.3.9. Comandos de fecha, hora encabezamiento y cola de tique. --------------------------------------------------------- 21
2.3.10. Comando de cajón de dinero ------------------------------------------------------------------------------------------- 21
2.3.11. Comando de display ----------------------------------------------------------------------------------------------------- 21
2.3.12. Comandos para uso de la DGI ----------------------------------------------------------------------------------------- 21
3. DESCRIPCIÓN DE LOS COMANDOS---------------------------------------------------------------------------------------- 23
3.1. COMANDOS DE ÍNICIALIZACIÓN, BAJA Y CONFIGURACIÓN ---------------------------------------------------------------------23
3.1.1. InitEpromFiscal - Inicialización ---------------------------------------------------------------------------------------- 23
3.1.2. KillEpromFiscal - Baja de la memoria fiscal -------------------------------------------------------------------------- 25
3.1.3. ConfigureControllerByBlock - Configuración del controlador en bloque ----------------------------------------- 26
3.1.4. GeneralConfiguration - Configuración general del controlador --------------------------------------------------- 30
3.1.5. ConfigureControllerByOne - Configuración del controlador fiscal por parámetros ---------------------------- 35
3.1.6. ChangeIVA Responsability - Cambio de responsabilidad frente al IVA ------------------------------------------- 39
3.1.7. ChangeIBNumber - Cambio número de Ingresos Brutos ------------------------------------------------------------ 40
3.1.8. ChangeStartDate - Cambio fecha de inicio de actividades ---------------------------------------------------------- 41
3.1.9. SetComSpeed - Seteo de velocidad de comunicación ----------------------------------------------------------------- 42
3.2. COMANDOS DE DIAGNÓSTICO Y CONSULTA---------------------------------------------------------------------------------------43
3.2.1. StatusRequest - Consulta de estado ------------------------------------------------------------------------------------- 43
3.2.2. STATPRN - Consulta de estado intermedio ---------------------------------------------------------------------------- 44
3.2.3. GetConfigurationData - Consulta de configuración ----------------------------------------------------------------- 45
2
3.2.4. GetGeneralConfigurationData - Consulta de configuración general ---------------------------------------------- 48
3.2.5. GetInitData - Consulta de datos de inicialización -------------------------------------------------------------------- 51
3.2.6. GetPrinterVersion - Consulta de versión de controlador fiscal ----------------------------------------------------- 54
3.3. COMANDOS DE CONTROL FISCAL ---------------------------------------------------------------------------------------------------55
3.3.1. HistoryCapacity - Capacidad restante --------------------------------------------------------------------------------- 55
3.3.2. DailyClose - Cierre de jornada fiscal ---------------------------------------------------------------------------------- 56
3.3.3. DailyCloseByDate - Reporte de auditoria por fechas ---------------------------------------------------------------- 59
3.3.4. DailyCloseByNumber - Reporte de auditoria por número de ‘Z’ --------------------------------------------------- 61
3.3.5. GetDailyReport - Reporte de registro diario -------------------------------------------------------------------------- 63
3.3.6. GetWorkingMemory - Consulta de memoria RAM, diaria, o de trabajo ------------------------------------------- 66
3.3.7. SendFirstIVA - Iniciar información de IVA ---------------------------------------------------------------------------- 69
3.3.8. NextIVATransmission - Continuar información de IVA -------------------------------------------------------------- 72
3.3.9. GetLastExecutionError – Obtener último error de ejecución ------------------------------------------------------- 76
3.3.10. GetFirstLogBlock – Obtener primer bloque del log interno ------------------------------------------------------- 77
3.3.11. GetNextLogBlock – Obtener próximo bloque del log interno ------------------------------------------------------ 78
3.3.12. GetAuditFirstBlock – Obtener primer bloque de registro de cinta de auditoría -------------------------------- 79
3.3.13. GetAuditNextBlock – Obtener siguiente bloque de registro de cinta de auditoría ------------------------------ 81
3.3.14. DefineErasableZRange – Definir Rango de Zetas Borrables ------------------------------------------------------ 82
3.4. COMANDOS DE COMPROBANTE FISCAL --------------------------------------------------------------------------------------------89
3.4.1. OpenFiscalReceipt - Abrir comprobante fiscal ----------------------------------------------------------------------- 89
3.4.2. PrintFiscalText - Imprimir texto fiscal --------------------------------------------------------------------------------- 92
3.4.3. PrintLineItem - Imprimir ítem ------------------------------------------------------------------------------------------- 94
3.4.4. LastItemDiscount - Descuento sobre último ítem vendido ----------------------------------------------------------- 99
3.4.5. GeneralDiscount - Descuento general -------------------------------------------------------------------------------- 101
3.4.6. ReturnRecharge - Devolución de envases, Bonificaciones y Recargos ------------------------------------------- 104
3.4.7. ChargeNonRegisteredTax - Recargo IVA a Responsable No Inscripto ------------------------------------------- 108
3.4.8. Perceptions - Percepciones --------------------------------------------------------------------------------------------- 109
3.4.9. Subtotal -------------------------------------------------------------------------------------------------------------------- 111
3.4.10. TotalTender – Total / Pago -------------------------------------------------------------------------------------------- 113
3.4.11. CloseFiscalReceipt - Cerrar comprobante fiscal ------------------------------------------------------------------- 116
3.5. COMANDOS DE COMPROBANTE NO FISCAL -------------------------------------------------------------------------------------- 119
3.5.1. OpenNonFiscalReceipt - Abrir comprobante no fiscal -------------------------------------------------------------- 119
3.5.2. OpenNonFiscalSlip - Abrir comprobante no fiscal en estación slip ----------------------------------------------- 120
3.5.3. PrintNonFiscalText - Imprimir texto no fiscal ----------------------------------------------------------------------- 122
3.5.4. CloseNonFiscalReceipt - Cerrar comprobante no-fiscal ----------------------------------------------------------- 124
3.6. COMANDOS DE COMPROBANTE NO FISCAL HOMOLOGADO ------------------------------------------------------------------- 126
3.6.1. OpenDNFH - Abrir documento no fiscal homologado -------------------------------------------------------------- 126
3.6.2. PrintDNFHInfo - Imprimir línea de información en DNFH -------------------------------------------------------- 128
3.6.3. PrintSignDNFH – Impresión de firma y aclaración en DNFH ---------------------------------------------------- 137
3.6.4. ReceiptText - Texto de líneas de recibos ------------------------------------------------------------------------------ 138
3.6.5. CloseDNFH - Cerrar documento no fiscal homologado ------------------------------------------------------------ 139
3.6.6. DNFHFarmacias - Documento no fiscal homologado farmacias ------------------------------------------------- 142
3.6.7. DNFHReparto - Documento no fiscal homologado reparto -------------------------------------------------------- 143
3.6.8. SetVoucherOptions – Cargar Opciones de Voucher----------------------------------------------------------------- 144
3.7. COMANDOS COMUNES A VARIOS TIPOS DE DOCUMENTOS -------------------------------------------------------------------- 146
3.7.1. Cancel – Cancelación --------------------------------------------------------------------------------------------------- 146
3.7.2. Reprint – Reimpresión del último comprobante emitido ------------------------------------------------------------ 147
3.7.3. BarCode - Código de barras -------------------------------------------------------------------------------------------- 148
3.8. COMANDOS DE CONTROL DE LA IMPRESORA ----------------------------------------------------------------------------------- 151
3.8.1 FeedReceipt - Avanzar papel de tiques--------------------------------------------------------------------------------- 151
3.8.2 FeedJournal - Avanzar papel cinta de auditoría---------------------------------------------------------------------- 152
3.8.3 FeedReceiptJournal - Avanzar papeles de tiques y cinta de auditoría --------------------------------------------- 153
3.9. COMANDOS DE FECHA, HORA, ENCABEZAMIENTO Y COLA DE DOCUMENTOS---------------------------------------------- 154
3
3.9.1. SetDateTime - Ingresar fecha y hora ---------------------------------------------------------------------------------- 154
3.9.2. GetDateTime - Consultar fecha y hora -------------------------------------------------------------------------------- 155
3.9.3. SetHeaderTrailer - Programar texto de encabezamiento y cola de comprobantes ------------------------------ 156
3.9.4. GetHeaderTrailer - Consultar texto de encabezamiento y cola de comprobantes ------------------------------- 158
3.9.5. SetCustomerData - Datos comprador --------------------------------------------------------------------------------- 159
3.9.6. SetFantasyName - Programar texto del nombre de fantasía del propietario ------------------------------------ 162
3.9.7. GetFantasyName - Reportar texto del nombre de fantasía del propietario -------------------------------------- 164
3.9.8. SetEmbarkNumber - Cargar información remito / comprobante original ---------------------------------------- 165
3.9.9. GetEmbarkNumber - Reportar información remito / comprobante original ------------------------------------- 167
3.9.10. ChangeBussinessStartupDate – Cambiar fecha de inicio de actividad ------------------------------------------ 168
3.9.11. SetUserLinesByZone – Carga de líneas de usuario por zona ----------------------------------------------------- 169
3.9.12. GetUserLinesByZone – Obtener líneas de usuario por zona------------------------------------------------------ 171
3.10. COMANDOS DE CAJÓN DE DINERO ---------------------------------------------------------------------------------------------- 173
3.10.1. OpenDrawer - Abrir cajón -------------------------------------------------------------------------------------------- 173
3.11. COMANDO DE DISPLAY ----------------------------------------------------------------------------------------------------------- 174
3.11.1. Estructura del display de cliente -------------------------------------------------------------------------------------- 174
3.11.2. Escritura en el display ------------------------------------------------------------------------------------------------- 175
3.11.3. WriteDisplay - Escribir en display ----------------------------------------------------------------------------------- 176
3.12. COMANDOS DE COMUNICACIÓN POR RED-------------------------------------------------------------------------------------- 177
3.12.1. SetNetworkParameters – Cargar parámetros de red -------------------------------------------------------------- 177
3.12.2. GetNetworkParameters – Obtener parámetros de red ------------------------------------------------------------- 179
3.12.3. SetMailServerConfiguration – Cargar configuración del servidor de e-mail ---------------------------------- 180
3.12.4. GetMailServerConfiguration – Leer configuración del servidor de e-mail ------------------------------------- 182
3.12.5. SendDocByEmail – Enviar documento por e-mail ----------------------------------------------------------------- 183
3.13. COMANDOS PARA USO DE LA AFIP --------------------------------------------------------------------------------------------- 185
3.13.1. DGICommandProcessor - Procesador de comandos AFIP ------------------------------------------------------- 185
3.13.2. DGIRequestByDate - Reporte de auditoría AFIP por fechas ----------------------------------------------------- 185
3.13.3. DGIRequestByZNumber - Reporte de auditoria AFIP por Z ----------------------------------------------------- 185
3.13.4. KillEprom - Comando de baja del controlador fiscal -------------------------------------------------------------- 186
4. DOCUMENTOS -------------------------------------------------------------------------------------------------------------------- 187
4.1. TIQUE --------------------------------------------------------------------------------------------------------------------------------- 187
4.2. TIQUE FACTURA --------------------------------------------------------------------------------------------------------------------- 191
APÉNDICES --------------------------------------------------------------------------------------------------------------------------- 196
5
1. Descripción general
Las impresoras fiscales HASAR modelos SMH/P-615F, SMH/P-PR4F, SMH/P-950F, SMH/P-
951F, SMH/P-715F, SMH/P-PR5F, SMH/P-441F y SMH/P-451F cumplen con las especificacio-
nes de la Resolución General de la DGI Nº 4.104 (texto sustituido por la Resolución General
AFIP 259/98 –con sus modificatorias y complementarias-).
Estaciones de impresión
Los modelos SMH/P-615F, SMH/P-715F, y SMH/P-441F poseen una estación de impresión por
impacto -9 agujas- con papel copiativo químico, emitiendo un original para el comprobante
emitido y copia para la cinta de auditoría (cinta de papel de 40 caracteres de ancho en modo
normal [45 caracteres en el caso de los modelos SMH/P-441F y SMH/P-451F] y 20 caracteres
en modo expandido [22 caracteres en el caso de los modelos SMH/P-441F y SMH/P-451F]).
▪ La sección que contiene la electrónica fiscal se encuentra cerrada con precinto, y para
acceder a ella es necesario romper el mismo. La sección de electrónica fiscal contiene el
circuito controlador fiscal y la memoria EPROM fiscal donde se almacenan los registros
diarios. La sección de electrónica no-fiscal contiene el circuito controlador del aparato
impresor.
Comunicaciones
Sólo el circuito controlador fiscal puede recibir comunicaciones (comandos) del exterior. El
circuito controlador de impresora se encuentra comunicado con el controlador fiscal a través
de una línea serie, de manera que cualquier comunicación dirigida a la impresora debe pro-
cesarse en el circuito controlador fiscal antes de ser ejecutada. La comunicación responde a
un esquema Master-Slave puro; es decir, ningún dispositivo puede tomar control del vínculo
por iniciativa propia.
▪ Conector DB-9 (indicado con la leyenda HOST). A este puerto se conecta el host en el que
▪ Conector DB-9 (indicado con la leyenda USO AFIP). A este puerto se conecta un aparato
recolector de datos Es de uso exclusivo de la autoridad fiscal y no puede usárselo para
ninguna función excepto las especialmente descritas en la Resolución General Nº 4.104
(texto sustituido por la Resolución General 259/98 –con sus modificatorias y complemen-
tarias-). Las características de este conector se describen en el Apéndice 7.
▪ Puerto serie USB 2.0. A este puerto se puede conectar el host en el que reside el progra-
ma de caja.
(*)
▪ Una interfaz RJ45 para conexión a ethernet.
(*)
▪ Un puerto PS/2 (solo 441).
(*)
No disponibles para uso fiscal. Sólo están presentes para tareas de mantenimiento por parte del Servicio Técnico Autori-
zado.
Los drivers para el uso de esta impresora con interfaz USB (SO Windows / Linux) pueden ser
descargados de:
http://www.grupohasar.com/es-ar/product/hardware/equipos-fiscales/impresoras
▪ En los comprobantes que se emiten se imprime la leyenda “*** NO FISCAL ***” cada 5 lí-
neas, no se imprime el logotipo fiscal y los espacios en blanco son reemplazados con el
caracter ‘?’. Además, no se imprimen en el encabezamiento los datos fiscales corres-
pondientes al propietario (emisor del comprobante), etc.
▪ Si bien se puede emitir el comando de cierre diario ‘Z’ (DailyClose), los datos almacena-
dos en la memoria diaria no son volcados a la memoria EPROM fiscal.
Paquete A -----------------------------------------------
---------------------------------------------- ACK
----------------------------------------------- DC2 o DC4
----------------------------------------------- Respuesta A
NAK -----------------------------------------------
----------------------------------------------- Respuesta A
ACK -----------------------------------------------
Paquete B -----------------------------------------------
----------------------------------------------- ACK
----------------------------------------------- Respuesta B
ACK -----------------------------------------------
▪ Cada vez que el controlador fiscal recibe un paquete del host, responde con un caracter
‘ACK ‘ (06H –ASCII 6 decimal-) en caso de que la transmisión se haya realizado sin erro-
res, o con un caracter ‘NAK’ (15H –ASCII 21 decimal-) en caso de que haya habido erro-
res. De manera similar, cuando el host recibe un paquete del controlador fiscal (en el es-
quema anterior se lo indica como respuesta), responde con un caracter ‘ACK’ o un carac-
ter ‘NAK’.
▪ Si, tras enviar un paquete, el host recibe un caracter ‘NAK’ del controlador fiscal, debe
reenvíar el paquete.
▪ NOTA:
Este punto solamente es válido en el modelo SMH/P-441F.
Toda vez que el host envíe el comando StatPRN debe enviar un número de secuencia
diferente al del comando original. La respuesta del controlador también llevará el nú-
mero de secuencia del comando StatPRN (ver descripción del formato de los comandos
en el punto 2.1).
▪ Una vez ejecutado el comando, el controlador fiscal envía al host el paquete de respues-
ta. La respuesta lleva el número de secuencia del último comando StatPRN, pero el có-
digo de operación del comando original.
▪ Si el host recibe el paquete con errores, responde al controlador fiscal con NAK y se pre-
para para volver a recibir el paquete. Al recibir el NAK, el controlador fiscal vuelve a en-
viar el paquete.
Las siguientes situaciones corresponden a errores en el uso del protocolo, por lo que sólo
pueden presentarse en un ambiente de desarrollo.
▪ El buffer del controlador fiscal en el que se almacenan los comandos recibidos del host
tiene una tamaño tal que un comando ocupa menos del 75% de su capacidad. En el caso
de que, por error, se envíe un comando que supere este 75%, el controlador fiscal envia-
rá al host, como advertencia, el código DC3 (13H). De forma inversa, la transmisión de
mensajes desde el controlador fiscal puede habilitarse o deshabilitarse desde el host. Si
el host envía el código DC3, el controlador quedará deshabilitado para transmitir. La
transmisión volverá a habilitarse cuando el host envíe el código DC1 (11H).
▪ Cada vez que el controlador fiscal envía una respuesta, espera que el host responda con
ACK o NAK. Si el host no lo hace, el controlador fiscal proseguirá intentando reenviar la
respuesta, con lo que la comunicación quedará bloqueada. Para salir de esta situación
basta con enviar desde el host el ACK o NAK omitido.
La memoria fiscal EPROM solo puede ser accedida mediante el controlador fiscal (tanto para
escritura como para lectura). Cada vez que se energiza al equipo el controlador fiscal com-
prueba la consistencia de los datos de la memoria fiscal EPROM. Esta puede encontrarse en
alguno de los siguientes estados:
• Sin inicializar.
Para ingresar en el modo fiscal debe emitirse el comando InitEpromFiscal.
• Inicializada.
Una memoria fiscal EPROM inicializada puede presentar dos estados según la consistencia
de sus datos:
◦ Datos consistentes.
El equipo está listo para operar normalmente.
◦ Datos inconsistentes.
Si los datos no son consistentes (por haberse cambiado la memoria fiscal EPROM u
otro motivo), el controlador fiscal se bloquea y sólo puede salirse de esta condición
accediendo físicamente al circuito fiscal y realizando un MAC. Este procedimiento
sólo puede ser realizado por Compañía HASAR o algunos de sus Servicios Técnicos
Cuando se alimenta un equipo con la memoria fiscal EPROM bloqueada, se imprime el si-
guiente mensaje “Controlador fiscal bloqueado”. En este estado es imposible proseguir ope-
rando hasta tanto no se lo desbloquee.
• Datos referidos al propietario del controlador fiscal, al propio controlador fiscal y a la fe-
cha de inicialización. Estos datos se graban mediante el comando InitEpromFiscal y son:
• Datos referidos a las ventas diarias, a los comprobantes emitidos y a las veces que el con-
trolador fiscal quedó bloqueado. Estos datos se almacenan en forma de registros diarios.
La memoria fiscal tiene capacidad para 1850 registros en los modelos SMH/P-615F,
SMH/P-PR4F, SMH/P-950F, y SMH/P-951F, y capacidad para 3800 registros en los mode-
los SMH/P-715F, SMH/P-PR5F, SMH/P-441F y SMH/P-451F. Cada uno de los registros se
graba mediante el comando DailyClose (Z). Los datos almacenados en cada registro dia-
rio son:
◦ (*) Total del acrecentamiento del IVA por ventas a responsables no inscriptos.
◦ Número del último tique / tique factura ‘B/C’ emitido durante la jornada fiscal.
◦ Número del último tique factura ‘A’ emitido durante la jornada fiscal.
◦ (*) Total del acrecentamiento del IVA por créditos a responsables no inscriptos.
◦ Número del último tique nota de crédito ‘B/C’ emitido durante la jornada fiscal.
◦ Número del último tique nota de crédito ‘A’ emitido durante la jornada fiscal.
1.3. Acumuladores
Durante la operación, el controlador fiscal mantiene en memoria de trabajo una serie de
acumuladores con los datos de ventas, tiques, reportes, etc., que se producen durante la
jornada fiscal. Estos acumuladores son actualizados al ejecutarse determinados comandos y,
al cierre de la jornada fiscal, los valores almacenados en algunos de ellos son grabados en la
memoria fiscal EPROM, mientras que otros son reseteados a cero.
Cada vez que se energiza la impresora el controlador fiscal comprueba la consistencia de los
datos de la memoria de trabajo. Si estos no son consistentes, el controlador fiscal se bloquea
y sólo puede salirse de esta condición accediendo físicamente al circuito fiscal y realizando
un MAC (es decir, es necesario romper el precinto fiscal). Este procedimiento sólo puede ser
realizado por Compañía HASAR o algunos de sus Servicios Técnicos Autorizados.
Una vez finalizado el proceso la impresora fiscal queda lista para operar normalmente.
• Si se estaban imprimiendo las dos primeras líneas del encabezado del comprobante, una
vez recuperada la energía las líneas se completan automáticamente.
• Si se estaba realizando un cierre de jornada fiscal, una vez recuperada la energía el co-
mando no es cancelado y se completa automáticamente.
Para cambiar la versión del firmware debe cortarse la alimentación del controlador fiscal y
reemplazar la EPROM de programa (donde está grabado el firmware). Cuando se alimenta al
controlador fiscal el programa de control fiscal verifica que la versión del firmware coincida
con la grabada en la memoria fiscal EPROM. Si no coinciden, se activa el mecanismo de cam-
bio de versión. En estas condiciones el controlador fiscal:
b. Genera un bloqueo de la impresora fiscal. Para salir de este estado debe realzarse un
MAC MAC (esta operación sólo puede ser efectuada por Compañía HASAR o sus Servicios
Técnicos Autorizados).
El procedimiento de cambio de firmware se puede realizar hasta 16 veces. Una vez alcanzado
este número, si
se intenta realizar el cambio una vez más, el controlador fiscal se bloquea enviando un men-
saje de error de escritura en memoria fiscal EPROM. Para salir de este estado debe volver a
instalarse la versión anterior del firmware y realizarse un MAC (esta operación sólo puede ser
efectuada por Compañía HASAR o sus Servicios Técnicos Autorizados).
H Hexadecimal
Consiste en caracteres que representan dígitos hexadecimales -(‘0’) ASCII 48 decimal
(30H) al (‘9’) ASCII 57 decimal (39H), y/o (‘A’) ASCII 65 decimal (41H) al (‘F’) ASCII 70
decimal (46H) y/o (‘a’) ASCII 97 decimal (61H) al (‘f’) ASCII 102 decimal (66H)-.
A Alfanumérico
Consiste en caracteres en el rango (‘ ’) ASCII 32 decimal (20H) al (‘»’) ASCII 175 decimal
(afH).
N Numérico
Consiste en caracteres que representan dígitos decimales –(‘0’) ASCII 48 decimal (30H) al
(‘9’) ASCII 57 decimal (39H)- y del punto decimal (2eH –ASCII 46 decimal-), precedidos
del signo positivo (2bH –ASCII 43 decimal-) o negativo (2dH –ASCII 45 decimal-). Los núme-
ros sin signo son considerados positivos. Los ceros a la izquierda pueden ser omitidos.
D Fecha (AAMMDD)
‘AA’ Debe estar en el rango “00” – “95”, representando al año ‘20AA’.; y “96” – “99”
‘DD’ Debe estar en el rango “01” – “31”, representando al dia del mes, para el año
indicado.
El cero a la izquierda puede omitirse en el campo del año, pero no pueden omitirse en el
campo del mes, ni en el del día.
T Hora (HHMMSS)
‘MM’ Debe estar en el rango “00” – “59”, representando los minutos de la hora indi-
cada.
‘SS’ Debe estar en el rango “00” – “59”, representando los segundos de la hora indi-
cada.
El cero a la izquierda puede omitirse en el campo de las horas, pero no en el de los minu-
tos, ni en el de los segundos.
Si se recibe un comando con el tipo erróneo de datos para un determinado campo, se respon-
de con un error de campo en el status fiscal (ver apéndice 2) y el comando es ignorado por el
controlador fiscal.
nnnnnn.nn[nn]
± Indica el signo que afecta al número representado (si éste es positivo, puede no
indicarse).
nnnnnn Indica que el campo tiene una parte entera de tantos dígitos como ‘n’ se indican
(en este caso, 6 dígitos).
nn[nn] Indica que el campo tiene una parte decimal de tantos dígitos como ‘n’ se indi-
can.
Excepto los modelos SMH/P-PR5F versión 2.01, SMH/P-715F versiones 2.01 -y
posteriores-, SMH/P-441F y SMH/P-451F (4 decimales para el precio unitario del
comando de impresión de ítem), en el resto de los casos y modelos de impresora
fiscales los montos se indican siempre con dos decimales.
En los modelos SMH/P-441F y SMH/P-451F, para montos enteros los decimales
pueden omitirse. Para el resto de los modelos su uso es obligatorio.
Los campos de montos son de longitud variable. En caso de que la parte entera tenga menos
dígitos que el máximo permitido, no es necesario llenar el campo con ceros a la izquierda (no
debe hacerse tampoco con espacios). En caso de querer rellenar la longitud del campo a de-
recha (en la parte decimal), hacerlo con ceros y no con espacios.
2.2.5. Cantidades
En los modelos SMH/P-615F, SMH/P-950F, SMH/P-951F, SMH/P-PR4F, SMH/P-PR5F versión
1.00 y SMH/P-715F versión 1.00, el campo correspondiente a las cantidades tiene un formato
de 3 dígitos en parte entera, con hasta 10 decimales, con las siguientes características:
▪ No es necesario llenar los diez lugares decimales. Sí es obligatorio indicar el punto de-
cimal y, al menos, un dígito decimal aunque éste sea cero.
En los modelos SMH/P-441F y SMH/P-451F el campo indicador de cantidades tiene las si-
guientes características:
▪ Si se han ingresado menos de tres decimales, se completan con ceros al final, siempre
que no se superen los nueve caracteres imprimibles.
▪ Comando de baja:
Bloquea definitivamente el controlador fiscal. Es decir, no es posible recuperarse
del bloqueo a no ser que se cambie la memoria fiscal EPROM.
▪ Comandos de configuración:
Configuran ciertos parámetros de operación del controlador fiscal.
Inicializa la impresora fiscal grabando en la memoria fiscal EPROM los siguientes datos co-
rrespondientes al emisor y al controlador fiscal (todos los campos tienen longitud fija):
d. La fecha de inicialización.
La responsabilidad frente al IVA del emisor puede tomar los siguientes valores:
I : responsable inscripto
E: exento
A: no responsable
M: monotributista
S: monotributista social
Este comando causa que el controlador fiscal abandone el modo entrenamiento y lo pone en
modo fiscal. Una vez emitido este comando, el controlador fiscal no puede regresar al modo
entrenamiento.
El string con los datos que se graban en la memoria fiscal tiene el siguiente formato:
El programador debe incluirlo en su programa de caja (restringiendo su ejecución por error o negligencia)
Responde dando de baja la memoria fiscal, de manera que no puede volver a ser escrita (una
memoria dada de baja igual permite obtener reportes fiscales y de auditoría).
Este comando sólo puede ejecutarse inmediatamente después de un cierre de jornada fiscal
(comando DailyClose).
Ejemplo: ▒∟HHP0000000
Ejemplo: C080∟0600
Este comando es generado por el método BajaFiscal del OCX Fiscal Hasar
Nota:
Este comando existe por compatibilidad con otros modelos. Para configurar al modelo
SMH/P-441F se recomienda usar el comando GeneralConfiguration.
▪ Monto límite a partir del cual los comprobantes fiscales a consumidor final deben llevar
obligatoriamente los datos del comprador. En la práctica, si no se han ingresado los da-
tos del comprador, el controlador fiscal no permite vender más allá de este límite.
Este límite no es válido para las notas de crédito, en las que siempre es obligatorio in-
gresar los datos del comprador (sólo modelos SMH/P-PR5F, SMH/P-715F y SMH/P-441F).
▪ Monto límite para comprobantes fiscales y tiques nota de crédito con todos los datos del
comprador. El controlador fiscal no permite vender más allá de este límite.
Nota importante:
El controlador no responde a ningún comando mientras se encuentra imprimiendo la
copia automático de un comprobante (responde con caracteres ‘ACK’ o ‘NAK’ ante la
recepción del paquete, pero ésta no es una respuesta al procesamiento del comando).
Por lo tanto, el programa aplicativo deberá reenviar el comando hasta que reciba una
respuesta. El tiempo durante el cual el controlador fiscal no entrega la respuesta al
comando recibido, depende de la longitud de la copia a imprimir.
▪ Impresión / deshabilitación impresión de las leyendas “CAMBIO $0.00”, sólo si una vez
emitido el comando CloseFiscalReceipt el vuelto es igual a $0.00.
▪ Impresión automática / deshabilitación impresión de las líneas con los siguientes datos:
▪ Tipo de corte que el troquelador realizará una vez impreso un comprobante (corte total,
parcial o sin corte).
Los valores por defecto con los que la impresora sale de fábrica son:
› Límite (monto) a partir del cual un tique factura a consumidor final debe llevar los da-
tos de éste: $ 1.000 (pesos un mil).
Notas:
La deshabilitación de la impresión automática de leyendas del encabezado es para uso en
controladores fiscales con papel que tenga dicha información preimpresa al dorso.
El corte parcial del papel sólo es operativo en los controladores fiscales modelo SMH/P-950F
y SMH/P-951F.
Ejemplo: C080∟0600
Este comando es generado por el método ConfigurarControladorPorBloque del OCX Fiscal Ha-
sar
Nota:
Para configurar algunos de los parámetros del presente comando puede usarse el comando
ConfigureControllerByOne.
▪ Monto límite a partir del cual los comprobantes fiscales a consumidor final deben llevar
obligatoriamente los datos del comprador. En la práctica, si no se han ingresado los da-
tos del comprador, el controlador fiscal no permite vender más allá de este límite.
Este límite no es válido para las notas de crédito, en las que siempre es obligatorio in-
gresar los datos del comprador (sólo modelos SMH/P-PR5F, SMH/P-715F, SMH/P-441F y
SMH/P-451F).
▪ Monto límite para comprobantes fiscales y tiques nota de crédito con todos los datos del
comprador. El controlador fiscal no permite vender más allá de este límite.
Nota importante:
El controlador no responde a ningún comando mientras se encuentra imprimiendo la
copia automático de un comprobante (responde con caracteres ‘ACK’ o ‘NAK’ ante la
recepción del paquete, pero ésta no es una respuesta al procesamiento del comando).
Por lo tanto, el programa aplicativo deberá reenviar el comando hasta que reciba una
respuesta. El tiempo durante el cual el controlador fiscal no entrega la respuesta al
comando recibido, depende de la longitud de la copia a imprimir.
▪ Impresión / deshabilitación impresión de las leyendas “CAMBIO $0.00”, sólo si una vez
emitido el comando CloseFiscalReceipt el vuelto es igual a $0.00.
▪ Impresión automática / deshabilitación impresión de las líneas con los siguientes datos:
Los valores por defecto con los que la impresora sale de fábrica son:
El corte parcial del papel sólo es operativo en los controladores fiscales modelo SMH/P-950F
y SMH/P-951F.
Ejemplo: e∟P∟P∟1000.00∟25000.00∟0.0∟1∟N∟P∟F∟P∟P∟CuentaCorriente∟P
Ejemplo: C080∟0600
Este comando es generado por el método ConfigurarControladorCompleto del OCX Fiscal Ha-
sar
▪ Impresión / deshabilitación impresión de las leyendas CAMBIO $0.00 si una vez emitido el
comando CloseFiscalReceipt el cambio es igual a $0.00.
▪ Impresión de marco.
Si este parámetro está activado, se imprimirá el marco en cada documento. Este pará-
metro no tiene uso en modelos: SMH/P-715F, SMH/P-441F y SMH/P-451F
▪ Chequeo de desborde.
Comprueba si el monto del documento ha superado los límites pre-establecidos a medida
que se realiza el documento (en cuyo caso no permite seguir vendiendo), o sólo en el
momento de cerrarlo (permite seguir vendiendo pero rechaza el cierre hasta que no se
hayan hecho las devoluciones o descuentos necesarios). Disponible solamente en el mo-
delo SMH/P-715F v 3.02 y posteriores, en el modelo SMH/P-PR5F v2.01, y en los modelos
SMH/P-441F y SMH/P-451F.
Notas:
Ejemplo: d∟@∟P
Ejemplo: C080∟0600
Este comando es generado por el método ConfigurarControlador del OCX Fiscal Hasar
Este comando sólo puede ser ejecutado inmediatamente después de emitido el comando de
cierre de jornada fiscal (DailyClose), y sólo será aceptado hasta un máximo de cinco veces.
Ejemplo: c∟M
Ejemplo: C080∟0600
Este comando es generado por el método CambiarResponsabilidadIVA del OCX Fiscal Hasar
(versión 051122 y posteriores)
Este comando sólo puede ser ejecutado inmediatamente después de emitido el comando de
cierre de jornada fiscal (DailyClose), y sólo será aceptado hasta un máximo de cinco veces.
Ejemplo: n∟IIBB-0000000000
Ejemplo: C080∟0600
Este comando es generado por el método CambiarCodigoIngresosBrutos del OCX Fiscal Hasar
(versión 051122 y posteriores)
Este comando sólo puede ser ejecutado inmediatamente después de emitido el comando de
cierre de jornada fiscal (DailyClose).
Nota:
Esta fecha se borra al hacerse un MAC. Una vez borrada, la fecha de inicio de actividades
vuelve a ser la grabada en memoria fiscal durante la inicialización, por lo que el comando
debe emitirse nuevamente luego de la operación de MAC.
Ejemplo: x∟070827
Ejemplo: C080∟0600
Este comando es generado por el método CambiarFechaInicioActividades del OCX Fiscal Ha-
sar (versión 051122 y posteriores)
Ejemplo: á∟9600
Ejemplo: C080∟0600
Este comando es generado por el método CambiarVelocidad del OCX Fiscal Hasar
Responde, a través de la línea serie, con el estado en que se encuentra el controlador fiscal y
el hardware de la impresora. No afecta la memoria de trabajo.
Nota:
El significado de la respuesta de los campos: Status de la impresora, Status fiscal, Status au-
xiliar y Status de documento se describe en los Apéndices 2, 3, 4 y 5.
Ejemplo: *
Ejemplo: C080∟0600∟1234∟03∟890∟01∟523∟546∟125
Responde, a través de la línea serie, con el estado en que se encuentra el controlador fiscal y
el hardware de la impresora.
Nota:
Ejemplo: í
Ejemplo: C080∟0600
Este comando es generado por el método PedidoDeStatus del OCX Fiscal Hasar
Responde, a través de la línea serie, con los parámetros de configuración con los que opera
el controlador fiscal.
No afecta la memoria de trabajo.
Ejemplo: f
C080∟0600∟1000.00∟10000.00∟0.00∟0∟P∟P∟F∟P∟P∟CuentaCorriente∟P∟M∟M∟T
∟M∟P∟N∟P∟N∟R
Este comando es generado por el método ObtenerConfiguracion del OCX Fiscal Hasar
Responde, a través de la línea serie, con los parametros de configuración general con los que
opera el controlador fiscal.
Ejemplo: û
Ejemplo:
û∟C080∟0600∟1000.00∟25000.00∟0.00∟0∟P∟P∟F∟P∟P∟CuentaCorriente∟P∟M∟M
∟T ∟M∟P∟N∟P∟N∟R
Responde, a través de la línea serie, con los datos almacenados en memoria EPROM fiscal du-
rante la inicialización del controlador fiscal. No altera la memoria de trabajo.
Notas
Como puede verse, en los de 16 bits el orden de los campos en la respuesta no es el mismo.
El método del OCX que corresonde a este comando es "ObtenerDatosDeInicializacion( )"-.
En base a lo anterior, se debe tener cuidado con el OCX si la información se obtiene con la
propiedad "Respuesta( )" -válido en cualquier versión del OCX-.
Es responsabilidad del programador el valor del índice que se indica para obtener un campo
determinado de información.
Por ejemplo,
8 bits... 16 bits...
HASAR1.ObtenerDatosDeInicializacion HASAR1.ObtenerDatosDeInicializacion
infoIngBr = HASAR1.Respuesta( 8 ) infoIngBr = HASAR1.Respuesta( 9 )
Con el OCX v051122 (y versiones futuras) es el OCX quien se encarga de entregar la informa-
cion correcta, desentendiendo al programador de estas discrepancias, ya que estas versiones
pueden utilizar variables en lugar de cadenas.
Ejemplo: s
Ejemplo:
Este comando es generado por el método ObtenerDatosDeInicializacion del OCX Fiscal Hasar
Responde, a través de la línea serie, con el modelo y versión del controlador fiscal.
Ejemplo: ⌂
Este comando es generado por el método ObtenerVersionDelControlador del OCX Fiscal Hasar
Responde con:
a. La cantidad total de registros diarios con que cuenta la memoria fiscal (3800 en mode-
los SMH/P-715F, SMH/P-PR5F, SMH/P-441F y SMH/P-451F.; 1850 en el resto).
Ejemplo: 7
Ejemplo: C080∟0600∟3800∟150
Este comando es generado por el método CapacidadRestante del OCX Fiscal Hasar
Una vez impreso el reporte, se imprime automáticamente el reporte de inicio de jornada fis-
cal (sólo modelo SMH/P-715F versión 3.02 -y posteriores-, y modelos SMH/P-441F y SMH/P-
451F), luego avanza y corta el papel, imprime la razón social y el número de CUIT en el en-
cabezamiento del siguiente comprobante.
Ejemplo: 9∟X
Ejemplo:
C080∟0600∟1∟3∟5∟8∟2∟0∟152∟564∟100.00∟21.00∟0.00∟0.00∟0.00∟12∟35∟10.
00∟2.10∟0.00∟0.00∟0.00∟0∟5∟152∟564∟12∟35
Notas:
Los campos correspondientes a monto vendido, monto IVA y monto impuestos internos llevan
dos decimales, pero en memoria fiscal se acumulan sin decimales.
Este comando es generado por los métodos ReporteX y ReporteZ del OCX Fiscal Hasar
Responde imprimiendo un reporte de auditoría entre fecha_inicial / fecha_final, que son se-
leccionadas de la siguiente manera: se consultan los valores de los bytes 6-11 y 13-18.
Los datos informados tienen las siguientes características, según sea el contenido del byte
número 20:
En ambos casos, antes del reporte se imprimen las fechas del período solicitado, las del pe-
ríodo auditado y los números de ‘Z’ correspondientes a éste último.
Una vez impreso el reporte, avanza y corta el papel, imprime la razón social y el número de
CUIT en el encabezamiento del siguiente comprobante.
Ejemplo: :∟070827∟070829∟T
Ejemplo: C080∟0600
Este comando es generado por el método ReporteZPorFechas del OCX Fiscal Hasar
Responde imprimiendo un reporte de auditoría entre Z_inicial / Z_final, que son selecciona-
das de la siguiente manera: se consultan los valores de los bytes 6-9 y 11-14.
Los datos informados tienen las siguientes características, según sea el contenido del byte
número 16:
En ambos casos, antes del reporte se imprimen los números de ‘Z’ del rango solicitado, los
del rango auditado y las fechas correspondientes a este último.
Una vez impreso el reporte, avanza y corta el papel, imprime la razón social y el número de
CUIT en el encabezamiento del siguiente comprobante.
Ejemplo: ;∟1∟3800∟T
Ejemplo: C080∟0600
Este comando es generado por el método ReporteZPorNumeros del OCX Fiscal Hasar
Envía por el canal serie los datos correspondientes a uno de los registros diarios almacenados
en la memoria EPROM fiscal, de acuerdo con lo siguiente:
a. Si en los bytes 6-11 se ingresa un número de ‘Z’ (máximo 3800 en los modelos SMH/P-
PR5F, SMH/P-715F, SMH/P-441F y SMH/P-451F, 1850 en el resto), envía los datos co-
rrespondientes al registro de dicha ‘Z’. El byte 13 debe llenarse con el caracter ‘Z’.
b. Si en los bytes 6-11 se ingresa una fecha (formato AAMMDD), envía los datos correspon-
dientes al primer registro diario correspondiente a esa fecha. El byte 13 debe llenarse
con el caracter ‘F’.
Ejemplo: <∟1∟Z
Ejemplo:
C080∟0600∟1∟3∟5∟8∟2∟0∟152∟564∟100∟21∟0∟0∟0∟12∟35∟10∟2∟0∟0∟0
Notas:
Los montos se responden sin decimales en los modelos SMH/P-715F, SMH/P-PR5F SMH/P-
441F y SMH/P-451F; en el resto de los modelos se responden con decimales.
Responde, a través de la línea serie, con los datos almacenados en memoria de trabajo du-
rante la jornada fiscal.
No altera la memoria de trabajo.
Ejemplo: g
C080∟0600∟3∟8∟2∟152∟564∟100.00∟21.00∟0.00∟0.00∟0.00∟12∟35∟10.00∟2.10
∟0.00∟0.00∟0.00∟0∟5∟152∟564∟12∟35
Este comando es generado por el método LeerMemoriaDeTrabajo del OCX Fiscal Hasar
Inicia el envío, por el canal serie, de montos asociados a porcentajes de IVA acumulados en
el último comprobante fiscal (o nota de crédito) emitido, o de acumulados en la memoria de
trabajo.
El orden en que envían los datos es el mismo en el que los diferentes porcentajes ingresaron
en la tabla de IVAs.
Ejemplo: [STX][SN][ESC]p∟D[ETX][BCC]
Ejemplo: C080∟0600∟1∟21.00∟23.67∟0.00∟0.00∟123.67
Notas:
Este comando es generado por los métodos PedirPrimerIVA (versión 010724 y anteriores),
LeerMontoTotal, LeerPercepcionesGenerales, LeerPercepcionesPorDescripcion (versión
051122 y posteriores), LeerPercepcionesPorIVA (versión 051122 y posteriores) y LeerIVA del
OCX Fiscal Hasar
Continúa el envío, por el canal serie, de montos asociados a porcentajes de IVA acumulados
en el último comprobante fiscal (o nota de crédito) emitido, o de los acumulados en la me-
moria de trabajo.
Este comando es complemento del comando SendFirstIVA (ver 3.3.7), de manera que ambos
informan, para cada porcentaje, el monto del IVA, las percepciones y el monto neto de las
ventas (realizadas con dicho porcentaje).
El orden en que se envían los datos es el mismo en el que los diferentes porcentajes ingresa-
ron en la tabla de IVAs.
Este comando puede emitirse todas las veces seguidas que sea necesario. A cada nueva emi-
sión del comando se transmitirán los datos asociados con el siguiente porcentaje almacenado
en la tabla de IVAs, enviándolos en el mismo formato que el comando SendFirstIVA.
Una vez que haya recorrido totalmente la tabla, informando sobre montos de IVA, de impues-
tos internos y de ventas, continúa enviando, para cada alícuota del IVA, el monto de las per-
cepciones asociadas con dicha alícuota. En caso de no existir percepciones, o luego de infor-
mar sobre la última, se enviará un registro con el total acumulado en el comprobante fiscal
(o nota de crédito) emitido, o acumulado en la memoria de trabajo (solamente en los mode-
los SMH/P-PR5F, SMH/P-715F y SMH/P-441F). Luego, se reportan las percepciones por des-
cripción (solamente en el modelo SMH/P-PR5F versión 2.01, en el modelo SMH/P-715F ver-
siones 2.01 -y posteriores-, y en los modelos SMH/P-441F y SMH/P-451F) y, finalmente, se
enviará un registro en cero.
En el modelo SMH/P-715F versiones 2.01 -y posteriores-, en el modelo SMH/P-PR5F versión
2.01, y en los modelos SMH/P-441F y SMH/P-451F el comando puede emitirse directamente
después de realizarse un comando de cierre de jornada fiscal DailyClose (ver 3.3.2). En ese
caso los datos corresponden a los valores informados en el último informe ‘Z’.
Nota: en los casos en que se informa de percepciones generales, el campo correspondiente a
alícuota del IVA lleva los caracteres “**.**”.
Ejemplo: q
Ejemplo: C080∟0600∟1∟21.00∟23.67∟0.00∟0.00∟123.67
A finalizar la tabla de IVAs se continúa informando los montos de las percepciones, reco-
rriéndose nuevamente la tabla de IVAs. En caso de no existir percepciones, se saltea este in-
forme, pasándose directamente al informe de totales.
Ejemplo: C080∟0600∟2∟21.00∟23.67
Al finalizar el informe de las percepciones se informa el monto total (base + IVA + impuestos
internos + percepciones) del documento fiscal, de la nota de crédito, o de los acumulados en
Ejemplo: C080∟0600∟5∟228.45
Ejemplo: C080∟0600∟0
Este comando es generado por los métodos PedirSiguienteIVA (versión 010724 y anteriores),
LeerMontoTotal (versión 051122 y posteriores), LeerPercepcionesGenerales (versión 051122 y
posteriores), LeerPercepcionesPorDescripcion (versión 051122 y posteriores), LeerPercepcio-
nesPorIVA (versión 051122 y posteriores) y LeerIVA (versión 051122 y posteriores) del OCX
Fiscal Hasar
Ejemplo: ,
Este comando es generado por el método ObtenerUltimoErrorDeEjecucion del OCX Fiscal Ha-
sar
Permite obtener el primer bloque de información del archivo de log interno del equipo.
Ejemplo: ¬
Este comando es generado por el método ObtenerPrimerBloqueLog del OCX Fiscal Hasar
Permite obtener los sucesivos bloques de información del archivo de log interno del equipo.
Ejemplo: ½
Este comando es generado por el método ObtenerProximoBloqueLog del OCX Fiscal Hasar
Opciones:
El límite inferior del rango de cierres Z de los que se quiere obtener información. Puede ser
una fecha en formato AAMMDD, o un número de zeta, y debe ser congruente con la opción
“Fecha o número de zeta final” y con el calificador de Z o fecha. Es decir, la zeta o fecha
final debe ser superior a la inicial, no pueden convivir zeta y fecha como extremos de un
mismo intervalo.
El límite inferior del rango de cierres Z de los que se quiere obtener información. Puede ser
una fecha en formato AAMMDD, o un número de zeta, y debe ser congruente con la opción
“Fecha o número de zeta inicial” y con el calificador de Z o fecha. Es decir, la zeta o fecha
final debe ser superior a la inicial, no pueden convivir zeta y fecha como extremos de un
mismo intervalo.
Determina si el rango ingresado se especificó por zeta (en cuyo caso este calificador es ‘Z?),
o por fecha (en cuyo caso el calificador es ‘T’).
Compresión de la descarga:
Indica si los datos a descargar se comprimirán en formato zip (en cuyo caso se entregará en
formato ASCII85), o no se comprimirán.
Indica si se generará un archivo XML para todas las jornadas a descargar, o si se generará un
archivo XML por cada una de las jornadas a descargar. Este último caso no funcionará si no
se comprimió la descarga.
a. El formato es incorrecto;
Ejemplo: ª∟1∟2∟Z∟P∟P
Ejemplo: C080∟0600∟<~:eLln$31>3#QQ9&F@#s-zz!!!<*!!%=VFCB5CG\q9a
Este comando es generado por el método ObtenerPrimerBloqueAudit del OCX Fiscal Hasar
a. El formato es incorrecto;
Ejemplo: º
Ejemplo: C080∟0600∟?!h[-2ª1N5c.mNiA8_6UMPU77=EYD3MU`u8cZ4&o^>-
L<lnTq#5*Bs8I…
Este comando es generado por el método ObtenerSiguienteBloqueAudit del OCX Fiscal Hasar
Permite definir un rango de cierres zeta grabados en memoria de auditoría que se podrán bo-
rrar en el caso de que se llegue al final de la misma y no esté habilitado el borrado automáti-
co (de estar habilitado este último, se van borrando zetas “a demanda” de los nuevos datos
que se vayan generando). El rango de zetas siempre queda definido desde el principio de la
memoria.
Si se hubiera programado como tope del rango la zeta número 10, al llegar al final de la me-
moria de auditoría (cuyo uso depende de la cantidad de comprobantes que se generen por
zeta y la longitud de los mismos) se liberará el espacio* de las zetas de 1 a 10 y se usará ese
espacio para guardar las nuevas zetas. Al llegar al final del espacio liberado, se deberá libe-
rar otro tramo, por ejemplo hasta la zeta número 20. Eso liberará el espacio* de las zetas 10
a 20.
* Liberar espacio significa que ese espacio se pone a disposición de las nuevas zetas que se
vayan generando, no quiere decir que se borre inmediatamente.
a. El formato es incorrecto;
Ejemplo: Á
Ejemplo: C080∟0600
Este comando es generado por el método DefinirRangoZBorrables del OCX Fiscal Hasar
Permite obtener el rango de cierres zeta grabados en memoria de auditoría que se podrán
borrar en el caso de que se llegue al final de la misma y no esté habilitado el borrado auto-
mático (de estar habilitado este último, se van borrando zetas “a demanda” de los nuevos
datos que se vayan generando). El rango de zetas siempre queda definido desde el principio
de la memoria.
Si se hubiera programado como tope del rango la zeta número 10, al llegar al final de la me-
moria de auditoría (cuyo uso depende de la cantidad de comprobantes que se generen por
zeta y la longitud de los mismos) se liberará el espacio* de las zetas de 1 a 10 y se usará ese
espacio para guardar las nuevas zetas. Al llegar al final del espacio liberado, se deberá libe-
rar otro tramo, por ejemplo hasta la zeta número 20. Eso liberará el espacio* de las zetas 10
a 20.
* Liberar espacio significa que ese espacio se pone a disposición de las nuevas zetas que se
vayan generando, no quiere decir que se borre inmediatamente.
a. El formato es incorrecto;
Ejemplo: Â
Ejemplo: C080∟0600∟12
Este comando es generado por el método ObtenerRangoZBorrables del OCX Fiscal Hasar
Permite obtener el primer bloque de un archivo XML, comprimido o no, con información de u
rango de documentos de unn determinado tipo (factura A, factura B/C, nota de crédito A,
etc.). Se puede generar un archivo XML con todos los documentos, o bien un XML por cada
documento del rango solicitado.
Opciones:
El número de documento límite inferior del rango de documentos de los que se quiere obte-
ner información.
El número de documento límite superior del rango de documentos de los que se quiere ob-
tener información.
Determina el tipo de documento del que se quiere informar. Las opciones son:
0: factura A
1: factura B/C
2: nota de crédito A
3: nota de crédito B/C
4: nota de débito A
5: nota de débito B/C
6: tique
Compresión de la descarga:
Indica si los datos a descargar se comprimirán en formato zip (en cuyo caso se entregará en
formato ASCII85), o no se comprimirán.
Indica si se generará un archivo XML para todas las jornadas a descargar, o si se generará un
archivo XML por cada una de las jornadas a descargar. Este último caso no funcionará si no
se comprimió la descarga.
Ejemplo: ®∟1∟2∟Z∟P∟P
Ejemplo: C080∟0600∟<~:eLln$31>3#QQ9&F@#s-zz!!!<*!!%=VFCB5CG\q9a
Este comando es generado por el método ObtenerPrimerBloqueDocum del OCX Fiscal Hasar
Permite obtener los sucesivos bloques de un archivo XML, comprimido o no, con información
de u rango de documentos de unn determinado tipo (factura A, factura B/C, nota de crédito
A, etc.). Se puede generar un archivo XML con todos los documentos, o bien un XML por cada
documento del rango solicitado.
a. El formato es incorrecto;
Ejemplo: ¼
Ejemplo: C080∟0600∟?!h[-2ª1N5c.mNiA8_6UMPU77=EYD3MU`u8cZ4&o^>-
L<lnTq#5*Bs8I…
Este comando es generado por el método ObtenerSiguienteBloqueDocum del OCX Fiscal Hasar
Responde:
b. Imprimiendo el encabezamiento;
Opciones:
Si se desea abrir un tique factura, o un tique nota de débito, previamente deben cargarse
obligatoriamente los datos del comprador mediante el comando SetCustomerData, excepto
en el caso de que el comprador sea consumidor final y el tique factura o tique nota de débito
no supere el monto ingresado al configurar el controlador fiscal (comando ConfigureContro-
llerByBlock, valor por defecto: $1000 –establecido por AFIP-).
El valor del byte 6 debe ser compatible con la responsabilidad frente al IVA del emisor (ver
comandos InitEpromFiscal y ConfigureControllerByBlock) y del comprador (ver comando
SetCustomerData).
En los casos en que se abra un tique (byte 6: ‘T’) no es necesario ingresar los datos del com-
prador.
d. Se intenta emitir un tique factura (valor ‘A’, o ‘B’ en el byte 6), o un tique nota de dé-
bito (valor ‘D’ o ‘E’, en el byte 6), sin haberse ejecutado antes el comando SetCusto-
merData (excepto en el caso en que el comprador sea un consumidor final –sólo mode-
los SMH/P-715F, SMH/P-PR5F, SMH/P-441F y SMH/P-451F.-);
Ejemplo: @∟A∟T
Ejemplo: C080∟0600∟3245
Este comando es generado por el método AbrirComprobanteFiscal del OCX Fiscal Hasar
Responde imprimiendo un texto (típicamente, datos descriptivos de una venta) con una longi-
tud máxima de 30 caracteres (en el comprobante fiscal, o tique nota de crédito, sólo se im-
primen los 28 primeros caracteres, el valor 30 es por compatibilidad con futuros modelos).
Este comando puede emitirse hasta un máximo de n veces consecutivas, según la siguiente
tabla:
n veces
Tiques factura
Modelos Tiques Tiques nota de dé-
bito
Tiques nota de cré-
dito
SMH/P-615F 2 3
SMH/P-715F, SMH/P-PR5F, SMH/P- 4 4
441F y SMH/P-451F
Resto de los modelos 3 4
Este comando sólo puede estar seguido por el comando PrintLineItem, por el comando Can-
cel (sólo en modelos SMH/P-PR5F, SMH/P-715F, SMH/P-441F y SMH/P-451F), o por el co-
mando TotalTender –opción de cancelación- (en el resto de los modelos).
Formato:
Si se desea que la línea se imprima en caracteres de doble ancho, el primer caracter del
campo con el texto debe ser ‘¶’ – f4H (ASCII 244 decimal). En ese caso, la longitud máxima
de la línea se reduce a 14 caracteres.
Ejemplo: C080∟0600
Este comando es generado por el método ImprimirTextoFiscal del OCX Fiscal Hasar
Responde:
b. Sumando los montos de venta e IVA a los acumulados en el documento fiscal o tique no-
ta de crédito provisorio.
Opciones:
Importante: ver párrafo 2.2.5 para las diferencias de formato entre los modelos en el
campo de las cantidades.
Importante: ver párrafo 2.2.5 para las diferencias de formato entre los modelos en el
campo de las cantidades.
- Si se llena este byte con el caracter “M”, el monto es sumado al subtotal parcial del
comprobante (es decir
se trata de una venta normal).
# Si los bytes 58-62 (porcentaje de IVA) tienen un valor numérico, el monto es descon-
tado del subtotal parcial del comprobante y el IVA es descontado del acumulado co-
rrespondiente.
# Si los bytes 58-62 están llenos con asteriscos (**.**), este comando se comporta en
forma idéntica al comando GeneralDiscount.
. Nota: el comando con el valor “m” en este byte se usa para devolución o descuento de
productos ya vendidos en el mismo comprobante y sólo es aceptado si se ha vendido un
producto con la misma descripción, alícuota de IVA, factor k, y con monto o cantidad ma-
yor o igual.
Existen dos formas diferentes de ingresar el valor de los impuestos internos: como coefi-
ciente –conocido como factor k-, o como valor directo (sólo modelos SMH/P-441F y
SMH/P-451F). El programador debe optar por una de ellas. A su vez, cada forma se divide
en dos tipos de impuestos: fijos y porcentuales. Los impuestos internos fijos no son afec-
tados por recargos o descuentos posteriores. En cambio, los impuestos internos porcentua-
les sí son afectados por recargos o descuentos posteriores.
a. Coeficiente (factor k)
- Si el valor del factor k es cero, uno, o menor que 0.001, no existen impuestos
internos.
b.1. Se indica el monto directo del impuesto interno por unidad vendida.
En este caso, el monto debe ir precedido por el signo ‘$’ y se considera que
el impuesto interno es fijo.
b.2. Se indica el valor porcentual (considerado sobre el precio neto unitario) del
impuesto interno. En este caso, el valor debe ir precedido por el signo ‘%’,
debe expresarse como porcentaje (por ejemplo, 12,34% debe ingresarse co-
mo %12.34) y se considera que el impuesto interno es porcentual.
Si se llena este byte con el caracter ‘B’ (o cualquier otro distinto de ‘T’), se indica que el
valor almacenado en el monto (bytes 47-56) no incluye el IVA. Si se lo llena con el carácter
‘T’, el monto incluye el IVA, es decir, es el precio total.
Ejemplo: C080∟0600
Este comando es generado por el método ImprimirItem del OCX Fiscal Hasar
Responde:
a. Imprimiendo una línea donde se muestra: descripción del descuento (o recargo), im-
puestos y monto del descuento (o recargo) -con posterioridad a la impresión de la línea
con la leyenda “Descuento (o Recargo) sobre última venta”-;
b. Restando o sumando en memoria el valor de los bytes 30-42 al valor del último ítem
vendido.
Opciones:
Imputación: Byte 44
- Si se llena este byte con el caracter ‘B’ (o cualquier otro distinto de ‘T’), se indica
que el valor almacenado en el monto (bytes 30-42) no incluye el IVA.
- Si se lo llena con el carácter ‘T’, el monto incluye el IVA, es decir, es el precio total.
Ejemplo: C080∟0600
Este comando es generado por el método DescuentoUltimoItem del OCX Fiscal Hasar
Responde:
a. Imprimiendo una línea donde se muestra: descripción del descuento (o recargo), im-
puestos y monto del descuento (o recargo) -con posterioridad a la impresión de la línea
con la leyenda “Descuento (o Recargo) general”-;
b. Restando (o sumando) en memoria el valor de los bytes 35-47 a todos los items vendidos
en forma proporcional.
Opciones:
Imputación: Byte 49
- Si se llena este byte con el caracter ‘B’ (o cualquier otro distinto de ‘T’), se indica
que el valor almacenado en el monto (bytes 35-47) no incluye el IVA.
- Si se lo llena con el caracter ‘T’, el monto incluye el IVA, es decir, es el precio total.
Una vez emitido este comando, no puede proseguirse con la venta, quedando solamente ha-
bilitados los comandos Cancel –sólo en modelos SMH/P-715F, SMH/P-PR5F y SMH/P-441F-,
Perceptions, TotalTender y CloseFiscalReceipt (CloseDNFH –sólo en modelos SMH/P-715F,
SMH/P-PR5F SMH/P-441F y SMH/P-451F-).
c. Los montos acumulados (en el caso de recargo) fueran a causar un desborde en la capa-
cidad del acumulador del total.
Ejemplo: C080∟0600
Este comando es generado por el método DescuentoGeneral del OCX Fiscal Hasar
Responde:
a. Imprimiendo una línea donde se muestra: descripción del descuento (o recargo), im-
puestos y monto del descuento (o recargo) -con posterioridad a la impresión de la línea
con la leyenda “Bonificación (o Recargo, o Devolución de envases)”-;
b. Restando o sumando en memoria el monto al valor ya vendido con esa misma alícuota.
Recargo Recargo
Financiero (21.00) 5.00 1.000 / 5.00 (21.00)
Financiero 5.00
Devolución de envases
Cerveza (21.00) -5.00 Devolución de envases
1.000 / -5.00 (21.00)
Financiero -5.00
Opciones:
Imputación: Byte 50
- Si el valor almacenado en este byte es el caracter ‘M’, el monto (bytes 30-42) se su-
ma (recargo);
Existen dos formas diferentes de ingresar el valor de los impuestos internos: como coefi-
ciente –conocido como factor k-, o como valor directo (sólo modelos SMH/P-441F y
SMH/P-451F). El programador debe optar por una de ellas. A su vez, cada forma se divide
en dos tipos de impuestos: fijos y porcentuales. Los impuestos internos fijos no son afec-
tados por recargos o descuentos posteriores. En cambio, los impuestos internos porcentua-
les sí son afectados por recargos o descuentos posteriores.
El valor del factor k es almacenado en los bytes 52-69, y debe estar entre 0 y 1.
Llamando factor k al coeficiente de impuestos internos, es k = 1 / (1 + ii), donde ‘ii’
indica el monto del impuesto interno como porcentaje del precio base, expresado en
forma decimal.
- Si el valor del factor k es cero, uno, o menor que 0.001, no existen impuestos
internos.
b.1. Se indica el monto directo del impuesto interno por unidad vendida.
En este caso, el monto debe ir precedido por el signo ‘$’ y se considera que
el impuesto interno es fijo.
b.2. Se indica el valor porcentual (considerado sobre el precio neto unitario) del
impuesto interno. En este caso, el valor debe ir precedido por el signo ‘%’,
debe expresarse como porcentaje (por ejemplo, 12,34% debe ingresarse co-
mo %12.34) y se considera que el impuesto interno es porcentual.
- Si se llena este byte con el caracter ‘T’, se indica que el valor almacenado en el mon-
to (bytes 30-42) incluye IVA e Impuestos internos, es decir, es el precio total.
- Si se lo llena con otro caracter, el monto no incluye IVA e Impuestos internos, es de-
cir, es el precio base.
- Si se llena este byte con el valor ‘B’, el controlador fiscal interpreta que se trata de
un recargo o descuento, según sea el monto positivo o negativo. En caso de tratarse
de un recargo, la línea predeterminada lleva el texto “Recargo”; en caso de tratarse
- Si se llena este byte con otro caracter, el controlador fiscal interpreta que se trata
de una devolución de envases. La línea predeterminada lleva el texto “Devolución de
envases” y el comando sólo es aceptado si el monto es negativo
Nota:
Una vez ejecutado este comando, el controlador fiscal no permite seguir con las ventas, ad-
mitiendo solamente los comandos ReturnRecharge, Cancel (sólo modelos SMH/P-715F,
SMH/P-PR5F y SMH/P-441F), GeneralDiscount, Perceptions, ChargeNonRegisteredTax (no
disponible en modelos SMH/P-715F, SMH/P-PR5F y SMH/P-441F), TotalTender y CloseFis-
calReceipt (o CloseDNFH –sólo modelos SMH/P-715F, SMH/P-PR5F SMH/P-441F y SMH/P-
451F-).
d. El monto del acumulador de los impuestos internos fijos o de los porcentuales va a arro-
jar un resultado negativo.
Ejemplo: m∟Financiero∟5.00∟21.00∟M∟0.0∟0∟T∟B
Ejemplo: C080∟0600
Este comando es generado por el método DevolucionDescuento del OCX Fiscal Hasar
Responde almacenando un monto que luego será adicionado al tique factura en reemplazo
del monto resultante de aplicar el porcentaje correspondiente a IVA Responsable No Inscripto
ingresado mediante el comando ConfigureControllerBy Block.
Una vez emitido este comando no puede volver a repetírselo, quedando disponibles sólo los
comandos Perceptions, TotalTender y CloseFiscalReceipt.
Ejemplo: a∟23.56
Ejemplo: C080∟0600
Este comando es generado por el método DevolucionDescuento del OCX Fiscal Hasar
Responde:
a. Imprimiendo al final del comprobante (antes de la totalización del mismo) una línea di-
vidida en tres campos: descripción de la percepción (típicamente, percepciones a apli-
car sobre los montos netos sin IVA), alícuota del IVA –no se imprime si se trata de una
percepción general- correspondiente a los ítems sobre los que se aplicará la percepción,
y monto a aplicar.
En el caso de tiques factura ‘A’ (o tique nota de crédito ‘A’, sólo en modelos SMH/P-
715F y SMH/P-PR5F), las percepciones aplicadas a un IVA determinado se imprimen al
final de la discriminación de la alícuota correspondiente;
Tiques factura ‘B’ / nota de débito Tiques factura ‘A’ / nota de débito
‘B’ ‘A’
Tique nota de crédito ‘B’ Tique nota de crédito ‘A’
Opciones:
a. Si se llenan los bytes 6-10 con un valor numérico, éste representa al IVA correspondien-
te a los items a los que se aplica el monto de los bytes 33-45.
b. Si se llenan los bytes 6-10 con asteriscos (**.**), el monto de los bytes 33-45se aplica
sobre la totalidad de los ítems vendidos y se reparte proporcionalmente entre los items
existentes en el comprobante. Una vez emitido el comando en estas condiciones, no
puede volver a repetírselo, aunque sí puede procederse a la inversa, es decir, emitir
primero el comando con un valor numérico en los bytes 6-10 y a continuación emitirlo
b. No hubo una venta previa dentro del comprobante con la misma alícuota de IVA que la
percepción.
Ejemplo: C080∟0600
Responde:
b. Si el byte 6 se llena con el caracter ‘P’, imprimiendo la palabra “Subtot”, seguida del
monto (excepto en el caso de tique factura [o tique nota de crédito –sólo modelos
SMH/P-715F, SMH/P-PR5F, SMH/P-441F y SMH/P-451F.-], en el que el subtotal no se
imprime nunca, cualquiera sea el valor del byte 6). Si el comando se emite a continua-
ción del comando TotalTender, la palabra “Subtot” y el monto no se imprimen, cual-
quiera sea el caracter del byte 6 (pero igual se envía el monto ya pagado por la línea
serie).
Ejemplo: C∟P∟0
Ejemplo: C080∟0600∟3.000∟123.67∟12.45∟0.00∟0.00
Este comando es generado por el método Subtotal del OCX Fiscal Hasar
Responde:
Este comando sólo puede emitirse hasta un máximo de cuatro veces seguidas (en los modelos
SMH/P-715F -versiones 3.02 y posteriores-, SMH/P-PR5F -versión 2.01- SMH/P-441F y SMH/P-
451F, puede emitirse hasta cinco veces seguidas). Si, a la cuarta -o quinta- vez, respectiva-
mente, que es emitido, el monto pagado no alcanza para cubrir el saldo adeudado, el co-
mando es rechazado. Para salir de ese estado se debe ingresar un monto que cubra el saldo
adeudado.
Opciones
Operación: Byte 50
‘C’ Cancelación:
El comando cancela el comprobante fiscal abierto.
‘T’ Pago
El comando calcula el vuelto a partir del monto pagado (bytes 35-47), e imprime
monto pagado y vuelto. Las palabras “Total” y “Cambio” son impresas en forma au-
tomática. Una vez cumplida esta operación, sólo puede cerrarse el comprobante, o
programarse la cola del mismo.
Pagos parciales:
Si el monto almacenado en los bytes 35-47 es menor que el total del comprobante, sólo se
imprime el monto pagado, precedido del texto de los bytes 6-33. El comando puede volver
a emitirse hasta cuatro veces o cinco –según el modelo de impresora fiscal Hasar-, y el
comprobante no podrá cerrarse hasta que el total de los montos parciales sea mayor o
igual al total del comprobante. En este estado, el comprobante fiscal no puede ser cance-
lado.
c. Si el total es cero;
Ejemplo: D∟Efectivo∟215.00∟T∟0∟1478541236541236
Ejemplo: C080∟0600∟3.00
Este comando es generado por los métodos DevolverPago (versión 051122 y posteriores), Tra-
tarDeCancelarTodo, ImprimirPago, CancelarComprobante y CancelarComprobanteFiscal del
OCX Fiscal Hasar
d. Se considera como monto pagado al total de lo vendido (de manera que el vuelto es
igual a $0.00). Se imprime como texto identificatorio del monto pagado la leyenda
programada como texto para saldos mediante el comando ConfigureControllerByO-
ne, o la configurada por defecto en fábrica: “Cuenta Corriente”.
i. Imprimiendo el logotipo fiscal, el número de registro del controlador fiscal, y –de co-
rresponder- la versión de programa de control fiscal (firmware);
d. Se imprimen todos los pagos realizados, y –en caso de existir un saldo pendiente de
pago-, se imprime como texto identificatorio de monto la leyenda programada como
i. Imprimiendo el logotipo fiscal, el número de registro del controlador fiscal, y –de co-
rresponder- la versión de programa de control fiscal (firmware);
Opciones:
Este campo es ignorado si el documento a cerrar es un tique, del que sólo se imprime el
original (y la copia en la cinta de auditoría).
Indica la dirección de correo electrónico a la que se enviará la copia digital del compro-
bante emitido.
Ejemplo: E∟1
Ejemplo: C080∟0600∟1202454
Responde:
Ejemplo: H
Ejemplo: C080∟0600
Este comando es generado por el método AbrirComprobanteNoFiscal del OCX Fiscal Hasar
Ninguno de los modelos que soportan este comando aceptan la consulta de estado intermedio
(comando StatPRN), por lo que no se debe incluir el caracter [ESC] en la construcción del
comando.
Responde:
1. Se emite el comando;
Ejemplo: G
Ejemplo: C080∟0600
Este comando es generado por el método AbrirComprobanteNoFiscalEnSlip del OCX Fiscal Ha-
sar
El comando se puede repetir cuantas veces se desee, pero cada cuatro líneas se intercalará
automáticamente la leyenda “*** NO FISCAL ***”.
Formato:
Si se desea que la línea se imprima en caracteres de doble ancho, el primer caracter del
campo con el texto debe ser el caracter ASCII 244 decimal (f4 Hexa). En ese caso, la longi-
tud máxima de la línea se reduce a 20, 22, o 40 caracteres –según corresponda-.
Ejemplo: C080∟0600
Este comando es generado por el método ImprimirTextoNoFiscal del OCX Fiscal Hasar
Opciones
Dirección de e-mail:
Indica la dirección de correo electrónico a la que se enviará la copia digital del compro-
bante emitido.
Responde:
b. Imprimiendo el trailer del comprobante (incluyendo la leyenda “*** NO FISCAL ***” cada
4 líneas);
Ejemplo: J∟2∟esabash@hasar.com
Ejemplo: C080∟0600
Opciones:
En este byte se declara el tipo de documento que se desea abrir: Nota de crédito ‘A’ (R),
Nota de crédito ‘B/C’ (S), Tique Recibo ‘X’ (x), Tique Pagaré (<), Tique Presupuesto (,)
(SMH/P-715F v03.02 en adelante, SMH/P-PR5 v03.02 en adelante y SMH/P-441F)
Comp. de entrega (-) (SMH/P-715F v 04.03 en adelante y SMH/P-441F).
Si el comprobante es una nota de crédito este campo es opcional. En este caso, el mismo
será ignorado debido a que la impresora fiscal asigna automáticamente el número identifi-
catorio.
Ejemplo: Ç∟R∟T∟1211241
Ejemplo: C080∟0600∟1211241
Este comando sólo está disponible en los modelos SMH/P-715F (versiones 3.02 y posteriores),
SMH/P-PR5F (versiones 3.02 y posteriores), SMH/P-441F y SMH/P-451F.
Responde imprimiendo una línea de texto. El uso que se da a este texto varía de acuerdo al
documento abierto, como se indica en el párrafo dedicado a opciones.
Opciones:
Campo a imprimir:
En todos los documentos, al emitirse por primera vez el comando con un nuevo valor en
el parámetro que indica el campo, pueden imprimirse automáticamente, dos o más,
líneas con leyendas fijas –de corresponder-, y a continuación se imprime la línea de texto
ingresada. Todo texto que supere la longitud indicada es truncado automáticamente.
En todos los documentos es necesario emitir el comando al menos una vez con cada uno
de los valores listados a continuación.
Tique presupuesto.
Valor: 1, 2 y /o 3
Se usa para imprimir el texto del presupuesto. La longitud máxima de la línea es de 40
caracteres (45 en los modelos SMH/P-441F y SMH/P-451F). El comando puede
repetirse todas las veces que se desee. Al cerrar el comprobante el controlador fiscal
imprime automáticamente las leyendas “Firma” y “Aclaración”.
En los modelos SMH/P-441F y SMH/P-451F la impresión de la firma y la aclaración es
opcional, dependiendo del uso del comando PrintSignDNFH (86H –ASCII 134 decimal-).
Tique Pagaré.
Valor: 1
Se usa para imprimir los datos de la entidad a nombre de la cual se emite el pagaré
(banco, CUIT, sucursal, etc). La longitud máxima de la línea es de 40 caracteres (45 en
los modelos SMH/P-441F y SMH/P-451F). El comando puede repetirse las veces
necesarias.
Valor: 2
Se usa para imprimir la fecha de vencimiento del pagaré. La longitud máxima de la
línea es de 40 caracteres (45 en los modelos SMH/P-441F y SMH/P-451F). El comando
Valor: 3
Se usa para imprimir una línea del texto del pagaré. La longitud máxima de la línea es
de 40 caracteres (45 en los modelos SMH/P-441F y SMH/P-451F). El comando puede
emitirse las veces necesarias.
Comp. de Entrega
Sólo disponible en los modelos SMH/P-715F (versión 4.03), SMH/P-441F y SMH/P-451F.
Valor: 1
Se usa para imprimir la información adicional relacionada con la entrega realizada. La
longitud máxima de la línea es de 40 caracteres (45 en los modelos SMH/P-441F y
SMH/P-451F). El comando puede repetirse las veces necesarias. En esta zona no se
imprimen leyendas fijas.
Valor: 2
Se usa para imprimir la información relativa a movimientos de débito en cuenta corriente. La
longitud máxima de la línea es de 40 caracteres (45 en los modelos SMH/P-441F y
SMH/P-451F). El comando puede repetirse las veces necesarias. Cuando el comando es
enviado por primera vez con este valor, se imprime la leyenda “A CUENTA CORRIENTE”.
Valor: 3
Se usa para imprimir información relativa a quien retira el bien entregado. La longitud
máxima de la línea es de 40 caracteres (45 en los modelos SMH/P-441F y SMH/P-451F).
El comando puede emitirse las veces necesarias. Cuando el comando es enviado por
primera vez con este valor, se imprime la leyenda “RETIRADO POR:”.
Talón Estacionamiento
Sólo disponible en los modelos SMH/P-441F y SMH/P-451F.
Valor 1:
Se usa para imprimir la fecha y hora de entrada / salida de un vehículo a la playa de
estacionamiento. La longitud máxima es de 30 caracteres. Al comienzo de la línea se
imprime automáticamente la leyenda: “Fecha y Hora: ”. El comando, con este valor,
puede enviarse solamente una vez.
Valor 2:
Se usa para imprimir la patente del vehículo ingresado al estacionamiento. La longitud
máxima es de 35 caracteres. Al comienzo de la línea se imprime la leyenda “Patente: “.
El comando, con este valor, puede enviarse solamente una vez.
Valor 3:
Se usa para imprimir información adicional referida al vehículo ingresado a la playa de
estacionamiento. La longitud máxima es de 45 caracteres. El comando, con este valor,
puede enviarse las veces necesarias.
Valor 1:
Se usa para imprimir un texto identificatorio del servicio cobrado. La longitud máxima
es de 35 caracteres. Al comienzo de la línea se imprime la leyenda “Servicio: “.El
comando, con este valor, puede enviarse solamente una vez.
Valor 2:
Se usa para imprimr la fecha y hora de emisión de la factura del servicio a cobrar. La
longitud máxima es de 30 caracteres. Al comienzo de la línea se imprime
automáticamente la leyenda: “Fecha y Hora: ”. El comando, con este valor, puede
enviarse solamente una vez.
Valor 3:
Se usa para indicar el monto del servicio cobrado. La longitud máxima es de 35
caracteres. Al comienzo de la línea se imprime la leyenda “Monto: “.El comando, con
este valor, puede enviarse solamente una vez.
Valor 4:
Se usa para imprimir información adicional referida al servicio cobrado. La longitud
máxima es de 45 caracteres. El comando, con este valor, puede enviarse las veces
necesarias.
Ingreso de Dinero
Sólo disponible en los modelos SMH/P-441F y SMH/P-451F.
Valor 1:
Se usa para indicar el monto de valores ingresados en caja. La longitud máxima es de 35
caracteres. Al comienzo de la línea se imprime la leyenda “Monto: “.El comando, con
este valor, puede enviarse solamente una vez.
Valor 2:
Se usa para imprimir información adicional referida los valores ingresados. La longitud
máxima es de 45 caracteres. El comando, con este valor, puede enviarse las veces
necesarias.
Retiro de Dinero
Sólo disponible en los modelos SMH/P-441F y SMH/P-451F.
Valor 1:
Se usa para indicar el monto de valores retirados de caja. La longitud máxima es de 35
caracteres. Al comienzo de la línea se imprime la leyenda “Monto: “. El comando, con
este valor, puede enviarse solamente una vez.
Talón de cambio
Sólo disponible en los modelos SMH/P-441F y SMH/P-451F.
Valor 1:
Se usa para indicar la descripción del ítem asociado al cambio. La longitud máxima es de
34 caracteres (se reservan 10 posiciones para indicar la cantidad de unidades). El
comando, con este valor, puede enviarse las veces necesarias.
Valor 2:
Se usa para imprimir información adicional referida los ítems asociados al cambio. La
longitud máxima es de 45 caracteres. El comando, con este valor, puede enviarse las
veces necesarias.
Talón de reparto
Sólo disponible en los modelos SMH/P-441F y SMH/P-451F.
Valor 1:
Se usa para indicar la descripción del ítem incluido en el reparto. La longitud máxima es
de 34 caracteres (se reservan 10 posiciones para indicar la cantidad de unidades). El
comando, con este valor, puede enviarse las veces necesarias.
Valor 2:
Se usa para imprimir información adicional referida los ítems incluidos en el reparto. La
longitud máxima es de 45 caracteres. El comando, con este valor, puede enviarse las
veces necesarias.
Talón de regalo
Sólo disponible en los modelos SMH/P-441F y SMH/P-451F.
Valor 2:
Se usa para imprimir información adicional referida los ítems. La longitud máxima es de
45 caracteres. El comando, con este valor, puede enviarse las veces necesarias.
Cuenta Corriente
Sólo disponible en los modelos SMH/P-441F y SMH/P-451F.
Valor 1:
Se usa para imprimir información adicional referida al movimiento en cuenta corriente.
La longitud máxima es de 45 caracteres. El comando, con este valor, puede enviarse las
veces necesarias.
Valor 2:
Se usa para indicar un monto de débito. La longitud máxima es de 35 caracteres. Al
comienzo de la línea se imprime la leyenda “Débito: “. El comando, con este valor,
puede enviarse solamente una vez.
Valor 3:
Se usa para indicar un monto de crédito. La longitud máxima es de 35 caracteres. Al
comienzo de la línea se imprime la leyenda “Crédito: “. El comando, con este valor,
puede enviarse solamente una vez.
Valor 4:
Se usa para indicar un monto de saldo. La longitud máxima es de 35 caracteres. Al
comienzo de la línea se imprime la leyenda “Saldo: “. El comando, con este valor,
puede enviarse solamente una vez.
Valor 1:
Se usa para imprimir información adicional referida al aviso de operación de crédito. La
longitud máxima es de 45 caracteres. El comando, con este valor, puede enviarse las
veces necesarias.
Valor 2:
Valor 3:
Se usa para indicar la cantidad de cuotas. La longitud máxima es de 28 caracteres. Al
comienzo de la línea se imprime la leyenda “Cantidad cuotas: “. El comando, con este
valor, puede enviarse solamente una vez.
Valor 4:
Se usa para indicar el valor por cuota. La longitud máxima es de 32 caracteres. Al
comienzo de la línea se imprime la leyenda “Monto cuota: “. El comando, con este
valor, puede enviarse solamente una vez.
Valor 5:
Se usa para indicar la fecha del primer vencimiento. La longitud máxima es de 25
caracteres. Al comienzo de la línea se imprime la leyenda “Primer vencimiento: “. El
comando, con este valor, puede enviarse solamente una vez.
Valor 6:
Se usa para identificar la sucursal. La longitud máxima es de 35 caracteres. Al comienzo
de la línea se imprime la leyenda “Sucursal: “. El comando, con este valor, puede
enviarse solamente una vez.
Valor 7:
Se usa para identificar al aviso en sí. La longitud máxima es de 30 caracteres. Al
comienzo de la línea se imprime la leyenda “Nro. interno: “. El comando, con este
valor, puede enviarse solamente una vez.
Valor 8:
Se usa para imprimir información adicional referida al aviso de operación de crédito. La
longitud máxima es de 45 caracteres. El comando, con este valor, puede enviarse las
veces necesarias.
Cupón de promoción
Sólo disponible en los modelos SMH/P-441F y SMH/P-451F.
Valor 1:
Se usa para imprimir información referida a la promoción. La longitud máxima es de 45
caracteres. El comando, con este valor, puede enviarse las veces necesarias.
Valor 1:
Valor 2:
Se usa para identificar el coseguro. La longitud máxima es de 35 caracteres. Al comienzo
de la línea se imprime la leyenda “Coseguro: “. El comando, con este valor, puede
enviarse solamente una vez.
Valor 3:
Se usa para identificar al afiliado. La longitud máxima es de 30 caracteres. Al comienzo
de la línea se imprime la leyenda “Afiliado Nro.: “. El comando, con este valor, puede
enviarse solamente una vez.
Valor 4:
Se usa para indicar la fecha de vencimiento de la credencial. La longitud máxima es de
30 caracteres. Al comienzo de la línea se imprime la leyenda “Vencimiento: “. El
comando, con este valor, puede enviarse solamente una vez.
Valor 5:
La longitud máxima es de 23 caracteres. Al comienzo de la línea se imprime la leyenda
“Establecimiento Nro.: “. El comando, con este valor, puede enviarse solamente una
vez.
Valor 6:
La longitud máxima es de 32 caracteres. Al comienzo de la línea se imprime la leyenda
“Cupón Nro.: “. El comando, con este valor, puede enviarse solamente una vez.
Valor 7:
Se usa para indicar la descripción del ítem. La longitud máxima es de 34 caracteres (se
reservan 10 posiciones para indicar la cantidad de unidades). El comando, con este
valor, puede enviarse las veces necesarias.
Valor 8:
La longitud máxima es de 32 caracteres. Al comienzo de la línea se imprime la leyenda
“Sub-importe: “. El comando, con este valor, puede enviarse solamente una vez.
Valor 9:
La longitud máxima es de 24 caracteres. Al comienzo de la línea se imprime la leyenda
“recargos/descuentos: “. El comando, con este valor, puede enviarse solamente una
vez.
Valor 10:
La longitud máxima es de 28 caracteres. Al comienzo de la línea se imprime la leyenda
“Importe sin IVA: “. El comando, con este valor, puede enviarse solamente una vez.
Valor 12:
Si bien recibe un string, este campo se utiliza para imprimir el monto pagado. La
longitud máxima del string es de 45 caracteres. El comando, con este valor, puede
enviarse las veces necesarias. La primera vez que se envía imprime una línea previa, con
la leyenda “Recibi(mos):”
Valor 1:
Se usa para imprimir información general, a elección del usuario. Se pueden imprimir
hasta 60 líneas.
Cantidad
Ejemplo: C080∟0600
Ejemplo: å∟P
Ejemplo: å∟C080∟0600
Responde almacenando en memoria una línea con el texto ingresado con las siguientes carac-
terísticas:
b. El texto ingresado corresponde al área del recibo que indica el bien o servicio recibido.
c. El espacio destinado a este concepto es una cantidad sin límite de líneas de hasta 40
caracteres (los caracteres que superen los 40 son eliminados). Una vez ingresadas las lí-
neas correspondientes, este comando debe estar seguido por el comando de cierre.
d. Las líneas son impresas a medida que se las ingresa mediante el presente comando.
e. Este comando debe emitirse al menos una vez. En caso contrario, no se podrá cerrar el
recibo.
Ejemplo: C080∟0600
Este comando es generado por el método DetalleRecibo del OCX Fiscal Hasar
d. Se considera como monto pagado al total de lo vendido (de manera que el vuelto es
igual a $0.00). Se imprime como texto identificatorio del monto pagado la leyenda
programada como texto para saldos mediante el comando ConfigureControllerByO-
ne, o la configurada por defecto en fábrica: “Cuenta Corriente”.
i. Imprimiendo el logotipo fiscal, el número de registro del controlador fiscal, y –de co-
rresponder- la versión de programa de control fiscal (firmware);
i. Imprimiendo el logotipo fiscal, el número de registro del controlador fiscal, y –de co-
rresponder- la versión de programa de control fiscal (firmware);
Opciones:
Dirección de e-mail:
Sólo disponible en modelo SMH/P-451F
Indica la dirección de correo electrónico a la que se enviará la copia digital del comproban-
te emitido.
Ejemplo: ü∟3∟esabash@hasar.com
Ejemplo: C080∟0600∟1245121∟1∟5799-2615928042
Este comando es generado por los métodos CerrarDNFH (versión 010724 y anteriores) y Ce-
rrarComprobanteNoFiscalHomologado (versión 051122 y posteriores) del OCX Fiscal Hasar
Este documento no existe en los modelos SMH/P-441F y SMH/P-451F. En su lugar puede emi-
tirse el documento no fiscal homologado Uso interno farmacias.
Responde imprimiendo un documento no fiscal homologado para uso de Obras Sociales far-
macias con la información del comprobante fiscal (tique o tique factura ‘B/C’) emitido pre-
viamente.
Notas:
El encabezado del documento no fiscal homologado son las líneas numeradas 4 a 10 de la es-
tructura TRAILER (ver comando SetHeaderTrailer). Sólo en los modelos SMH/P-PR5F (ver-
sión 2.01) y SMH/P-715F (versiones 3.02 y posteriores).
La cola del documento no fiscal homologado son las tres líneas numeradas 11, 12 y 13 de la
estructura TRAILER (ver comando SetHeaderTrailer).
Ejemplo: h∟1
Ejemplo: C080∟0600
Este comando es generado por el método DNFHFarmacias del OCX Fiscal Hasar
Este documento no existe en los modelos SMH/P-441F y SMH/P-451F. En su lugar puede emi-
tirse el documento no fiscal homologado Talón de reparto.
Responde imprimiendo un documento no fiscal con la lista de los ítems vendidos en el com-
probante anterior.
Este comando sólo puede emitirse inmediatamente después de cerrado un tique o un tique
factura ‘B/C’.
Notas:
El encabezado del documento no fiscal homologado son las líneas numeradas 4 a 10 de la es-
tructura TRAILER (ver comando SetHeaderTrailer). Sólo en los modelos SMH/P-PR5F (ver-
sión 2.01) y SMH/P-715F (versiones 3.02 y posteriores).
La cola del documento no fiscal homologado son las tres líneas numeradas 11, 12 y 13 de la
estructura TRAILER (ver comando SetHeaderTrailer).
Ejemplo: i∟2
Ejemplo: C080∟0600
Este comando es generado por el método DNFHReparto del OCX Fiscal Hasar
Opciones:
Indica si se dejará en el voucher de tarjeta de crédito el espacio para el grabado del núme-
ro en relieve (en cuyo caso esta opción vale ‘P’). Ese espacio estará fijado por la cantidad
de líneas de relieve.
Líneas de relieve:
Indica la cantidad de líneas (0 a 99) que se dejarán en blanco para el grabado del número
de tarjeta en el voucher. De configurarse la opción “Espacio para relieve” con otro carácter
que no sea ‘P”, esta opción se ignorará y no se dejará espacio para relieve en el voucher.
a. El formato es incorrecto;
Ejemplo: ç∟P∟50∟P∟P
Ejemplo: C080∟0600
Este comando es generado por el método CargarOpcionesDeVoucher del OCX Fiscal Hasar
b. Se encuentra abierto una factura, una nota de débito, o una nota de crédito, y ya se ha
efectuado un pago parcial o total, –excepto en los modelos SMH/P-PR5F (versión 2.01),
SMH/P-715F (versiones 3.02 y posteriores), SMH/P-441F y SMH/P-451F.
Ejemplo: ÿ
Ejemplo: C080∟0600
Responde imprimiendo una copia del último documento emitido. Se aplica a todos los docu-
mentos, según el siguiente criterio: máxima cantidad de copias que se pueden emitir.
• Documentos con número limitado de copias (puede emitirse hasta la cantidad máxima
de copias programada en los comandos de configuración): tiques factura, notas de débi-
to, y notas de crédito.
• Documentos con número ilimitado de copias (puede emitirse la cantidad de copias que
se desee): reportes
‘Z’ y ‘X’, documentos no fiscales, y docuentos no fiscales homologados (excepto notas
de crédito).
Nota:
Este comando debe emitirse inmediatamente después del documento original y no se aplica a
los reportes de auditoría.
Ejemplo: Ö
Ejemplo: C080∟0600
Este comando es generado por el método ReimprimirComprobante del OCX Fiscal Hasar
b. Luego de haberse realizado los pagos de un comprobante fiscal (es decir, tras la línea
que lleva la palabra CAMBIO) y antes del cierre del comprobante;
Excepto los arriba mencionados, el código de barras no puede programarse en otros estados
del controlador fiscal.
La programación del código de barras queda anulada (y en consecuencia se lo borra de me-
moria) si se lo programa antes de abrir un comprobante fiscal pero a continuación se ejecuta
alguno de los siguientes comandos: DailyClose, DailyCloseByDate, DailyCloseByNumber o
SetDateTime.
Opciones:
Según el tipo de código de barras que se desee programar, el byte dedicado a tipo de código
debe llenarse con uno de los siguientes valores numéricos:
1: EAN 13
2: EAN 8
3: UPCA
4: ITS 2 de 5
Si, en cambio, se ingresa el valor ‘0’, el código existente en memoria de trabajo se borra.
Aún así, el campo correspondiente al dato deberá llevar un número. De otra manera, el co-
mando será rechazado.
El valor cero solamente es válido en los modelos SMH/P-PR5F (versión 2.01), SMH/P-715F
(versiones 3.02 y posteriores), SMH/P-441F y SMH/P-451F.
Según el tipo de codigo de barras que se desee programar, la cantidad de caracteres numé-
ricos que deben ingresarse a partir del byte dedicado tipo de código son:
En los cuatro casos la cantidad de caracteres debe ser exacta; de no ser así el comando es
rechazado.
Si se llena este byte con el caracter ‘N’, bajo el código de barras se imprime el número co-
rrespondiente.
Si se lo llena con cualquier otro caracter, se imprime el código de barras solamente.
Si se llena este byte con el caracter ‘P’, el código de barras es impreso inmediatamente
después de ingresado el comando (esto sólo es posible en medio de un documento no fiscal
o luego de realizados los pagos de un documento fiscal). Si se lo llena con cualquier otro ca-
racter, es impreso inmediatamente antes del logotipo fiscal.
Ejemplo: Z∟1∟779123456789∟N∟P
Ejemplo: C080∟0600
Este comando es generado por el método ImprimirCodigoDeBarras del OCX Fiscal Hasar
Responde avanzando el papel de tiques tantas líneas como se indica en los bytes 6-7.
Ejemplo: P∟01
Ejemplo: C080∟0600
Este comando es generado por el método AvanzarPapel del OCX Fiscal Hasar
Responde avanzando el papel de tiques tantas líneas como se indica en los bytes 6-7.
Ejemplo: Q∟01
Ejemplo: C080∟0600
Este comando es generado por el método AvanzarPapel del OCX Fiscal Hasar
Responde avanzando el papel de tiques tantas líneas como se indica en los bytes 6-7.
Ejemplo: R∟10
Este comando es generado por el método AvanzarPapel del OCX Fiscal Hasar
Ejemplo: C080∟0600
Pone en fecha y hora el reloj de tiempo real. La fecha y la hora del reloj de tiempo real son
impresos en todos los documentos. La fecha es, además, grabada en los registros diarios
cuando se realiza un cierre de jornada fiscal.
a. El formato es incorrecto;
Ejemplo: X∟080101∟163525
Ejemplo: C080∟0600
Este comando es generado por la propiedad FechaHoraFiscal del OCX Fiscal Hasar
Ejemplo: Y
Ejemplo: C080∟0600∟080101∟121436
Este comando es generado por la propiedad FechaHoraFiscal del OCX Fiscal Hasar
Almacena una línea de texto en la estructura HEADER o TRAILER, para ser impresa en el en-
cabezamiento o la cola de un comprobante (fiscal, no fiscal, o no fiscal homologado).
Formato:
Si se desea que la línea se imprima en caracteres de doble ancho, el primer carácter del
campo con el texto debe ser el caracter ASCII 244 decimal. En ese caso, la longitud máxima
de la línea se reduce a 20 caracteres.
La estructura HEADER se usa para imprimir la dirección y otros datos relativos al dueño del
controlador fiscal que se desee hacer figurar en el encabezamiento de un comprobante, a
continuación del CUIT.
En un tique, las líneas 1-4 están destinadas a imprimir el domicilio fiscal y el domicilio co-
mercial del propietario. Las líneas 5-10 se imprimen a continuación de la leyenda “A CON-
SUMIDOR FINAL”.
En el caso de un tique factura (y tique nota de crédito en los modelos SMH/P-715F, SMH/P-
PR5F, SMH/P-441F y SMH/P-451F), las líneas 1-4 están destinadas a imprimir el domicilio
fiscal y el domicilio comercial del propietario, las líneas 5-8 están destinadas a otras leyen-
das de interés comercial. Estas líneas se imprimen en el encabezamiento del tique factura.
En los modelos SMH/P-615F, SMH/P-951F y SMH/P-PR4F las líneas 9-10 están destinadas al
domicilio del comprador y se imprimen a continuación del nombre del comprador.
En los modelos SMH/P-715F, SMH/P-PR5F, SMH/P-441F y SMH/P-451F las líneas 9-10 están
destinadas a leyendas de interés comercial y se imprimen en el encabezamiento del tique, a
continuación de la línea 8.
La estructura TRAILER se usa para imprimir el nombre del cajero, número de cheque, u
otros datos que se desee hacer figurar en la cola del comprobante, luego del cambio y antes
del Nº de Registro y del logotipo fiscal. Esta estrucutura abarca las líneas 11 a 20 en el caso
de tiques, y 11 a 14 en el caso de tiques factura, o notas de crédito (sólo válidas en mode-
los SMH/P-715F, SMH/P-PR5F, SMH/P-441F y SMH/P-451F).
Nota:
Los datos que corresponden al encabezamiento y cola de un comprobante fiscal, o nota de
crédito (sólo válidas en modelos SMH/P-715F, SMH/P-PR5F, SMH/P-441F y SMH/P-451F)
que se encuentran almacenados en memoria fiscal (Razón social, CUIT, Nº de Registro, Nº
de PV), más los números de comprobante fiscal –o nota de crédito- logotipo fiscal, etc., son
impresos automáticamente, sin intervención del presente comando.
Borrado:
Para borrar todas las líneas de encabezamiento y/o cola que se encuentran en memoria de
trabajo, el campo número de línea deberá llenarse con uno de los siguientes valores:
Aún si se envía uno de estos valores, el campo correspondiente al texto no deberá estar
vacío. De otra manera el comando será rechazado.
Ejemplo: C080∟0600
Este comando es generado por la propiedad Encabezado del OCX Fiscal Hasar
Envía a través de la línea serie una línea de encabezamiento o de cola de comprobante alma-
cenada en la estructura HEADER o TRAILER.
Ejemplo: ^∟12
Este comando es generado por la propiedad Encabezado del OCX Fiscal Hasar
Responde:
Notas:
Si un tique factura, tique nota de débito, o tique nota de crédito a consumidor final (byte
48: C) no supera el límite (monto) programado mediante el comando ConfigureContro-
llerByBlock (valor por defecto $1.000 –pesos un mil-), pueden llenarse con un espacio los
datos correspondientes a nombre y CUIT o documento.
En los modelos SMH/P-715F, SMH/P-PR5F, SMH/P-441F y SMH/P-451F la emisión de este
comando no es obligatoria cuando el comprador es consumidor final.
Este campo sólo existe en los modelos SMH/P-715F, SMH/P-PR5F, SMH/P-441F y SMH/P-
451F.
Las líneas de datos adicionales de cliente 1, 2 y 3 son opcionales y reemplazan a las líneas
8, 9 y 10 de Header, respectivamente. De estar programadas estas últimas, tienen priori-
dad ante las líneas de datos adicionales (se reemplazan individualmente). Estas líneas, al
igual que el resto de los datos adicionales de cliente, se pierden luego de emitido el com-
probante para el que fueron programadas.
Ejemplo: C080∟0600
Este comando es generado por el método DatosCliente del OCX Fiscal Hasar
Almacena en memoria de trabajo una línea de texto de la estructura FANTASY, la cual consta
de dos líneas que se imprimen automáticamente al comienzo del comprobante, inmediata-
mente antes de la razón social, y son usadas en los casos en los que el nombre con el que es
conocida una empresa no es igual al nombre de la razón social.
Formato:
Si se desea que la línea se imprima en caracteres de doble ancho, el primer caracter del
campo con el texto debe ser el caracter ASCII 244 decimal. En ese caso, la longitud máxi-
ma de la línea se reduce a 20 caracteres (22 en el modelo SMH/P-441F).
Borrado:
Ejemplo: C080∟0600
Envía, a través de la línea serie de comunicación con el host, una línea de texto de la estruc-
tura FANTASY.
Ejemplo: Æ∟1
Nota:
Si la línea seleccionada no se encuentra programada, el campo del texto se reporta vacío.
Los documentos tienen espacio para dos líneas de números de remito / comprobante original,
que se imprimen automáticamente. En el caso de los tiques factura, pueden cargarse ambas
líneas, una de ellas o ninguna. En el caso de los tiques nota de crédito, sólo es obligatorio
cargar la primera línea; la segunda línea es opcional.
Borrado:
Ejemplo: ô∟1∟00000118
Ejemplo: C080∟0600
Envía, a través de la línea serie de comunicación con el host, una línea de texto con la in-
formación relativa a un remito o comprobante original, almacenada en memoria.
Nota:
Si la línea seleccionada no se encuentra programada, el campo del texto se reporta vacío.
Ejemplo: ö∟1
Ejemplo: C080∟0600∟00000118
Este comando sólo se encuentra disponible en los modelos SMH/P-PR5F (versión 2.01),
SMH/P-715F (versiones 2.01 y posteriores), SMH/P-441F y SMH/P-451F.
Chequea el estado de la memoria de trabajo, y verifica si se puede ejecutar el comando
en el estado fiscal en que se encuentra.
Ingresa la fecha de inicio de actividad del local en el que se encuentra instalado el contro-
lador fiscal y la almacena en memoria de trabajo. Esta fecha es luego impresa en el enca-
bezamiento de los comprobantes.
a. El formato es incorrecto;
Nota:
La primera vez que se ingresa la fecha de inicio de actividades es durante la inicializa-
ción, momento en el cual la fecha queda grabada en la memoria fiscal. Los cambios su-
cesivos de fecha de inicio de actividades se almacenan en la memoria de trabajo, que
es borrada durante la operación de MAC (esta operación sólo puede ser llevada a cabo
por el Servicio Técnico Autorizado). Por lo tanto, luego de realizarse un MAC, de no en-
contrar ninguna fecha de inicio de actividades en memoria de trabajo, el equipo volve-
rá a tomar como fecha válida la grabada en el momento de la inicialización. En esas
circunstancias deberá a volverse a ingresar la fecha mediante el presente comando.
Ejemplo: x∟080101
Ejemplo: C080∟0600
Formato:
Si se desea que la línea se imprima en caracteres de doble ancho, el primer carácter del
campo con el texto debe ser el caracter ASCII 244 decimal. En ese caso, la longitud má-
xima de la línea se reduce a 20 caracteres.
Opciones:
Estación de impresión:
Identificador de la zona:
Identifica la zona del comprobante en la que se imprimirán las líneas que se están pro-
gramando. Las líneas de usuario se dividen en las siguientes zonas:
Líneas de fantasía
Dirección del emisor
Zona 1 de encabezado
Zona 2 de encabezado
Zona 1 de cola
Zona 2 de cola
Número de línea:
Texto:
a. El formato es incorrecto;
Ejemplo: C080∟0600
Opciones:
Estación de impresión:
Identificador de la zona:
Identifica la zona del comprobante en la que se imprimirán las líneas que se están pro-
gramando. Las líneas de usuario se dividen en las siguientes zonas:
Líneas de fantasía
Dirección del emisor
Zona 1 de encabezado
Zona 2 de encabezado
Zona 1 de cola
Zona 2 de cola
Número de línea:
a. El formato es incorrecto;
Ejemplo: ×∟T∟F∟1
Ejemplo: {
Ejemplo: C080∟0600
Este comando es generado por el método AbrirCajonDeDinero del OCX Fiscal Hasar
El display de cliente que se entrega como dispositivo opcional con el controlador fiscal
SMH/P-615F, tiene 2 filas por 20 caracteres, y esta dividido en dos campos.
Alfanumérico: 16 caracteres
Numérico: 16 caracteres
Ocupa los dos primeros espacios de la izquierda del campo numérico, sobrescribiéndo-
los con un número, pero sin borrar el resto del campo numérico. Típicamente, es usado
por el programa de caja como contador de ventas repetidas.
Ejemplo: ▓∟fKBienvenidos
Ejemplo: C080∟0600
Este comando es generado por el método MostrarEnDisplay del OCX Fiscal Hasar
Opciones:
Dirección de IP:
a. El formato es incorrecto;
Ejemplo: ó∟10.0.7.17∟255.255.0.0∟10.0.7.17
Ejemplo: C080∟0600
Este comando es generado por el método CargarParametrosDeRed del OCX Fiscal Hasar
a. El formato es incorrecto;
Ejemplo: ú
Ejemplo: C080∟0600∟10.0.7.17∟255.255.0.0∟10.0.7.17
Este comando es generado por el método ObtenerParametrosDeRed del OCX Fiscal Hasar
Opciones:
Puerto SMTP:
Dirección del puerto asignado para sacar los correos por protocolo SMTP.
Dirección de e-mail a la que será dirigida la respuesta del mensaje en caso de que el
destinatario responda (“Reply to”).
a. El formato es incorrecto;
Ejemplo: ▓
Ejemplo: C080∟0600
Este comando es generado por el método CargarConfiguracionEmail del OCX Fiscal Hasar
a. El formato es incorrecto;
Ejemplo: │
Ejemplo: C080∟0600∟10.0.10.3∟25∟rbardenes@hasar.com
Este comando es generado por el método LeerConfiguracionEmail del OCX Fiscal Hasar
Permite enviar por correo electrónico cualquier documento que se haya realizado ante-
riormente, o mismo el documento en curso (cerrándolo previamente).
Opciones:
Tipo de comprobante:
El tipo de comprobante realizado cuya copia se desea enviar por correo electrónico. Los
tipos de comprobante son:
Tique
Tique factura A
Tique factura B
Tique factura C
Nota de débito A
Nota de débito B
Nota de débito C
Nota de crédito A
Nota de crédito B
Nota de crédito C
Documento no fiscal
Cierre X
Cierre Z
Número de comprobante:
Indica el número que tenía el comprobante cuya copia se desea enviar por correo elec-
trónico.
Dirección de e-mail:
a. El formato es incorrecto;
Ejemplo: ┤∟T∟esabash@hasar.com
Ejemplo: C080∟0600
Este comando es generado por el método EnviarDocumentoPorEmail del OCX Fiscal Hasar
Mientras que en las notas siguientes el punto es utilizado como separador entre miles y la
coma como separador decimal, en los datos ingresados a través de los comandos el sepa-
rador entre miles no existe y el separador decimal es el punto.
(2) El nombre o razón social es leído de la EPROM fiscal e impreso automáticamente al ini-
cializarse la máquina, desbloqueársela, o luego de cerrarse el comprobante anterior.
(6) La responsabilidad frente al IVA es impresa automáticamente (excepto que se haya in-
dicado lo contrario mediante el comando ConfigureControllerByBlock o Configure-
ControllerByOne) al emitirse el comando OpenFiscalReceipt. La información es ex-
traída de la EPROM fiscal.
(8) El número de identificación del punto de venta es leído de la EPROM fiscal y es impre-
so automáticamente al emitirse el comando OpenFiscalReceipt. Va precedido por la
leyenda “P.V.”.
(13) La descripción, la alícuota correspondiente al IVA y el monto del ítem vendido son in-
gresados e impresos (junto con la línea correspondiente a cantidad y precio unitario)
mediante el comando PrintLineItem. Esta línea está dividida en dos columnas o cam-
pos, separados por espacios en blanco: el campo de la descripción y el campo del
monto.
Campo de la descripción:
(14) En los casos en que el IVA esté afectado por un coeficiente de impuestos internos, se
lo imprime entre corchetes.
(17) El monto correspondiente al total es calculado e impreso, junto con la línea siguien-
te, mediante el comando TotalTender. La palabra “TOTAL” es impresa automática-
mente. Toda la línea se imprime en caracteres de doble ancho.
(19) La leyenda “CAMBIO” y el monto del cambio son impresos automáticamente una vez
que el monto ingresado como pago supere el total del tique. Toda la línea se imprime
en caracteres de doble ancho.
(20) En la estructura TRAILER se almacenan datos de interés del usuario del controlador:
por ejemplo, nombre del cajero, número de cliente, número de documento con el
que se paga, etc. Es impresa al emitirse el comando CloseFiscalReceipt. Los datos se
ingresan mediante el comando SetHeaderTrailer.
(21) El número del controlador fiscal es leído de la EPROM fiscal y es impreso automáti-
camente al emitirse el comando CloseFiscalReceipt. En las versiones superiores a la
1.00, el número de la versión de firmware también es impreso automáticamente al
emitirse el comando CloseFiscalReceipt.
Línea 1
Línea 2 Estructura Fantasy (1)
Nombre o razón social (2)
Número de CUIT (3)
Número de Ingresos Brutos (4)
Línea 1
Línea 2 Estructura (5)
Línea 3 Header
Línea 4
INICIO DE ACTIVIDADES: (6)
Responsabilidad frente al IVA (7)
Línea 5
Línea 6 Estructura (5)
Línea 7 Header
Línea 11
Línea 12 Estructura
Línea 13 Trailer (29)
Línea 14
Mientras que en las notas siguientes el punto es utilizado como separador entre miles y la
coma como separador decimal, en los datos ingresados a través de los comandos el sepa-
rador entre miles no existe y el separador decimal es el punto.
(2) El nombre o razón social es leído de la EPROM fiscal e impreso automáticamente al ini-
cializarse la máquina, desbloqueársela, o luego de cerrarse el comprobante anterior.
(8) El tipo de factura (‘A’ o ‘B’) es impresa automáticamente (precedido por la leyenda
“TIQUE FACTURA”) al emitirse el comando OpenFiscalReceipt. El número de identifi-
cación del punto de venta y el número de tique factura es leído de la EPROM fiscal y es
impreso automáticamente al emitirse el comando OpenFiscalReceipt. Va precedido
por la leyenda “Nro.” y tiene el formato nnnn-nnnnnnnn, donde los cuatro números an-
teriores al guión (-) indican el número de punto de venta y los ocho números posterio-
res indican el número del tique factura.
(14) El encabezamiento de la zona del tique factura dedicado a las ventas es impresa au-
tómaticamente al emitirse el comando OpenFiscalReceipt. Contiene las leyendas
“CANTIDAD/PRECIO UNITARIO”, “(%IVA)”, “DESCRIPCION”, “[%B.I.]” e “IMPORTE”.
(16) La cantidad y el precio unitario se ingresan e imprimen (junto con la línea siguiente)
mediante el comando PrintLineItem. El valor máximo de la cantidad es 999,999 (o
999.999,999 en los modelos SMH/P-715F y SMH/P-PR5F, para sus versiones 2.01 y
posteriores, y modelo SMH/P-441F y SMH/P-451F), y el del precio unitario es
999.999,99.
(17) La descripción, la alícuota correspondiente al IVA y el monto del ítem vendido son in-
gresados e impresos (junto con la línea correspondiente a cantidad y precio unitario)
mediante el comando PrintLineItem. Esta línea está dividida en dos columnas o cam-
pos, separados por espacios en blanco: el campo de la descripción y el campo del
monto.
Campo de la descripción:
(19) Las percepciones sobre el IVA se ingresan mediante el comando Perceptions. Son im-
presas al emitirse el comando TotalTender o CloseFiscalReceipt.
(20) Las percepciones de monto fijo se ingresan mediante el comando Perceptions. Son
impresas al emitirse el comando TotalTender o CloseFiscalReceipt.
(21) El monto del valor neto de los productos se imprime automáticamente (precedido por
la leyenda “NETO SIN IVA”) al emitirse el comando TotalTender o CloseFiscalRe-
ceipt.
(22) El monto de cada una de las alícuotas de los productos son impresos automáticamen-
te (precedidos de la leyenda “IVA” más la alícuota correspondiente) al emitirse el
comando TotalTender o CloseFiscalReceipt.
(24) El monto de los impuestos internos correspondientes a los productos vendidos se im-
prime automáticamente (precedido de la leyenda “CONCEPTOS NO GRAVADOS”) al
emitirse el comando TotalTender o CloseFiscalReceipt.
(26) El monto correspondiente al total es calculado e impreso, junto con la línea siguien-
te, mediante el comando TotalTender. La palabra “TOTAL” es impresa automática-
mente. Toda la línea se imprime en caracteres de doble ancho.
(27) La leyenda RECIBI/MOS es impresa automáticamente una vez que se ingresan los me-
dios de pago, o al emitirse el comando CloseFiscalReceipt.
(29) En la estructura TRAILER se almacenan datos de interés del usuario del controlador:
por ejemplo, nombre del cajero, número de cliente, número de documento con el
que se paga, etc. Es impresa al emitirse el comando CloseFiscalReceipt. Los datos se
ingresan mediante el comando SetHeaderTrailer.
(30) El número del controlador fiscal es leído de la EPROM fiscal y es impreso automáti-
camente al emitirse el comando CloseFiscalReceipt. En las versiones superiores a la
1.00, el número de la versión de firmware también es impreso automáticamente al
emitirse el comando CloseFiscalReceipt.
Bit Descripción
0 1 = Error en chequeo de memoria fiscal.
Al encenderse la impresora se produjo un error en el checksum.
La impresora no funcionará.
1 1 = Error en chequeo de memoria de trabajo
Al encenderse la impresora se produjo un error en el checksum.
La impresora no funcionará.
2 1 = Carga de batería baja
La carga de la batería de respaldo de la memoria de trabajo se encuentra
baja.
3 1 = Comando desconocido
El comando recibido no fue reconocido.
4 1 = Datos no válidos en un campo
Uno de los campos del comando recibido tiene datos no válidos por ejemplo,
datos no numéricos en un campo numérico).
5 1 = Comando no válido para el estado fiscal actual
Se ha recibido un comando que no es válido en el estado actual del controla-
dor (por ejemplo, abrir un recibo no-fiscal cuando se encuentra abierto un
recibo fiscal).
Nota: cuando se ha producido un cambio no válido de código de IVA, tanto el
bit 4 como el 5 tendrán valor 1.
6 1 = Desborde del Total
El acumulador de una transacción, del total diario o del IVA se desbordará a
raíz de un comando recibido.
El comando no es ejecutado. Este bit debe ser monitoreado por el host para
emitir un aviso de error.
7 1 = Memoria fiscal llena, bloqueada o dada de baja
En caso de que la memoria fiscal esté llena, bloqueada o dada de baja, no se
permite abrir un comprobante fiscal.
8 1 = Memoria fiscal a punto de llenarse
La memoria fiscal tiene 30 o menos registros libres.
Este bit debe ser monitoreado por el host para emitir el correspondiente
aviso.
9 1 = Terminal fiscal certificada
Indica que la impresora ha sido inicializada.
10 1 = Terminal fiscal fiscalizada
Indica que la impresora ha sido inicializada.
11 1 = Error en ingreso de fecha
Se ha ingresado una fecha no válida.
Para volver al bit a 0 debe ingresarse una fecha válida.
12 1 = Documento fiscal abierto
Se encuentra en 1 siempre que un documento fiscal se encuentra abierto.
13 1 = Documento abierto
Este bit se encuentra en 1 siempre que un documento (fiscal, no fiscal o no
fiscal homologado) se encuentra abierto.
Bit Descripción
0 Siempre 0
1 Siempre 0
2 1 = Error de impresora
Se ha interrumpido la conexión entre el controlador fiscal y la impresora.
3 1 = Impresora offline
La impresora no ha logrado comunicarse dentro del período de tiempo esta-
blecido.
4 1 = Falta papel del diario
El sensor de papel del diario ha detectado falta de papel.
5 1 = Falta papel de tiques
El sensor de papel de tiques ha detectado falta de papel.
6 1 = Buffer de impresora lleno
El controlador fiscal convierte los comandos enviados por un host en co-
mandos fiscales, y los almacena en un buffer antes de enviarlos a la impre-
sora fiscal. Cuando el buffer se aproxima a su capacidad máxima, este bit se
activa. Cualquier comando que se envíe cuando este bit está en 1 no se eje-
cuta y debe ser reenviado por el host.
7 1 = Buffer de impresora vacío
Este bit se activa cuando el buffer mencionado en el punto anterior se en-
cuentra vacío. Es una indicación al host de que todos los comandos fueron
enviados a la impresora fiscal.
8 1 = Tapa de impresora abierta.
9 Siempre 0.
10 Siempre 0.
11 Siempre 0.
12 Siempre 0.
13 Siempre 0.
14 1 = Cajón de dinero cerrado o ausente.
15 1 = OR lógico de los bits 2-5, 8 y 14.
Este bit sencuentra en 1 siempre que alguno de los bits del 2 al 5, el bit 8 o
el 14, se encuentre en 1.
Los 10 valores de la tabla se llenan en forma dinámica. Al inicio de la jornada fiscal las
10 posiciones se encuentran vacías. Al recibir un comando PrintLineItem, y antes de
que la venta quede registrada, el controlador verifica:
Si ya se ha vendido, en el mismo tique, un producto con un IVA similar.
En caso afirmativo la venta es aceptada.
En caso contario, verifica:
Si el IVA del producto a venderse ya se encuentra almacenado en la tabla. En caso
afirmativo la venta es aceptada.
En caso contrario, verifica:
Si hay espacio disponible en la tabla. En caso afirmativo la venta es aceptada y
se llena la primera posición disponible de la tabla con el IVA del producto ven-
dido.
En caso contrario, la venta es rechazada.
Al realizarse el cierre de jornada fiscal mediante el comando DailyClose, todas las po-
siciones de la tabla de IVA son puestas a cero.
1
M = Pv 1 -
1 + iva.k
donde
M = Monto a sumar en el acumulador correspondiente a iva.
Pv = Precio de venta
iva = Valor porcentual del IVA expresado en forma decimal.
k = Coeficiente de impuestos internos = 1/(1+Ii), donde Ii es el valor, expresado en
forma decimal, del cociente entre impuestos internos y precio base (Ej: Precio base
= $ 20; Impuesto interno = $ 1. Por lo tanto, Ii = 1/20 = 0,05, y k = 1/(1+0.05) =
0,9523809).
En todos los casos de descuentos o recargos, el controlador sólo reconoce montos fijos. En
caso de que se desee hacer un descuento o recargo porcentual, el cálculo del monto fijo
que debe enviarse al controlador queda por cuenta del programa de caja o facturación.
6.4.1. Tiques-factura A
• Descuento general
• Descuento general
Miva = Suma de los montos correspondientes a IVAs de los items sobre los
que se realiza el descuento.
Conector DB25H
Conector DB25M
Pin Señal
2 Printer Transmit Data
3 Printer Receive Data
7 Signal Ground
Los datos intercambiados entre host y controlador fiscal son ASCII y el controlador fiscal
responde sólo al protocolo Xon/Xoff. Como cada comando enviado por el host debe recibir
una respuesta del controlador fiscal, éste nunca enviará control de paso Xoff al host.