Factura Electronica -SUNAT PERU

18,082 views
Skip to first unread message

Martin Inga

unread,
Feb 26, 2016, 9:11:58 AM2/26/16
to publice...@googlegroups.com

Estimado Grupo, buenos días,

Debo realizar la implementación de la Facturación Electrónica, en mis aplicativos he visto, ya descargue toda la documentación de la Web de la  SUNAT, he visto un ejemplo de la validación de un envió a la SUNAT, pero ese envió esta realizado en VB.NET , consumir WebService mi pregunta es : todo el proceso de validación lo puedo realizar en FOX o necesitaré complementarlo con otro desarrollo por ejemplo con VB.NET. o C#

 

Agradeceré me puedan orientar.

 

Gracias,

Martín Inga

 

Daniel Sánchez

unread,
Feb 26, 2016, 6:38:46 PM2/26/16
to Comunidad de Visual Foxpro en Español
Compañero Martín, el consumo de webservice no se puede hacer desde vfp, ya que no trabaja con el tipo de webservice que necesitas para conectarte con la sunat (por decirlo de alguna manera), ahora en vb.net si se puede hacer tampoco es muy complicado o un gran programa, solo conectarse, enviar el archivo, recepcionar la constancia de recepción, volver a preguntar si fue aceptado o rechazado, no más de 100 lineas de programa todo eso, cualquiera con conocimientos básico de vb.net te lo puede hacer sin problemas.
El punto complicado es hacer la estructura xlm, crear los paquetes de validación necesarios que solicita la sunat para que te acepten como facturador electrónico, ahí esta un tanto el trabajo.

Saludos
--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil +051-949398047 RPM #948615385
Trujillo - Perú

P  Sugerimos no imprimir este e-mail a menos que sea absolutamente necesario. Protejamos el medio ambiente.

Martin Inga

unread,
Feb 26, 2016, 11:21:24 PM2/26/16
to publice...@googlegroups.com

Daniel agradezco tu amabilidad por la explicación.

Gracias,

Martín

 

SISTEMAS VFPSTEAM

unread,
Jun 4, 2016, 3:27:39 AM6/4/16
to Comunidad de Visual Foxpro en Español, marti...@hotmail.com
Hola amigo buenas noches puedes revisar nuestro producto de facturación electrónica desarrollado con nuestro querido Zorro.


Saludos y a tus ordenes

VFPSTEAM BI SOLUTIONS

Zen Tes

unread,
Jun 4, 2016, 10:14:45 PM6/4/16
to Comunidad de Visual Foxpro en Español
Compañero Daniel.

Si se puede consumir el WS desde VFP 9, he probado la validacion de documento emitido sin ningun problema, el envio de factura al WS demo de SUNAT sin ningún problema. Las unicas dificultades con las que me he topado son la generación del los archivos XML, el firmado del XML.

VFP es lo máximo.

saludos.

Zen.

Daniel Sánchez

unread,
Jun 5, 2016, 6:11:32 AM6/5/16
to Comunidad de Visual Foxpro en Español
Interesante lo que comentas, podrías compartir el tema del trabajo con tu webservice de envío y recepción a sunat.

Saludos

ArturoPC

unread,
Jun 10, 2016, 11:16:15 AM6/10/16
to Comunidad de Visual Foxpro en Español, marti...@hotmail.com
Hola Martín.

Confía en el zorro, todo se puede hacer desde VFP9SP2.

Te recomiendo que dediques un tiempo a buscar por la web y a probar y probar y probar código, los resultados serán más que satisfactorios. Claro, algunas cosas -como el firmado de los XML- son cosas naturales en lenguajes como C# y si no le tienes miedo pues te descargas el Visual Studio Cummunity (que es gratuito) y casi sin darte cuenta puedes hacer el firmado y ahí y consumirlo desde VFP y te ahorras varias horas y dolores de cabeza. ¡Suerte!

Saludos.

Arturo PC.

Zen Tes

unread,
Jun 20, 2016, 1:04:52 PM6/20/16
to Comunidad de Visual Foxpro en Español
Estimados Colegas.

Facturación Electrónica Perú

Comparto con Uds. Rutina para Consultar Factura Electrónica - SUNAT.

http://orientacion.sunat.gob.pe/index.php/empresas-menu/comprobantes-de-pago-empresas/comprobantes-de-pago-electronicos-empresas/see-desde-los-sistemas-del-contribuyente/2-comprobantes-que-se-pueden-emitir-desde-see-sistemas-del-contribuyente/factura-electronica-desde-see-del-contribuyente/3544-servicio-web-de-consultas


*-- BY ZEN TES
*-- PROYECTO FACTURA ELECTRONICA - SUNAT

#DEFINE SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS    13056

lcRuc_Cliente = '20XXXX...'
lcUser_Sol = "USUARIOSOLCLIENTE"
lcPswd_Sol = "passwordsolcliente"
*-
lcUserName = lcRuc_Cliente + lcUser_Sol
*-
lcRuc_Proveedor = "201XXX..."
lcTip_Documento = "01"
lcSerie_Doc = "fa76"
lcNumeroDoc = "105866"
*-

loXmlHttp = CREATEOBJECT("MSXML2.ServerXMLHTTP.6.0")
loXMLBody = CREATEOBJECT("MSXML2.DOMDocument.6.0")
?loXmlHttp, loXMLBody

lcURL   = "https://www.sunat.gob.pe/ol-it-wsconscpegem/billConsultService"

*lcURL   = "https://"+"190.108.95.72"+"/ol-it-wsconscpegem/billConsultService"
*lcURL    = "https://www.sunat.gob.pe:443/ol-it-wsconscpegem/billConsultService?wsdl"

TEXT TO lcEnvioXML TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8
<soapenv:Envelope xmlns:ser="http://service.sunat.gob.pe"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<soapenv:Header>
<wsse:Security>
<wsse:UsernameToken>
<wsse:Username><<lcUserName>></wsse:Username>
<wsse:Password><<lcPswd_Sol>></wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<ser:getStatus>
<rucComprobante><<lcRuc_Proveedor>></rucComprobante>
<tipoComprobante><<lcTip_Documento>></tipoComprobante>
<serieComprobante><<lcSerie_Doc>></serieComprobante>
<numeroComprobante><<lcNumeroDoc>></numeroComprobante>
</ser:getStatus>
</soapenv:Body>
</soapenv:Envelope>
ENDTEXT

?lcEnvioXML

IF NOT loXMLBody.loadXML( lcEnvioXML )
    ERROR loXMLBody.parseError.reason
ENDIF

loXmlHttp.OPEN( "POST", lcURL, .F. )
loXmlHttp.setRequestHeader( "Content-Type", "text/xml" )
loXmlHttp.setRequestHeader( "Content-Type", "text/xml;charset=ISO-8859-1" )
loXmlHttp.setRequestHeader( "Content-Length", LEN(lcEnvioXML) )
loXmlHttp.SetRequestHeader( "SOAPAction" , "getStatus" )
loXmlHttp.setOption( 2, SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS )
        
loXmlHttp.SEND(loXMLBody.documentElement.XML)
        
IF loXmlHttp.status # 200
    ERROR (NVL(loXmlHttp.responseText,''))
ENDIF

*-- Aquí se lee el contenido del XML de la propiedad "loXmlHttp.responseText"
*res = CreateObject("MSXML2.DOMDocument")
res = CREATEOBJECT("MSXML2.DOMDocument.6.0")
res.LoadXML(loXmlHttp.responseText)
txtCod = res.selectSingleNode("//statusCode")  &&Return
? "Codigo Respuesta : "+txtCod.text
txtMsg = res.selectSingleNode("//statusMessage")  &&Return
? "Mensage : "+txtMsg.text


Si todos nos apoyamos (foxeros peruanos) podemos conseguir desarrollar desde nuestro querido zorrito, algunos colegas ya lo desarrollaron, pero es comprensible que cobren por su trabajo y dedicación.

Espero sus comentarios y agradecer no cuesta.

saludos

Zen.

Jean Pierre Adonis De La Cruz Garcia

unread,
Jun 20, 2016, 4:36:19 PM6/20/16
to Comunidad de Visual Foxpro en Español
Felicitaciones Zenon, se agradece tu aporte.
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted

Diego Rojas

unread,
Jun 22, 2016, 6:16:40 PM6/22/16
to Comunidad de Visual Foxpro en Español
Bien,
Apoyo con un ejemplo de como firmar el archivo, en el adjunto hay un dll para hacerlo:

* Contenido del Adjunto : 

* Batch "Registrar" para registrar la dll, 

* archivo xml a firmar el nombre del archivo tiene que estar estructurado de la siguiente manera :

lo 11 primeros digitos el numero de ruc, los 2 siguientes digitos identifican el tipo de comprobante 01-factura 03-boleta 07-nc 08-nd, ra-comunicacion de baja y rc-resumen diario
luego 4 digitos que indican la serie "FF11" luego el correlativo de su factura todos tiene que estar separados por un guion en medio.

una llave de prueba con clave  "usr006"

también incluyo un prg para la prueba.

espero les sea de ayuda en su proposito de poder realizar la facturacion electronica desde su sistema.

Cambien la extension del archivo por rar

Saludos,
Diego
Registrar.txt

Jean Pierre Adonis De La Cruz Garcia

unread,
Jun 22, 2016, 7:08:38 PM6/22/16
to Comunidad de Visual Foxpro en Español
diego, sale error en el archivo, "Error inesperado", 

Diego Rojas

unread,
Jun 22, 2016, 8:14:33 PM6/22/16
to Comunidad de Visual Foxpro en Español
Hola,
Al hacer que? te sale el error :

Tener en cuenta lo siguiente :

Ejecutar el archivo registrar, luego el prg y va firmar el archivo xml que esta en el adjunto

LOCAL fT1
fT1=CREATEOBJECT("FacturaElectronica.Fe")
fT1.firmado("D:\Registrar\20381235051-01-FF11-01.xml","D:\Registrar\usr0061.p12","usr0061")
RELEASE fT1

Fijate que en el archivo prg puse una ruta fija para los archivos, la puedes cambiar segun la ruta
que tienes me olvide corregir esa parte.

por favor tener en cuenta lo que digo, si no dime en donde te sale el error.

por ultimo necesita net framework 4 para poder registrar la dll

Saludos,
Diego

Zen Tes

unread,
Jun 22, 2016, 10:55:08 PM6/22/16
to Comunidad de Visual Foxpro en Español
Estimado Diego.

Intento abrir el archivo y sale error de cabecera. Quizás no subió correctamente.
intenta subirlo con extensión Registrar._rar

saludos

Zen.


El miércoles, 22 de junio de 2016, 17:16:40 (UTC-5), Diego Rojas escribió:

Daniel Sánchez

