Consulta Factura Electronica -SUNAT PERU

819 views
Skip to first unread message

Juan MLC

unread,
Dec 8, 2017, 12:45:48 PM12/8/17
to Comunidad de Visual Foxpro en Español
Estimados participantes del foro, si alguien me podría ayudar para verificar las facturas electronicacs desde la sunat, utilice el código que comprtió generosamente el amigo Zen Tes, pero siempre me devuelve "Error 0011-El comprobante de pago Electrónico no existe", ya lo verifique por la página de SUNAT y el documento si existe, he utilizado el ejemplo utilizando los datos en variables y también directamente y no logro hacer la consulta, alguien que podria apoyar en esta copnsulta.
Este es código que compartio el amigo Zen Tes con el cual he probado. Gracias

*-- 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



Daniel Sánchez

unread,
Dec 8, 2017, 12:59:17 PM12/8/17
to Comunidad de Visual Foxpro en Español
No sera que debes poner en mayúsculas las letras de la serie del documento. ("FA76")

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.

Juan MLC

unread,
Dec 9, 2017, 1:01:58 PM12/9/17
to Comunidad de Visual Foxpro en Español
Si Daniel Sanchez, esta en mayuscula la serie cuando hago la consulta, tendras algun código para hacer esta consulta. Gracias

Zen Tes

unread,
Dec 10, 2017, 2:34:23 PM12/10/17
to Comunidad de Visual Foxpro en Español
Estimado Juan.

El codigo funciona perfectamente, yo lo tengo trabajando a la fecha. Quizas no estes ingresando correctamente los datos del comprobante o el usuario sol del emisor.

saludos.

Zen

Juan MLC

unread,
Dec 11, 2017, 5:45:18 PM12/11/17
to Comunidad de Visual Foxpro en Español
Gracias Zen Tes por tu respuesta, si me parece raro que todos los documentos me sal el error "0011 - El comprobante de pago electrónico no existe", pero e ingresado al sunat en linea y el usuario y contraseña es el mismo que utilizo en la consulta, y tambien revise el documento a consultar en la pagina de sunat y si existe. Seria mucha molestia de enviarme nuevamente el código a mi correo por favor es loa...@gmail.com.

Gracias

PD.  No se si necesito tener instalado alguna libreria en especial, por que yo solo lo utilizo directo desde el VFP v.9

Carlos G.

unread,
Dec 12, 2017, 9:38:17 AM12/12/17
to Comunidad de Visual Foxpro en Español

Hola Juan MLC estas colocando el dato  incorrecto. Solo se usa un "Nº de RUC del Emisor", cambia las siguientes lineas :

lcRuc_Emisor = '20XXXX...'
lcUserName
= lcRuc_Emisor + lcUser_Sol
...
...

<rucComprobante><<lcRuc_Emisor>></rucComprobante>


Comenta como te fue

Juan MLC

unread,
Dec 12, 2017, 4:54:45 PM12/12/17
to Comunidad de Visual Foxpro en Español
Muchas Gracias Carlos G, se solucionó el problema con este cambio. Y pensar que el código de busqueda que da la SUNAT se comete el mismo error, pero en fin, nuevamente te agradezco por compartir el código
Reply all
Reply to author
Forward
0 new messages