Buscar en este blog

lunes, 24 de julio de 2017

Recuperar facturas de compras recibidas en SII

DLL Recuperar facturas de compras recibidas en SII

Estimados colegas agregamos a nuestra colección de herramientas de facturación electrónica, la posibilidad de recuperar la información de las facturas recibidas en el SII. Esto es útil para saber cuando debemos rechazar algunas de ellas.

Esta información le permitirá realizar el acuse de recibo de factura que debe empezar a operar desde agosto del 2017. 

Características

- Framework 4.0
- Lenguaje C#
- Soporte Ambiente Producción SII
- Soporte Certificado Instalado en PC ( Cn del certificado )
- Soporte Certificado Físico ( Path y Password )

Resultado

- Regresa un documento Xml con el el detalle de las facturas recibidas por el SII
- Regresa un documento Xml codificado en ISO-8859-1
- Calcula la cantidad de días transcurridos desde la fecha de recepción del SII.

Consulte Valor

HefestoContacto@gmail.com


Como Consultar

Para consultar es necesario proporcionar los siguientes parámetros:

- Cn Nombre común del certificado.
- Rut del dueño del certificado.
- Rut Empresa que se va a consultar.
- Fecha Inicio de la búsqueda.
- Fecha Final de la búsqueda.


















Resultado de la consulta:

El resultado de la consulta puede variar, pero cuando es bien efectuada regresará un documento xml (XmlDocument) el cual podrá guardar en disco o utilizarlo en otras operaciones:















Como es la implementación de la clase:

Consulta detalle de facturas recibidas en el SII utilizando el certificado instalada en maquina actual.



Consulta detalle de facturas recibidas en el SII utilizando certificado físico ( PFX )



















La Clase regresa un documento Xml como resultado

La clase ejecuta la consulta contra la página del SII y si se efectúa correctamente regresa un documento xml con la información recopilada.