unread,
Jun 23, 2016, 9:06:48 AM6/23/16
to Comunidad de Visual Foxpro en Español
Excelente Zen Tes, corre perfecto tu ejemplo alcanzado, es un excelente plus para brindar al cliente, ahora tan necesario para el caso de verificar los documentos electrónicos.



Saludos

Daniel Sánchez

unread,
Jun 23, 2016, 9:08:46 AM6/23/16
to Comunidad de Visual Foxpro en Español
Diego, el adjunto registrar.txt que supongo esta en formato rar no esta bien, al abrir da error inesperado, verificar adjunto para volver a compartir.

Saludos

Diego Rojas

unread,
Jun 23, 2016, 10:22:23 AM6/23/16
to Comunidad de Visual Foxpro en Español
Ok lo estoy volviendo a subir por favor me avisan si esta ves descarga correcto si no lo subo a otro lado para que lo descarguen.

Saludos,
Diego
Registrar._rar

Zen Tes

unread,
Jun 23, 2016, 11:33:13 AM6/23/16
to Comunidad de Visual Foxpro en Español
Diego

Ya se puede ver el archivo. Vamos a realizar las pruebas.
Se agradece este importante aporte.

saludos

Zen

Jean Pierre Adonis De La Cruz Garcia

unread,
Jun 23, 2016, 1:15:03 PM6/23/16
to Comunidad de Visual Foxpro en Español
Perfecto diego, ya se puede descargar, perola pregunta es, cual es la limitacion, que se puede y que no se puede hacer con ese pequeño y gran DLL. te agradezco tu colaboración


El jueves, 23 de junio de 2016, 9:22:23 (UTC-5), Diego Rojas escribió:

Diego Rojas

unread,
Jun 23, 2016, 2:57:39 PM6/23/16
to Comunidad de Visual Foxpro en Español
Hola,

La DLL te sirve para firmar los XML de la factura electrónica, para ellos necesitas tener un certificado digital (en el archivo que adjunte puse un certificado digital de ejemplo, para el caso de uds deberia tener su certificado ya lista), los firma y te lo zipea según estructura de la sunat.

En el metodo firmado se tiene que pasar 3 variables,

la primera es el archivo XML a firmar el nombre del XML debe cumplir estructura de sunat :

lo 11 primeros digitos el numero de ruc, los 2 siguientes digitos identifican el tipo de comprobante 01-factura 03-boleta 07-nc 08-nd, ra-comunicacion de baja y rc-resumen diario
luego 4 digitos que indican la serie "FF11" luego el correlativo de su factura todos tiene que estar separados por un guion en medio.
 Ejm:

10447666389-01-FA01-1840

, la segunda es la ruta del certificado digital y en el tercero la clave del certificado digital

El codigo en Fox es el siguiente :

LOCAL fT1
fT1=CREATEOBJECT("FacturaElectronica.Fe")
fT1.firmado("D:\Registrar\20381235051-01-FF11-01.xml","D:\Registrar\usr0061.p12","usr0061")
RELEASE fT1

Consideraciones :

El XML que quieren firmar tiene que tener el nodo <ds:Signature> la dll va buscar ese nodo dentro de su XML y ahi es donde va poner la firma
si no encuentra el nodo les va salir error si el archivo ya esta firmado también les va salir error.

Cualquier duda me avisas.

Saludos,
Diego

MALKASOFT ADPI: http://www.developervfp.blogspot.com/

unread,
Jun 23, 2016, 7:25:41 PM6/23/16
to Comunidad de Visual Foxpro en Español
Hola que bueno que ya se este dando pequeños paso, yo estoy trabajando en el envió a la SUNAT espero tenerlo pronto listo y si alguien sabe de algo a un que se en .Net me lo puede mandar ya después se hace una DLL y se puede usar en VFP, como dice el colega todos colaborando con un granito de arena podemos hacer que esto salga adelante.

Daniel Sánchez

unread,
Jun 25, 2016, 10:20:48 AM6/25/16
to Comunidad de Visual Foxpro en Español
Excelente el tema de la consulta, como seria para enviar el archivo xml firmado al servidor web sunat usando webservice desde vfp, considerando también que solicita que el archivo a enviar este comprimido y sea en binario (supongo que binario se refiere a base64, ya Victor Espina nos brinda una clase que maneja sin problemas cualquier archivo a ese formato, aunque también lo hace la función nativa strconv), al ver el código brindando de consulta debo suponer que seria algo similar, haber si nos sacas la idea de que no se puede hacer en vfp.

Saludos

El 20 de junio de 2016, 12:04, Zen Tes <ztc...@gmail.com> escribió:

Leonardo N.

unread,
Jun 26, 2016, 4:39:14 PM6/26/16
to Comunidad de Visual Foxpro en Español
Diego Rojas;

Excelente contribución con la DLL. Lo he probado y efectúa la firma tal como se solicita.  El unico detalle es que arroja 2 MessageBox por cada XML que se firma: "Se Genero La firma Satisfactoriamente" y "Archivo Zip Generado Satisfactoriamente". Estos mensaje en un ambiente de producción sincrono y/o asincrono generaría una interrupción. Si podrias retirar dichos mensajes ó si fuesen configurables, sería excelente.

Saludos.

Diego Rojas

unread,
Jun 26, 2016, 10:10:52 PM6/26/16
to Comunidad de Visual Foxpro en Español
Verifica el XML de zen y compara con el que pide la sunat por ahi te puedes orientar 
para el caso que plantea zen el hace una consulta sobre el envio de una factura
por eso utiliza el metodo getStatus si lo que quieres es enviar a la sunat tendrias que
usar el metodo sendBill verifica en la web de la sunat ahi esta todo.

Saludos,
Diego

TEXT TO lcEnvioXML TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8 
<soapenv:Envelope xmlns:ser="http://service.sunat.gob.pe"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<soapenv:Header>
<wsse:Security>
<wsse:UsernameToken>
<wsse:Username><<lcUserName>></wsse:Username>
<wsse:Password><<lcPswd_Sol>></wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<ser:getStatus>
<rucComprobante><<lcRuc_Proveedor>></rucComprobante>
<tipoComprobante><<lcTip_Documento>></tipoComprobante>
<serieComprobante><<lcSerie_Doc>></serieComprobante>
<numeroComprobante><<lcNumeroDoc>></numeroComprobante>
</ser:getStatus>
</soapenv:Body>
</soapenv:Envelope>
ENDTEXT 



Daniel Sánchez

unread,
Jun 27, 2016, 11:22:21 AM6/27/16
to Comunidad de Visual Foxpro en Español
Hola Diego, según lo que comentas seria algo como esto, para enviar los archivos para homologación, haber si me confirma Zen Tes, al respecto.

loXmlHttp = CREATEOBJECT("MSXML2.ServerXMLHTTP.6.0") 
loXMLBody = CREATEOBJECT("MSXML2.DOMDocument.6.0") 
*?loXmlHttp, loXMLBody

lcURL   ="https://www.sunat.gob.pe:443/ol-ti-itcpgem-sqa/billService"

lcuserName=[20100000000USUARIOSOL]
lcPswd_Sol=[clavesol]
lcnamefilezip=[20100000000-01-F001-1.ZIP]
lcContZip=filetostr(lcnamefilezip)
lcZipbase64=strconv(lcContZip,13)

TEXT TO lcEnvioXML TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8 
<soapenv:Envelope xmlns:ser="http://service.sunat.gob.pe"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<soapenv:Header>
<wsse:Security>
<wsse:UsernameToken>
<wsse:Username><<lcUserName>></wsse:Username>
<wsse:Password><<lcPswd_Sol>></wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<ser:sendBill>
<fileName><<lcnamefilezip>></fileName>
<contentFile><<lczipbase64>></contentFile>
</ser:sendBill>
</soapenv:Body>
</soapenv:Envelope></soapenv:Envelope>
ENDTEXT 

IF NOT loXMLBody.loadXML( lcEnvioXML ) 
    ERROR loXMLBody.parseError.reason 
ENDIF 

loXmlHttp.OPEN( "POST", lcURL, .F. ) 
loXmlHttp.setRequestHeader( "Content-Type", "text/xml" ) 
loXmlHttp.setRequestHeader( "Content-Type", "text/xml;charset=ISO-8859-1" ) 
loXmlHttp.setRequestHeader( "Content-Length", LEN(lcEnvioXML) ) 
loXmlHttp.SetRequestHeader( "SOAPAction" , "sendBill" )

loXmlHttp.setOption( 2, SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS ) 
         
loXmlHttp.SEND(loXMLBody.documentElement.XML) 
         
IF loXmlHttp.status # 200 
    ERROR (NVL(loXmlHttp.responseText,'')) 
ENDIF 

Saludos

Diego Rojas

unread,
Jun 28, 2016, 8:32:44 PM6/28/16
to Comunidad de Visual Foxpro en Español
Hola de nuevo,

Hubieron mas de una persona que me dijo que tambien queria firma comprobante de retencion y percepcion,
se hizo el cambio y ahora ya acepta firmar esos dos comprobantes,

Les adjunto la DLL.

Saludos,
Diego
FacturaElectronica._rar

Carlos G.

unread,
Jul 7, 2016, 12:50:55 PM7/7/16
to Comunidad de Visual Foxpro en Español, marti...@hotmail.com
Para el envio al servidor de pruebas de la SUNAT uso el siguiente código:
 
               ls_ruc_emisor = '20100066603'
ls_pwd_sol = 'moddatos'
ls_user = ls_ruc_emisor + 'MODDATOS'  
                ps_fileZip = "E:\NorthWindServices\20100066603-01-F001-00001641.Zip"
ls_fileName = JUSTFNAME(ps_fileZip)
ls_contentFile = FILETOSTR(ps_fileZip)
ls_base64 = STRCONV(ls_contentFile, 13) && Encoding base 64

TEXT TO ls_envioXML TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8
<soapenv:Envelope xmlns:ser="http://service.sunat.gob.pe" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
<soapenv:Header>
<wsse:Security>
<wsse:UsernameToken>
<wsse:Username><<ls_user>></wsse:Username>
<wsse:Password><<ls_pwd_sol>></wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<ser:sendBill>
<fileName><<ls_fileName>></fileName>
<contentFile><<ls_base64>></contentFile>
</ser:sendBill>
</soapenv:Body>
</soapenv:Envelope>
ENDTEXT
oXMLHttp=CREATEOBJECT("MSXML2.ServerXMLHTTP.6.0")
oXMLBody=CREATEOBJECT('MSXML2.DOMDocument.6.0')
IF !(oXMLBody.loadXML(ls_envioXML)) THEN
oResp.mensaje = "No se cargo XML: " + oXMLBody.parseError.reason
RETURN .f.
ENDIF
oXMLHttp.Open('POST', lsURL, .f.)
oXMLHttp.setRequestHeader( "Content-Type", "text/xml" )
oXMLHttp.setRequestHeader( "Content-Type", "text/xml;charset=ISO-8859-1" )
oXMLHttp.setRequestHeader( "Content-Length", LEN(ls_envioXML) )
oXMLHttp.SetRequestHeader( "SOAPAction" , "sendBill" )

