Junio 1st, 2012

Etapas para la generación y envío de DTE al SII

Más de una vez me han preguntado cuales son las etapas que se deben cumplir para realizar un envío de DTE al SII, es algo básico del sistema, pero hay muchas dudas para alguien que recién comienza en esto.
En este post, enumero de manera simple las etapas:
  1. Obtener certificado digital de persona, enrolamiento en el SII y descarga del Set de pruebas
  2. Descarga de CAF (código autorización de folios) en la opción “Solicitud de Timbraje Electrónico” en el sitio de certificación (o de postulantes) del SII
  3. Generar XML de DTE usando el CAF. Si descargaste un CAF que autoriza un tipo DTE 33 (factura electrónica), generas un XML que cumpla con el formato de ese DTE con un folio en el rango correspondiente, luego generas el TED (Timbre electrónico del DTE, firmando digitalmente los datos del TED usando la llave privada del CAF). Finalmente, debes firmar digitalmente todo el DTE usnado el certificado digital de persona
  4. El paso 3) lo puedes repetir tantas veces como tantos DTE quieras generar. Luego, debes armar un XML de EnvioDTE, que corresponde al tipo de XML que el SII espera recibir. Ese EnvioDTE tiene una carátula y un conjunto de DTE que son los que generaste en 3) y se deben agregar al EnvioDTE sin hacer ninguna modificación, ni aplicar indentación ni nada. Luego firmas digitalmente el XML de EnvioDTE con el certificado digital de persona y tendrás un XML listo para enviar al SII.
  5. Enviar al SII. En este paso, puedes hacer el upload usando un browser con la URL: Envío DTE (documentos y libros) si lo quieres automatizar, tendrás que implementar el protocolo de autenticación automática según el manual del SII: Web Service Autenticación Automática con Certificado Digital. En ese caso, debes implementar un cliente de webservice, el cual primero pide una semilla, la recibe, la firma digitalmente y pide al SII un “token” adjuntando la semilla firmada. Con ese token, puede hacer un “upload” a una URL del SII simulando un método POST de HTTP según indica el manual: Envío Automático de Documentos Tributarios Electrónicos Finalmente, debes guardar la respuesta del POST, la cual contiene un elemento llamado “trackid” que corresponde al identificador de tu EnvioDTE en el SII y lo necesitarás para cuando te llegue la respuesta del SII por email y saber a que EnvioDTE corresponde esa respuesta.
  6. El SII recibe tus DTE, los valida y te generará una respuesta por email, al email registrado para recibir las respuesta. También puedes automatizar las consultas de estado del envío y de un DTE en particular, usando los otros webservices disponibles y el trackid que recibiste en 5)
Bueno, espero se haya entendido un poco el proceso

Septiembre 28th, 2011

Como buscar nombre para un hijo(a)

Para los que somos padres, en algún momento tuvimos que pasar por la etapa de decidir el nombre que se le pondría al hijo o hija que viene en camino. Convencí a mi señora que lo óptimo era buscar el nombre cuando se tiene plena certeza del sexo de nuestro bebé y eso fue como al cuarto mes de embarazo.