41 comentarios:

  1. Hola Marcelo, puedes indicarme cuál es el nombre del web service del SII para las consultas?
    Saludos

    ResponderEliminar
    Respuestas
    1. Estimado,

      No realiza ningun llamado a web services. Solo necesita que la página del SII este funcionando.

      Eliminar
    2. pero como pasas los parámetros de consulta contra el sitio del sii, para obtener el xml con todos los dte de compras recibidos según el rango definido???

      Eliminar
    3. Este comentario ha sido eliminado por el autor.

      Eliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. por qué borra los comentarios?
    se viene abajo el negocio...?

    ResponderEliminar
    Respuestas
    1. No para nada estimado, son los usuarios los que borran sus propios comentarios.

      Atte.
      Marcelo Rojas

      Eliminar
  4. Marcelo, gusto en saludar.

    Quisiera realizarte una pregunta.
    Resulta que logro obtener las compras, pero sol otengo un pequeño problema y es que el texto que descarga esta llegando sin formato UFT-8, por tal motivo los acentos no se visualizan de manera correcta.

    Probe colocando en el Header content-type = application/x-www-form-urlencoded; charset=utf-8

    Pero no funciono.

    Sabes de alguna manera de resolver dicho problema?

    ResponderEliminar
    Respuestas
    1. Resuelto.

      Usando Encoding.GetEncoding("ISO-8859-1")

      Eliminar
    2. Puedes utilizar este codigo
      ////
      //// Recupere la respuesta
      Stream receiveStream = response.GetResponseStream();
      StreamReader readStream = null;
      if (response.CharacterSet == null)
      readStream = new StreamReader(receiveStream);
      else
      readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));

      Eliminar
    3. Estimados, la url de consulta es
      https://palena.sii.cl/cgi_dte/consultaDTE/DTEConsRecRangoCont.sh

      Eliminar
  5. Estimados indicar como pasar los parámetros por favor

    ResponderEliminar
  6. Hola, buenas tardes, me podrían indicar cual es la url especifica, donde se realiza la consulta.

    ResponderEliminar
    Respuestas
    1. https://palena.sii.cl/cgi_dte/consultaDTE/DTEConsRecRangoCont.sh

      Eliminar
    2. Hola gracias, otra duda, cual es el orden en que se envia la parametros??
      1.- Certificado
      2.- Rut Empresa
      3.- Rut Certificado
      4.- Rango de Fechas

      Eliminar
    3. Estimados, saben los nombres de los parametros a enviar, me refiero si el rut de la empresa en RUTEmpresa algo asi???

      Eliminar
    4. DESDE=09-08-2017&HASTA=09-08-2017&RUT=1111111-1&TIPO_CONSULTA=aqui en blanco


      y en la cookies

      TOKEN=numero de token; RUT_NS=rut_empresa; DV_NS=dv del rut

      Eliminar
    5. Gracias Carlos por la ayuda, comentarles, que pude enviar los parametros y tengo respuesta, pero en esta solo hay estos tipos de caracteres "\u001f\u008b\b\0\0\0\0\0\0\u0003¥WÝnÛ6\u0014¾ïS\u009cêbr°Èr\u0083aØ\u001cÛ\u0080\u0097v@\u0080n\rÒ´Ø®\u0002Z:¶\u0018P¤Ê\u001f;É°\u0087\u001aö\b}±\u001d\u008a¶,Ûr\u009b¬\u0001\u0002\u0093âùãÇsx>\u008e^¾~wqóçÕ\u001b(l)&/Fá\a\0F\u0005²¼\u001eùI\u0089\u0096AV0mÐ\u008e#gçÉOQº»ZX[%øÉñå8ú#ù0M.TY1Ëg\u0002#È\u0094´(IõòÍ\u0018ó\u0005î+KVâ8Zr\\UJÛ\u0096ü\u008aç¶\u0018ç¸ä\u0019&õä\u0014¸ä\u00963\u0091\u0098\u008c\t\u001c¿ê\u000fN¡d÷¼teû\u00933¨ë9£\bÆREÐé3G\u0093i^Y®dËmw|ÌÙBén1Ë­ÀÉÔù\u0005\u009e±\u008c\u007f§XF³s9JÃÚFòe\u0092\u0080à3\u008d\u009a3\u0003\u009f\u001cÒ\u00862á\u001eP\u0082P 1CÃ4WP1Í@U¨\u0099\u0006\u008d¦RÒð¥\u0082"

      Alguien sabe a que se debe esto??

      Eliminar
    6. Hola Carlos, gracias nuevamente, pero ya lo resolví, pero con parametros distintos a lo que expone Marcelo.
      primero la url no es la que mencionas mas arriba, sino que es https://palena.sii.cl/cgi_dte/consultaDTE/wsDTEConsRecCont.sh

      luego en Cookie, solo agrego el token y los parametros es exactamente como tu le expones.

      Y esta información lo guardo en archivo csv, donde lo puedo leer.

      Nota, me inquieta que si realizo la consulta directamente en la pagina de SII, no es la misma cantidad de DTE que me descarga este procedimiento, y estos dos, son muy distintos a los del nuevo proceso de registro de compra venta de SII.

      Eliminar
    7. si efectivamente la url es https://palena.sii.cl/cgi_dte/consultaDTE/wsDTEConsRecCont.sh

      yo también me he topado con el problema que hay días que no hay documentos que si están en el registro de compra.

      Eliminar
    8. Hola.

      Tiene algún ejemplo en php de como acceder a estos dtes. ?

      Gracias.

      Eliminar
    9. Hola Giovanni como te puedo contactar, yo lo logre con PHP.

      Eliminar
    10. Buenas tardes estimados,

      Me podrían indicar como traspasaron las Cookie? Como incluyeron los valores mencionados en ella? Y como se vería en la URL?

      Eliminar
  7. estimados alguien me podria indicar como enviar los datos para obtener XML, se los agradecería muchisimo

    ResponderEliminar
    Respuestas
    1. SII no guarda los XML de las facturas emitidas por los proveedores, por lo cual no se pueden obtener.

      Eliminar
  8. logre realizar la descargar en CSV, lo malo es que mucha utilidad no le encuentro dado que el archivo que descarga no tiene todos (estilo registro de compras/ventas)solo incluye el Total, lo que para cargar en algún sistema no es muy practico.

    ResponderEliminar
  9. Buenas tardes, me está retornando esto:

    HTML
    HEAD
    TITLEError!/TITLE
    /HEAD
    BODY
    H1Error!/H1
    H2CONTENT_LENGTH is NULL/H2
    /BODY
    /HTML


    Quizás es porque no estoy pasando bien los parámetros (DESDE,HASTA,RUT Y TIPO_CONSULTA)...alguien podria indicarme como los agrego al request...o donde se deban agregar.

    Cualquier ayuda estaria agradecido.

    ResponderEliminar
    Respuestas
    1. en que lenguaje estas trabajando?

      Eliminar
    2. Hola Eric, pudiste resolver este error? Me pasa lo mismo.

      Eliminar
    3. Estimados ya lo resolvi, para el que le pase esto, lo que hice simplemente fue cambiar Request.Method = "POST" a Request.Method = "GET" y funciona perfectamente, me trae todos los documentos segun la fecha consultada en formato CSV.

      Eliminar
  10. Hola Marcelo,

    Te cuento que logre la autentificacación automática. Pero ahora quisiera consultar los documentos recibidos, pero no entiendo como realizas eso, ya que dices que no se conecta a ningún WS pero entonces a que le envío los parámetros que mencionas?

    Veo varios comentarios que use el link: https://palena.sii.cl/cgi_dte/consultaDTE/wsDTEConsRecCont.sh pero donde lo agrego? No logro hacerlo.

    Espero puedan ayudarme.

    Saludos.

    ResponderEliminar
    Respuestas
    1. Me pasa lo mismo, entiendo que al armar el sobre soap en

      Req.Headers.Add("Cookie", "TOKEN=numero de token; RUT_NS=rut_empresa; DV_NS=dv del rut)

      ,pero los demás parámetros (DESDE=09-08-2017&HASTA=09-08-2017&RUT=1111111-1&TIPO_CONSULTA=) donde van? en la url de la consulta? alguien me explica porfavor?

      Eliminar
  11. Estimados, como envio los parametros para hacer la consulta de los documentos? Alguien podria ayudarme?

    ResponderEliminar
  12. Marcelo, podria mostrar el XML que envia para consultar los datos?

    ResponderEliminar
  13. Hola Marcelo,

    Al consultar los documentos me aparece este error en el cuerpo del documento:

    Titulo: Error!
    Body: Error!
    Body: CONTENT_LENGTH is NULL

    Pase el Token como lo indicaste mas arriba en la consulta. Estoy trabajando en VB.NET.

    Agrego un poco de mi codigo para ver si me pueden ayudar:

    Request.Headers.Add("cookie", "TOKEN=" + Token)
    Request.ContentType = "text/xml; charset=""utf-8"""
    Request.Method = "POST"

    Muchas gracias de antemano.

    ResponderEliminar
    Respuestas
    1. Request.Headers.Add("SOAPAction", Url_Consulta)
      Request.Headers.Add("cookie", "TOKEN=" + Token)
      Request.ContentType = "text/xml; charset=""utf-8"""
      Request.Method = "POST"

      Eliminar
    2. Como mencione anteriormente, cambie el Request.Method = "POST" a Request.Method = "GET" y me trae los documentos en formato CSV.

      Ademas agregue el Certidicado en el Request al HttpWebRequest:

      Request.ClientCertificates.Add(ObtenerCertificado(CertificadoCn))

      ObtenerCertificado() es la misma función que se usa para obtener el Token.

      Eliminar
  14. Una consulta: ¿Existe alguna forma de obtener una factura de compra con detalle en formato xml?

    ResponderEliminar
    Respuestas
    1. creo que no, ya que es un proceso entre contribuyentes (proceso de intercambio vía email) y el SII dice que no debe guardar esos xml. Ojala en el futuro implemente esa funcionalidad

      Eliminar
  15. confirmado, empresa gosocket.net esta accediendo a los dte recibidos en el SII, solo con el rut de la persona natural y clave, descargan xml tanto de emitidos como recibidos, seria bueno saber como logran hacer eso?

    ResponderEliminar