SuperFactura soporta integración con cualquier lenguaje de programación mediante el comando superfactura.exe que permite emitir documentos tributarios electrónicos a partir de un archivo generado por su Software.
El comando recibe los siguientes argumentos:
superfactura.exe [usuario] [contraseña] [ambiente] [archivo] [opciones]
[usuario] y [contraseña] corresponden a la cuenta registrada en SuperFactura.[ambiente] debe ser cer para certificación o pro para producción.[archivo] es el archivo con el contenido del DTE en formato JSON o XML.[opciones] es una cadena en formato JSON con opciones adicionales (este argumento es opcional y se puede omitir).
Por ejemplo, si queremos generar un documento a partir de un archivo JSON y además enviar la opción savePDF con el valor C:\temp\dte-123 para descargar el archivo PDF, la linea de comandos quedaría así:
superfactura.exe "usuario@empresa.com" "miclave" "cer" "archivo.json" "{'documentID': 'F123', 'savePDF': 'C:\\temp\\dte-123'}"
Notar que en la cadena de opciones JSON se debe escapar el carácter \ anteponiendo otro carácter \.
El archivo con el contenido del DTE puede tener formato XML o JSON (recomendado porque es más flexible y sencillo) y debe tener una estructura similar a la especificación oficial del SII para Documentos Tributarios Electrónicos o Boletas Electrónicas de Venta. La API permite incluso enviar archivos con información de Libros de Compra y Venta, Libros de Guías de Despacho, etc.
{
"Encabezado" : {
"IdDoc" : {
"TipoDTE" : "33"
// 'FchEmis' => '2015-01-01' // Opcional
},
"Emisor" : {
"RUTEmisor" : "99581150-2"
// Los demás datos serán agregados por SuperFactura
},
"Receptor" : {
"RUTRecep" : "1-9",
"RznSocRecep" : "Test",
"GiroRecep" : "Giro",
"DirRecep" : "Dirección",
"CmnaRecep" : "Comuna",
"CiudadRecep" : "Ciudad"
}
},
"Detalles" : [
{
"NmbItem" : "Item 1",
"DscItem" : "Descripción del item 1",
"QtyItem" : "3",
"UnmdItem" : "KG",
"PrcItem" : "100"
},
{
"NmbItem" : "Item 2",
"DscItem" : "Descripción del item 2",
"QtyItem" : "5",
"UnmdItem" : "KG",
"PrcItem" : "65"
}
]
}
Ver más ejemplos aquí.
<?xml version="1.0" encoding="ISO-8859-1"?>
<DTE version="1.0">
<Documento ID="ID-INTERNO">
<Encabezado>
<IdDoc>
<TipoDTE>33</TipoDTE>
<Folio>123</Folio>
<FchEmis>2015-04-09</FchEmis>
</IdDoc>
<Emisor>
<RUTEmisor>99581150-2</RUTEmisor>
<RznSoc>IMATRONIX S A</RznSoc>
<GiroEmis>SISTEMAS DE INFORMACIÓN EMPRESARIALES</GiroEmis>
<Acteco>726000</Acteco>
<CdgSIISucur>065955163</CdgSIISucur>
<DirOrigen>AVDA LIMONARES 455, Nº 29, VIÑA DEL MAR</DirOrigen>
<CmnaOrigen>VINA DEL MAR</CmnaOrigen>
<CiudadOrigen>VINA DEL MAR</CiudadOrigen>
<CdgVendedor>XXX</CdgVendedor>
</Emisor>
<Receptor>
<RUTRecep>1-9</RUTRecep>
<RznSocRecep>Test</RznSocRecep>
<GiroRecep>Giro</GiroRecep>
<CorreoRecep>dte@cliente.cl</CorreoRecep>
<DirRecep>Dirección</DirRecep>
<CmnaRecep>Comuna</CmnaRecep>
<CiudadRecep>Ciudad</CiudadRecep>
</Receptor>
<Totales>
<MntNeto>64475</MntNeto>
<MntExe>0</MntExe>
<TasaIVA>19</TasaIVA>
<IVA>12250</IVA>
<ImptoReten>
<TipoImp>26</TipoImp>
<TasaImp>20.5</TasaImp>
<MontoImp>649440</MontoImp>
</ImptoReten>
<ImptoReten>
<TipoImp>271</TipoImp>
<TasaImp>18</TasaImp>
<MontoImp>590328</MontoImp>
</ImptoReten>
<MntTotal>1316493</MntTotal>
</Totales>
</Encabezado>
<Detalle>
<NroLinDet>1</NroLinDet>
<CdgItem>
<TpoCodigo>INT</TpoCodigo>
<VlrCodigo>75032715</VlrCodigo>
</CdgItem>
<NmbItem>CORONA EXTRA 355 CC 4.6</NmbItem>
<DscItem>CORONA EXTRA 355 CC 4.6</DscItem>
<UnmdRef>UNI</UnmdRef>
<QtyItem>72</QtyItem>
<UnmdItem>UNI</UnmdItem>
<PrcItem>440</PrcItem>
<CodImpAdic>26</CodImpAdic>
<MontoItem>31680</MontoItem>
</Detalle>
<Detalle>
<NroLinDet>2</NroLinDet>
<NmbItem>Coca-Cola</NmbItem>
<DscItem>Coca-Cola</DscItem>
<UnmdRef>UNI</UnmdRef>
<QtyItem>36</QtyItem>
<UnmdItem>UNI</UnmdItem>
<PrcItem>911</PrcItem>
<CodImpAdic>271</CodImpAdic>
<MontoItem>32796</MontoItem>
</Detalle>
<DscRcgGlobal>
<NroLinDR>1</NroLinDR>
<TpoMov>D</TpoMov>
<GlosaDR>Descuento de 1 peso</GlosaDR>
<TpoValor>$</TpoValor>
<ValorDR>1</ValorDR>
</DscRcgGlobal>
</Documento>
</DTE>
El comando generará como salida un string JSON que incluirá el número de folio asignado al documento:
{"ok":true,"folio":"125"}
En caso de generarse algún error, su Software debiera ofrecer al usuario la opción de reintentar o cancelar la emisión del documento sin redigitar sus datos.
El logo y diseño de las muestras impresas PDF y el certificado digital para firmar los DTE se configuran en la Ficha del Contribuyente de .
Para obtener más información sobre el servicio , ver cotización aquí.
Para realizar pruebas de integración y emitir documentos en el ambiente de certificación del SII, ver pasos para comenzar. El servicio para realizar pruebas es completamente gratis.
En caso de tener alguna consulta, puede escribirnos a contacto@superfactura.cl.