SuperFactura

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).

Ejemplo de Uso

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 \.

Contenido del DTE

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.

Ejemplo JSON

{
	"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í.

Ejemplo XML


<?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>

Salida

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 SuperFactura.

Para obtener más información sobre el servicio SuperFactura, 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.