Recuperación Información Registro Compras Ventas SII
Clase que permite recuperar la información de compras y ventas desde el registro de compras y ventas del SII en ambiente de producción.
Características
- Realiza consulta sin web services
- Recupera listado de uno o varios documentos Dtes recibidos o emitidos.
Configuración
- Necesita certificado digital inscrito en el SII.
Requisitos
- Net.
- Framework 4.0 o superior
Tipo de Proyecto
- Tipo: Dll
- Nombre : HEFESTO.SII.V2018.BACKGROUND.CONSULTAS
Consultas y Valores
Marcelo Rojas Rojas
abaddon.1974@gmail.com
Movil:997800285
Movil:997800285
Como recuperar lista resumen de compras
Estos son los datos actuales descargados por Hefesto.
Como recuperar lista detalle de documentos recibidos
Como recuperar lista detalle de documentos recibidos
Como recuperar lista resúmenes de Ventas
Hola Marcelo, he estado viendo tu aplicación y esta muy buena, he intentado realizar la descarga, pero no logro hacerla, tu me podrías indicar de que url la realizas.
ResponderEliminarGracias
https://www4.sii.cl/consdcvinternetui/services/data/facadeService/getDetalleCompraExport
ResponderEliminarpero obviamente debes pasar algunos parámetros.
Carlos, lograste resolver???
EliminarHola, gracias por la respuesta, les he pasado estos parámetros y no me realiza la descarga.
ResponderEliminar?rut=12312312-3&operacion=compra&201807&dte=33&estado=REGISTRO
Sabes si esto es lo correcto???
Hola no es correctos,se debe pasar una cadena Json al httpwebrequest , ejemplo
ResponderEliminar{"metaData":{"conversationId":"T9H2JHEQIBSLW"},"data":{"rutEmisor":"9999999","dvEmisor":"9","ptributario":"201803","estadoContab":"REGISTRO","codTipoDoc":0,"operacion":"COMPRA"}}
el conversationid corresponde al token
saludos
Hola Carlos, primero gracias por la ayuda, mira envio el json a la url que mencionas mas arriba,"https://www4.sii.cl/consdcvinternetui/services/data/facadeService/getDetalleCompraExport" , pero me arroja "Error en el servidor remoto: (500) Error interno del servidor."
EliminarSi me podrias orientar.
Saludos Diego.
Hola Carlos, donde obtienes la info de que servicios estan disponibles para ser consumidos?... sabrás el servicio que permita consultar la situación tributaria de terceros?... gracias y saludos!
EliminarGabriel no es un web service, se captura la información antes que sea dibujada en la pagina.
EliminarEn que lenguaje estas trabajando???...coloca un extracto del codigo
EliminarEste comentario ha sido eliminado por el autor.
Eliminarparece que el sii puso algunas restricciones
ResponderEliminarlogancl, saludos. A que te refieres?
ResponderEliminar¿Alguien con información actualizada al respecto?. Después de un tiempo ya, realizando la consulta ahora los pàrametros de entrada han cambiado, requiero de un Transactionid ¿ alguna idea del valor a entregar.
ResponderEliminarHola, pudiste solucionar lo del transactionid?
Eliminarhola, alguien sabe como obtener este parametro? Gracias!
EliminarHola, alguno tiene información al respecto para realizar la conexión y descargar del reporte?
ResponderEliminarGracias.
hola, desde el año pasado no funciona.. creo que es por el cambio en los paramentros que comentas.
ResponderEliminarEstará activa esta opción activa actualmente?, alguien sabe?
ResponderEliminarHola!! , antes de todo , agradezco la documentación expuesta. Les comento que necesito obtener el registro de compra del SII, entiendo que se puede bajar de esta url
ResponderEliminarhttps://www4.sii.cl/consdcvinternetui/services/data/facadeService/getDetalleCompraExport , pero tengo duda con los parametros , estos se envian por GET o POST , que formato ?? json ?
Atte.
Hola !!, alguien lo pudo resolver??
ResponderEliminaryo le hice seguimiento con la herramienta de desarrollador de Chrome y muestra que los parámetros que usa son:
{
"metaData":{
"namespace":"cl.sii.sdi.lob.diii.consdcv.data.api.interfaces.FacadeService/getDetalleCompraExport",
"conversationId":"PPPPPPPP",
"transactionId":"f1ed202d-20a6-4919-8243-5f7151e0d5d0",
"page":null
},
"data":{
"rutEmisor":"77777777",
"dvEmisor":"7",
"ptributario":"201910",
"codTipoDoc":0,
"operacion":"COMPRA",
"estadoContab":"REGISTRO"
}
}
Al ejecutar la consulta en una aplicación, esta muestra el siguiente error:
'Error en el servidor remoto: (404) No se encontró.'
Alguna idea?
Estimado, como llegas a estas opciones en el Chrome, donde está en el sii. Para poder hacer el mismo seguimiento a la url (https://www4.sii.cl/consdcvinternetui/services/data/facadeService/getDetalleCompraExport).
Eliminarhan podido obtener los registros, saben desde que url se consulta ya que antes era de: https://palena.sii.cl/cgi_dte/consultaDTE/wsDTEConsRecCont.sh? pero ahora ya no esta disponible. agradezco que pueden orientarme por favor
EliminarSegun el la mesa des-ayuda del sii la dieron de baja... pero no se que creer.
ResponderEliminarque mal, yo también llame y me comentaron que habían dado de baja
EliminarHola, alguien ha podido solucionar esto, yo antes consultaba desde la siguiente URL con metodo GET: https://palena.sii.cl/cgi_dte/consultaDTE/wsDTEConsRecCont.sh.
ResponderEliminarSII ha cambiado la URL, leyendo los comentarios es otra y se asimila que debe ser con un POST, como paso los parametros? favor agradecería su apreciada ayuda
quizas hay que ver sacar la info. desde otras partes.. eso al menos estoy haciendo yo.
ResponderEliminarsi logro resolver, comparto el metodo, pero yo estoy trabajando con c#
EliminarHttpWebRequest oRequest;
Eliminarstring url = "https://www4.sii.cl/consdcvinternetui/services/data/facadeService/getDetalleCompra";
//Iniciar propiedades del request
oRequest = (HttpWebRequest)HttpWebRequest.Create(url);
oRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8;application/json;text/plain";
oRequest.Headers.Add("Cookie", "TOKEN=" + sTokenSII);
oRequest.ContentType = "application/json;charset=utf-8";//"text/xml;charset=\"utf-8\"";
oRequest.Method = "POST";
//certificado digital
System.Security.Cryptography.X509Certificates.X509Certificate2 oCert;
oCert = new System.Security.Cryptography.X509Certificates.X509Certificate2(sRutaCertificado, sClaveCertificado);
oRequest.ClientCertificates.Add(oCert);
//Prueba Json
using (var streamWriter = new StreamWriter(oRequest.GetRequestStream()))
{
string json = "{\"metaData\":{\"conversationId\":\"" + sTokenSII + "\", \"transactionId\": \"0\"," +
"\"namespace\": \"cl.sii.sdi.lob.diii.consdcv.data.api.interfaces.FacadeService/getDetalleCompra\"}," +
"\"data\":{" +
"\"rutEmisor\":\"79556040\"," +
"\"dvEmisor\":\"8\"," +
"\"ptributario\":\"202001\"," +
"\"estadoContab\":\"REGISTRO\"," +
"\"codTipoDoc\":33," +
"\"operacion\":\"COMPRA\"}}";
streamWriter.Write(json);
}
var httpResponse = (HttpWebResponse)oRequest.GetResponse();
string sJsonResul = "";
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
//recoger respuesta 1
var result = streamReader.ReadToEnd();
sJsonResul = result;
}
Estimado, el resultado que se obtiene es el total de las COMPRAS o solo aquellas que están aceptadas?. Si son solo las aceptadas, cual sería la "\operacion\" que debería invocarse? Sabes tu?. Gracias de antemano y felicitaciones por su conocimiento tan amplio.
Eliminardisculpa la tardanza alfredo, es cambiar = "\"estadoContab\":\"REGISTRO\","
EliminarREGISTRO POR PENDIENTES
REGISTRO POR PENDIENTE
Eliminaridem por aca!
ResponderEliminarya respondí, con eso funciona, saludos
Eliminaren eso mismo estaba.. puedas sacar ventas tb, detalles y resumen.
Eliminarsaludos
todo lo de esa opción de la página, solo cambia la URL y enjoy
ResponderEliminarSaludos
Hola buenas, primero que todo muchas gracias por toda la información que esta en el foro, les comento que soy alumno de 2do año en informática y la empresa donde trabajo hace unas semanas necesita descargar los rcv de manera automática, quisiera poder ayudar con el proceso de creación de una aplicación que realice esa acción de manera automática, alguien podria ayudarme con los pasos a seguir con c#.
ResponderEliminarDe antemano muchas gracias.
hola, alguien que lo lo lograra con php o este en desarrollo de este tema?
ResponderEliminarHola, primero agradecer por toda la información que han publicado, quisiera saber si alguien conoce el resto de los métodos que se pueden invocar y de que manera, yo pude probar que cambiando getDetalleCompra por getDetalleVenta me permite obtener el registro de las ventas, pero me gustaría saber que otros datos se pueden obtener desde esta url
ResponderEliminarBuenos días estimados tienen alguna forma de obtener las boletas electrónicas con alguna URL, ya que probé con éxito que solo se puede obtener documentos de factura o relacionados si alguno tiene una noción de por donde se puede obtener el listado de esta información agradecido.
ResponderEliminarBuenas estimados,
ResponderEliminarPrimero que todo agradecer vuestra disposición en la entrega de ayuda.
Es una información muy útil.
Quería preguntarles, de qué manera obtienen el token, porque actualmente, lo hago iniciando sesión vía navegador, y viendo las cookies.
¿Hay otra manera?
Por cierto, estoy usando C#.
De antemano muchas gracias,
Saludos
Se hace primero una llamada al metodo getSeed y luego se crea un xml, para obtener el token 975883420 es mi numero.
EliminarHola! Estoy trabajando en un proyecto de tesis y no he logrado conectarme con PHP. Actualmente obtengo el token, pero no puedo descargar a través de https://www4.sii.cl/consdcvinternetui/services/data/facadeService/getDetalleCompraExport
ResponderEliminarDe acuerdo a lo que he leido estoy enviando este paquete {"metaData":{"conversationId":"'.$token_auth.'"},"data":{"rutEmisor":"12345666","dvEmisor":"1","ptributario":"202010","estadoContab":"REGISTRO","codTipoDoc":0,"operacion":"COMPRA"}}
Por metodo POST, pero tengo un error 400 Bad Request` response: Error 400 al enviar la solicitud.
¿Alguien ha tenido este problema? Muchas gracias de antemano si alguien pudiera brindarme un poco de ayuda.
Gracias!
Hola!!
ResponderEliminarel token está acá: https://es.stackoverflow.com/questions/256258/login-con-curl-y-php-al-sii-servicio-impuestos-internos-de-chile
(no pude transformar mi certificado a pem, pero con pass me funciona)
Revisando todo lo que sale más arriba, llego a error 500... estoy trabajando en PHP...
Alguien caritativo que nos de una manito??
EUREKA!!!
ResponderEliminarno sé que faltaba, pero ya funciona!!! :D:D:D
$postData = array(
'metaData' => array('conversationId' => $token,
'namespace' => $GLOBALS['nameSpaceGetResumenRCV'],
'transactionId' => '0'),
'data' => array('rutEmisor' => '12123123',
'dvEmisor' => '7',
'ptributario' => '202010',
'operacion' => 'COMPRA',
'estadoContab' => 'REGISTRO')
);
$data = json_encode($postData);
$context_options = array (
'http' => array (
'method' => 'POST',
'Referer' => 'https://www4.sii.cl/consdcvinternetui/',
'header'=> "Content-type: application/json;charset: utf-8\r\n"
. "Accept: application/json, text/plain, */*\r\n"
. "Cookie:
RUT_NS=12123123;
DV_NS=7;
TOKEN=$token;
CSESSIONID=$token; \n\n",
'content' => $data
)
);
una consulta, finalmente envia el $context_options via post? algo asi?
Eliminarcurl_setopt($ch, CURLOPT_URL, 'https://www4.sii.cl/consdcvinternetui/services/data/facadeService/getResumen');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $context_options);
lo intente pero da error 500, agradecería si me puede guiar, ya hice incio de sesion y obtengo el tocken pero no logro acceder a registro de compra
Hola, ¿alguien sabe el parametro para los otros estados?
ResponderEliminarREGISTRO y PENDIENTE están claros, pero ¿que valor debe ir cuando es "No incluir" o "Reclamados"?
Muchas gracias.
He hecho todo lo que dicen acá y no me funciona, puedn dar alguna pista clara, de como debiera ser, por favor
ResponderEliminarreqString += "{";
EliminarreqString += "\"metaData\":{ ";
reqString += "\"namespace\":\"cl.sii.sdi.lob.diii.consdcv.data.api.interfaces.FacadeService/getDetalleCompraExport\",";
reqString += "\"conversationId\":\"" + conversationId + "\",";
reqString += "\"transactionId\":\"" + transactionId + "\",";
reqString += "\"page\":null";
reqString += "},";
reqString += "\"data\":{ ";
reqString += "\"rutEmisor\":\"" + rutEmisor + "\",";
reqString += "\"dvEmisor\":\"" + dvEmisor + "\",";
reqString += "\"ptributario\":\"" + ptributario + "\",";
reqString += "\"codTipoDoc\":\"" + TipoDte + "\",";
reqString += "\"operacion\":\"COMPRA\",";
reqString += "\"estadoContab\":\"NO_INCLUIR\"";
reqString += "}";
reqString += "}";
Este comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminar//incializar
ResponderEliminarrequire_once '../vendor/autoload.php';
$cookiesAuth = new \GuzzleHttp\Cookie\CookieJar();
$clientAuth = new \GuzzleHttp\Client();
//me autentifico
$aux = $clientAuth->request('GET','https://zeusr.sii.cl/cgi_AUT2000/CAutInicio.cgi', [
'query' => [
'rutcntr' => '11222333-4',
'rut' => '11222333',
'referencia' => 'https://www.sii.cl',
'dv' => '4',
'clave' => 'clave'
],
'cookies' => $cookiesAuth
]);
//obtengo el token
$token=$cookiesAuth->getCookieByName('token');
$pos1 = strpos($token, '=');
$pos1++;
$pos2 = strpos($token, ';');
$token=substr($token,$pos1,($pos2-$pos1));
//este codigo permite seleccionar una empresa para algunas funciones del SII cuando es necesario
$aux = $clientAuth->request('GET','https://www1.sii.cl/cgi-bin/Portal001/mipeSelEmpresa.cgi', [
'query' => [
'RUT_EMP' => '11222333-4'
],
'cookies' => $cookiesAuth
]);
(sigo en el siguiente post)
Eliminar//hago la conuslta al registro de compra y venta (mando como json los paramentros)
$response2 = $clientAuth->request('POST','https://www4.sii.cl/consdcvinternetui/services/data/facadeService/getResumen', [
GuzzleHttp\RequestOptions::JSON => ['metaData' => array(
'conversationId' => $token,
'page'=> null,
'namespace'=> "cl.sii.sdi.lob.diii.consdcv.data.api.interfaces.FacadeService/getResumen",
'transactionId' => '0'),
'data' => array(
'rutEmisor' => '11222333',
'dvEmisor' => '4',
'busquedaInicial'=>true,
'ptributario' => '202109',
'operacion' => 'COMPRA',
'estadoContab' => 'REGISTRO')
],
'cookies' => $cookiesAuth
]);
//muestro el resultado
var_dump($response2->getBody()->getContents());
//FIN
para obtener las otras opciones del registro de compra y venta del SII, deben ir con el modo 'Network' con chrome, para ver las rutas, namespace y parametros
espero que les sirva
Hola,
ResponderEliminarSúper útil.
Logro obtener un token, pero no retorna nada alhacer la consulta de un libro.
Alguna Idea
Hola, abro este hilo nuevamente, yo logre extraer el detalle de las facturas de la función getDetalleCompra, pero en mi caso lo más que tengo son 7 facturas, alguno de ustedes ya probo con descargar más registros? como es la salida del JSON hace una paginación o solo entrega todos los resultados del mes en el JSON?
ResponderEliminarSaludos!
Voy a revisar esto qu eme indica, luego le contesto
EliminarAutenticacion correcta, cuando envio por POST todos los datos incluyendo el JSON {
ResponderEliminar"Metadata":
[
{
"namespace": "cl.sii.sdi.lob.diii.consdcv.data.api.interfaces.FacadeService/getDetalleCompraExpor",
"ConversationID": "BT9Y8HZW8OQZ7",
"transactionId": "0",
"Page": "null"
}
],
"Data":
[
{
"RutEmisor": "76019101",
"dvEmisor": "9",
"ptributario": "202212",
"CodTipDoc": "33",
"operacion": "REGISTRO"
}
]
}
Me sale el error "Unrecognized field "Metadata" (Class cl.sii.sdi.lob.diii.consdcv.data.api.model.request.GetDcvCabeceraRequest)", que me falta?
Error mio, estaba pasando el archivo JSON en vez de la cadena, ahora me da OK a la peticion pero me devuelve un JSON con Usuario o empresa Nulo y nada mas.
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarYa pue bajar la informacion del registro de compras y ventas, gracas Marcelo, el paso siguiente es poder capturar los datos antes de que se pinte la pantalla, ya que te baja una cadena json pero son basicamente un archivo csv que no tiene una informacion escencial la cual es las notas de credito con la referencia a la factura que están rebajando, los muchachos de simpleapi.cl lo hacen en c# utilizando Selenium, si alguien lo ha usado puede dar algunos Tips?
ResponderEliminar