oXMLHttp.setOption(2, SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS)
oXMLHttp.send(oXMlBody.documentElement.XML)
IF (oXMLHttp.status <> 200) THEN 
messagebox('STATUS: ' + ALLTRIM(STR(oXMLHttp.status)) + '-' + NVL(oXMLHttp.responseText,''))
RETURN .
ENDIF

loXMLResp = CREATEOBJECT("MSXML2.DOMDocument.6.0")
loXMLResp.loadXML(oXMLHttp.responseText)
MESSAGEBOX(oXMLHttp.responseText)

Me da el siguiente error en oXMLHttp.responseText :

                <soap-env:Fault>
<faultcode>soap-env:Client</faultcode>
<faultstring>0151</faultstring>
<detail>
<message>El nombre del archivo ZIP es incorrecto
            Detalle:
            xxx.xxx.xxx value='Error de nombre archivo "20100066603-01-F001-00001641.Zip codigo cpe: 01" no es un cpe valido'</message>
</detail>
</soap-env:Fault>

No se si el servidor de la SUNAT esta mal o si la codificación a base 64 es mal hecha

 
 

Daniel Sánchez

unread,
Jul 7, 2016, 1:00:11 PM7/7/16
to Comunidad de Visual Foxpro en Español
Prueba con el nombre del archivo quitando los ceros en tu correlativo quedando así

20100066603-01-F001-1641.Zip

Saludos

Carlos G.

unread,
Jul 7, 2016, 1:15:56 PM7/7/16
to Comunidad de Visual Foxpro en Español
Cambie el nombre del archivo zip y tambien del xml que contiene junto con sus datos internos quitandole los ceros al correlativo pero me devuelve un error similar:
            <soap-env:Fault>
<faultcode>soap-env:Client</faultcode>
<faultstring>0151</faultstring>
<detail>
<message>El nombre del archivo ZIP es incorrecto
            Detalle:
            xxx.xxx.xxx value='Error de nombre archivo "20100066603-01-F001-1641.Zip codigo cpe: 01" no es un cpe valido'
                                 </message>
</detail>
</soap-env:Fault>
Segun el mensaje el nombre del archivo zip esta mal escrito pero no veo donde?

Diego Rojas

unread,
Jul 7, 2016, 1:25:47 PM7/7/16
to Comunidad de Visual Foxpro en Español
Adjunta tu zip para hacer un prueba esta todo correcto otro detalle trata de poner la extensión del archivo en minúscula

Saludos,
Diego

Carlos G.

unread,
Jul 7, 2016, 1:44:00 PM7/7/16
to Comunidad de Visual Foxpro en Español
Tiene Razón Diego el codigo esta bien, pero el error era la url  a la que me conectaba:
lo cambie a :
y todo funciona 
gracias por ayudar.
Saludos Carlos G.

Soft Peruano

unread,
Jul 12, 2016, 11:18:18 AM7/12/16
to Comunidad de Visual Foxpro en Español
Es posible que hagan un poco mejor la explicación, detallada, asi como para brutos como yo, ya que me pierdo rápidamente.

MALKASOFT ADPI: http://www.developervfp.blogspot.com/

unread,
Jul 15, 2016, 3:40:34 PM7/15/16
to Comunidad de Visual Foxpro en Español
Hola sera posible que a tu DLL le puedas añadir un parámetro mas donde indiques la ruta del XML firmado de esa manera puedes tener el XML sin firmar y en otra carpeta tienes los XML Firmados o dejar una copia del original, como te dice los otros compañero retirar los mensajes por favor.

TKTHRALL

unread,
Jul 20, 2016, 2:51:22 PM7/20/16
to Comunidad de Visual Foxpro en Español

Lo Voy a probar   
Se Agradece tu Aprecio por ayudar a los que no conseguíamos poder hacer el envió 

jose carlos aguilar

unread,
Jul 23, 2016, 6:21:28 PM7/23/16
to Comunidad de Visual Foxpro en Español
Amigo, la variable SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS   no esta declarada y me sale error , porfavor donde dberia declararse


El lunes, 27 de junio de 2016, 10:22:21 (UTC-5), Daniel Sánchez escribió:

jose carlos aguilar

unread,
Jul 23, 2016, 8:58:09 PM7/23/16
to Comunidad de Visual Foxpro en Español
Diego, el   oXMLHttp.responseText  me  devuelve una cadena ,  tengo entendido que el metodo senbill me retorna un arreglo de bytes  el cual tengo que convertir a cadena, porfa una explicación. y gracias por tu contribucion.


El jueves, 7 de julio de 2016, 12:25:47 (UTC-5), Diego Rojas escribió:

TKTHRALL

unread,
Jul 25, 2016, 9:45:17 AM7/25/16
to Comunidad de Visual Foxpro en Español
Si Diego como haríamos para que esa cadena se convierta en el  archivo de respuesta zip no lo tengo bien clara 

yo lo tengo Realizado en Net este Proyecto pero como me quede con la espina de Realizarlo en Fox Recurro a ti para un Apoyo

* este es el Archivo XML de Respuesta de Retenciones por Ejemplo y algo así me debería devolver cuando lo envió por VFP


<?xml version="1.0" encoding="UTF-8"?>
<ar:ApplicationResponse xmlns:ar="urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><ext:UBLExtensions><ext:UBLExtension><ext:ExtensionContent><Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
  <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/>
  <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha512"/>
  <Reference URI="">
    <Transforms>
      <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
    <DigestValue>AsSgFd4yC1ypuVYXsQyW5ZezJb+k3FdOsA2K6FtNSkhmXwhBcMgQFldZ5r3TxJqnFvFi5U4lnJr7OJ7u9EOgNw==</DigestValue>
  </Reference>
</SignedInfo>
    <SignatureValue>*Private key 'BetaPublicCert' not up*</SignatureValue><KeyInfo><X509Data><X509Certificate>*Named certificate 'BetaPrivateKey' not up*</X509Certificate><X509IssuerSerial><X509IssuerName>*Named certificate 'BetaPrivateKey' not up*</X509IssuerName><X509SerialNumber>*Named certificate 'BetaPrivateKey' not up*</X509SerialNumber></X509IssuerSerial></X509Data></KeyInfo></Signature></ext:ExtensionContent></ext:UBLExtension></ext:UBLExtensions><cbc:ID>1466544601715</cbc:ID><cbc:IssueDate>2016-06-21</cbc:IssueDate><cbc:IssueTime>00:00:00</cbc:IssueTime><cbc:ResponseDate>2016-06-21</cbc:ResponseDate><cbc:ResponseTime>16:30:01</cbc:ResponseTime><cac:Signature><cbc:ID>SignSUNAT</cbc:ID><cac:SignatoryParty><cac:PartyIdentification><cbc:ID>20131312955</cbc:ID></cac:PartyIdentification><cac:PartyName><cbc:Name>SUNAT</cbc:Name></cac:PartyName></cac:SignatoryParty><cac:DigitalSignatureAttachment><cac:ExternalReference><cbc:URI>#SignSUNAT</cbc:URI></cac:ExternalReference></cac:DigitalSignatureAttachment></cac:Signature><cac:SenderParty><cac:PartyIdentification><cbc:ID>20131312955</cbc:ID></cac:PartyIdentification></cac:SenderParty><cac:ReceiverParty><cac:PartyIdentification><cbc:ID>20512025464</cbc:ID></cac:PartyIdentification></cac:ReceiverParty><cac:DocumentResponse><cac:Response><cbc:ReferenceID>R003-1</cbc:ReferenceID><cbc:ResponseCode>0</cbc:ResponseCode><cbc:Description>El Comprobante numero R003-1 ha sido aceptado</cbc:Description></cac:Response><cac:DocumentReference><cbc:ID>R003-1</cbc:ID></cac:DocumentReference><cac:RecipientParty><cac:PartyIdentification><cbc:ID>6-20501624510</cbc:ID></cac:PartyIdentification></cac:RecipientParty></cac:DocumentResponse></ar:ApplicationResponse>

TKTHRALL

unread,
Jul 25, 2016, 9:49:50 AM7/25/16
to Comunidad de Visual Foxpro en Español
Tu xml esta mal Prueba con un xml validado 


MALKASOFT ADPI: http://www.developervfp.blogspot.com/

unread,
Jul 25, 2016, 10:52:58 AM7/25/16
to Comunidad de Visual Foxpro en Español
Hola buen dia!!!

Tengo error en esta variable SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS donde debo declarar no he podido enviar ni recepcionar la respuesta de SUNAT

Diego Rojas Ccoica

unread,
Jul 25, 2016, 11:02:32 AM7/25/16
to publice...@googlegroups.com
Hola, Buenos dias,

La respuesta que emite la sunat es un archivo xml y dentro de ese archivo existe el nodo applicationResponse
en este nodo se encuentra un cadena binaria en base64 que se tiene que convertir, esta cadena no es nada menos
que un archivo zip y dentro de el se encuentra el archivo xml de respuesta de la sunat

El codigo :

Suponiendo que hiciste toda la cadena de conexion con la sunat y te emitio la respuesta


*Primero capturamos la respuesta de sunat
 
ArchivoRespuestaSunat = CREATEOBJECT("MSXML2.DOMDocument.6.0")  &&Creamos el archivo de respuesta
ArchivoRespuestaSunat.LoadXML(oXMLHttp.responseText) &&Llenamos el archivo de respuesta
TxtB64 = ArchivoRespuestaSunat.selectSingleNode("//applicationResponse")  &&Ahora Buscamos el nodo "applicationResponse" llenamos la variable TxtB64 con el contenido del nodo "applicationResponse"


&Convirtiendo la variable TxtB64 a Zip

txtnomber=Nombre del archivo zip 
decodefile(TxtB64.text,txtnomber)


