Protocolo Fiscal PNP
AQUI Ejemplo Github
AQUI
Se substituye separador 0x1F por ':' y multi comandos separados por '|'
Abrir Gaveta: 0x7B = ascii '{'
https://desarrollospnp.com/sim/pf.php?{|
Reporte X: 0x39 = ascii '9'
https://desarrollospnp.com/sim/pf.php?9:X
Reporte Z: 0x39 segundo parametro Z
https://desarrollospnp.com/sim/pf.php?9:Z
Docuemento FiscalFactura Abrir: 0x40 = ascii '@', parametros: Razon social (39), Rif(12)...
@:Test Name:RifTest
Renglon: 'B', parametros: Descripcion (20), Cantidad(5.3),Precio U(10.2),IVA(4.2),Calificador (M/D)
B:Producto:1000:1000:1600:M
Texto: 0x41 = ascii 'A', parametros: Texto(39)
A:Test de texto fiscal
Cerrar 'E', parametros: (A,T,B,U),IGTF(10.2) Respuesta: Cant Fac Emitidas:Contador Fac:Cont NC:IGTF
Nota de Crédito, igual que factura pero agregar parametros: @:RazSocial:Rif:NumFac:Serial:Fecha:hora:D Ejemplo:
Emitir Nota de crédito
E:U:1000 Total con IGTF
E:T Total sin IGTF
E:A Parcial sin IGTF
E:B:1000 Parcial con IGTF
Documento No Fiscal:Abrir: 0x48 = 'H'
https://desarrollospnp.com/sim/pf.php?H
Linea de Texto: 'I', parametros: Texto(39)...
https://desarrollospnp.com/sim/pf.php?I:Text texto no fiscal
Cerrar: 'J'
https://desarrollospnp.com/sim/pf.php?J
Varios:
Sub Total: 0x43 = 'C' Respuesta: valores de factura. Ver manual.
https://desarrollospnp.com/sim/pf.php?C
Estado Fiscal: 0x38 '8', parametros: Tipo (Ver Manual)...
https://desarrollospnp.com/sim/pf.php?8:A
Serial de Impresora: 0x80 '%80'
https://desarrollospnp.com/sim/pf.php?%80
Factura de prueba:
@|B:Producto:1000:100:1600|E:U:300
Factura de prueba II:
@|B:Producto:1000:100:1600|E:B:300|A:Texto adicional|E:T
No Fiscal De prueba:
https://desarrollospnp.com/sim/pf.php?H|I:Texto de prueba NF|J
El endpoint de las impresoras es http://ip_impresora/Q?
Llamada jQuery $.get( "https://desarrollospnp.com/sim/pf.php?9:X" ); // reporte X
Tener presente que las llamadas a la impresora son http y los exploradores pueden requerir autorizaciones para acceder a "paginas no seguras"
Respuestas: '1' Si el comando fue exitoso. ERROR x si hay error, o los campos especificados en el manual de protocolo separados por ':'. Todos los campos son enteros de largo variable.