Flujo Básico Módulo Recepción DTE
Una de las cosas que solicita el SII para la implementación del sistema de Facturación Electrónica, es poner en funcionamiento el modulo de Recepción DTE, Este tiene como misión recuperar los documentos XML que los emisores electrónicos nos envían para realizar su facturación.
El siguiente es un modelo básico de Recepción de los documentos XML:
Servidor Correo Pop
En este ejemplo utilizo una cuenta de correo de gmail
denominada hefesto.fe.valida.dte la
cual me permite almacenar los emails de los clientes que me envían sus
documentos XML DTE. Puede en todo caso
ser una cuenta de correo de empresa con su propio servidor de correo, lo
importante aquí no es la tecnología sino mas bien el sentido que esta toma para
el proceso de facturación electrónica.
Servidor de recepción DTE
El servidor de recepción DTE tiene como misión recepcionar
los documentos XML enviados por los emisores electrónicos. Dicho esto, debe
realizar la descarga de los emails enviados a nuestra casilla y verificar que
los documentos recepcionados sean
documentos XML exigidos por el SII en forma y fondo. Para esto se debe realizar
una validación de los documentos XML que fueron enviados y posterior a esto
determinar si es posible agregarlos a nuestro sistema, o bien regresarlo al
emisor del documento rechazando el envío.
Recuperación de emails de la casilla
Antes que nada es necesario recuperar los emails de nuestra
casilla de correo, esto es debido a que el SII indica que los receptores de
documentos tributarios electrónicos deben tener activo un método de transmisión
de los documentos XML entre contribuyentes electrónicos. Este proceso debe ser automático
y periódico.
En particular, el contenido de los emails no es relevante,
pues lo que realmente importa es el archivo XML adjunto a este. Si el documento
XML adjunto es efectivamente un DTE, se puede extraer de
el los datos necesarios para identificar la empresa que lo envía y de esta
forma agregarlos a nuestro sistema.
Validación de archivos adjuntos XML
La primera validación que debemos realizar es si el
documento adjunto al email es un documento XML, puede darse el caso que por
error, no se envíe el adjunto o simplemente el documento adjunto sea un XML no
valido para nuestros procesos. Si no hay un documento adjunto del tipo XML o
este no es valido para nosotros, descarte el documento y notifique al emisor
del mismo del error, para su pronta solución. En este caso no es necesario una
repuesta formal, sino mas bien una email simple indicando al emisor del problema.
Determinación de XML (DTE)
Una vez extraído el documento xml desde el email es
necesario saber si este es un documento xml valido para el proceso de
facturación electrónica. Para realizar esta función podemos utilizar los
schemas del SII para verificar la estructura y forma del documento XML decepcionado.
No entraré en detalles de como realizar la validación contra los schemas del
SII. Solo expondré la idea a desarrollar.
Si el resultado de validar los schemas del SII es
incorrecta, se debe notificar al emisor del documento, que esta enviando un
documento xml no valido para los efectos de la facturación electrónica.
Validación exitosa
Sabiendo que ya contamos con un documento xml del tipo DTE,
podremos entonces almacenarlo en nuestro sistema para su procesamiento. Aunque
no es obligatorio, es prudente enviar un email al emisor del mismo indicando
que tenemos conocimiento del documento
que nos enviaron.
Continua...
Marcelo:
ResponderEliminarExcelente blog, me ha servido muchisimo, y gracias a tus ideas, codigo que has puesto a disposicion, he logrado por fin conseguir mi primer xml.
Ahora estoy revisando, la forma de enviar por lotes los xml, la confeccion del pdf, y la firma mediante codigo pdf.417
muy agradecido
Hector Pezoa
Me alegra mucho que esta información te ayude.
EliminarAtte,
Marcelo Rojas R.
Hola acabo de encontrar tu blog muy bueno.
ResponderEliminarSoy desarrollador y tengo que implementar Factura Electronica en Nuestro Sistema de Gestion Interno que esta en Visual Basic 6. Crees tu que pueda hacerlo en VB.6?
Cesar
Cesar,
EliminarEfectivamente puedes hacerlo en VB6.0, sin embargo el esfuerzo es muy grande, pues necesitaras varias dlls externas para lograr realizar muchos procesos claves, como por ejemplo la firma de documentos. Te recomiendo que utilices .Net para que no pierdas tiempo en el desarrollo. Pero como respuesta es que si se puede realizar en VB6.0.
Atte.
Marcelo Rojas R.
Analista Desarrollador
Hola nuevamente
ResponderEliminarMe surge otra duda con el tema de la recepción del correo. En un solo mensaje ¿Pueden venir uno o más documentos (DTE e IECV)? Y si es así, en el caso de los DTE vendrán como EnvioDTE o como un solo DTE?
Gracias.
Estimado Edgardo,
EliminarEfectivamente un EnvioDte puede tener varios dtes insertos, por lo cual es necesario crear tus rutinas utilizando logica para leer todos los Dtes insertos.
Este comentario ha sido eliminado por el autor.
EliminarGracias por responder.
Eliminar¿Entonces en un mismo correo electronico pueden venir muchos adjuntos? (en donde cada adjunto es un EnvioDTE)
Saludos!
EDIT: Me quedo mal escrito.
Eso es correcto, en un email pueden venir varios EnvioDTE y en cada EnvioDTE puede venir uno o varios DTE.
EliminarUsas la librería de nicchile para trabajar con facturación electrónica?
ResponderEliminar