El procedimiento que seguimos fue el siguiente:

  • Cada uno hace un listado con los nombres que le gustan. En mi caso, decidí recorrer el calendario y anotar los nombres que me gustaban. Mi señora ya tenía sus candidatos.
  • Con los dos conjuntos de nombres, generamos un único conjunto con los nombres que a los dos nos gustaban.
  • Con el listado de nombres que nos gustaban, hicimos una planilla de cálculo compartida entre la futura mamá y el futuro papá (usamos google-docs) y agregamos varias columnas con datos que nos parecían relevantes: Número de conocidos, Resultados Google, Origen, Significado, Ranking Registro Civil y Resultados Facebook.
  • Para el número de conocidos, simplemente totalizamos la cantidad de personas que conocíamos con ese nombre, el nombre menos repetido tendría más probabilidad de ser elegido.
  • Para la columna de “Resultados Google”, simplemente anotamos la cantidad de resultados que nos daba Google al buscar el nombre y apellido paterno entre comillas dobles. Por ejemplo, si nos gustaba el nombre “Belarmino”, en Google buscamos: “Belarmino Urzúa” (incluyendo las comillas, puede agregar site:.cl para que la búsqueda sea solo dentro de páginas .cl). Esto nos indica que tantas coincidencias existen para ese nombre con ese apellido.
  • Las columnas Origen y Significado las llenó mi señora, quien se encargó de buscar en Internet el origen del nombre y el significado asociado.
  • Para la columna del ranking del registro civil, miramos las estadísticas de nombres más comunes, considerando que un peor ranking es mejor, debido a que el nombre está menos usado. El sitio de las estadísticas es: http://www.registrocivil.cl/Servicios/Estadisticas/Archivos/NombresComunes/Nombres_Annos.htm
  • Para la columna de “resultados facebook”, hicimos una búsqueda del nombre más el primer apellido en facebook y anotamos que tan popular era esa combinación.

Creo que el “procedimiento” podría parecer engorroso, pero al final con mi señora quedamos bien conformes, nos vimos obligados a esforzarnos en buscar un nombre que nos gustaba y que no era tan común en nuestros círculos. Además, considerando que algunas clínicas también publican el listado de nombres de los recién nacidos, se podrían agregar más columnas y mejorar la búsqueda.

Finalmente, comento que el proceso fue bien entretenido y si algún día mi hijo me pregunta porque le pusimos ese nombre, lo podemos referir a este artículo ;-)

Septiembre 13th, 2011
Lo que propone Google para “curas católicos”

Lo que propone Google para “curas católicos”

Julio 20th, 2011
En todos lados se cuecen habas

En todos lados se cuecen habas

Julio 18th, 2011
Lo que de verdad sucedió en Stonehenge

Lo que de verdad sucedió en Stonehenge

Julio 1st, 2011
Celina y Aukan :-) 

Celina y Aukan :-) 

Junio 16th, 2011

Cobra Gigante!

(Fuente: youtube.com)

Junio 14th, 2011
Junio 13th, 2011

Imagen de PDF417 en Factura Electrónica

Una de las etapas que se deben enfrentar al implementar un sistema de factura electrónica, es la generación de la representación impresa del XML del DTE. En esta representación impresa, típicamente un PDF, se debe agregar un código de barras bi-dimensional llamado PDF417 que representa al Timbre Electrónico del Documento (TED).

Para generar este timbre, en Java he trabajado con la biblioteca iText que permite generar PDF y en particular PDF417. Si se decide a utilizar esta biblioteca, le recomiendo seguir los siguientes consejos:

  • Genere el objeto PDF417 con las indicaciones que dice el SII para columnas, filas y errores:
BarcodePDF417 pdf417 = new BarcodePDF417();
pdf417.setCodeRows(5);
pdf417.setCodeColumns(18);
pdf417.setErrorLevel(5);
pdf417.setLenCodewords(999);
  • Asegúrese que el timbre se genere de forma binaria y que el texto del TED está en el encoding solicitado por el SII (ISO-8859-1). Asuma que “stringTed” contiene el contenido del TED del DTE.
pdf417.setOptions(BarcodePDF417.PDF417_FORCE_BINARY);
pdf417.setText(stringTed.getBytes("ISO-8859-1"));
  • Genere la imagen y agréguela al documento iText. Asuma que se debe ubicar en las coordenadas (x,y) en el documento Document de iText, con un tamaño de 184 pixeles por 72 pixeles.
com.lowagie.text.Image image = pdf417.getImage();
image.setAbsolutePosition(x, y);
image.scaleAbsolute(184, 72);
documento.add(image);

Con esto, podrían generar sin problemas de encoding ni de lectura los timbres.

Junio 1st, 2011
[Necesitas Flash 10 para ver el vídeo]

Gatos, Damian y su nuevo juguete…