Estimados clientes, tenemos disponible la nueva versión 2024 para recuperación de registros de compras y ventas desde el SII. Esta versión incorpora la posibilidad de recuperar los libros masivos (descargas diferidas) y soluciona el problema de la recuperación de los registros utilizando un 'RECAPTCHA' aceptado por el SII.
DESCRIPCIÓN DEL PRODUCTO
Nombre de la DLL
Plataforma
Estado del producto
Contacto
Abaddon.1974@gmail.com
997800285
Solución problema RECAPTCHA (2024)
Desde el mes de octubre de 2024 el SII agrego seguridad de acceso a la página web con RECAPTCHA V3 de GOOGLE lo cual impide la recolección de los registros utilizando las herramientas actuales. por esta razón fue necesario actualizar los desarrollos de recuperación de los datos con nuevas técnicas.
Solución Descarga de documentos masivos (Descarga Diferida 2024)
Esta versión también incluye la posibilidad de recuperar los libros masivos de compras y ventas, esto debido a que el SII dependiendo de la cantidad de registros a recuperar solicita descargar el archivo de forma diferida. Diferida indica que debe esperar a que el SII generé un archivo y luego descargarlo manualmente.
Acciones disponibles para libros de ventas del SII
Libro | Tipo | Recaptcha | Normal | Diferido |
---|---|---|---|---|
Ventas | Resúmenes | |||
Ventas | Registros |
Acciones disponibles para libros de compras del SII
Libro | Tipo | Recaptcha | Normal | Diferido |
---|---|---|---|---|
Compras | Resúmenes | |||
Compras | Registros | |||
Compras | No Incluir | |||
Compras | Pendientes | |||
Compras | Reclamados |
Mejoras respecto a versiones anteriores
- Soluciona problema del 'RECAPTCHA'
- Recupera información completa de los registros compra y venta ( descargas diferidas )
- Genera archivos XML masivos de resultado
- Framework 4.6.2
- Mejoras en algoritmo transformación a XML
- Menor tiempo de procesamiento.
- Recupera archivos masivos superiores a 1 mega y más.
- Permite consultar con credenciales del usuario en el SII
- Permite consultar con el certificado PFX utilizado en el SII
- Recupera toda la información disponible (facturas, notas, guías, etc)
- Solo recupera resumen de boletas electrónicas ( sin detalle )
Para agregar una referencia a su proyecto
Referencie en su proyecto la dll, no copie la dll en una ubicación nueva sino más bien utilize la carpeta con todos los archivos suministrados.
////
//// Referencie la libreria hefesto aquí
using Hefesto.SIIRegCV._2024;
////
//// Otras librerias de su proyecto
using System;
using System.CodeDom;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
Recuperar resumenes de ventas desde el SII
Utilice este código para recuperar el resumen de documentos de ventas desde el SII.
////
//// Parámetros
string rutEmpresa = "99999999-9";
string pathCert = "fullpath certificado PFX";
string passCert = "password";
string periodo = "2024-10";
////
//// Inicie la consulta
HefRespuesta resp = await SIIRegVentas.ResumenVentas(
rutEmpresa,
pathCert,
passCert,
periodo);
////
//// Muestre el resultado
Console.WriteLine(resp.EsCorrecto);
Console.WriteLine(resp.Detalle);
Console.WriteLine(resp.Mensaje);
////
//// Guarde el archivo en disco
if (resp.EsCorrecto)
File.WriteAllText(
"HefResumen_R" +
$"R{rutEmpresa}_" +
$"P{periodo}.Registro.xml",
resp.Resultado as string,
Encoding.GetEncoding("ISO-8859-1"));
Recuperar resumenes de compras desde el SII
Utilice este código para recuperar el resumen de documentos de compras desde el SII.
////
//// Parametros
string rutEmpresa = "99999999-9";
string pathCert = "fullpath certificado";
string passCert = "password";
string periodo = "2024-10";
////
//// Seleccione el tipo de consulta
hefTipoRegistros tipoRegistro = hefTipoRegistros.Registro;
/*
Puede seleccioanr el tipo de consulta
hefTipoRegistros tipoRegistro = hefTipoRegistros.No_Incluir;
hefTipoRegistros tipoRegistro = hefTipoRegistros.Pendiente;
hefTipoRegistros tipoRegistro = hefTipoRegistros.Reclamado;
*/
////
//// Inicie la consulta
HefRespuesta resp = await SIIRegCompras.ResumenCompras(
rutEmpresa,
pathCert,
passCert,
periodo,
tipoRegistro);
////
//// Muestre el resultado
Console.WriteLine(resp.EsCorrecto);
Console.WriteLine(resp.Detalle);
Console.WriteLine(resp.Mensaje);
////
//// Guarde el archivo en disco
if (resp.EsCorrecto)
File.WriteAllText(
$"HefResumenCompras_" +
"R{rutEmpresa}" +
"P{periodo}_Registro.xml",
resp.Resultado as string,
Encoding.GetEncoding("ISO-8859-1"));
Recuperar registros de ventas desde el SII
Utilice este código para recuperar el registro de ventas desde el SII.
////
//// Parámetros
string rutEmpresa = "99999999-9";
string pathCert = "fullpath certificado PFX";
string passCert = "password";
string periodo = "2024-10";
////
//// Inicie la consulta
HefRespuesta resp = await SIIRegVentas.RegistrosVentas(
rutEmpresa,
pathCert,
passCert,
periodo);
////
//// Muestre el resultado
Console.WriteLine(resp.EsCorrecto);
Console.WriteLine(resp.Detalle);
Console.WriteLine(resp.Mensaje);
////
//// Guarde el archivo en disco
if (resp.EsCorrecto)
File.WriteAllText(
"HefRegistros_R" +
$"R{rutEmpresa}_" +
$"P{periodo}.Registro.xml",
resp.Resultado as string,
Encoding.GetEncoding("ISO-8859-1"));
Recuperar resumenes de compras desde el SII
Utilice este código para recuperar todos los registros de compras desde el SII.
////
//// Parametros
string rutEmpresa = "99999999-9";
string pathCert = "fullpath certificado";
string passCert = "password";
string periodo = "2024-11"
////
//// Seleccione el tipo de registro que quiere descargar
hefTipoRegistros tipoRegistro = hefTipoRegistros.Registro;
/*
Puede seleccioanr el tipo de consulta
hefTipoRegistros tipoRegistro = hefTipoRegistros.No_Incluir;
hefTipoRegistros tipoRegistro = hefTipoRegistros.Pendiente;
hefTipoRegistros tipoRegistro = hefTipoRegistros.Reclamado;
*/
//// Inicie la consulta
HefRespuesta resp = await SIIRegCompras.RegistrosCompras(
rutEmpresa,
pathCert,
passCert,
periodo,
tipoRegistro);
////
//// Muestre el resultado
Console.WriteLine(resp.EsCorrecto);
Console.WriteLine(resp.Detalle);
Console.WriteLine(resp.Mensaje);
////
//// Guarde el archivo en disco
if (resp.EsCorrecto)
File.WriteAllText(
$"HefRegistroCompras_"+
"R{rutEmpresa}"+
"P{periodo}_Registro.xml",
resp.Resultado as string,
Encoding.GetEncoding("ISO-8859-1"));
Ejemplo de libro de ventas recuperado desde el SII
Representa el resultado de la consulta de registros de ventas. Este es un ejemplo ficticio.
<?xml version="1.0" encoding="ISO-8859-1"?>
<Hefesto_Resultado>
<!--
AUTOR : HEFESTO INVESTIGACION Y DESARROLLO
URL : https://lenguajedemaquinas.blogspot.com/
-->
<Encabezado>
<RutEmpresa>99999999-9</RutEmpresa>
<Periodo>2024-02</Periodo>
<Libro>VENTAS/REGISTRO</Libro>
<FchConsulta>2024-11-08 15:19:34</FchConsulta>
<RsmnTotDoc>360</RsmnTotDoc>
</Encabezado>
<Resumenes>
<Resumen>
<dcvCodigo>401394117</dcvCodigo>
<rsmnCodigo>1846234314</rsmnCodigo>
<rsmnTipoDocInteger>33</rsmnTipoDocInteger>
<dcvNombreTipoDoc>Factura Electrónica</dcvNombreTipoDoc>
<dcvTipoIngresoDoc>DET_ELE</dcvTipoIngresoDoc>
<rsmnLink>true</rsmnLink>
<rsmnMntExe>0</rsmnMntExe>
<rsmnMntNeto>60498086</rsmnMntNeto>
<rsmnMntIVA>11494635</rsmnMntIVA>
<rsmnMntIVANoRec>0</rsmnMntIVANoRec>
<rsmnIVAUsoComun>0</rsmnIVAUsoComun>
<dcvOperacion />
<rsmnMntTotal>71992721</rsmnMntTotal>
<rsmnEstadoContab />
<rsmnTotDoc>360</rsmnTotDoc>
<rsmnTotalRutEmisor />
</Resumen>
</Resumenes>
<Registros>
<Registro>
<Nro>1</Nro>
<TipoDoc>33</TipoDoc>
<TipoVenta>Del Giro</TipoVenta>
<Rutcliente>8430708-4</Rutcliente>
<RazonSocial>BERNARDO ANTONIO CORNEJO HIDALGO</RazonSocial>
<Folio>30133</Folio>
<FechaDocto>29/02/2024</FechaDocto>
<FechaRecepcion>06/03/2024 10:49:36</FechaRecepcion>
<FechaAcuseRecibo />
<FechaReclamo />
<MontoExento>0</MontoExento>
<MontoNeto>160000</MontoNeto>
<MontoIVA>30400</MontoIVA>
<Montototal>190400</Montototal>
<IVARetenidoTotal>0</IVARetenidoTotal>
<IVARetenidoParcial>0</IVARetenidoParcial>
<IVAnoretenido>0</IVAnoretenido>
<IVApropio>0</IVApropio>
<IVATerceros>0</IVATerceros>
<RUTEmisorLiquidFactura>-</RUTEmisorLiquidFactura>
<NetoComisionLiquidFactura>0</NetoComisionLiquidFactura>
<ExentoComisionLiquidFactura>0</ExentoComisionLiquidFactura>
<IVAComisionLiquidFactura>0</IVAComisionLiquidFactura>
<IVAfueradeplazo>0</IVAfueradeplazo>
<TipoDoctoReferencia />
<FolioDoctoReferencia />
<NumIdentReceptorExtranjero />
<NacionalidadReceptorExtranjero />
<Creditoempresaconstructora>0</Creditoempresaconstructora>
<ImptoZonaFrancaLey18211 />
<GarantiaDepEnvases>0</GarantiaDepEnvases>
<IndicadorVentasinCosto>1</IndicadorVentasinCosto>
<IndicadorServicioPeriodico>0</IndicadorServicioPeriodico>
<MontoNofacturable>0</MontoNofacturable>
<TotalMontoPeriodo>0</TotalMontoPeriodo>
<VentaPasajesTransporteNacional />
<VentaPasajesTransporteInternacional />
<NumeroInterno />
<CodigoSucursal>0</CodigoSucursal>
<NCEoNDEsobreFactdeCompra />
<CodigoOtroImp />
<ValorOtroImp />
<TasaOtroImp />
</Registro>
</Registros>
</Hefesto_Resultado>
Ejemplo de libro de compras recuperado desde el SII
Representa el resultado de la consulta de registros de compras. Este es un ejemplo ficticio.
<?xml version="1.0" encoding="ISO-8859-1"?>
<Hefesto_Resultado>
<!--
AUTOR : HEFESTO INVESTIGACION Y DESARROLLO
URL : https://lenguajedemaquinas.blogspot.com/
-->
<Encabezado>
<RutEmpresa>99999999-9</RutEmpresa>
<Periodo>2024-02</Periodo>
<Libro>COMPRAS/REGISTRO</Libro>
<FchConsulta>2024-11-08 15:19:34</FchConsulta>
<RsmnTotDoc>92</RsmnTotDoc>
</Encabezado>
<Resumenes>
<Resumen>
<dcvCodigo>492469268</dcvCodigo>
<rsmnCodigo>2009316861</rsmnCodigo>
<rsmnTipoDocInteger>33</rsmnTipoDocInteger>
<dcvNombreTipoDoc>Factura Electrónica</dcvNombreTipoDoc>
<dcvTipoIngresoDoc>DET_ELE</dcvTipoIngresoDoc>
<rsmnLink>true</rsmnLink>
<rsmnMntExe>740464</rsmnMntExe>
<rsmnMntNeto>72901272</rsmnMntNeto>
<rsmnMntIVA>13851241</rsmnMntIVA>
<rsmnMntIVANoRec>0</rsmnMntIVANoRec>
<rsmnIVAUsoComun>0</rsmnIVAUsoComun>
<dcvOperacion />
<rsmnMntTotal>87716269</rsmnMntTotal>
<rsmnEstadoContab />
<rsmnTotDoc>92</rsmnTotDoc>
<rsmnTotalRutEmisor />
</Resumen>
</Resumenes>
<Registros>
<Registro>
<Nro>1</Nro>
<TipoDoc>33</TipoDoc>
<TipoCompra>Del Giro</TipoCompra>
<RUTProveedor>81821100-7</RUTProveedor>
<RazonSocial>TURISMO COCHA S.A.</RazonSocial>
<Folio>7631532</Folio>
<FechaDocto>22/10/2024</FechaDocto>
<FechaRecepcion>23/10/2024 17:58:09</FechaRecepcion>
<FechaAcuse />
<MontoExento>53924</MontoExento>
<MontoNeto>14130</MontoNeto>
<MontoIVARecuperable>2685</MontoIVARecuperable>
<MontoIvaNoRecuperable />
<CodigoIVANoRec />
<MontoTotal>70739</MontoTotal>
<MontoNetoActivoFijo />
<IVAActivoFijo />
<IVAusoComun />
<ImptoSinDerechoaCredito />
<IVANoRetenido>0</IVANoRetenido>
<TabacosPuros />
<TabacosCigarrillos />
<TabacosElaborados />
<NCEoNDEsobreFactdeCompra>0</NCEoNDEsobreFactdeCompra>
<CodigoOtroImpuesto />
<ValorOtroImpuesto />
<TasaOtroImpuesto />
</Registro>
</Registros>
</Hefesto_Resultado>
Marcelo es un programador con amplia experiencia en consultas al SII. Tuve una inquietud y no dudé en contactarlo; me respondió rápidamente, a pesar de que mi implementación está en Python. ¡Muchas gracias, Marcelo! Tu blog es un gran aporte.
ResponderEliminarSi tienes preguntas sobre consultas al SII, te recomiendo contactarlo también.
Marcelo me salvó la vida con una asesoría para rescatar información del SII. Me contestó rapidisimo, muy buena voluntad y sabe mucho.
ResponderEliminarMarcelo... Agredecer los años q llevamos trabajando juntos.. Las herramientas muy utiles y practicas q nos proveido para simplificar el timbrado de documentos electrónicos y resto de herramientas para los documentis electronicos un abrazo y felicitaciones.. Rene Jara
ResponderEliminarTiene ejemplo del json que se envia?
ResponderEliminarEstimado envíeme un email para responderle. Mi email es abaddon.1974@gmail.com
EliminarMuy agradecido con tu ayuda, no solo me ayudó a solucionar mi problema con la actualización del SII sino que además me enseñó a comprender mejor el código. Un experto en el área, gracias nuevamente. Un abrazo.
ResponderEliminarAlguien tiene la ruta nueva (endpoint) para obtener el registro de compras?
ResponderEliminarBuenos días, mi nombre es Marcelo, soy el administrador del blog, llámame y me explica el problema estimado. Mi número es 997800285
Eliminarhola, a mi me funcionaba con php, pero con el recaptcha v3 no he podido hacerlo funcionar
ResponderEliminarSi me pudieran ayudar, cuando probe con el recaptcha, lo agregue en data despues de COMPRA, me indica error 400. $pUrl = "https://www4.sii.cl/consdcvinternetui/services/data/facadeService/getDetalleCompraExport";
Eliminar$estados = ["PENDIENTE", "REGISTRO"];
foreach ($estados as $estado) {
$data = array(
"metaData" => array(
"conversationId" => $token,
"namespace" => "cl.sii.sdi.lob.diii.consdcv.data.api.interfaces.FacadeService/getDetalleCompraExport",
"page" => null,
"transactionId" => "0"
),
"data" => array(
"rutEmisor" => $rt,
"dvEmisor" => $dv,
"ptributario" => $periodo,
"estadoContab" => $estado,
"codTipoDoc" => 0,
"operacion" => "COMPRA"
)
);
$data_json = json_encode($data);
$ch = curl_init($pUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json;charset=utf-8',
'Cookie: TOKEN='.$token.'; RUT_NS='.$rt.'; DV_NS='.$dv
));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
$response = curl_exec($ch);
Cuando puedas me llamas y lo vemos 997800285 Marcelo Rojas
EliminarHolaa, Me gustaría saber como se hizo la confección de la descarga diferida, si solo esperas a leer desde el Excel o realizas alguna consulta a otro endpoint..
ResponderEliminarBuenas tardes, para realizar esta acción es necesario solicitar el archivo masivo y luego cuando este disponible descargarlo directamente desde el SII. Generalmente tarda unos 4 o 5 segundos en generarlo. Todo esto desde csharp.
EliminarMuchas gracias Amigo por tu pronta respuesta. Te escribiré al mail para ver el valor de la DLL. Gracias!
Eliminar