TE MOSTRAMOS CÓMO UTILIZAR SIMPLE SDK

Generalidades

Se ilustrará mediante ejemplos en un proyecto Desktop el funcionamiento de SIMPLE SDK. Este proyecto se encuentra disponible en github. Si bien se trata de un proyecto Desktop, se utiliza de la misma manera para ambientes web

Esta guía solo ilustra el uso del proyecto Demo que utiliza Simple SDK. En este proyecto podrás encontrar todo el código que necesitas.

El proyecto está dividido en grupos de interés y utilidad. En el primero se encuentra la generación de documentos, luego la generación de otros documentos menos convencionales, un grupo de utilitarios donde se pueden validar archivos y consultar el estado de los documentos, y finalmente otro grupo para las muestras impresas.

Instalando SIMPLE SDK

Instalar con Nuget

Desde la línea de comandos:

nuget install SIMPLESDK

Desde Package Manager:

PM> Install-Package SimpleSDK

Con .NET CLI:

dotnet add package SimpleSDK

Desde Visual Studio:

  • Abrir el explorador de soluciones.
  • Clic derecho en un proyecto dentro de tu solución.
  • Clic en Administrar paquetes NuGet.
  • Clic en la pestaña Examinar y busque SimpleSDK
  • Clic en el paquete SimpleSDK, seleccione la versión que desea utilizar y finalmente selecciones instalar.

Operaciones básicas

Las operaciones básicas y su orden es el siguiente:

  • Generar XML: Disponemos de un formulario y el código necesario para lograrlo
  • Generar Sobre de Envío: Es el paso previo al envío al SII.
  • Enviar al SII: Si la operación es correcta el SII entregará un TrackID para su seguimiento.

Generar Documento

La generación de un documento se compone de 2 pasos principales:

1. Datos del DTE
  • Se debe indicar el folio, tipo y fecha de emisión.
  • Se debe indicar los datos del emisor y del receptor.
  • Se indican los detalles de la venta.
Simple SDK permite generar todos los tipos de documentos electrónicos, específicamente:
  • Factura Electrónica
  • Factura Exenta Electrónica
  • Nota de Crédito Electrónica.
  • Nota de Débito Electrónica.
  • Boleta Electrónica
  • Boleta Exenta Electrónica
  • Guía de despacho Electrónica
  • Factura de Compra Electrónica
  • Factura, NC y ND de Exportación Electrónica
  • Cesión de documentos
2. Generación del XML
  • Se debe seleccionar un archivo CAF que permita el folio.
  • Se debe indicar el certificado digital que se utilizará para firmar.
  • Al presionar guardar, se generará un XML válido.
El XML generado se conoce como DTE, y debe ser guardado sin ningún tipo de modificación para no invalidar su firma.

Generar Nota de Crédito

Las notas de crédito se utilizan con 3 fines:

  • Anular un documento.
  • Corregir y disminuir montos del documento original.
  • Corregir texto del documento original.
Por lo tanto, se debe especificar el motivo por el cual se está generando la nota de crédito, además de los siguientes datos:

1. Datos del DTE
  • Se debe indicar el folio, tipo y fecha de emisión.
  • Los datos del emisor y receptor deben ser los mismos que el documento original
  • Los detalles de la venta que se dejen del documento original, corresponde a los elementos devueltos, no recibidos o rechazados.
2. Generación del XML
  • Se debe seleccionar un archivo CAF que permita el folio.
  • Se debe indicar el certificado digital que se utilizará para firmar.
  • Al presionar guardar, se generará un XML válido.
El XML generado se conoce como DTE, y debe ser guardado sin ningún tipo de modificación para no invalidar su firma.

Generar Sobre Envío

Para enviar uno o más DTE al SII, se debe generar un nuevo XML llamado Sobre de Envío, y existen dos tipos:

  • EnvioBoleta: Sobre de envío para boletas electrónicas afectas y exentas. No admite otro tipo de documentos.
  • EnvioDTE: Sobre de envío para facturas, ND, ND y todo el resto de documentos.

Para generar un sobre de envío se requiere lo siguiente:

  1. Seleccionar los archivos XML correspondiente a los DTE que se desee enviar.
  2. Indicar datos básicos para el sobre de envío:
    • Datos de Carátula: como la fecha de envío, fecha y n° de resolución, entre otros.
    • Datos de Certificado: La ruta al archivo PFX y su contraseña.
  3. Generar el DTE en formato XML

Siempre se deben generar dos sobres de envío, uno para el SII y otro para el receptor del DTE.

El sobre del SII se envía mediante webservice, es decir, mediante nuestra API.

El sobre del cliente se envía mediante correo electrónico y es responsabilidad del desarrollador realizar esa implementación

