La API de SuperFactura permite especificar opciones adicionales para diversos propósitos, las que se entregan a la API a través de una cadena en formato JSON.
Para enviar los PDF y XML a los receptores de los DTE, se puede utilizar la opción mail
, indicando el correo electrónico de la casilla del receptor destinada para la recepción de los DTE:
{ "mail" : "dte@cliente.cl" }
Esta opción permite obtener el DTE en formato PDF (copia original y copia cedible cuando corresponda).
Para tales efectos, se debe especificar la opción savePDF
e indicar la ruta de destino y el prefijo para los archivos PDF que se descargarán.
Por ejemplo, si se especifica la ruta C:\temp\dte-123
, se generarán los archivos C:\temp\dte-123.pdf
para la copia original y C:\temp\dte-123-cedible.pdf
para la copia cedible.
{
"savePDF": "C:\\temp\\dte-123",
"carta": 1 // Para generar los PDF en tamaño carta.
}
Esta opción permite obtener el XML firmado del DTE.
Para tales efectos, se debe especificar la opción saveXML
e indicar la ruta de destino y el prefijo para el archivo XML que se descargará.
Por ejemplo, si se especifica la ruta C:\temp\dte-123
, se generará el archivo C:\temp\dte-123.xml
.
{ "saveXML" : "C:\\temp\\dte-123" }
Esta opción permite obtener el DTE en formato HTML.
Para tales efectos, se debe especificar la opción saveHTML
e indicar la ruta de destino y el prefijo para los archivos HTML que se descargarán.
Por ejemplo, si se especifica la ruta C:\temp\dte-123
, se generará el archivo C:\temp\dte-123.html
.
El archivo .HTML puede ser impreso con herramientas externas.
{ "saveHTML" : "C:\\temp\\dte-123" }
SuperFactura ofrece un mecanismo para impedir que se generen documentos duplicados en caso de intermitencias de red o errores en su Software.
Mediante la opción documentID
se puede proporcionar a SuperFactura un ID alfanumérico generado por su Software para identificar en forma unívoca el documento enviado.
Si en SuperFactura no se ha recibido anteriormente este documentID, se generará un nuevo documento.
En caso contrario, si ya existía un documento con este documentID
, la API retornará su número de folio.
De esta manera, si la API envía un documento a la nube y no se recibe la respuesta debido a una intermitencia de red, no se crearán documentos duplicados al reintentar enviar nuevamente la misma información.
Si esta opción se combina con las opciones savePDF
o saveXML
, se puede además reobtener el PDF o XML de este documento.
Es importante que el documentID sea único para todos los tipos de documentos de un mismo emisor.
{ "documentID" : "F123" }
Por defecto, los caracteres del archivo deben venir codificados en iso-8859-1.
Sin embargo, mediante la opción encoding
es posible especificar un encoding distinto.
{ "encoding" : "CP850" }
Esta opción permite importar documentos emitidos o recibidos para que sean incluídos en los libros de compra y venta generados por SuperFactura.
Se debe usar el valor recibido
para importar documentos recibidos (generalmente compras) o el valor emitido
para importar documentos emitidos (generalmente ventas).
Si se intenta re-importar un documento que ya existía, SuperFactura reemplazará el documento original por el documento nuevo, lo cual puede ser útil para hacer correcciones.
Ejemplo de uso:
{ "import" : "emitido" }
Al importar documentos, es importante verificar que el XML comience con el tag <DTE>
, es decir, que no se trate de un conjunto de documentos encerrados con el tag <SetDTE>
.
Esta opción se usa conjuntamente con la opción 'import' para indicar que el XML que se está importando ya viene firmado. Ejemplo de uso:
{
"import" : "emitido",
"isSigned" : 1
}
Esta opción se usa conjuntamente con la opción 'import' para indicar que sólo se deben corregir documentos existentes. En caso de que un documento no exista, se entregará un error en vez de crearlo. Ejemplo de uso:
{
"import" : "emitido",
"fix" : 1
}
SuperFactura ofrece varias opciones para imprimir los documentos con impresoras térmicas, las cuales se documentan acá.
{
...
"printer" : "LPT1:",
"model" : "zj-5809k",
"copias" : 2,
"cedible" : 1
}