Skip to content

JSON Comandos Para impresora Fiscal

wDirac edited this page Jun 29, 2017 · 27 revisions

Listado de comandos fiscales


dailyClose

Realiza el cierre fiscal. Acepta como parámetro el tipo de cierre (X o Z) y si no se le pasa parámetro realiza el cierre X.

Parametros del comando

Tipo CHAR que puede ser "X" o "Z" dependiendo lo que se quiera imprimir

Ejemplo:

//JSON que se envía al servidor desde el cliente según el tipo de cierre:

// imprime un Zeta
{
  "dailyClose": "Z"
}
Imprime un cierre tipo X
{
  "dailyClose": "X"
}

Respuesta

Recibe un JSON con toda la informacion que viene de la fiscal.

//JSON que recibe el cliente como respuesta:

{ 
  _RESERVADO_SIEMPRE_CERO_: "0" (Integer)  
  _cant_doc_fiscales_: "0" (Integer)  
  _cant_doc_fiscales_a_emitidos_: "0" (Integer)  
  _cant_doc_fiscales_bc_emitidos_: "0" (Integer)  
  _cant_doc_fiscales_cancelados_: "0" (Integer)  
  _cant_doc_nofiscales_: "1" (Integer)  
  _cant_doc_nofiscales_homologados_: "0" (Integer)  
  _cant_nc_a_fiscales_a_emitidos_: "0" (Integer)  
  _cant_nc_bc_emitidos_: "0" (Integer)  
  _cant_nc_canceladas_: "0" (Integer)  
  _monto_credito_nc_: "0.00" (Float)  
  _monto_imp_internos_: "0.00" (Float)  
  _monto_imp_internos_nc_: "0.00" (Float)  
  _monto_iva_doc_fiscal_: "0.00" (Float)  
  _monto_iva_nc_: "0.00" (Float)  
  _monto_iva_no_inscripto_: "0.00" (Float)  
  _monto_iva_no_inscripto_nc_: "0.00" (Float)  
  _monto_percepciones_: "0.00" (Float)  
  _monto_percepciones_nc_: "0.00" (Float)  
  _monto_ventas_doc_fiscal_: "0.00"(Float)  
  _status_fiscal_: "0600" (Hexadecimal)  
  _status_impresora_: "C080" (Hexadecimal)  
  _ultima_nc_a_: "30" (Integer)  
  _ultima_nc_b_: "327" (Integer)  
  _ultimo_doc_a_: "2262" (Integer)  
  _ultimo_doc_b_: "66733" (Integer)  
  _ultimo_remito_: "0" (Integer)  
  _zeta_numero_: "1" (Integer)  
}  

JSON Accion: printTicket

Imprime el ticket, se le deben pasar parametros como, el encabezado, items, pagos que son listas [], addAdditional, setHeader, setTrailer. Devuelve lo que _cerrarComprobante() a su vez devolvió.

Protocolo para formar un JSON con el objetivo de imprimir un ticket. Se compone de 3 distintas partes:

  • Encabezado
  • Ítems
  • Pagos (opcional)

Al imprimir un ticket el servidor enviará 3 comandos previos que pueden resultar en un mensaje de warning: "comando no es valido para el estado de la impresora fiscal ". Esto no es un error, sino que antes de imprimir un tiquet envia:

  • CANCELAR CUALQUIER TIQUET ABIERTO
  • CANCELAR COMPROBANTE NO FISCAL
  • CANCELAR NOTA ED CREDITO O DEBITO Es una comprobación útil que ahorrará dolores de cabeza y posibilidades de bloquear la impresora fiscal.

Encabezado (Obligatorio)

tipo: Json

{
"encabezado": {
			        "tipo_cbte": "FA", // tipo tiquet VARIABLE ESTATICA *obligatorio
			        "nro_doc": "20267565393", // identificacion cliente
			        "domicilio_cliente": "Rua 76 km 34.5 Alagoas", // domicilio
			        "tipo_doc": "DNI", // tipo documento VARIABLE ESTATICA (mas abajo se detallan)
			        "nombre_cliente": "Joao Da Silva", // nombre cliente
			        "tipo_responsable": "RESPONSABLE_INSCRIPTO" // VARIABLE ESTATICA
			    }
}