Enviar archivos al SII

El SII solo admite los siguientes tipos de XML:

  • EnvioDTE.
  • EnvioBoleta.
  • RVD.
  • LibroGuia.
El envío de documentos al SII se debe realizar exclusivamente mediante API. Para ello, se debe seleccionar el archivo a enviar e indicar el tipo de documento que se está enviando.

SimpleSDK retorna directamente la misma respuesta que entrega el SII:

El obtener un TrackID, significa que el documento fue recibido por el SII pero no necesariamente que fue aceptado.

Generar RVD

El Registro de ventas diarias (ex-RCOF) es un archivo XML que se debe enviar todos los días al SII sólo si emites boletas electrónicas por software de mercado

En el, se informan todos los folios ocupados durante el día en cuestión y los totales de los documentos.

El RCOF se debe generar independiente si hubo ventas en el día. El archivo XML resultante se debe enviar de la misma forma que un EnvioDTE, directamente al SII.

Utilidades

El SII ofrece servicios web para consultar por el estado de un documento y por TrackId o "código de seguimiento". Con SIMPLE SDK el consumo de esos servicios web es transparente y sencillo, entregando la misma respuesta que entrega directamente el SII.

Disponemos también de un validador, que procurará que el XML cumpla con su Schema y su firma sea válida, es decir, que el documento no haya sido adulterado.

Consulta Estado DTE

Para consultar por el estado de un documento, se requiere los siguientes datos:

  • Rut Emisor
  • Rut Receptor
  • Total
  • Folio
  • Fecha de Emisión
  • Tipo de DTE

La respuesta que entregará el SII indicará si el documento fue recibido, rechazado o si los datos coinciden con lo informado.

¿Que es la opción "Servidor de Boletas"?

Las boletas electrónicas pueden enviarse a dos servidores diferentes en el SII y cada uno de ellos con su propio ambiente. Si el checkbox "Servidor de Boletas" está chequeado, la API irá a consultar mediante REST a los servidores rahue y pangal según el ambiente. Si el checkbox no está chequeado, la API irá a consultar mediante SOAP al servidor maullin solamente (certificación y pruebas) ya que palena (producción) no está disponible. Esto último se ocupa por lo general, para consultar por envíos que se realizan en el proceso de certificación.

Consulta Estado Envio (TrackID)

Para consultar por el estado de un envío, se requiere los siguientes datos:

  • Rut Emisor
  • TrackID

La respuesta que entregará el SII indicará de forma genérica, es si el envío fue procesado y cuántos documentos fueron aceptados, aceptados con reparos o rechazados.

¿Que es la opción "Servidor de Boletas"?

Las boletas electrónicas pueden enviarse a dos servidores diferentes en el SII y cada uno de ellos con su propio ambiente. Si el checkbox "Servidor de Boletas" está chequeado, la API irá a consultar mediante REST a los servidores rahue y pangal según el ambiente. Si el checkbox no está chequeado, la API irá a consultar mediante SOAP al servidor maullin solamente (certificación y pruebas) ya que palena (producción) no está disponible. Esto último se ocupa por lo general, para consultar por envíos que se realizan en el proceso de certificación.

Validador

Hay dos validaciones que se deben realizar antes para asegurarnos de que el DTE esté correcto. La validación de Schema y de Firma.

La validación de schema consiste en verificar que el contenido del XML cumpla con las normas de formato y estructura que define el SII.

La validación de firma consiste en verificar que la firma digital del XML sea válida, es decir, que el contenido no haya sido adulterado en el tiempo.

Puedes validar DTE, Sobres de Envío, RVD y Libros

Documentos Impresos

La representación impresa del DTE debe entregarse al receptor una vez se haya enviado el documento al SII. Si bien esto no se da mucho en la práctica, es aconsejable estar enviando constantemente los documentos al SII.

El documento en formato impreso debe cumplir con ciertas normas y requisitos que establece el SII.

Imagen del Timbre

El timbre es un código de barras en formato PDF417 que permite validar si el folio del documento está autorizado por el SII.

Todos los DTE deben llevarlo, y SIMPLE SDK te permite obtenerlo desde un XML:

El timbre debe insertarse en la muestra impresa. La API lo retorna como un string base64.

PDF del documento

Disponemos de dos formatos genéricos para la impresión de documentos. Uno carta y otro de 58mm para impresoras térmicas.

Para generarlos, se debe indicar el tipo de salida y el tipo de formato, además de otros opcionales:

El objetivo es poder entregar una guía para el desarrollo de sus propios formatos o que los puedan utilizar como base.

Ejemplos de XML

Tenemos ejemplos XML de la mayoría de los tipos de DTE que se pueden emitir. Incluye intercambio entre contribuyentes.