Cómo enviar un DTE o Libro Compra Venta ( IECV ) al SII
Bueno ahora expongo codigo para realizar el envío de un documento electrónico al SII.
Antecedentes necesarios:
Nota: Documento = DTE, IECV, Etc
- Rut del emisor del documento.
- Rut de la empresa que genera el documento.
- Nombre del documento a enviar.
- FullPath del archivo a procesar.
- Token del SII en el ambiente que corresponde.
Librerias necesarias:
using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; using System.Diagnostics; using System.Security.Permissions; using System.Net;
Secuencia de preparacion del documento electrónico a enviar al SII
#region PREPARACION //// //// Prepare los paramentros para utilizarlos //// en el envio del documento. rutEmisor = rutEmisor.Replace("-", string.Empty); rutEmpresa = rutEmpresa.Replace("-", string.Empty); //// //// Recupere el cuerpo y digito verificador de los //// rut involucrados. string pRutEmisor = rutEmisor.Substring(0, (rutEmisor.Length - 1)); string pDigEmisor = rutEmisor.Substring(rutEmisor.Length - 1); string pRutEmpresa = rutEmpresa.Substring(0, (rutEmpresa.Length - 1)); string pDigEmpresa = rutEmpresa.Substring(rutEmpresa.Length - 1); //// //// Cree el header del request a enviar al SII //// segun la información solicitada del SII secuencia.Append("--7d23e2a11301c4\r\n"); secuencia.Append("Content-Disposition: form-data; name=\"rutSender\"\r\n"); secuencia.Append("\r\n"); secuencia.Append(pRutEmisor + "\r\n"); secuencia.Append("--7d23e2a11301c4\r\n"); secuencia.Append("Content-Disposition: form-data; name=\"dvSender\"\r\n"); secuencia.Append("\r\n"); secuencia.Append(pDigEmisor + "\r\n"); secuencia.Append("--7d23e2a11301c4\r\n"); secuencia.Append("Content-Disposition: form-data; name=\"rutCompany\"\r\n"); secuencia.Append("\r\n"); secuencia.Append(pRutEmpresa + "\r\n"); secuencia.Append("--7d23e2a11301c4\r\n"); secuencia.Append("Content-Disposition: form-data; name=\"dvCompany\"\r\n"); secuencia.Append("\r\n"); secuencia.Append(pDigEmpresa + "\r\n"); secuencia.Append("--7d23e2a11301c4\r\n"); secuencia.Append("Content-Disposition: form-data; name=\"archivo\"; filename=\"" + nombreArchivo + "\"\r\n"); secuencia.Append("Content-Type: text/xml\r\n"); secuencia.Append("\r\n"); //// //// Lea el documento xml que se va a enviar al SII XDocument xdocument = XDocument.Load(uri, LoadOptions.PreserveWhitespace); //// //// Cargue el documento en el objeto secuencia secuencia.Append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\r"); secuencia.Append(xdocument.ToString(SaveOptions.DisableFormatting)); secuencia.Append("\r\n"); #endregion
Ahora es necesario configurar el Request que sera enviado al SII
//// //// Aqui se configura el request que hace la solicitud al SII #region CONFIGURACION DE REQUEST //// //// Defina que ambiente utilizar. //// Certificacion "https://maullin.sii.cl/cgi_dte/UPL/DTEUpload"; string pUrl = "https://maullin.sii.cl/cgi_dte/UPL/DTEUpload"; //// //// Cree los parametros del header. //// Token debe ser el valor asignado por el SII string pMethod = "POST"; string pAccept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,application/vnd.ms-powerpoint, application/ms-excel,application/msword, */*"; string pReferer = "www.hefestosDte.cl"; string pToken = "TOKEN={0}"; //// //// Cree un nuevo request para iniciar el proceso HttpWebRequest request = (HttpWebRequest)WebRequest.Create(pUrl); request.Method = pMethod; request.Accept = pAccept; request.Referer = pReferer; //// //// Agregar el content-type request.ContentType = "multipart/form-data: boundary=7d23e2a11301c4"; request.ContentLength = secuencia.Length; //// //// Defina manualmente los headers del request request.Headers.Add("Accept-Language", "es-cl"); request.Headers.Add("Accept-Encoding", "gzip, deflate"); request.Headers.Add("Cache-Control", "no-cache"); request.Headers.Add("Cookie", string.Format(pToken, token)); //// //// Defina el user agent request.UserAgent = "Mozilla/4.0 (compatible; PROG 1.0; Windows NT 5.0; YComp 5.0.2.4)"; request.KeepAlive = true; #endregion //// //// Escritura del request #region ESCRIBE LA DATA NECESARIA //// //// Recupere el streamwriter para escribir la secuencia try { using (StreamWriter sw = new StreamWriter(request.GetRequestStream())) { sw.Write(secuencia.ToString()); } } catch (Exception ex) { //// //// Error en el metodo //// Error del formato del envio } #endregion
Ahora puede realizar el envío al SII utilizando esta rutina
//// //// Enviar libro/dte y solicitar la respuesta del SII #region ENVIA Y SOLICITA RESPUESTA try { //// //// Defina donde depositar el resultado string respuestaSii = string.Empty; //// //// Recupere la respuesta del sii using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { using (StreamReader sr = new StreamReader(response.GetResponseStream())) { respuestaSii = sr.ReadToEnd().Trim(); } } //// //// Hay respuesta? if (string.IsNullOrEmpty(respuestaSii)) throw new ArgumentNullException("Respuesta del SII es null"); //// //// Interprete la respuesta del SII. //// respuestaSii contiene la respuesta del SII acerca del envio en formato XML } catch (Exception ex) { //// //// Error en el metodo //// No fue posible enviar o recepcionar la respuesta del SII } #endregion
Bueno sé que el ejemplo es muy simpe pero sé que les servirá, pronto agregaré los comentarios para hacerlo mas comprensible.
Hola.
ResponderEliminarahora estoy en esta parte..(ya me fue bien con lo demas)
te comento, cuando trato de hacer esto:
//// Recupere el streamwriter para escribir la secuencia
try
{
using (StreamWriter sw = new StreamWriter(request.GetRequestStream()))
{
sw.Write(secuencia.ToString());
}
Me da este error:
Anulada la solicitud: La solicitud fue cancelada.
alguna idea??
gracia
Revisa los caracteres de tu documento, este problema se presenta cuando uno o varios caracteres de tu documento xml no se encuentran dentro del set e caraceteres ISO-8859-1. Tambien puede ser que el documento xml diga que es ISO-8859-1, pero en realidad su formato es UTF-8.
EliminarEn todo caso revisa los caracteres, eso debería solucionar el problema
solucionado...
ResponderEliminaragrego linea para forzar el encodig.
using (StreamWriter sw = new StreamWriter(request.GetRequestStream(), Encoding.GetEncoding("ISO-8859-1")))
jaja..ahora ... llego al sii, pero me da error 7. como que mi archivo llega incompleto-
ResponderEliminarBuena solucion péro recuerda que aunque le indiques que el tipo de encoding es iso, esto no asegura que pueda transformar todos los caracteres. Ojo con eso.
Eliminarrevisa esta página
http://lenguajedemaquinas.blogspot.com/2013/04/codificacion-correcta-de-dte-y-iecv-en.html
ya manejo el tema de los caracteres, pero creo que es otra cosa.
Eliminar7
Linea:106 XML document structures must start and end within the same entity.
hola logancl, me gustaría saber si solucionaste el problema y como lo solucionaste.
EliminarDe acuerdo a lo que fue mi experiencia, dejé de obtener ese error al quitar el \r\n salto de linea al final del stream.
Eliminaren la doc. del sii dice que me hace dudar (abajo lo pego).. mi firma queda como dice que no debe quedar...se puede hacer algo para que quedecon maximo de 76car?
ResponderEliminarRespecto a los campos del tipo Base64, esto es la firma y datos del Certificado (X509 Certificate), de
acuerdo al estándar estas líneas deben tener un máximo de 76 caracteres, debiendo insertarse saltos de
línea según corresponda.
Base64 con formato correcto Base64 incorrecto
MIIEgjCC...AkGA1UEBhMC
Q0wxHTA...QQHFAhTYW50
AWFnbzE...MBIGA1UEChQ
ZXJ0Awz...pY2Fkb3JhMRcw
MIIEgj....Rcw
Tienes razon en este tema, pero hace mucho que envio los documentos xml al SII utilizando este forma y no me da error, de todas formas puede cortarlos como me comentas y no debería darte problemas.
EliminarTambién tengo problema en la carga de archivos, siempre trato de subir el archivo a través de solicitud rechazada. Sin embargo, en otro caso, trate de cargar el archivo a través de la página web manualmente `se aceptados. por favor explique por qué esto sucede
ResponderEliminareso lo solucione con maquillando un poco esta linea
Eliminarusing (StreamWriter sw = new StreamWriter(request.GetRequestStream(), Encoding.GetEncoding("ISO-8859-1")))
le agregue el encoding ya que (aunque tuve el cuidado con lo caracteres especiales como comenta marcelo) igual por defecto tenia UTF8, lo cual me daba el error que comentas
ahora al subir el dte. me da esto..
ResponderEliminarSTATUS = 7
Linea:106 XML document structures must start and end within the same entity.
En qué significa esto?
EliminarSTATUS = 7
-
Linea:2 The processing instruction target matching "[xX][mM][lL]" is not allowed.
Bueno estaba leyendo el valor del status 7 y me dice el SII que es de tipo error de schema. No tiene que ver con el envío si no mas bien con la forma del documento xml que estan enviando. Alguien podría enviarme el xml para validarlo contra el schema del SII, de esta forma podré responderles. Gracias
Eliminarlo raro es que sobo el mismo xml envio manualmente y sube ok.
Eliminara mi me tinca que es algo aqui:
XDocument xdocument = XDocument.Load(uri, LoadOptions.PreserveWhitespace);
////
//// Cargue el documento en el objeto secuencia
secuencia.Append("\r");
secuencia.Append(xdocument.ToString(SaveOptions.DisableFormatting));
secuencia.Append("\r\n");
hola, me gustaría saber si solucionaste el problema y como lo solucionaste. gracias
EliminarComprobar tanto la estructura favor, ¿es correcto. Primero Struch es de esta página https://maullin.sii.cl/cgi_dte/UPL/DTEauth?3.
ResponderEliminarINPUT TYPE="hidden" NAME="rutQuery" SIZE=8 MAXLENGTH=8 value="12256104"
INPUT TYPE="hidden" NAME="dvQuery" SIZE=1 MAXLENGTH=1 value="6"
Rut Empresa
INPUT TYPE="text" NAME="rutCompany" SIZE=8 MAXLENGTH=8> -
INPUT TYPE="text" NAME="dvCompany" SIZE=1 MAXLENGTH=1>
___________________________________________________________________
secuencia.Append ( "- 7d23e2a11301c4 \ r \ n" );
secuencia.Append ( "Content-Disposition: form-data; name = \" rutSender \ "\ r \ n" );
secuencia.Append ( "\ r \ n" );
secuencia.Append (pRutEmisor + "\ r \ n" );
secuencia.Append ( "- 7d23e2a11301c4 \ r \ n" );
secuencia.Append ( "Content-Disposition: form-data; name = \" dvSender \ "\ r \ n" );
secuencia.Append ( "\ r \ n" );
secuencia.Append (pDigEmisor + "\ r \ n" );
secuencia.Append ( "- 7d23e2a11301c4 \ r \ n" );
secuencia.Append ( "Content-Disposition: form-data; name = \" rutCompany \ "\ r \ n" );
secuencia.Append ( "\ r \ n" );
secuencia.Append (pRutEmpresa + "\ r \ n" );
secuencia.Append ( "- 7d23e2a11301c4 \ r \ n" );
secuencia.Append ( "Content-Disposition: form-data; name = \" dvCompany \ "\ r \ n" );
secuencia.Append ( "\ r \ n" );
secuencia.Append (pDigEmpresa + "\ r \ n" );
secuencia.Append ( "- 7d23e2a11301c4 \ r \ n" );
secuencia.Append ( "Content-Disposition: form-data; name = \" archive \ "filename = \" " + nombreArchivo + "\" \ r \ n " );
secuencia.Append ( "Content-Type: text / xml \ r \ n" );
secuencia.Append ( "\ r \ n" );
Segun las especificaciones que me enviaste a esto deberias llegar:
Eliminarsecuencia.Append( "- 7d23e2a11301c4 \ r \ n" );
secuencia.Append( "Content-Disposition: form-data; name=\"rutSender\"\r\n");
secuencia.Append( "\ r \ n" );
secuencia.Append(rutQuery + "\ r \ n" );
secuencia.Append( "- 7d23e2a11301c4 \ r \ n" );
secuencia.Append( "Content-Disposition: form-data; name=\"dvSender\"\r\n");
secuencia.Append( "\ r \ n" );
secuencia.Append(dvQuery + "\ r \ n" );
secuencia.Append( "- 7d23e2a11301c4 \ r \ n" );
secuencia.Append( "Content-Disposition: form-data; name=\"rutCompany\"\r\n" );
secuencia.Append( "\ r \ n" );
secuencia.Append(rutCompany + "\ r \ n" );
secuencia.Append( "- 7d23e2a11301c4 \ r \ n" );
secuencia.Append( "Content-Disposition: form-data; name=\" dvCompany\"\r\n" );
secuencia.Append( "\ r \ n" );
secuencia.Append(dvCompany + "\ r \ n" );
secuencia.Append( "- 7d23e2a11301c4 \ r \ n" );
secuencia.Append( "Content-Disposition: form-data; name=\" archive\"filename=\""+nombreArchivo+"\"\r\n");
secuencia.Append( "Content-Type: text / xml \ r \ n" );
secuencia.Append( "\ r \ n" );
Estimado al hacer el envió del DTE el SII me devuelve el status 7 con el siguiente error:
ResponderEliminarSCH-00001: Invalid Schema Name
alguna idea de que se puede tratar y en donde se puede localizar el error?
te agradecería tu ayuda
Este comentario ha sido eliminado por el autor.
Eliminaragrega esto despues de que se agrega el enviodte a la secuencia:
Eliminarsecuencia.Append("--7d23e2a11301c4--\r\n");
asi:
secuencia.Append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\r"); secuencia.Append(xdocument.ToString(SaveOptions.DisableFormatting));
secuencia.Append("--7d23e2a11301c4--\r\n");
Macelo;
ResponderEliminarGracias por tu aporte y la entrega del material entregado en tu BLOG, ya que no existe mucha ayuda para este tema o bien la que existe no es tan
Dinámica o tan exacta como la entrega de material encontrada en LA WEB , gracias a tu BLOG pude terminar mi proceso de facturación automático, no me queda más que felicitarte y desearte toda la suerte en tus futuros proyectos.
Saludos y felicitaciones
Marcelo;
ResponderEliminarAl realizar el envío me devuelve esto:
0-0
0-0
0 0
5
Según este status no estoy "autenticado", pero lo curioso que no devuelve los valores enviados, y estoy enviando el token recién obtenido.
Francisca
EliminarFavor enviar el documento xml a mi correo para revisarlo
Gracias
Hola, no se si mi comentario anterior se envió o no. Gracias por toda esta información, es súmamente útil.
EliminarEstot en la misma situación de Francisca. Hubo alguna solución a su problema? Sospecho que tengo el mismo problema.
Saludos.
Este comentario ha sido eliminado por el autor.
ResponderEliminarHola, tengo una duda.
ResponderEliminarQue rut se le coloca en la caratula del EnvioDTE, porque coloco el rut del receptor y me los rechaza (por error de caratula).
Gracias por tu tiempo y Saludos!
Encontraste la solución?
EliminarSerá problema del ambiente de certificacion?
En mi caso obtengo:
"RUT Receptor (Caratula) Invalido - [77818XXX-6]"
Por si acaso, para resguardar la info, aca lo publique con XXX.
Saludos,
¡Hola! En el ambiente de certificación el RUT que debes ingresar en la caratula es el del SII: 60803000-K
EliminarSiendo más claros, en la carátula va el rut del SII en todos los envíos al SII(ya sea certificación o producción). Y el rut del otro contribuyente en los envíos al otro contribuyente.
EliminarDisculpa, como sabes que es de esa forma para ambos ambientes, esta en la documentacion?. Yo tenia entendido que solo era en el ambiente de certificacion
Eliminareso mismo tenía entendido yo, ya que nunca me lo habían explicado como lo acabo de explicar(lo harán a drede? xd), pero ya tengo instalaciones en producción y es como te digo.
EliminarComo podría enviar el archivo en PHP? ya tengo el token, solo me falta poder subir el archivo :S
ResponderEliminarEn php debes utilizar curl con la funcion curlfile subes el xml a enviar.
Eliminarestoy subiendo tips para php en sitio www.factronica.cl/foros
Marcelo, estoy utilizando tus rutinas para enviar DTE, en VB.NET y estoy teniendo status 7 (SCH-00001 INVALID SCHEMA NAME), por mas que reviso xml y envio todo esta OK.- que podre hacer para encontrar que esta "invalido".
ResponderEliminarDe antemano, gracias
Ricardo
Yo estoy en la misma, hago todo bien tengo en famoso archivo en XML y nada cuando lo envío me sale (SCH-0001 Invalid Schema Name.
ResponderEliminarPor favor necesito una ayudita ya que tengo que enviar mis Libros contables y no puedo enviarlos por el famoso Schema
Saludos
Miriam Gaus
Miriam Gaus
Estimado.
ResponderEliminarTengo una duda, en el primer código me pide 2 parámetros nombreArchivo y uri, los cuales no comprendo que son o para que sirven.
saludos
Calos.
Este comentario ha sido eliminado por el autor.
ResponderEliminarHola, tengo una consulta, si alguien me puede ayudar. Implemente el código más las modificaciones que sugieren algunos usuarios. Puedo realizar el envío, me entrega el TRACKID, pero cuando verifico el estado me sale error de caratula:
ResponderEliminar(CRT-3-18) RUT Receptor (Caratula) Invalido - [XX919071-K]
(CRT-3-15) RUT Envía Diferente al registrado en Upload - [XX68530-k] <> [XX68530-K]
No importa las modificaciones que haga en el código o al XML siempre me da lo mismo.
Creo yo que puede ser como está declarada la variable "secuencia" ya que lo hice según yo creía que debería ser.
No sé si quienes pudieron implementar el código me puedan indicar las líneas de código de la declaración y/o comentar que hicieron para realizar la implementación. Gracias de antemano.
Este comentario ha sido eliminado por el autor.
Eliminaren la caratula en la parte del RutReceptor debes usar el Rut del SII, espero que te funcione.
Eliminar60803000-K
Carlos
Gracias por el dato, ahora solo me queda:
EliminarRUT Envia Diferente al registrado en Upload - [XX68530-k] <> [XX68530-K]
No se porque me cambia la "K" a minuscula en el envio.
He revisado el procedimiento y el codigo "n" veces y no logro dar con el problema
que extraño con un cliente nuevo me pasó lo mismo que a ti (rut envia diferente...) y eso que ya me ha tocado antes ruts de representantes legales con una k. Las manejo siempre con K mayúscula, y no me dio el error en certificación sino recién en producción que tontera más grande, sería bueno publicar aquí cualquiera solución luego.
Eliminaral igual que uds, manejo varios clientes con rut con letra K pero es primera vez que me sale este mismo problema, ya que el sii registra el rut del sender como k minus, tambien busco como solucionar el problema, incluso cambiando el certificado no lo corrige
EliminarEstimados, alguien que tenga información acerca de este error, del cual no he podido salir ... (DTE-3-505) Firma DTE Incorrecta (Rechaza DTE)
ResponderEliminarComo haces el envio, en forma automatica o lo cargas a traves del portal del SII
EliminarLo estoy haciendo de las 2 formas y me da el mismo error...
EliminarEste comentario ha sido eliminado por el autor.
EliminarAlguien tiene alguna ayuda con respecto a este tema ....
EliminarEs bastante simple , no has firmado correctamente el dte o el envio.
Eliminaren administracion de la empresa se da de alta el rut que puede enviar dtes y cuando firmas en envio debe ser con uno de esos rut ,, sino esta registrado el rut del envio en impuestos internos arroja ese error .. esa es la respuesta
EliminarEstimado Mario, como te fue con el problema?
ResponderEliminar(CRT-3-15) RUT Envía Diferente al registrado en Upload - [XX68530-k] <> [XX68530-K]
Me pasa lo mismo y no he podido resolverlo. GRACIAS
Hola Alex, la verdad es que lo deje de lado, ocupamos el certificado digital de otro usuario que no termina en K su rut.
ResponderEliminarSi lo llegas a resolver me comentas. Si te puedo ayudar en otra cosa me dices.
Estimados necesito ayuda urgente subo el libro de compras al sii y me da un error que dice SCH-00001 Invalid Shema Name,me dicen que debe tener algun caracter invalido pero lo e revisado muchas veces y nada ayuda plis.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarbuenas en este momento me encuentro en esta etapa de desarrollo y me devuelve el 1 que corresponde a "El Sender no tiene permiso para enviar " , genero todo con el certificado digital y según la información del ambiente de certificación si tengo los permisos de envio, alguna idea de que puede ser o como otorgar los permisos para el envio?
ResponderEliminarPara php easyinvoice.cl
ResponderEliminarRe revisado todas las repuesta sobre la solución del mensaje ERROR SCH-00001, el cual aún, no tengo solución ya que, las que habían fueron eliminadas por el autor, por favor si alguien puede darme una respuesta para solucionar el envío Libro Compra XML al Sii.
ResponderEliminarHola amigos, para otros lenguajes como PowerBuilder, Delphi, FoxPro, etc. tenemos una DLL que les puede ahorrar horas de trabajo en http://facturaelectronicachile.com/
ResponderEliminarsaludos
Estimado al subir un archivo me entrega la siguiente respuesta;
ResponderEliminar128xxxxx-0
0-0
EnvioSet.xml
0 0
6
No he podido resolverlo.
No se que hago mal.
Estimado es posible que tu certificado no este inscrito en el SII. Favor comprobar que tienes permisos suficientes en el SII
EliminarEstimado el certificado esta correcto, ya que lo utilizo en varias empresas, de hecho subo el dte en la pagina del servicio y sube sin problemas.
EliminarPor favor su ayuda.
Hola, alguna solución para el siguiente error
ResponderEliminarSCH-00001: Invalid Schema Name
He copiado el mismo del ejemplo y no logro dar con el famoso schema name
tengo el mismo error SCH-00001: Invalid Schema Name, favor alguna repuesta
ResponderEliminarHola lo resolvio?¿
EliminarFavor cambiar la instruccion de procesamiento donde dice iso-8859-1 a ISO-8859-1
ResponderEliminary probar
Hola:
ResponderEliminarNecesito enviar en el libro de ventas los totales de los rollos boletas registradora (codigo 36); pero el Schema
no me lo valida, no se encuentra este codigo.
Como envio esta información o
existira un schame mas actualizado con este codigo en el sii.
Gracias.
Estimado,
EliminarNo podría contestarte ahora, pero si me envías el libro lo puedo comprobar.
Hola Marcelo,
ResponderEliminarTe escribe Cesar, estoy recien conociendo este tema de conversión a XML, mi problema es que no puedo enviar los libros porque me da el siguiente error:
SCH-00001: Invalid Schema Name
y no se que puede ser, si me pudieras ayudar, te lo agradecería mucho.
Saludos.
¿A que se puede deber que la respuesta del SII venga de esta forma?
ResponderEliminar0-0
0-0
0 0
5
Solucionado, era problema del Header que estaba creando
EliminarHola Marcelo Rojas
ResponderEliminarPrimero felicitarte por compartir con nosotros, los nuevos desarrolladores en facturación electrónica, estos tips de confección, creación y posterior envío de los DTE al SII.
En estos momentos me encuentro con el siguiente inconveniente en el upload con el servicio:
CHR-00001: Invalid Character Set
¿Que podrá ser específicamente?
Buenas, aunque es vieja la publicacion puede que a alguien le sea de ayuda. Tenia el mismo error y se soluciono cambiando el encoding="iso-8859-1" el nombre iso lo pasamos a mayuscula y nos dejo de dar el error de set: encoding="ISO-8859-1"
EliminarSaludos.
Hola! no has encontrado el problema? yo tengo el mismo error cuando lo envío manual y cuando lo hago automático recibo el error Error en Schema - [0] LPX-00230: invalid character 0 (U+0000) found in a Name or Nmtoken
ResponderEliminarAlguna ayuda?
Favor enviar el archivo para revisarlo
EliminarAtte.
Marcelo Rojas Rojas
Este comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarestimados, alguien sabe de que se trata este error CHR-00004: no se encontro envio(XML)
ResponderEliminarme retorna el STATUS = 7
estimados, ayuda, alguien sabe de que se trata este error CHR-00004: no se encontro envio(XML)
ResponderEliminarme retorna el STATUS = 7
como poder solucionarlo?...
Marcelo:
ResponderEliminarsi puedes ayudarme, te lo agradeceré:
en ocasiones el envió automático me da el error: CHR-00004: no se encontro envio(XML) me retorna el STATUS = 7
pero luego de ese error me indica:
lo extraño es que el RUTCOMPANY siempre me lo entrega en 0-0, alguna idea, tanto para los errores y el dato RUT?
RECEPCIONDTE
RUTSENDER 8579185-0 RUTSENDER
RUTCOMPANY 0-0 RUTCOMPANY
FILE EnvioDTE-F34106.xml FILE
TIMESTAMP 0 0 TIMESTAMP
STATUS 99 STATUS
DETAIL
ERROR Archivo ya fue enviado 114 veces con Trackid 61336810. Debe esperar 900 segundos antes de reintentar ERROR
gracias...
Pablo...
parece que nadie tiene información de este error: CHR-00004: no se encontro envio(XML) me retorna el STATUS = 7y el servicio de impuestos no ayuda técnicamente...
ResponderEliminarEstimado
EliminarEs muy probable que el documento xml que intentas subir al sii tenga un caracter especial. Cuando existe un caracter especial que no este bien escapado corta el documento xml y este queda como incompleto. Verifica esta información
hola Marcelo..
Eliminarhe revisado el XML con muchos software para detectar caracteres especiales y ninguno me indica su existencia.
originalmente lo generaba con S.O. Linux y ahora con Windows, pero nada.
hice test case manuales, creando el XML manual desde un editor de XML y el mismo resultado.
Marcelo, puedo enviarte el XML?
Eliminarsaludos..
Cuando construyas el archivo rfc verifica que este este en ISO-8859-1 para que no tengas problemas. Mandame el XML
Eliminarabaddon.1974@gmail.com
Habéis podido resolver el error. A mi me da el mismo no hay caracteres raros tampoco...
EliminarA mi también me salía el error: "CHR-00004: no se encontro envio(XML)". Me pasó porque estaba usando un RUT emisor inválido (en la caratula y en el DTE). Lo corregí y funcionó.
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarLo conseguí!.Al menos no ha dado error al subirlo.
ResponderEliminarHe pasado por todos los errores...
Me faltaba agregar el EnvioDTE , SETDTE y firmar el SET.
Marcelo muchisimas gracias por todo sin tu blog habría sido imposible.Si aceptas un pequeño consejo podrías poner en las instrucciones un ejemplo de XML totalmente preparado para su envío porque no he visto por ningún lado en el blog que tuviera que añadir esto.
Un saludo y muchísimas gracias de nuevo.
Hola José ...como pudiste resolver el error
EliminarCHR-00004 saludos
Marcelo:
ResponderEliminarconsulta, hay datos adicionales de un documento que no están en el schema de los DTE's, por ser monto escrito, numero de cliente, o datos propios (numero interno, leyendas que quisiera incorporar en el PDF, Etc), y me indican que esos datos deben ser enviados al SII en el envió del DTE. que consideraciones hay que tener para no invalidar el DTE?
gracias...
saludos...
Estimado Pablo,
ResponderEliminarEn realidad si estas interesado en colocar mas datos a tu documento pdf, no es necesario enviar esa cantidad de información al SII. Si son datos fijos puedes fijarlos en la plantilla que transforma a Pdf, sin son datos variables como graficos, listas, etc. Puedes sacar una copia del documento xml y agregarle esos datos en un nuevo nodo como datos adicionales. Luego envías ese xml para que lo transforme a pdf utilizando toda la información. El detalle esta en no realizar cambios en el nodo TED para que la impresión del mismo no te de errores.
Espero que la información te ayude.
Este comentario ha sido eliminado por el autor.
ResponderEliminarAl realizar el EnvioDTE lo hace perfecto pero a la hora de subir el set de prueba me establece el estado "Enviado con errores o reparos".¿Donde puedo ver esos errores?
ResponderEliminarEstimado,
EliminarLos errores del proceso son enviados vía email al email que Ud. Define en el SII. Estos emails tienen el detalle de por que no puede realizar el avance en el proceso en el SII.
Muchísimas gracias por algún motivo no me llegaban los correos
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminar¿Como se puede agregar un DTE al SetDTE?.Al agregar el nodo al nodo matriz "SETDTE" pierde la codificación e invalida la firma.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarSi a alguien le sirve:
ResponderEliminarA lo mejor ha sido solo en mi caso.
Al enviarlo, se envía correctamente pero luego me envían un correo con el siguiente error
(ENV-3-0) Error en Schema - [0] LPX-00231: invalid character 47 ('/') found in a Name or Nmtoken
Solución:
Quitar el \r de la codificación
asi:
secuencia.Append("");
Esto me estaba generando un salto de linea y por lo tanto el rechazo del EnvioDTE.
Un saludo y de nuevo muchísimas gracias por todo Marcelo.
Hola. sabes que tengo el mismo error y no logro solucionarlo. podrías comunicarte.. gracias
EliminarAgrega esto al final de secuencia
Eliminarsecuencia.Append("--7d23e2a11301c4--\r\n");
deberia quedar asi:
secuencia.Append("");
secuencia.Append(xdocument.ToString(SaveOptions.DisableFormatting));
secuencia.Append("\r\n");
perdon asi, deberia quedar:
Eliminarsecuencia.Append("");
secuencia.Append(xdocument.ToString(SaveOptions.DisableFormatting));
secuencia.Append("\r\n");
secuencia.Append("--7d23e2a11301c4--\r\n");
secuencia.Append("");
Eliminarsecuencia.Append(xdocument.ToString(SaveOptions.DisableFormatting));
secuencia.Append("\r\n");
secuencia.Append("--7d23e2a11301c4--\r\n");
Esta instrucción me resolvió el problema del arhivo truncado cuando revisaba el estado del envio en el SII. Gracias Marcelo y a todos los que aportan... :)
Tengo el software ok ejecutándose en un Windows Server 2003. Pero al cambiar a un Windows Server 2008 R2 me da el error
ResponderEliminar"HTTP/1.1 400 Bad Request Date: Thu, 15 Mar 2018 13:48:28 GMT Server: version 1.1 version 1.2 Apache Content-Length: 9 Connection: close Content-Type: text/html; charset=iso-8859-1 Error 400"
Estoy usando TcpClient y no HttpWebRequest ya que tengo un Servicio Windows.
¿alguien que me pueda ayudar?
Dejare esto por aqui por si alguien lo quiere http://www.bitingenieria.com.ar/
ResponderEliminarHola, tengo el mismo problema con la iso-8859-1, me da error, pero lo cambio a mano a mayúscula dejando ISO-8859-1 y se soluciona el problema, el SII me lo recibe bien... ahora mi problema es, cómo lo cambio a mayuscula en .net
ResponderEliminarutilizo esta instrucción
Dim objStreamWriter As New StreamWriter(filename, False, System.Text.Encoding.GetEncoding("ISO-8859-1"))
Pero aún así lo cambia a minúscula...
Su ayuda por favor.
Hola Marcelo:
ResponderEliminartengo dos consultas...
1.- como empresa estamos autorizados como emisores de documentos electrónicos, pero no tengo la alternativa a solicitar folios CAF para boletas de ventas. ¿Cómo activo esta opción?
2.- tengo todo desarrollado para la generación de boletas electrónicas de venta, pero no se de donde obtener el SCHEMA para validar la boleta(39 y 41), el SII solo tiene EnvioBOLETA_v11.xsd.
saludos y gracias...
Estimado,
EliminarPara poder obtener folios de boletas y de esa forma iniciar tus procesos de boletas electrónicas, debes realizar el proceso de certificación de boletas electrónicas. debes realizar el set del SII para boletas electrónicas y en ese momento te darán folios de certificación. Luego cuando pases la certificación de boletas podrás empezar a trabajar en producción con las boletas.
En el caso de el schema puedes escribirme a mi email abaddon.1974@gmail.com y te mando el schema que utilizo para las boletas.
Atte.
Marcelo Rojas Rojas
997800285
Hola Marcelo:
Eliminarahora tengo el siguiente inconveniente al generar el libro de boletas:
1.- estoy utilizando el schema LibroBOLETA_v10.xsd
2.- al firmar, me acepta la firma pero el XML esta invalido indicando
VALIDATING ERROR #1 :FILE 'LibroBoletas23-01-2019.xml', LINE 1: Element '{http://www.sii.cl/SiiDte}LibroBoleta': No matching global declaration available for the validation root.
alguna sugerencia?
gracias..
saludos...
Puedes enviarme el xml para revisarlo.
EliminarAbaddon.1974@gmail.com
estimado, agradeceria si me ayuda, llevo un tiempo trabajando on dte con un servidor que sigue con php5 y funciona sin problemas, pero habilite un servidor nuevo 5.6 el cual da este error cuando realizo los envios
ResponderEliminar12343213-3
0-0
2019-01-30 15:33:20
7
CHR-00004: no se encontro envio(XML)
probe realizando el envio del mismo archivo ya timbrado en el servidor antiguo y funciona correctamente.
he realizado varios cambios pero no logro hacer que funcione.
este es el fuente que envia (verifique y todas las variables tienen datos):
$data = [
'rutSender' => $this->rutEnvia[0],
'dvSender' => $this->rutEnvia[1],
'rutCompany' => $this->rutEmpresa[0],
'dvCompany' => $this->rutEmpresa[1],
'archivo' => $this-> curl_file_create(
$this->fileXML,
'application/xml',
basename($this->fileXML)
),
];
$curl = curl_init();
if($this->METHOD=="POST"):
curl_setopt($curl, CURLOPT_POST, true);
endif;
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_HTTPHEADER, $this->headers);
curl_setopt($curl, CURLOPT_URL, $this->URL);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
for ($i=0; $i<$retry; $i++) {
$response .= curl_exec($curl);
$this->RESPONSE = $response;
if ($response and $response!='Error 500')
break;
}
de antemano muchas gracias.
verifica que el Rut del receptor del archivo que envías sea el del SII (60803000-K)
EliminarCómo se solucina? SCH-00001: Invalid Schema Name
ResponderEliminarMarcelo:
ResponderEliminarexiste forma de obtener folios CAF automatizadamente? algún webservices del SII o que paso se deben tener en cuenta?
algo similar a la publicación de un DTE?
gracias...
Pablo
Hola Estimado:
ResponderEliminarAl momento de enviar el DTE me aparece el siguiente error:
"anulada la solicitud: la solicitud fue cancelada".-
Alguna idea de lo que piede ser?
Saludos.-
Estimados:
ResponderEliminarestoy en etapa de certificación de una empresa y el SII me informa:
error técnico timbre electrónico y firma en CAF invalido.
el CAF que me entrega el SII, la razón social esta con acentos y eñes, pero al querer leer el CAF como XML me da error. Yo reemplazo los acentos y eñes, pero creo que eso invalida el CAF.
al alguna solución?
como antecedente: otras empresas están correctamente certificadas.
gracias..
Saludos...
A los interesados: Link del Grupo Facturación Electrónica SII Chile en WhatsApp:
ResponderEliminarhttps://chat.whatsapp.com/JFFDnn6Eo7DG7dvWR1Rj3m
Hola, al enviar un AEC para ceder una factura estoy recibiendo STATUS = 1, "El Sender no tiene permiso para enviar", a que se podrá deber? El certificado es válido y se prueba directamente en el Sii y si permite ceder. Alguna idea?
ResponderEliminarHola, tengo el mismo error. Lo pudiste solucionar..?
EliminarHI, What does CHR-00001 i cant find anything in the XML that can produce this. any idea what are not allowed characters?
ResponderEliminarSend me the xml file please, email abaddon.1974@gmail.com
EliminarPor si a alguien le sirve, pase horas con el:
ResponderEliminarerror SCH-00001: Invalid Schema Name
fue por que estaba enviando un set de pruebas al servidor de produccion!!! XD XD , compare todo con un set de envio funcional:/firmas/timbre/secuencia de envio/etc.. y estaba bien, hice el envio a traves de la pagina de SII y el archivo estaba ok;
cuando depure mi software me di cuenta que estaba mal configurada la url de envio. Cuando corregi de "palena" a "maullin" todo OK.
espero a alguien le sirva ;)