El presente manual tiene como objetivo dar a conocer el medio de integración desde una aplicación que soporte conexión mediante Servicio Web, con el sistema de Facturación.cl que ofrece la emisión y resguardo de sus Documentos Tributarios Electrónicos.
Para realizar la integración entre aplicaciones, utilizaremos la tecnología conocida como Servicio Web SOAP a fin de acceder a las funcionalidades ofrecidas por nuestra plataforma.
Un servicio Web es un conjunto de protocolos o estándares que permiten intercambiar los datos entre aplicaciones de software, permitiendo que distintos programas, hechos en diferentes lenguajes de programación y ejecutándose en diversas plataformas, puedan interactuar entre sí.
Para la comunicación de datos mediante Servicios Web, éstos utilizan estándares y protocolos globales. Siendo muchos de estos libres, incrementando así la popularidad de SOAP.
El protocolo SOAP permite la comunicación de dos objetos mediante el intercambio de archivos XML.
Gracias a que la tecnología de Servicio Web SOAP está basada en estándares abiertos y regidos por la W3C. Existen diversos clientes disponibles para la mayoría de las plataformas y lenguajes de programación mediante API's que permiten hacer uso de servicios web, dejando a disposición del programador múltiples librerías que permiten el acceso a nuestros servicios.
A continuación, se presenta un listado de solamente algunos de los clientes y librerías existentes que permiten realizan la comunicación con nuestro WebServices.
| Plataforma | Lenguaje | Nombre | URL |
|---|---|---|---|
| Multiplataforma | PHP | NuSOAP | http://nusoap.sourceforge.net/ |
| Multiplataforma | PHP 5 | SOAP API | http://cl.php.net/soap |
| Multiplataforma | Java | WS ToolKit | http://java.net/projects/metro |
| Multiplataforma | Perl | SOAP Lite | http://www.soaplite.com/ |
| Microsoft Windows | C#, J#, VB.Net | System.Net | http://msdn.microsoft.com/en-us/library/ms997641.aspx |
| Microsoft Windows | C++ | SOAP ToolKit | http://msdn.microsoft.com/en-us/library/aa286526.aspx |
| Microsoft Windoews | Microsoft Office | Office Web Services ToolKit | http://www.microsoft.com/es-es/download/details.aspx?id=2224 |
Para acceder al WebService tanto en ambiente de pruebas como producción debe utilizar la siguiente URL: http://ws.facturacion.cl/WSDS/wsplano.asmx?wsdl
- El primer paso consiste en construir el archivo de Integración, el cual será necesario para la emisión y generación de los Documentos Tributarios Electrónicos.
Actualmente disponemos de dos formatos, para los cuales existe su documentación respectiva a fin de crearlos basados en ciertas estructuras de información, los formatos son:
Éstos archivos deberán contener la información del documento a generar (Factura Electrónica, Guía de Despacho Electrónica, Nota de Crédito Electrónica, Nota de Débito Electrónica, etc.).
Para más información respecto de los formatos de dichos archivos, se pueden consultar los manuales correspondientes, los cuales contienen la información de cómo construir dichos archivos.
- El segundo paso consiste en enviar dicho archivo a nuestro Servicio Web, valiéndose de un cliente SOAP permitido por su aplicación.
- El tercer paso y final consiste en obtener la representación impresa del documento tributario ya generado, ésta representación es creada en formato PDF, el cual retorna si así se configura.
La información debe ser enviada de manera codificada utilizando el formato de codificación Base64, el cual es un estándar disponible en múltiples lenguajes de programación.
En los casos en que se indique Codificado, tanto en los datos enviados, como recibidos se debe utilizar dicho algoritmo.
Para hacer uso del servicio, es necesario invocar o consumir los métodos, indicando las credenciales de autenticación que son entregadas al inicio del proceso de integración, las que variaran dependiendo si esta en ambiente de pruebas o producción. Estas son diferentes a las utilizadas para acceder a la plataforma de facturacion.cl.
Para verificar las credenciales debe ingresar en la plataforma web en Administrador/Integración/DTEPlano/Credenciales.
Ya terminadas las pruebas se proporcionan las que se deben utilizar para el entorno productivo.
La información de autenticación es transmitida en una variable de tipo objeto, que contiene la siguiente estructura con los datos de autenticación:
| Clase: logininfo | |||
|---|---|---|---|
| Campo | Descripción | Codificado | Obligatorio |
| Usuario | Corresponde al nombre del usuario. | SI | SI |
| Rut | Corresponde al RUT de su empresa | SI | SI |
| Clave | Clave asignada a su empresa. | SI | SI |
| Puerto | Se debe asignar por defecto 0 (cero), a menos que se requiera utilizar impresión automática. | SI | SI |
| IncluyeLink | En caso que se requiera obtener los Link de los documentos impresos en la emisión o procesamiento, se debe agregar este campo indicando como valor '1'. Si el documento posee copia Cedible, además se incluirá el Link de su representación. | NO | NO |
Nota:
Adicionalmente al usuario entregado en la ruta Administrador/Integración/Configuración/Credenciales/Ambiente Producción, es posible configurar el campo "Usuario" con otro usuario, de preferencia creado en la plataforma web en Administrador/Mantenedor de Usuarios.
El Servicio Web posee varios métodos los cuales es posible consumir mediante cualquier cliente SOAP, por lo que se entrega una breve descripción de los que utilizarán en la integración.
| Método: | Procesar | ||
|---|---|---|---|
| Descripción: | |||
| Permite procesar el archivo de Integración y generar el DTE (Documento Tributario Electrónico). | |||
| Parámetro | Descripción | Codificado | |
| login | Estructura con datos de autenticación del cliente. | - | |
| file | Archivo a procesar | SI | |
| formato | Corresponde al tipo de archivo enviado: 1 = Archivo de texto / 2 = Archivo XML | - | |
| Respuesta: | |||
| Retorna un archivo en formato XML con la información de resultado del archivo procesado. | |||
| Método: | ObtenerLink | ||
|---|---|---|---|
| Descripción: | |||
|
Obtiene el Link de descarga del Documento Tributario una vez que este ha
sido generado y enviado al SII.
Se puede utilizar directamente el indicador 'IncluyeLink' al procesar, en caso que se desee obtener los link de Impresión al emitir. |
|||
| Parámetro | Descripción | Codificado | |
| login | Estructura con datos de autenticación del cliente. | - | |
| tpomov | Corresponde al tipo de movimiento asociado al documento enviado: C = Compra / V = Venta / B = Boleta | SI | |
| folio | Corresponde al número de Folio del Documento. | SI | |
| tipo | Corresponde al Tipo de Documento (Tipo DTE) | SI | |
| cedible | Indica si se obtendrá la copia cedible del PDF. True = Se obtiene copia Cedible. False = Se obtiene la copia Original. | SI | |
| Respuesta: | SI | ||
| Retorna un archivo en formato XML con la información de resultado del archivo procesado. | |||
| Método: | ObtenerPdf | ||
|---|---|---|---|
| Descripción: | |||
|
Obtiene el Link de descarga del Documento Tributario una vez que este ha
sido generado y enviado al SII.
Se puede utilizar directamente el indicador 'IncluyeLink' al procesar, en caso que se desee obtener los link de Impresión al emitir. |
|||
| Parámetro | Descripción | Codificado | |
| login | Estructura con datos de autenticación del cliente. | - | |
| tpomov | Corresponde al tipo de movimiento asociado al documento enviado: C = Compra / V = Venta / B = Boleta | SI | |
| folio | Corresponde al número de Folio del Documento. | SI | |
| tipo | Corresponde al Tipo de Documento (Tipo DTE) | SI | |
| cedible | Indica si se obtendrá la copia cedible del PDF. True = Se obtiene copia Cedible. False = Se obtiene la copia Original. | SI | |
| pdfbase64 | Indica si se obtendrá el link URL con archivo PDF y el contenido del PDF codificado en base64:
0 = Archivo PDF. 1 = Contenido del PDF codificado en base64. 2 = Contenido del PDF codificado en base64 + Archivo PDF. |
NO | |
| Respuesta: | SI | ||
| Retorna un archivo en formato XML con la información de resultado del archivo procesado. | |||
| Método: | Online | ||
|---|---|---|---|
| Descripción: | |||
|
Se utiliza para verificar que el Servicio Web se encuentra disponible.
|
|||
| Parámetro | No posee parámetros | ||
| Respuesta: | |||
| Retorna una cadena con el texto 'Online=1'. | |||
| Método: | getBoletaTicket | ||
|---|---|---|---|
| Descripción: | |||
| Obtiene los datos necesarios para poder generar la salida de impresión de una Boleta Electrónica emitida en formato Ticket Térmico. | |||
| Parámetro | Descripción | Codificado | |
| login | Estructura con datos de autenticación del cliente. | - | |
| ticket | Corresponde al comando de solicitud con la siguiente nomenclatura: ticket@tipodte@folio | SI | |
| Respuesta: | SI | ||
| Retorna un XML que contiene la información necesaria para ser enviada a la salida de impresión térmica. | |||
| Método: | EliminarDoc | ||
|---|---|---|---|
| Descripción: | |||
| Permite eliminar un Documento no Electrónico en el sistema. | |||
| Parámetro | Descripción | Codificado | |
| login | Estructura con datos de autenticación del cliente. | - | |
| tpomov | Corresponde al tipo de movimiento asociado al documento enviado: C = Compra / V = Venta | SI | |
| folio | Corresponde al número de Folio del Documento. | SI | |
| tipo | Corresponde al Tipo de Documento (Tipo DTE) | SI | |
| Respuesta: | SI | ||
| Retorna el resultado de la eliminación del documento indicado. | |||
| Método: | AnularGuia | ||
|---|---|---|---|
| Descripción: | |||
| Permite anular una Guía de Despacho en el sistema (puede ser Electrónica o no Electrónica). | |||
| Parámetro | Descripción | Codificado | |
| login | Estructura con datos de autenticación del cliente. | - | |
| tpomov | Corresponde al tipo de movimiento asociado al documento enviado: V = Venta | SI | |
| folio | Corresponde al número de Folio del Documento. | SI | |
| tipo | Corresponde al Tipo de Documento (Tipo DTE), el cual puede ser: 50 ó 52 | SI | |
| Respuesta: | SI | ||
| Retorna el resultado de la eliminación del documento indicado. | |||
Los siguientes métodos del Servicio Web sirven para consultar de forma individual o masiva información de documentos ya emitidos desde su sistema siendo contratados bajo costos adicionales.
| Método: | getXMLDte (Costo Adicional) | ||
|---|---|---|---|
| Descripción: | |||
| Este es un método adicional que permite obtener el archivo XML del documento generado posterior envío al Servicio de Impuestos Internos SII y aceptación del documento. | |||
| Parámetro | Descripción | Codificado | |
| login | Estructura con datos de autenticación del cliente. | - | |
| tpomov | Corresponde al tipo de movimiento asociado al documento enviado: C = Compra / V = Venta / B = Boleta | SI | |
| folio | Corresponde al número de Folio del Documento. | SI | |
| tipo | Corresponde al Tipo de Documento (Tipo DTE) | SI | |
| Respuesta: | SI | ||
| Como respuesta retorna el archivo XML Tributario del documento solicitado en formato base64Binary. | |||
| Método: | ConsultaLibroVentas (Costo Adicional) | ||
|---|---|---|---|
| Descripción: | |||
| Este es un método adicional que permite obtener una lista de todos los documentos del libro de ventas o libro de boletas. | |||
| Parámetro | Descripción | Codificado | Obligatorio |
| login | Estructura con datos de autenticación del cliente. | SI | SI |
| FechaDocumento | Corresponde a la fecha del documento. Formato AAAA-MM-DD | SI | SI |
| TipoLibro | B = Traerá solo el libro de boletas, es decir boletas afectas y exentas / V = Traerá el libro de Ventas, es decir todos los documentos restantes que no sean boletas afectas ni exentas | SI | SI |
| AcuseComercial | E = Retornará solo los documentos en espera de acuse del cliente / AC = Retornará solo los documentos aceptados por el cliente / R = Retornará solo los documentos rechazados por el cliente / AN = Retornará solo los documentos que fueron anulados, previo a la respuesta de acuse del cliente | SI | NO |
| Respuesta: | NO | ||
| Retorna una lista con las características más importantes que identifican al documento: Folio, TipoDTE, Rut Cliente, Sucursal, Monto Exento, Monto Neto, Monto IVA, Monto Total, Estado acuse cliente, Fecha acuse cliente y Glosa acuse cliente. | |||
| Método: | LibroVentasDetallado (Costo Adicional) | ||
|---|---|---|---|
| Descripción: | |||
| Este es un método adicional que permite obtener una lista de todos los documentos del libro de ventas o libro de boletas con información más detallada para una conciliación más avanzada entre el software del cliente y facturacion.cl | |||
| Parámetro | Descripción | Codificado | Obligatorio |
| login | Estructura con datos de autenticación del cliente. | SI | SI |
| FechaDocumento | Corresponde a la fecha del documento. Formato AAAA-MM-DD | SI | SI |
| TipoLibro | B = Traerá solo el libro de boletas, es decir boletas afectas y exentas / V = Traerá el libro de Ventas, es decir todos los documentos restantes que no sean boletas afectas ni exentas | SI | SI |
| Respuesta: | NO | ||
| Retorna una lista con todas las características que identifican al documento (retorna todas las columnas del excel detallado del Libro de ventas) | |||
En el siguiente ejemplo, veremos la manera de procesar el archivo de integración, utilizando PHP4 y valiéndonos de la librería NuSoap.
|
<?php
require_once('lib/nusoap.php');
/* Ruta de acceso al servicio web */
$wsdl = 'http://192.168.1.1:8088/wsplano.asmx?wsdl';
/* Creamos una instancia del cliente SOAP */
$client = new soapclient($wsdl,true);
$client->setUseCurl(0);
$err = $client->getError();
if ($err) {
echo '<h2>Error en el constructor</h2><pre>' . $err .
'</pre>'; exit();
}
/* Definimos los parametros a pasar al servicio */
$params = array(
'login' => array(
'Usuario' => base64_encode("Usuario")
,'Rut' => base64_encode("1-9")
,'Clave' => base64_encode("123456")
,'Puerto' => base64_encode("0")
,'IncluyeLink' => "1")
'file' =>base64_encode($contenido_archivo),
'formato' =>"1");
/* Invocamos el Web Service, Metodo: Procesar */
$result = $client->call('Procesar',$params);
/* Verificamos la respuesta, retornada por el servicio*/
if ($client->fault) {
echo '<h2>Fault (Error - La solicitud SOAP es
erronea)</h2><pre>'; print_r($result); echo '</pre>';
} else {
$err = $client-
>getError(); if ($err) {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
/* Resultado exitoso */
echo $result['ProcesarResult'];
}
}
|
En el ejemplo siguiente, veremos la misma funcionalidad del código anterior utilizando PHP5 y su API SOAP integrada.
|
<?php
/* Ruta de acceso al servicio web */
$wsdl = 'http://192.168.1.1:8088/wsplano.asmx?wsdl';
try {
/* Creamos una instancia del cliente SOAP */
$client = new soapclient($wsdl);
/* Definimos los parametros a pasar al servicio */
$params = array(
'login' => array(
'Usuario' => base64_encode("Usuario")
,'Rut' => base64_encode("1-9")
,'Clave' => base64_encode("123456")
,'Puerto' => base64_encode("0")), 'file' =>
base64_encode($contenido_archivo), 'formato' => "1");
/* Invocamos el Web Service, Metodo: Procesar */
$response = $client->Procesar($params);
/* Respuesta entregada por el servicio web */
print_r($response);
} catch(SoapFault $e){ echo 'Hubo un error';
}
?>
|
En el ejemplo, veremos la funcionalidad del código utilizando PHP7 con API SOAP integrada.
|
<?php
/* Ruta de acceso al servicio web */
$wsdl = 'http://ws.facturacion.cl/WSDS/wsplano.asmx?wsdl';
try {
/* Creamos una instancia del cliente SOAP con la opción de trazado habilitada para compatibilidad con PHP 7.3 */
$client = new SoapClient($wsdl, ['trace' => 1]);
/* Definimos los parámetros a pasar al servicio */
$params = [
'login' => [
'Usuario' => base64_encode("Usuario"),
'Rut' => base64_encode("1-9"),
'Clave' => base64_encode("123456"),
'Puerto' => base64_encode("0")],
'file' => base64_encode($contenido_archivo),
'formato' => "1"
];
/* Invocamos el Web Service, Método: Procesar */
$response = $client->__soapCall("Procesar", [$params]);
/* Respuesta entregada por el servicio web */
print_r($response);
} catch(SoapFault $e){
echo 'Hubo un error: '.$e->getMessage();
}
?>
|
En el siguiente ejemplo, veremos la manera de procesar el archivo de integracón utilizando lenguaje Python con Django.
|
# Ejemplo con Phyton, utilizando librería zeep
# pip install zeep
import base64
from zeep import Client
from django.http import JsonResponse
def procesar_servicio(request):
wsdl = 'http://ws.facturacion.cl/WSDS/wsplano.asmx?wsdl'
# Definir los parámetros que se pasarán al servicio SOAP
params = {
'login': {
'Usuario': base64.b64encode("Usuario".encode()).decode(),
'Rut': base64.b64encode("1-9".encode()).decode(),
'Clave': base64.b64encode("123456".encode()).decode(),
'Puerto': base64.b64encode("0".encode()).decode()
},
'file': base64.b64encode(b'contenido_del_archivo').decode(),
# Sustituye 'contenido_del_archivo' por el contenido real 'formato': "1"
}
try:
# Crear un cliente SOAP
client = Client(wsdl)
# Llamar al método 'Procesar' del servicio web
response = client.service.Procesar(**params)
# Devolver la respuesta en formato JSON
return JsonResponse({'response': response})
except Exception as e:
# En caso de error, devolver el mensaje de error
return JsonResponse({'error': str(e)}, status=500)
# En una vista de Django:
# urls.py
from django.urls import path
from . import views
urlpatterns = [
path('procesar/', views.procesar_servicio, name='procesar_servicio'),
]
|
El método Procesar retorna como respuesta un archivo XML con la información del resultado de el o los documentos procesados.
|
Ejemplo de proceso exitoso:
<WSPLANO>
<Resultado>True<Resultado>
<Mensaje>Proceso existoso.<Mensaje>
<Detalle>
<Documento>
<Folio>126<Folio>
<TipoDte>33</TipoDte>
<Operacion>VENTA</Operacion>
<Fecha>2008-09-12T15:55:09</Fecha>
<Resultado>True</Resultado>
<urlOriginal>aHR0cDovL3...I9PWZhbHNl</urlOriginal>
<urlCedible>aHR0cDovL3...M1ZjYmcPXRydWU=</urlCedible>
<Documento>
<Detalle>
</WSPLANO>
|
|
Ejemplo de proceso con errores:
<WSPLANO>
<Resultado>True<Resultado>
<Mensaje>Proceso existoso.<Mensaje>
<Detalle>
<Documento>
<Folio>126<Folio>
<TipoDte>33</TipoDte>
<Operacion>VENTA</Operacion>
<Fecha>2008-09-12T15:55:09</Fecha>
<Resultado>False</Resultado>
<Error>ERROR: P0001: Ya existe el Documento
del TipoDTE = 33 con Folio = 126
</Error>
<Documento>
<Detalle>
</WSPLANO>
|
Al consumir el método ObtenerLink, retornará como respuesta un archivo XML que contendrá el Link de descarga del documento electrónico, generado en formato PDF, este Link vendrá codificado en Base64, por lo cual deberá ser decodificado.
|
Ejemplo de resultado ObtenerLink:
<WSPLANO>
<Mensaje>
aHR0cDovL3d3dy5kb21pbmlvLmNvbS9zaXN0
ZW1hL2Rlc2Nhcmdhci5waHA/cDE9YzI1YzBm
YzllYiZwMj1HREkmbT1WJmk9JmM9ZmFsc2U=
<Mensaje>
</WSPLANO>
|
El nodo WSPLANO/Mensaje contendrá el Link codificado. una vez decodificado, se obtendrá un Link similar al que se muestra a continuación:
Desde dicho Link, el cliente podrá descargar el archivo PDF del documento electrónico.
Al consumir el método Online, puede verificar que el Servicio Web se encuentra disponible.
|
Ejemplo de resultado Online:
<WSPLANO>
<Mensaje>
Online=1
<Mensaje>
</WSPLANO>
|
Al consumir el método getXMLDte, retornará como respuesta un archivo XML del documento solicitado, el cual vendrá codificado en Base64, por lo cual deberá ser decodificado.
Ejemplo de resultado getXMLDte:
* NOTA: Este método tiene un costo asociado por lo que debe solicitar una cotización a la mesa de ayuda de facturación.cl .
Ya decodificado toma la siguiente forma:
|
<DTE version="1.0">
<Documento ID="F1T34">
<Encabezado>
<IdDoc>
<TipoDTE>1</TipoDTE>
<Folio>1</Folio>
<FchEmis>2006-04-11</FchEmis>
</IdDoc>
<Emisor>
<RUTEmisor>DEMO</RUTEmisor>
<RznSoc>DEMO</RznSoc>
<GiroEmis>DEMO</GiroEmis>
<Acteco>DEMO</Acteco>
<DirOrigen>DEMO</DirOrigen>
<CmnaOrigen>DEMO</CmnaOrigen>
<CiudadOrigen>DEMO</CiudadOrigen>
</Emisor>
<Receptor>
<RUTRecep>DEMO</RUTRecep>
<RznSocRecep>DEMO</RznSocRecep>
<GiroRecep>DEMO</GiroRecep>
<DirRecep>DEMO</DirRecep>
<CmnaRecep>DEMO</CmnaRecep>
<CiudadRecep>DEMO</CiudadRecep>
</Receptor>
<Totales>
<MntExe>DEMO</MntExe>
<MntTotal>DEMO</MntTotal>
</Totales>
</Encabezado>
<Detalle>
<NroLinDet>DEMO</NroLinDet>
<CdgItem>
<TpoCodigo>DEMO</TpoCodigo>
<VlrCodigo>DEMO</VlrCodigo>
</CdgItem>
<IndExe>DEMO</IndExe>
<NmbItem>DEMO</NmbItem>
<QtyItem>DEMO</QtyItem>
<UnmdItem>DEMO</UnmdItem>
<PrcItem>DEMO</PrcItem>
<MontoItem>DEMO</MontoItem>
</Detalle>
|
Al consumir el método EliminarDoc, Retorna el resultado de la eliminación del documento no electrónico indicado.
|
<WSPLANO>
<Mensaje>
<Resultado>OK</Resultado>
<Mensaje>
<WSPLANO>
|
Al consumir el método AnularGuia, Retorna el resultado de la anulación del documento indicado. En este caso la guía de despacho seleccionada.
|
<WSPLANO>
<Mensaje>
<Resultado>OK</Resultado>
<Mensaje>
<WSPLANO>
|
Consiste en un formato ticket de documento electrónico, desarrollado sin incluir logotipo, siendo la mejor alternativa en velocidad y bajo consumo de insumos de impresión, el cual requiere de una impresora térmica con capacidades gráficas con cabezal de entre 3 y 4 pulgadas.
Para acceder a este formato debe obtener los módulos de FETICKET y BETICKET correspondiente a factura y boleta térmica en la plataforma de facturacion.cl en Inicio/Mi Cuenta/Cotice y compre en línea/Productos Complementarios.
Con la impresión térmica puede integrar y controlar el proceso de impresión enviando los datos directamente a una impresora compatible con el lenguaje de impresión POS/ESC. Consumiendo el método getBoletaTicket, indicando los datos de la boleta que desea imprimir siendo la estructura (ticket@tipodte@folio).
Ej: Boleta Electrónica Afecta, Folio 100
Comando: ticket@39@100
Al ejecutar la llamada al servicio web, retornara un archivo XML con los datos del ticket a imprimir en un archivo XML de la siguiente forma:
|
<WSPLANO>
<Head> GyEBHSEBUkFaT04gU09DSUFMIFB08gUy....</Head><Foot>DQpUSU1CUkUgRUxFQ1RST05JQ08gUy5J...</Foot>
<TED>PFRFRCB2ZXJzaW9uPSIxLjAiPjxERD48U...</TED>
</WSPLANO>
|
* NOTA: Este método solo puede ser consumido si cuento con formato ticket térmico de Boletas o Facturas Electrónicas.
Las tres variables retornadas: Head, Foot y TED contienen su data codificada en Base64, tras ser decodificadas, cada una de ellas contendrá la siguiente nformación:
![]() Head: (Formato: POS/ESC) TED: Timbre Fiscal (Formato: RAW) Debe ser impresa como un código Bidimensional PDF417, para lo cual debe consultar el manual del desarrollador de su impresora. Foot: Pie de Pagina (POS/ESC) |
Las siguientes modalidades de impresión permiten la incorporación de la impresión ticket, utilizando un componente preconstruido, minimizando el desarrollo a realizar
1) Aplicación de Escritorio
i. Debe ejecutar la función: getBoletaTicket y obtener los datos de la boleta. Descargue la librería de impresión: https://www.facturacion.com/soporte/ImprimirTicket.jar
ii. Desde su aplicación realice una llamada por línea de comando a la Librería: ImprimirTicket.jar, pasando como parámetros:
Nombre de la impresora: Debe ser una impresora instalada en el equipo local. Y las Variables: Head, Ted y Foot, Tal como retorna el XML del servicio Web sin decodificar.
Ejemplo en Lenguaje: VB.NET
|
Dim sImpresora As String = """" & g_sImpresora & """"
Dim sHead As String = """" &
oXMLRes.SelectSingleNode("/WSPLANO/Mensaje/Head").InnerText & """" Dim
sFoot As String = """" &
oXMLRes.SelectSingleNode("/WSPLANO/Mensaje/Foot").InnerText & """" Dim
sTed As String = """" &
oXMLRes.SelectSingleNode("/WSPLANO/Mensaje/TED").InnerText & """"
Dim Process As New Process()
Process.StartInfo = New ProcessStartInfo("""C:\Archivos de programa
files\Java\jre6\bin\java.exe""", " -jar ImprimirTicket.jar " &
sImpresora & " " & sHead & " " & sFoot & " " & sTed)
Process.StartInfo.CreateNoWindow =
True
Process.StartInfo.UseShellExecute
= False
Process.StartInfo.RedirectStandard
Output = True Process.Start()
Dim sRetorno As String = Process.StandardOutput.ReadLine()
|
2) Aplicación Web
Si su aplicación es una página web y desea incorporar la impresión térmica en ella, debe realizarlo mediante la llamada a una página web que incrustara en su página el componente de impresión. Al realizar la llamada de la página, debe indicar los siguientes parámetros:
| Campo | Descripción |
| chk | Corresponde a un identificador de validación proporcionado por Facturacion.cl, este valor es único y será fijo. |
| i | Nombre de la impresora, codificado en Base64< |
| t | Tipo de documento (39: Boleta Electrónica ? 41: Boleta No Afecta o Exenta Electrónica. |
| F | Folio de la Boleta a imprimir. |
Para realizar la llamada al componente de impresión, debe ejecutar la siguiente URL con los parámetros previamente indicados:
Ejemplo:
Donde la impresora es: Start BSC10 / TipoDTE: 39 /Folio: 52145
Una vez construida la URL puede incluirla fácilmente en su sistema web, la opción más recomendable es mediante un iframe que mediante una llamada Javascript asocie la URL al src del iframe.
Ejemplo:
|
<input type="button" onclick="termico()" value="imprimir">
<iframe id="impresion"
style="width:1px;height:1px;border:0px"></if
rame>
<script type="text/javascript">
function termico() {
var iframe = document.getElementById
("impresion"); iframe.src =
";
}
</script>
|
* NOTA: La opción de impresión utilizando el componente proporcionado por Facturación.cl requiere de tener instalado en el equipo La máquina virtual Java la cual se puede descargar de forma gratuita desde: https://www.java.com/es/download/.
* NOTA: El componente de impresión, funciona solo con un número limitado de impresoras, si desea saber si su impresora es compatible, puede hacerlo utilizando la herramienta: http://www.facturacion.cl/verificaimpresora