&&Rutina para decodificar el base64 a zip este codigo lo obtuve de la pagina de Victor Espina el link directo esta aca(http://victorespina.com.ve/wiki/index.php?title=Parser_Base64_para_VFP_usando_CryptoAPI)

DECLARE INTEGER CryptBinaryToString IN Crypt32;
STRING @pbBinary, LONG cbBinary, LONG dwFlags,;
STRING @pszString, LONG @pcchString

DECLARE INTEGER CryptStringToBinary IN crypt32;
STRING @pszString, LONG cchString, LONG dwFlags,;
STRING @pbBinary, LONG @pcbBinary,;
LONG pdwSkip, LONG pdwFlags



 
 FUNCTION decodeString(pcB64)
  LOCAL nFlags, nBufsize, cDst
  nFlags=1  && base64
  nBufsize=0
  CryptStringToBinary(@pcB64, LEN(m.pcB64),nFlags, NULL, @nBufsize, 0,0)
  cDst = REPLICATE(CHR(0), m.nBufsize)
  IF CryptStringToBinary(@pcB64, LEN(m.pcB64),nFlags, @cDst, @nBufsize, 0,0) = 0
   RETURN ""
  ENDIF
  RETURN m.cDst
 ENDPROC 
 
 PROCEDURE decodeFile(pcB64, pcFile)
  LOCAL cBuff
  cBuff = THIS.decodeString(pcB64)
  STRTOFILE(cBuff, pcFile)
 ENDPROC

Con esto ya tiene el archivo zip con la respuesta de sunat.

Espero haberte ayudado.

Saludos,
Diego Rojas
970056225

TKTHRALL

unread,
Jul 26, 2016, 9:58:19 AM7/26/16
to Comunidad de Visual Foxpro en Español
MALKASOFT ESA ES UNA CONSTANTE 

#DEFINE SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS    13056 

TKTHRALL

unread,
Jul 26, 2016, 10:00:17 AM7/26/16
to Comunidad de Visual Foxpro en Español
Muchas Gracias Diego lo Probare  que tal me va y te comento

MALKASOFT ADPI: http://www.developervfp.blogspot.com/

unread,
Jul 27, 2016, 2:10:41 PM7/27/16
to Comunidad de Visual Foxpro en Español
Gracias toca probar

MALKASOFT ADPI: http://www.developervfp.blogspot.com/

unread,
Jul 27, 2016, 2:31:52 PM7/27/16
to Comunidad de Visual Foxpro en Español
Hola a todos tengo el siguiente error no entiendo porque me sale he hecho todo los ejemplos y pasos que aquí estaban haciendo si alguien me puede ayudar por favor

Nombre del XML = 20100066603-01-FF11-01.xml
Nombre del Zip   = 20100066603-01-FF11-01.zip


<soap-env:Header/>
<soap-env:Body>
<soap-env:Fault>
<faultcode>soap-env:Client</faultcode>
<faultstring>0151</faultstring>
<detail>
<message>
El nombre del archivo ZIP es incorrecto Detalle: xxx.xxx.xxx value='ticket: error: Error de nombre archivo "20100066603-01-FF11-01.zip codigo cpe: 01" no es un cpe valido'
</message>
</detail>
</soap-env:Fault>
</soap-env:Body>
</soap-env:Envelope>
Estoy usando la dll para la firma que amablemente compartió un compañero.

Código para crear un archivo XML con la respuesta de la SUNAT que viene como text.

LOCAL lcFileXMLRespuesta
lcFileXMLRespuesta = ""
lcFileXMLRespuesta = oXMLHttp.responseText
cOldSet = SET("Safety")
SET SAFETY OFF
cBuff = STRCONV(lcFileXMLRespuesta ,9)
lcNombreArchivo = "RespuestaSUNAT.xml"
lcRutayNombre = SYS(5)+SYS(2003)+"\"+ lcNombreArchivo
STRTOFILE(cBuff, lcRutayNombre , 4) && UTF-8 con BOM
SET SAFETY &cOldSet
MESSAGEBOX("Rusat de Archivo de Respuesta de la SUNAT: "+lcRutayNombre)


PD: haber si alguien me puede ayudar con el error que tengo, gracias!!!

Diego Rojas Ccoica

unread,
Jul 27, 2016, 2:52:38 PM7/27/16
to publice...@googlegroups.com
Hola,

Cual es la dirección url del WS, que estas ulizando?

Saludos,
Diego

MALKASOFT ADPI: http://www.developervfp.blogspot.com/

unread,
Jul 27, 2016, 3:06:45 PM7/27/16
to Comunidad de Visual Foxpro en Español
Estoy usando este código que compartieron unos compañeros lineas mas arriba

#DEFINE SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS    13056

ls_ruc_emisor = '10046233064'
ls_pwd_sol = 'MODDATOS'
ls_user = ls_ruc_emisor + 'MODDATOS'  
  *20100066603-01-F001-1641.Zip
ps_fileZip = "D:\FEP\Independiente\Registrar\10046233064-01-F001-000047.zip"
oXMLHttp.Open('POST', lsURL, .f.)
oXMLHttp.setRequestHeader( "Content-Type", "text/xml" )
oXMLHttp.setRequestHeader( "Content-Type", "text/xml;charset=ISO-8859-1" )
oXMLHttp.setRequestHeader( "Content-Length", LEN(ls_envioXML) )
oXMLHttp.SetRequestHeader( "SOAPAction" , "sendBill" )

oXMLHttp.setOption(2, SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS)
oXMLHttp.send(oXMlBody.documentElement.XML)
IF (oXMLHttp.status <> 200) THEN 
MESSAGEBOX('STATUS: ' + ALLTRIM(STR(oXMLHttp.status)) + '-' + NVL(oXMLHttp.responseText,''))
RETURN .f.
ENDIF

loXMLResp = CREATEOBJECT("MSXML2.DOMDocument.6.0")
loXMLResp.loadXML(oXMLHttp.responseText)
*MESSAGEBOX(oXMLHttp.responseText)

Diego Rojas Ccoica

unread,
Jul 27, 2016, 7:31:59 PM7/27/16
to publice...@googlegroups.com
La ruta del servidor de pruebas no es la correcta :

Otro punto el ruc debe empezar con 20 no con 10.

Saludos,
Diego

MALKASOFT ADPI: http://www.developervfp.blogspot.com/

unread,
Jul 28, 2016, 1:17:22 PM7/28/16
to Comunidad de Visual Foxpro en Español
Hola gracias por responder, yo uso esa url pero me da problemas con este url
esta trabajandomuy bien ya pude obtener y todo ok,

alguien tiene rutina para poder crear lo xml y la firma que no este tan cerrado o que te da los msn como la dll que compartieron.

limnes carrasco

unread,
Aug 1, 2016, 2:51:07 PM8/1/16
to Comunidad de Visual Foxpro en Español, marti...@hotmail.com
Estimado te envie un mensaje para saber mas de tu aplicacion, enviame un correo lim...@gmail.com
Saludos

El sábado, 4 de junio de 2016, 2:27:39 (UTC-5), SISTEMAS VFPSTEAM escribió:
Hola amigo buenas noches puedes revisar nuestro producto de facturación electrónica desarrollado con nuestro querido Zorro.


Saludos y a tus ordenes

VFPSTEAM BI SOLUTIONS

Eduar Torres

unread,
Aug 1, 2016, 11:32:24 PM8/1/16
to Comunidad de Visual Foxpro en Español
Estimado Amigo una consulta he estado realizando pruebas pero me aparece un mensaje que el Archivo XML generado no es un archivo Zip válido te agradecería me indiques porque me da ese error.

Eduar Torres

unread,
Aug 5, 2016, 9:53:07 AM8/5/16
to Comunidad de Visual Foxpro en Español
Estimado Amigo una consulta he estado realizando pruebas pero me aparece un mensaje que el Archivo XML generado no es un archivo Zip válido te agradecería me indiques porque me da ese error.

El miércoles, 27 de julio de 2016, 18:31:59 (UTC-5), Diego Rojas escribió:

developer

unread,
Aug 5, 2016, 12:43:33 PM8/5/16
to publice...@googlegroups.com
Colega
prueba cambiando la extención del archivo de respuesta.

lcNombreArchivo = "RespuestaSUNAT.ZIP"

saludos

MALKASOFT ADPI: http://www.developervfp.blogspot.com/

unread,
Aug 8, 2016, 6:25:14 PM8/8/16
to Comunidad de Visual Foxpro en Español
Hola alguien sabe cual es la url para pruebas de la sunat estoy usando esta url y no tengo respuesta https://www.sunat.gob.pe/ol-ti-itcpgem-sqa/billService

jose carlos aguilar

unread,
Aug 8, 2016, 6:58:20 PM8/8/16
to Comunidad de Visual Foxpro en Español
actualmente esta funcionando esta:    https://e-beta.sunat.gob.pe/ol-ti-itcpfegem-beta/billService

TKTHRALL

unread,
Aug 10, 2016, 6:16:40 PM8/10/16
to Comunidad de Visual Foxpro en Español
Si no quieres depender de Dlls yo tengo código Puro    940-661-033

OpenPlus

unread,
Sep 13, 2016, 10:52:05 PM9/13/16
to Comunidad de Visual Foxpro en Español
Buenas noches rwrojas, he trabajado en la construcción del XML. Pero para más seguridad, como obtengo un XML Validado?
pudieras ayudarme en ese tema que cuando corro la rutina me da el error: 2335</faultcode><faultstring>El documento electr&#243;nico ingresado ha sido alterado

Diego Rojas Ccoica

unread,
Sep 13, 2016, 11:54:36 PM9/13/16
to publice...@googlegroups.com
Hola Estimado,
El error de documento alterado se da cuando has firmado tu archivo xml y posterior a ellos haces una modificación sobre el archivo, ya sea de nombre o algún dato en tu xml, lo mejor es una ves firmado no hacer ninguna modificacion sobre el xml, si necesitas modificar lo mejor es volver a generar y firmar,

Saludos,
Diego Rojas

rwrojasc

unread,
Sep 27, 2016, 11:26:10 AM9/27/16
to Comunidad de Visual Foxpro en Español
Si tienes muchos Problemas  chequea este Blogs

SISTEMAS VFPSTEAM

unread,
Sep 27, 2016, 12:17:40 PM9/27/16
to Comunidad de Visual Foxpro en Español, marti...@hotmail.com
Hola 

Puedes solicitar una prueba real de nuestro producto de facturación electrónica desde nuestra página: http://www.facturacionperu.pe/
Información de uso y página de soporte: http://soporte.facturacionperu.pe/

No tienes que desarrollar absolutamente nada solo necesitas un cursor con los datos de cabecera y detalle de tu factura, boleta, nota de crédito, nota de débito, guía de remisión y nuestro componente realiza todo.
  • Generación de archivos XML (Factura, Boleta de venta, Nota de crédito, Nota de débito, Guía de remisión electrónica, comunicación de baja, Resumen de boletas, Comprobante de percepción, comprobante de retención, Resumen de reversión de retenciones y percepciones, Resumen de contingencia)
  • Firmado de archivos XML
  • Envío y recepción de archivos XML a la sunat
  • Generación de código de barras QR y PDF417
  • Generación de PDF
  • Envío de archivo XML y PDF al cliente
  • Integra desde tu propia aplicación con otros sistemas como SAP, InfoRest, Camaleon, SoftCom, Etc.
  • Integración por base de datos: DBC Y DBF, MongoDB, Sybase IQ, MySQL, SQL Server, PostgreSQL, Oracle, DB2, Firebird, Interbase, MariaDB
  • Página de custodia para descargar y visualizar los documentos emitidos según norma de la sunat 097-2012
  • Kit de homologacion para el set de pruebas que la sunat requiere para ser emisor electrónico.
Vídeo de nuestro kit de homologación

Saludos y a sus ordenes

VFPSTEAM BI SOLUTIONS

sergio alejandro garcia mendez

unread,
Sep 27, 2016, 1:07:17 PM9/27/16
to publice...@googlegroups.com
me gusta la aplicación de 

rwrojasc

Ojala tu soporte si sea bueno.
--
Sergio A. García
correo tayi...@gmail.com

Soft Peruano

unread,
Sep 27, 2016, 1:23:24 PM9/27/16
to Comunidad de Visual Foxpro en Español
Ya estamos casados señor que usted por este medio lo vea todo negocio,
Este foro ha sido creado para compartir conocimientos no para lucrarse del que necesite, siempre menciona usted que comparte codigos pero realmente no lo ha hecho, lo unico que hace es colocar un programa y si lo quieren que se lo compren, y por ahi no va el punto de este foro.
Le agradeceremos si desea negociar su producto tiene Mercado Libre y otros servidores que lo pued hacer.
En estos dias subire el codigo fuente completo de como realizar facturas electronica, con todo y homologacion todavia, de esa manera podran gozar del mismo servicio en forma gratuita todos los que entren a este foro, y es asi como debe de ser siempre, no estar amarrando con sus codigos.

Moises Daniel Vilchez Tello

unread,
Sep 27, 2016, 1:28:32 PM9/27/16
to Comunidad de Visual Foxpro en Español
😎
--
Moises Daniel Vilchez Tello
Chiclayo - Lambayeque - Peru

Alfredo Gómez Silva

unread,
Nov 5, 2016, 7:25:25 PM11/5/16
to publice...@googlegroups.com
Saludos a todos
Gracias al poyo de Ustedes he logrado la Firma Digital de las Facturas utilizando las lines de programacion del este foro utilizando el DLL (Facturaelectrónica.DLL) utilizando 
fT1=CREATEOBJECT("FacturaElectronica.Fe")
pero me sale un error en cuando intento firmar las Notas de Crédito, Debito y Comunicación de Baja, alguien me puede orientar
utilizo windows 8 y windows 7. el error es el siguiente : Referencia a objeto no establecida como instancia de un objeto

Enrique Orellana G.

unread,
Nov 6, 2016, 9:31:52 PM11/6/16
to Comunidad de Visual Foxpro en Español
Hola Alfredo Gómez Silva.
Diego Rojas en fecha 28 de junio publicó una DLL para descargar que incluia todos los comprobantes incluyendo retencion y percepcion.
Ten en cuenta que la DLL (sólo la he probado con facturas) detecta el tipo del comprobante mdiante el nombre del archivo XML a firmar.
El codigo en Fox es el siguiente :

LOCAL fT1
fT1=CREATEOBJECT("FacturaElectronica.Fe")
fT1.firmado("D:\Registrar\20381235051-01-FF11-01.xml","D:\Registrar\usr0061.p12","usr0061")
RELEASE fT1

En la fuente de ejemplo:
Factura: 20381235051-01-FF11-01.xml
Boleta: 20381235051-03-FF11-01.xml
Nota de Crédito: 20381235051-07-FF11-01.xml
Nota de débito: 20381235051-08-FF11-01.xml
Baja: 20381235051-RA-20161105-1.xml (Fecha de baja: 20161105; correlativo: 1)
Etc.

Adjunto última DLL de Diego Rojas.

Saludos cordiales
Enrique Orellana
FacturaElectronica._rar

Alfredo Gómez Silva

unread,
Nov 8, 2016, 10:00:52 AM11/8/16
to publice...@googlegroups.com
Saludos Enrique
Me sigue saliendo el mismo error "Referencia a objeto no establecido
como instancia de un objeto" cuando quiero firmar las NC , ND, y
Comunicación Baja, utilizando la dll inclusive la que me acabas de
pasar ?que puede estar pasando?. Sigo usando FacturaElectronica.dll,
si tienes alguna solución me vuelves a comunicar gracias a todos

2016-11-06 21:31 GMT-05:00, Enrique Orellana G. <eorellana...@gmail.com>:
> Hola Alfredo Gómez Silva.
> Diego Rojas en fecha 28 de junio publicó una DLL para descargar que incluia
>
> todos los comprobantes incluyendo retencion y percepcion.
> Ten en cuenta que la DLL (sólo la he probado con facturas) detecta el tipo
> del comprobante mdiante el nombre del archivo XML a firmar.
> El codigo en Fox es el siguiente :
>
> *LOCAL fT1*
> *fT1=CREATEOBJECT("FacturaElectronica.Fe")*
> *fT1.firmado("D:\Registrar\20381235051-01-FF11-01.xml","D:\Registrar\usr0061.p12","usr0061")*
> *RELEASE fT1*
>
> En la fuente de ejemplo:
> *Factura*: *20381235051-01-FF11-01.xml*
> *Boleta*: *20381235051-03-FF11-01.xm*l
> *Nota de Crédito*: *20381235051-07-FF11-01.xml*
> *Nota de débito*: *20381235051-08-FF11-01.xm*l
> *Baja*: *20381235051-RA-20161105-1.xml* (Fecha de baja: 20161105;
> correlativo: 1)
> Etc.
>
> Adjunto última DLL de Diego Rojas.
>
> Saludos cordiales
> Enrique Orellana
>
> El sábado, 5 de noviembre de 2016, 18:25:25 (UTC-5), Alfredo Gómez Silva
> escribió:
>>
>> Saludos a todos
>> Gracias al poyo de Ustedes he logrado la Firma Digital de las Facturas
>> utilizando las lines de programacion del este foro utilizando el DLL
>> (Facturaelectrónica.DLL) utilizando
>> fT1=CREATEOBJECT("FacturaElectronica.Fe")
>> pero me sale un error en cuando intento firmar las Notas de Crédito,
>> Debito y Comunicación de Baja, alguien me puede orientar
>> utilizo windows 8 y windows 7. el error es el siguiente : Referencia a
>> objeto no establecida como instancia de un objeto
>>
>>
>> El 27 de septiembre de 2016, 12:28, Moises Daniel Vilchez Tello<
>> mvil...@gmail.com <javascript:>> escribió:
>>
>>> 😎
>>>
>>> El 27 de septiembre de 2016, 12:23, Soft Peruano <softp...@gmail.com
>>> <javascript:>> escribió:
>>>
>>>> Ya estamos casados señor que usted por este medio lo vea todo negocio,
>>>> Este foro ha sido creado para compartir conocimientos no para lucrarse
>>>> del que necesite, siempre menciona usted que comparte codigos pero
>>>> realmente no lo ha hecho, lo unico que hace es colocar un programa y si
>>>> lo
>>>> quieren que se lo compren, y por ahi no va el punto de este foro.
>>>> Le agradeceremos si desea negociar su producto tiene Mercado Libre y
>>>> otros servidores que lo pued hacer.
>>>> En estos dias subire el codigo fuente completo de como realizar facturas
>>>>
>>>> electronica, con todo y homologacion todavia, de esa manera podran gozar
>>>>
>>>> del mismo servicio en forma gratuita todos los que entren a este foro, y
>>>> es
>>>> asi como debe de ser siempre, no estar amarrando con sus codigos.
>>>>
>>>>
>>>> El martes, 27 de septiembre de 2016, 11:17:40 (UTC-5), SISTEMAS VFPSTEAM
>>>>
>>>> escribió:
>>>>
>>>>> Hola
>>>>>
>>>>> Puedes solicitar una prueba real de nuestro producto de facturación
>>>>> electrónica desde nuestra página: http://www.facturacionperu.pe/
>>>>> Información de uso y página de soporte:
>>>>> http://soporte.facturacionperu.pe/
>>>>>
>>>>> No tienes que desarrollar absolutamente nada solo necesitas un cursor
>>>>> con los datos de cabecera y detalle de tu factura, boleta, nota de
>>>>> crédito,
>>>>> nota de débito, guía de remisión y nuestro componente realiza todo.
>>>>>
>>>>> - Generación de archivos XML (Factura, Boleta de venta, Nota de
>>>>> crédito, Nota de débito, Guía de remisión electrónica, comunicación
>>>>> de
>>>>> baja, Resumen de boletas, Comprobante de percepción, comprobante de
>>>>>
>>>>> retención, Resumen de reversión de retenciones y percepciones,
>>>>> Resumen de
>>>>> contingencia)
>>>>> - Firmado de archivos XML
>>>>> - Envío y recepción de archivos XML a la sunat
>>>>> - Generación de código de barras QR y PDF417
>>>>> - Generación de PDF
>>>>> - Envío de archivo XML y PDF al cliente
>>>>> - Integra desde tu propia aplicación con otros sistemas como SAP,
>>>>> InfoRest, Camaleon, SoftCom, Etc.
>>>>> - Integración por base de datos: DBC Y DBF, MongoDB, Sybase IQ,
>>>>> MySQL, SQL Server, PostgreSQL, Oracle, DB2, Firebird, Interbase,
>>>>> MariaDB
>>>>> - Página de custodia para descargar y visualizar los documentos
>>>>> emitidos según norma de la sunat 097-2012
>>>>> - Kit de homologacion para el set de pruebas que la sunat requiere
>>>>> para ser emisor electrónico.
>>>>>
>>>>> Vídeo de nuestro kit de homologación
>>>>> https://youtu.be/wzPStEUOOEI
>>>>>
>>>>> Saludos y a sus ordenes
>>>>>
>>>>> *VFPSTEAM BI SOLUTIONS*
>>>>> *http://www.vfpsteambi.solutions <http://www.vfpsteambi.solutions>*
>>>>>
>>>>>
>>>>> El viernes, 26 de febrero de 2016, 8:11:58 (UTC-6), Martin Inga
>>>>> escribió:
>>>>>>
>>>>>> Estimado Grupo, buenos días,
>>>>>>
>>>>>> Debo realizar la implementación de la Facturación Electrónica, en mis
>>>>>>
>>>>>> aplicativos he visto, ya descargue toda la documentación de la Web de
>>>>>> la
>>>>>> SUNAT, he visto un ejemplo de la validación de un envió a la SUNAT,
>>>>>> pero
>>>>>> ese envió esta realizado en VB.NET , consumir WebService mi pregunta
>>>>>> es : todo el proceso de validación lo puedo realizar en FOX o
>>>>>> necesitaré
>>>>>> complementarlo con otro desarrollo por ejemplo con VB.NET. o C#
>>>>>>
>>>>>>
>>>>>>
>>>>>> Agradeceré me puedan orientar.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Gracias,
>>>>>>
>>>>>> Martín Inga
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>
>>>
>>> --
>>>
>>> *Moises Daniel Vilchez TelloChiclayo - Lambayeque - Peru*
>>>
>>
>>

Jose Carlos Aguilar

unread,
Nov 8, 2016, 10:09:12 AM11/8/16
to Comunidad de Visual Foxpro en Español
Adjunta el xml sin firma para revisar y ver donde esta el error

Alfredo Gómez Silva

unread,
Nov 8, 2016, 12:21:11 PM11/8/16
to publice...@googlegroups.com
Te agradezco mucho Jose Carlos Aguilar y a todos los amigos, era un error en en XML en la linea
xmlns="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2
le habia dejado con Invoice-2
Gracias por sus atenciones

Alfredo Gómez Silva

unread,
Nov 8, 2016, 12:31:05 PM11/8/16
to publice...@googlegroups.com
Grupo, les pido de favor si pueden enviarme las estructuras de Nota de Crédito, Nota de Débito y comunicación de Baja para, osea XML para revisar con los mios. Mil gracias

Jean Pierre Adonis De La Cruz Garcia

unread,
Nov 8, 2016, 12:41:29 PM11/8/16
to Comunidad de Visual Foxpro en Español
Ahi te envio las 3 plantillas que solicitastes, espero que te sirvan.
Plantillas XML.rar

hernan copacondori RPC-957452704

unread,
Nov 8, 2016, 12:45:21 PM11/8/16
to publice...@googlegroups.com

Tengo un problema con el "sendSummary"

despues de firmar mi xml, ejecuto el siguiente codigo, que me funciono bien en el envio de mis comprobantes individuales


ps_fileZip = lcRuta_defa + "\f_e\envio\" + goVar.gcCodRuc + "-" + lcCorrelativo + ".zip"
*- ocultar texto citado -

ls_fileName = JUSTFNAME(ps_fileZip)
ls_contentFile = FILETOSTR(ps_fileZip)    
ls_base64 = STRCONV(ls_contentFile, 13) && Encoding base 64                        

TEXT TO ls_envioXML TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.sunat.gob.pe"
        xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
        <soapenv:Header>
            <wsse:Security>
                <wsse:UsernameToken>
                    <wsse:Username><<ls_user>></wsse:Username>
                    <wsse:Password><<ls_pwd_sol>></wsse:Password>
                </wsse:UsernameToken>
            </wsse:Security>
        </soapenv:Header>
        <soapenv:Body>
            <ser:sendSummary>>

                <fileName><<ls_fileName>></fileName>
                <contentFile><<ls_base64>></contentFile>
            </ser:sendSummary>>

        </soapenv:Body>                
    </soapenv:Envelope>
ENDTEXT
        
oXMLHttp=CREATEOBJECT("MSXML2.ServerXMLHTTP.6.0")
oXMLBody=CREATEOBJECT('MSXML2.DOMDocument.6.0')        
        
IF !(oXMLBody.loadXML(ls_envioXML)) THEN
    oResp.mensaje = "No se cargo XML: " + oXMLBody.parseError.reason
    RETURN .f.
ENDIF
    
IF llHomologa
    lsURL   = "https://www.sunat.gob.pe/ol-ti-itcpgem-sqa/billService"
ELSE
    lsURL   = "https://e-beta.sunat.gob.pe/ol-ti-itcpfegem-beta/billService"
endif    


                
oXMLHttp.Open('POST', lsURL, .f.)
oXMLHttp.setRequestHeader( "Content-Type", "text/xml" )
oXMLHttp.setRequestHeader( "Content-Type", "text/xml;charset=ISO-8859-1" )
oXMLHttp.setRequestHeader( "Content-Length", LEN(ls_envioXML) )
oXMLHttp.SetRequestHeader( "SOAPAction" , "sendBill" )

oXMLHttp.setOption(2, SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS)
oXMLHttp.send(oXMlBody.documentElement.XML)                
        
IF (oXMLHttp.status <> 200) THEN
    MESSAGEBOX('STATUS: ' + ALLTRIM(STR(oXMLHttp.status)) + '-' + NVL(oXMLHttp.responseText,''))
    RETURN .f.
ENDIF    

loXMLResp = CREATEOBJECT("MSXML2.DOMDocument.6.0")
loXMLResp.loadXML(oXMLHttp.responseText)        

LOCAL lcFileXMLRespuesta

lcFileXMLRespuesta = ""
lcFileXMLRespuesta = oXMLHttp.responseText

lcNombreArchivo = "RespuestaSUNAT.ZIP"
lcRutayNombre = lcRuta_defa + "\f_e\envio\" + lcNombreArchivo


cOldSet = SET("Safety")
SET SAFETY OFF

cBuff = STRCONV(lcFileXMLRespuesta ,9)

lcNombreArchivo = "RespuestaSUNAT.xml"
lcRutayNombre = lcRuta_defa + "\f_e\respuesta\" + lcNombreArchivo

STRTOFILE(cBuff, lcRutayNombre , 4)        && UTF-8 con BOM

SET SAFETY &cOldSet

x = FILETOSTR(lcRutayNombre)

y = STREXTRACT(x, '<applicationResponse>', '</applicationResponse>')

txtnomber = lcRuta_defa + "\f_e\respuesta\rpta.zip"

STRTOFILE(STRCONV(y, 14), txtnomber)

MESSAGEBOX('OK... PROCESO DE ENVIO PROCESADO' + CHR(13) + "REVISAR ARCHIVO : " + txtnomber)

Set Library To myFll
IF ZipInfo(txtnomber, "R-" + goVar.gcCodRuc + "-RA-" + lcCorrelativo + ".xml")
    UnZip(txtnomber, lcRuta_defa + "\f_e\respuesta\")
    MESSAGEBOX('OK... RESPUESTA SUNAT' + CHR(13) + "REVISAR ARCHIVO : " + lcRuta_defa + "\f_e\respuesta\R-" + ;
        goVar.gcCodRuc + "-RA-" + lcCorrelativo + ".xml")
endif    
SET LIBRARY TO

me sale un codigo de error 0100. a mi entender el servidor no esta disponible,
si alguien pueda ayudarme.


Hernan R. Copacondori C.

Sistemas Inform??ticos Integrados

Asesoria y Ventas

?? RPC 957452704

hc45...@hotmail.com;hc45...@yahoo.es;

hc45...@gmail.com

Arequipa - Per??

??
??

De: publice...@googlegroups.com <publice...@googlegroups.com> en nombre de Jose Carlos Aguilar <jcagu...@gmail.com>
Enviado: martes, 08 de noviembre de 2016 10:09:12 a.m.
Para: Comunidad de Visual Foxpro en Español
Asunto: Re: [vfp] Re: Factura Electronica -SUNAT PERU
 
12345678901-RA-20161101-002.xml

Alfredo Gómez Silva

unread,
Nov 8, 2016, 1:23:08 PM11/8/16
to publice...@googlegroups.com
Grupo auxilio, al ejecutar esta linea fT1=CREATEOBJECT("FacturaElectronica.Fe") y me sale el siguiente error
OLE error code 0x80070002: Unknow COM status code, que pasó ?


hc45...@gmail.com

Arequipa - Per??

??
??

Jose Carlos Aguilar

unread,
Nov 8, 2016, 1:41:06 PM11/8/16
to Comunidad de Visual Foxpro en Español
Probablemente sea que no puede parsear el xml sin firma o el nombre del archivo que pasas como parametro, para que puedas recibir ayuda mas precisa adjunta el xml que tratas de firmar

hernan copacondori RPC-957452704

unread,
Nov 8, 2016, 2:05:07 PM11/8/16
to publice...@googlegroups.com

Gracias Jose Carlos.


Hernan R. Copacondori C.

Sistemas Inform??ticos Integrados

Asesoria y Ventas

?? RPC 957452704

hc45...@gmail.com

Arequipa - Per??

??
??
Enviado: martes, 08 de noviembre de 2016 01:41:06 p.m.
12345678901-RA-20161101-002.xml

Jose Carlos Aguilar

unread,
Nov 8, 2016, 2:40:18 PM11/8/16
to Comunidad de Visual Foxpro en Español
 <ser:sendSummary>> aca tienes un error

                <fileName><<ls_fileName>></fileName>
                <contentFile><<ls_base64>></contentFile>
            </ser:sendSummary>>   aca tienes otro erros


.......
oXMLHttp.SetRequestHeader( "SOAPAction" , "sendBill" )  aca tienes otro error deberia ir sendSummary

Revisa y ves que pasa con respecto a tu archivo esta bien semanticamente.

Saludos
oXMLHttp.SetRequestHeader( "SOAPAction" , "sendBill" )  aca tienes otro error deberia ir sendSummary

hernan copacondori RPC-957452704

unread,
Nov 8, 2016, 7:06:56 PM11/8/16
to publice...@googlegroups.com

Gracias Jose Carlos, por tu valioso aporte; y a todos los del grupo que dieron sus aportes en este importante link.

Saludos cordiales.



Hernan R. Copacondori C.

Sistemas Inform??ticos Integrados

Asesoria y Ventas

?? RPC 957452704

hc45...@gmail.com

Arequipa - Per??

??
??
Enviado: martes, 08 de noviembre de 2016 02:40:18 p.m.

Alfredo Gómez Silva

unread,
Nov 9, 2016, 12:27:27 PM11/9/16
to publice...@googlegroups.com
Gracias Jean Pierre Adonis De La Cruz Garcia, ya tengo los archivos listo para enviar a Homologación, pero estoy usando
el  siguiente

Y me sale el siguiente error 
Imagen integrada 1

Gracias todo el grupo 


El 8 de noviembre de 2016, 19:06, hernan copacondori RPC-957452704<HC45...@hotmail.com> escribió:

Gracias Jose Carlos, por tu valioso aporte; y a todos los del grupo que dieron sus aportes en este importante link.

Saludos cordiales.



Hernan R. Copacondori C.

Sistemas Inform??ticos Integrados

Asesoria y Ventas

?? RPC 957452704

hc45...@gmail.com

Arequipa - Per??

??
??

Jose Carlos Aguilar

unread,
Nov 9, 2016, 12:42:46 PM11/9/16
to Comunidad de Visual Foxpro en Español


El miércoles, 9 de noviembre de 2016, 12:27:27 (UTC-5), Alfredo Gómez Silva escribió:
Gracias Jean Pierre Adonis De La Cruz Garcia, ya tengo los archivos listo para enviar a Homologación, pero estoy usando
el  siguiente

Y me sale el siguiente error 
Imagen integrada 1

Gracias todo el grupo 

El 8 de noviembre de 2016, 19:06, hernan copacondori RPC-957452704<HC45...@hotmail.com> escribió:

Gracias Jose Carlos, por tu valioso aporte; y a todos los del grupo que dieron sus aportes en este importante link.

Saludos cordiales.



Hernan R. Copacondori C.

Sistemas Inform??ticos Integrados

Asesoria y Ventas

?? RPC 957452704

hc45...@hotmail.com;hc450000@yahoo.es;

hc45...@gmail.com

Arequipa - Per??

??
??

Jean Pierre Adonis De La Cruz Garcia

unread,
Nov 9, 2016, 4:34:57 PM11/9/16
to Comunidad de Visual Foxpro en Español
Ya te dio la resouesta Jose Carlos, excelente.


El miércoles, 9 de noviembre de 2016, 12:27:27 (UTC-5), Alfredo Gómez Silva escribió:
Gracias Jean Pierre Adonis De La Cruz Garcia, ya tengo los archivos listo para enviar a Homologación, pero estoy usando
el  siguiente

Y me sale el siguiente error 
Imagen integrada 1

Gracias todo el grupo 

El 8 de noviembre de 2016, 19:06, hernan copacondori RPC-957452704<HC45...@hotmail.com> escribió:

Gracias Jose Carlos, por tu valioso aporte; y a todos los del grupo que dieron sus aportes en este importante link.

Saludos cordiales.



Hernan R. Copacondori C.

Sistemas Inform??ticos Integrados

Asesoria y Ventas

?? RPC 957452704

hc45...@hotmail.com;hc450000@yahoo.es;

hc45...@gmail.com

Arequipa - Per??

??
??

Daniel Sánchez

unread,
Nov 9, 2016, 5:48:41 PM11/9/16
to Comunidad de Visual Foxpro en Español
Debes considerar que las mayúsculas y minúsculas cuentan luego de la barra después de .pe, para el servidor no es lo mismo billService a billservice o BillService o cualquier combinación que se pueda dar la correcta es billService, por eso el error.

Ahora no te tortures con los otros servidores de prueba y de producción se encuentran caídos, en la mañana llame sobre el tema y me dijeron que estaban fuera de línea.

En todo caso para probar si el servidor esta disponible debes poner en tu explorador la linea del servidor que deseas acceder si esta operativo como es el caso del de homologación te mostrará la siguiente información

Imágenes integradas 1
y si no esta en línea tendrás esta pantalla como es el caso de pruebas y producción

Imágenes integradas 2

Saludos

El 9 de noviembre de 2016, 12:27, Alfredo Gómez Silva <algosif...@gmail.com> escribió:
Gracias Jean Pierre Adonis De La Cruz Garcia, ya tengo los archivos listo para enviar a Homologación, pero estoy usando
el  siguiente

Y me sale el siguiente error 
Imagen integrada 1

Gracias todo el grupo 




--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil +051-949398047 RPM #948615385
Trujillo - Perú

P  Sugerimos no imprimir este e-mail a menos que sea absolutamente necesario. Protejamos el medio ambiente.

Alfredo Gómez Silva

unread,
Nov 10, 2016, 1:12:13 PM11/10/16
to publice...@googlegroups.com
Amigos disculpen ya estoy Homologando pero tengo algunos comprobantes rechazados y tengo los siguientes problemas
- Comprobante No cumple con el Grupo 2: No todos los items corresponden a operaciones inafectas o exonerados al IGV (2382)
         Me ha rechazado todas las facturas del grupo 2, en algunos items le he puesto IGV y algunos no ¿? que puede ser?.. gracias

Enrique Orellana G.

unread,
Nov 10, 2016, 2:41:43 PM11/10/16
to Comunidad de Visual Foxpro en Español
Hola Alfredo.
En la homologación no debe haber combinaciones.
Si se indica GRUPO 2 : Ventas inafectas y/o exoneradas
significa que todos los items de cada comprobante del grupo tienen que ser o infectas o exoneradas.

Ejemplo correcto del Grupo 2
Caso 13: Factura 2 con 4 items (todos los items deben ser inafectos, o todos los items deben ser exonerados)

Error del Grupo 2
Caso 13: Factura 2 con 4 items (1 item afecto al IGV y 3 items inafectos)

Saludos cordiales.
Enrique Orellana

Daniel Sánchez

unread,
Nov 10, 2016, 5:45:56 PM11/10/16
to Comunidad de Visual Foxpro en Español
Tal cual te comenta Enrique no debes combinar si es inafectas/exonerados todos los items deben serlos.

Saludos

El 10 de noviembre de 2016, 13:12, Alfredo Gómez Silva <algosif...@gmail.com> escribió:
Amigos disculpen ya estoy Homologando pero tengo algunos comprobantes rechazados y tengo los siguientes problemas
- Comprobante No cumple con el Grupo 2: No todos los items corresponden a operaciones inafectas o exonerados al IGV (2382)
         Me ha rechazado todas las facturas del grupo 2, en algunos items le he puesto IGV y algunos no ¿? que puede ser?.. gracias

Alfredo Gómez Silva

unread,
Nov 11, 2016, 12:09:15 PM11/11/16
to publice...@googlegroups.com
Amigos les agradezco su atención, pero sigo con el mismo problema. Primero hice o inafectos o exonerados, pero me salia el error 
Comprobante no cumple con el Grupo 2: No todos los items corresponden a operaciones inafectas o exonerdos al igv
Es por ello que pensé en poner algunos la combinación.
ahora ya los separé y me sigue saliendo el mismo error: de repente ya me estoy enredando  en algo fácil, favor ayuda
Les envio un par de archivos sin firmar.
Este es mi XML INAFECTO

<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:sac="urn:sunat:names:specification:ubl:peru:schema:xsd:SunatAggregateComponents-1">
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionContent>
<sac:AdditionalInformation>
<sac:AdditionalMonetaryTotal>
<cbc:ID>1002</cbc:ID>
<cbc:PayableAmount currencyID="PEN">700.90</cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
<sac:AdditionalProperty>
<cbc:ID>1000</cbc:ID>
<cbc:Value>SETECIENTOS Y 90/100 SOLES</cbc:Value>
</sac:AdditionalProperty>
</sac:AdditionalInformation>
</ext:ExtensionContent>
</ext:UBLExtension>
<ext:UBLExtension>
<ext:ExtensionContent></ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:UBLVersionID>2.0</cbc:UBLVersionID>
<cbc:CustomizationID>1.0</cbc:CustomizationID>
<cbc:ID>FF12-12014</cbc:ID>
<cbc:IssueDate>2016-09-16</cbc:IssueDate>
<cbc:InvoiceTypeCode>01</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>PEN</cbc:DocumentCurrencyCode>
<cac:Signature>
<cbc:ID>IDSignSP</cbc:ID>
<cac:SignatoryParty>
<cac:PartyIdentification>
<cbc:ID>20103340048</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>
<![CDATA[ NOROESTE SAC ]]>
</cbc:Name>
</cac:PartyName>
</cac:SignatoryParty>
<cac:DigitalSignatureAttachment>
<cac:ExternalReference>
<cbc:URI>#SignatureSP</cbc:URI>
</cac:ExternalReference>
</cac:DigitalSignatureAttachment>
</cac:Signature>
<cac:AccountingSupplierParty>
<cbc:CustomerAssignedAccountID>20103340048</cbc:CustomerAssignedAccountID>
<cbc:AdditionalAccountID>6</cbc:AdditionalAccountID>
<cac:Party>
<cac:PostalAddress>
<cbc:ID>140101</cbc:ID>
<cbc:StreetName>
AV. RICARDO PALMA 1158 - MOSHOQUEQUE - JOSE LEONARDO ORTIZ I
</cbc:StreetName>
<cbc:CitySubdivisionName>CERCADO DE CHICLAYO</cbc:CitySubdivisionName>
<cbc:CityName>LAMBAYEQUE</cbc:CityName>
<cbc:CountrySubentity>CHICLAYO</cbc:CountrySubentity>
<cbc:District>CHICLAYO</cbc:District>
<cac:Country>
<cbc:IdentificationCode>PE</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyLegalEntity>
<cbc:RegistrationName>NOROESTE SAC</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>
<cbc:CustomerAssignedAccountID>20601474558</cbc:CustomerAssignedAccountID>
<cbc:AdditionalAccountID>6</cbc:AdditionalAccountID>
<cac:Party>
<cac:PartyLegalEntity>
<cbc:RegistrationName>
<![CDATA[ COMPUTER ACCESSORIES Y BUSSINES E.I.R.L. ]]>
</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingCustomerParty>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="PEN">0.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxAmount currencyID="PEN">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cac:TaxScheme>
<cbc:ID>1000</cbc:ID>
<cbc:Name>IGV</cbc:Name>
<cbc:TaxTypeCode>VAT</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:PayableAmount currencyID="PEN">700.90</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="NIU">1</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="PEN">700.90</cbc:LineExtensionAmount>
<cac:PricingReference>
<cac:AlternativeConditionPrice>
<cbc:PriceAmount currencyID="PEN">700.90</cbc:PriceAmount>
<cbc:PriceTypeCode>01</cbc:PriceTypeCode>
</cac:AlternativeConditionPrice>
</cac:PricingReference>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="PEN">0.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxAmount currencyID="PEN">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:TaxExemptionReasonCode>10</cbc:TaxExemptionReasonCode>
<cac:TaxScheme>
<cbc:ID>1000</cbc:ID>
<cbc:Name>IGV</cbc:Name>
<cbc:TaxTypeCode>VAT</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:Item>
<cbc:Description>SUBARRIENDO DE STAND</cbc:Description>
<cac:SellersItemIdentification>
<cbc:ID>0002</cbc:ID>
</cac:SellersItemIdentification>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="PEN">593.98</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
</Invoice>

y este XML mi EXONERADO 

<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:sac="urn:sunat:names:specification:ubl:peru:schema:xsd:SunatAggregateComponents-1">
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionContent>
<sac:AdditionalInformation>
<sac:AdditionalMonetaryTotal>
<cbc:ID>1003</cbc:ID>
<cbc:PayableAmount currencyID="PEN">383.21</cbc:PayableAmount>
</sac:AdditionalMonetaryTotal>
<sac:AdditionalProperty>
<cbc:ID>1000</cbc:ID>
<cbc:Value>TRESCIENTOS OCHENTA Y TRES Y 21/100 SOLES</cbc:Value>
</sac:AdditionalProperty>
</sac:AdditionalInformation>
</ext:ExtensionContent>
</ext:UBLExtension>
<ext:UBLExtension>
<ext:ExtensionContent></ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:UBLVersionID>2.0</cbc:UBLVersionID>
<cbc:CustomizationID>1.0</cbc:CustomizationID>
<cbc:ID>FF12-130234</cbc:ID>
<cbc:IssueDate>2016-09-16</cbc:IssueDate>
<cbc:InvoiceTypeCode>01</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>PEN</cbc:DocumentCurrencyCode>
<cac:Signature>
<cbc:ID>IDSignSP</cbc:ID>
<cac:SignatoryParty>
<cac:PartyIdentification>
<cbc:ID>20103340048</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>
<![CDATA[ NOROESTE SAC ]]>
</cbc:Name>
</cac:PartyName>
</cac:SignatoryParty>
<cac:DigitalSignatureAttachment>
<cac:ExternalReference>
<cbc:URI>#SignatureSP</cbc:URI>
</cac:ExternalReference>
</cac:DigitalSignatureAttachment>
</cac:Signature>
<cac:AccountingSupplierParty>
<cbc:CustomerAssignedAccountID>20103340048</cbc:CustomerAssignedAccountID>
<cbc:AdditionalAccountID>6</cbc:AdditionalAccountID>
<cac:Party>
<cac:PostalAddress>
<cbc:ID>140101</cbc:ID>
<cbc:StreetName>
AV. RICARDO PALMA 1158 - MOSHOQUEQUE - JOSE LEONARDO ORTIZ I
</cbc:StreetName>
<cbc:CitySubdivisionName>CERCADO DE CHICLAYO</cbc:CitySubdivisionName>
<cbc:CityName>LAMBAYEQUE</cbc:CityName>
<cbc:CountrySubentity>CHICLAYO</cbc:CountrySubentity>
<cbc:District>CHICLAYO</cbc:District>
<cac:Country>
<cbc:IdentificationCode>PE</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyLegalEntity>
<cbc:RegistrationName>NOROESTE SAC</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>
<cbc:CustomerAssignedAccountID>10167240718</cbc:CustomerAssignedAccountID>
<cbc:AdditionalAccountID>6</cbc:AdditionalAccountID>
<cac:Party>
<cac:PartyLegalEntity>
<cbc:RegistrationName>
<![CDATA[ SALAZAR BUSTAMANTE JACK ERICK ]]>
</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingCustomerParty>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="PEN">0.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxAmount currencyID="PEN">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cac:TaxScheme>
<cbc:ID>1000</cbc:ID>
<cbc:Name>IGV</cbc:Name>
<cbc:TaxTypeCode>VAT</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:PayableAmount currencyID="PEN">383.21</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="NIU">1</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="PEN">383.21</cbc:LineExtensionAmount>
<cac:PricingReference>
<cac:AlternativeConditionPrice>
<cbc:PriceAmount currencyID="PEN">383.21</cbc:PriceAmount>
<cbc:PriceTypeCode>01</cbc:PriceTypeCode>
</cac:AlternativeConditionPrice>
</cac:PricingReference>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="PEN">0.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxAmount currencyID="PEN">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:TaxExemptionReasonCode>10</cbc:TaxExemptionReasonCode>
<cac:TaxScheme>
<cbc:ID>1000</cbc:ID>
<cbc:Name>IGV</cbc:Name>
<cbc:TaxTypeCode>VAT</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:Item>
<cbc:Description>SUBARRIENDO DE STAND</cbc:Description>
<cac:SellersItemIdentification>
<cbc:ID>0002</cbc:ID>
</cac:SellersItemIdentification>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="PEN">324.75</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
</Invoice>



El 10 de noviembre de 2016, 17:45, Daniel Sánchez<resets...@gmail.com> escribió:
Tal cual te comenta Enrique no debes combinar si es inafectas/exonerados todos los items deben serlos.

Saludos
El 10 de noviembre de 2016, 13:12, Alfredo Gómez Silva <algosif...@gmail.com> escribió:
Amigos disculpen ya estoy Homologando pero tengo algunos comprobantes rechazados y tengo los siguientes problemas
- Comprobante No cumple con el Grupo 2: No todos los items corresponden a operaciones inafectas o exonerados al IGV (2382)
         Me ha rechazado todas las facturas del grupo 2, en algunos items le he puesto IGV y algunos no ¿? que puede ser?.. gracias

Daniel Sánchez

unread,
Nov 11, 2016, 1:05:00 PM11/11/16
to Comunidad de Visual Foxpro en Español
Te mando un XML para que lo compares.

Saludos

20315049611-01-FF12-1.Xml

Alfredo Gómez Silva

unread,
Nov 11, 2016, 3:20:55 PM11/11/16
to publice...@googlegroups.com
Oro de los errores específicamente en el grupo de las Ventas Gratuitas es:
Debe existir el tag cac:alternativeconditionPrice/cbc:PriceTypeCode con valor 01
Pero como código he cnsiderado 02 y le he puesto el precio del producto
me podrán pasar parte de su XML como va en esa parte específica

Otro problema me sale cancelada la HOMOLOGACION puedo volver a enviar ?

Gracias amigos
No estoy muy enterado en estos casos



JBCA

unread,
Nov 11, 2016, 5:53:25 PM11/11/16
to Comunidad de Visual Foxpro en Español, marti...@hotmail.com
Alfredo,

Verifica que el tipo de afectación del igv sea el correcto para inafectos y/o exonerados.

</cac:PricingReference>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="PEN">0.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxAmount currencyID="PEN">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:TaxExemptionReasonCode>10</cbc:TaxExemptionReasonCode>
<cac:TaxScheme>
<cbc:ID>1000</cbc:ID>
<cbc:Name>IGV</cbc:Name>
<cbc:TaxTypeCode>VAT</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:Item>

Los valores posibles se encuentran en el Anexo 8 Catalogo 07:
10 Gravado - Operación Onerosa
11 Gravado – Retiro por premio
12 Gravado – Retiro por donación
13 Gravado – Retiro
14 Gravado – Retiro por publicidad
15 Gravado – Bonificaciones
16 Gravado – Retiro por entrega a trabajadores
20 Exonerado - Operación Onerosa
30 Inafecto - Operación Onerosa
31 Inafecto – Retiro por Bonificación
32 Inafecto – Retiro
33 Inafecto – Retiro por Muestras Médicas
34 Inafecto - Retiro por Convenio Colectivo
35 Inafecto – Retiro por premio
36 Inafecto - Retiro por publicidad

En cuanto al tiempo de presentación de la homologación esta vencido, tienes que llamar a la SUNAT, ahí te indican los pasos a seguir.

Saludos,

Jorge.

JBCA

unread,
Nov 11, 2016, 5:57:13 PM11/11/16
to Comunidad de Visual Foxpro en Español
Alfredo,

Te dejo un link donde encontrarás documentos de ejemplo para la facturación electrónica.


Saludos.

Jorge.


Enrique Orellana G.

unread,
Nov 11, 2016, 6:09:07 PM11/11/16
to Comunidad de Visual Foxpro en Español
Hola Alfredo.
Revisa el siguiente vídeo, puede darte algunas luces.


Saludos Cordiales.
Enrique Orellana
<cac:InvoiceLine>
<span class="gmail-button gmail-collapse-button" style="display:inline-block;width:10px;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;background-color:initial;v

Alfredo Gómez Silva

unread,
Nov 16, 2016, 6:11:14 PM11/16/16
to publice...@googlegroups.com
Quiero agradecer al grupo por todo el apoyo, ya realicé la Homologación, gracias a Ustedes.

Alfredo Gómez Silva

unread,
Dec 2, 2016, 10:14:02 AM12/2/16
to aram...@terra.com.pe, ERICK OMAR OBREGON BRAVO, Jean Pierre Adonis De La Cruz Garcia, Madelyn Chavez Puescas, pjac...@usat.edu.pe, publice...@googlegroups.com, wilderhe...@gmail.com

Saludos amigos
Usando las siguientes lineas de programación
    fT1=CREATEOBJECT("FacturaElectronica.Fe")
    fT1.firmado( cQTmpArc,"D:\CertificadosDigitales\certificado_SUNAT_PFX_NOROESTE.pfx","NBVCXZASDFG")
Siempre salen mensajes que ya está firmado o generado el ZIP
Hay alguna forma de bloquear esos mensajes ?

Alfredo Gómez Silva

unread,
Dec 2, 2016, 10:16:41 AM12/2/16
to aram...@terra.com.pe, ERICK OMAR OBREGON BRAVO, Jean Pierre Adonis De La Cruz Garcia, Madelyn Chavez Puescas, pjac...@usat.edu.pe, publice...@googlegroups.com, wilderhe...@gmail.com
Saludos amigos
Utilizando las lineas de porgrmamción:
    fT1=CREATEOBJECT("FacturaElectronica.Fe")
    fT1.firmado( cQTmpArc,"RutaCertificados\Certificado.pfx","CLAVEXXX")
Salen mensajes de Firmado y ZIP generado, se ha podido bloquear esos mensajes
Gracias

Daniel Sánchez

unread,
Dec 2, 2016, 9:44:39 PM12/2/16
to Comunidad de Visual Foxpro en Español
Esta libreria fue compartida por un compañero del grupo, tiene una version sin avisos pero es paga, busca en el grupo y vas a encontrar sus  datos.

Saludos

Alfredo Gómez Silva

unread,
Dec 9, 2016, 11:57:27 AM12/9/16
to publice...@googlegroups.com
Saludos amigos, han tenido algún problema con el Web Service de Producción 
https:// www.sunat.gob.pe/ol-ti-itcpfegem/billService .- Este servidor em envía mensaje código 004 La Constancia Existe

alguna ayuda porfavor, cual sea el servidor de producción, seguiré viendo

integral

unread,
Dec 9, 2016, 1:58:21 PM12/9/16
to Comunidad de Visual Foxpro en Español, marti...@hotmail.com

Estimado amigo SOFT PERUANO :

Acabo de leer tu comentario y tienes mucha razón, en verdad es una lastima que esa sea su forma de trabajar lo bueno es que no todos son así y como vez varios colegas comparten sus experiencias y hasta códigos y se aprende cada día algo nuevo...

Pero bueno no quiero ahondar mas en el tema. 

Cada vez la competencia crece y creo que hay mercado para todos...

Fiel a nuestro querido ZORRITO...  

Saludos,

INTEGRAL

Alfredo Gómez Silva

unread,
Dec 14, 2016, 5:13:44 PM12/14/16
to publice...@googlegroups.com
Amigos pido su atención y apoyo
Estando ya enviando los comprobantes electrónicos oficiales (Producción) me ha empezado a salir el error
0111 No tiene el perfil para enviar comprobantes electrónicos
 
Ya consulté a la SUNAT y me dicen que debo crear el Usuario Secundario, que también lo hice 
y pasado 24 horas ya podría enviar
Y nada sigue el error
Favor si alguien me puede ayudar 
Se les agradece

Alfredo Gómez Silva

unread,
Dec 14, 2016, 5:27:42 PM12/14/16
to publice...@googlegroups.com
Estoy utilizando el siguiente Web Service: https://www.sunat.gob.pe/ol-ti-itcpfegem/billService
Mi pregunta es: en que parte del Sistema o XML debo indicarle que tipo de usuario soy, si envio como parámetros RUC,USUARIO Y CLAVE?

El 14 de diciembre de 2016, 17:13, Alfredo Gómez Silva<algosif...@gmail.com> escribió:
Amigos pido su atención y apoyo
Estando ya enviando los comprobantes electrónicos oficiales (Producción) me ha empezado a salir el error
0111 No tiene el perfil para enviar comprobantes electrónicos
 
Ya consulté a la SUNAT y me dicen que debo crear el Usuario Secundario, que también lo hice 
y pasado 24 horas ya podría enviar
Y nada sigue el error
Favor si alguien me puede ayudar 
Se les agradece

It is loading more messages.
0 new messages