// ejemplo Nota de Crédito "B"
{
"encabezado": {
			        "tipo_cbte": "NCB", // tipo tiquet VARIABLE ESTATICA *obligatorio		        
				"referencia": "000100012" // numero de comprobante impreso
			    }
}
                
Variables Estáticas Para Encabezado
tipo_cbte
        "T"  # tiques
        "FA", 
        "FB", 
        "NDA", 
        "NCA", 
        "NDB", 
        "NCB", 
        "FC", 
        "NDC", 
        "NDC",


        
tipo_responsable
        "RESPONSABLE_INSCRIPTO"
        "RESPONSABLE_NO_INSCRIPTO"
        "NO_RESPONSABLE"
        "EXENTO"
        "CONSUMIDOR_FINAL"
        "RESPONSABLE_MONOTRIBUTO"
        "NO_CATEGORIZADO"
        "PEQUENIO_CONTRIBUYENTE_EVENTUAL"
        "MONOTRIBUTISTA_SOCIAL"
        "PEQUENIO_CONTRIBUYENTE_EVENTUAL_SOCIAL"
                        

tipo_doc
        "DNI"
        "CUIT"
        "LIBRETA_ENROLAMIENTO"
        "LIBRETA_CIVICA"
        "CEDULA"
        "PASAPORTE"
        "SIN_CALIFICADOR"

Ítems (Obligatorio)

tipo: list

{
 "items": [
    {
        "alic_iva": 21.0, // * Obligatorio
        "importe": 0.01, // * Obligatorio
        "ds": "Descripcion Producto", // * Obligatorio
        "qty": 1.0 // * Obligatorio
    },
    {
        "alic_iva": 21.0,
        "importe": 0.22,
        "ds": "COCA COLA",
        "qty": 2.0
    }
]
}               
                

Todos los campos del ítem son obligatorios

Pagos (Opcional)

tipo: list

{
"pagos": [
        {
        "ds": "efectivo", // * Obligatorio
        "importe": 1.0    // * Obligatorio
        }
    ]
}

Ejemplo completo de "printTicket"

		json = {		
			"printTicket": {
				"encabezado": {
			        "tipo_cbte": "FA",
			        "nro_doc": "20267565393",
			        "domicilio_cliente": "Rua 76 km 34.5 Alagoas",
			        "tipo_doc": "DNI",
			        "nombre_cliente": "Joao Da Silva",
			        "tipo_responsable": "RESPONSABLE_INSCRIPTO"
			    },
			    "items": [
			        {
			            "alic_iva": 21.0,
			            "importe": 0.01,
			            "ds": "PIPI",
			            "qty": 1.0
			        },
			        {
			            "alic_iva": 21.0,
			            "importe": 0.22,
			            "ds": "COCA",
			            "qty": 2.0
			        }
			    ],
			    "pagos": [
			        {
			            "ds": "efectivo",
			            "importe": 1.0
			        }
			    ]
				}
			}

		json = {
				"printTicket": {
					"encabezado": {
						"tipo_cbte": "T"
					},
					"items": [{
						"alic_iva": 21.0,
						"importe": 0.01,
						"ds": "PEPSI",
						"qty": 1.0
					}, {
						"alic_iva": 21.0,
						"importe": 0.12,
						"ds": "COCA",
						"qty": 2.0
					}]
				}
			}

			// ejemplo de Nota de Credito
			json = {
				"printTicket": {
					"encabezado": {
						"tipo_cbte": "NCB",
						"referencia": "001000000025"
					},
					"items": [{
						"alic_iva": 21.0,
						"importe": 0.01,
						"ds": "PEPSI",
						"qty": 1.0
					}, {
						"alic_iva": 21.0,
						"importe": 0.12,
						"ds": "COCA",
						"qty": 2.0
					}]
				}
			}

'setHeader' -->

Setea el encabezado del ticket Se le debe pasar una Lista con los renglones a colocar donde cada item es un renglon []

'setTrailer' -->

Setea el pie de pagina Se le debe pasar una Lista con los renglones a colocar donde cada item es un renglon []

'openDrawer' --> Abre caja registradora, no parametros

'getlastNumber' --> Devuelve el último número de comprobante

'cancelDocument' --> Se cancela documento en curso, no parametros