LibreDTE

¡facturación electrónica libre para Chile!

Herramientas de usuario

Herramientas del sitio


sowerphp:api

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
sowerphp:api [2020/01/08 18:14]
delaf [SDK]
sowerphp:api [2020/02/16 22:07] (actual)
delaf
Línea 1: Línea 1:
-====== ​API para integrar software propio ======+====== ​Servicios Web para integrar software propio ======
  
-A través de los servicios web de la API de LibreDTE podrás consumir diferentes recursos los cuales te permitirán realizar ciertas acciones asociadas a los documentos tributarios electrónicos.+A través de los servicios web de LibreDTE podrás consumir diferentes recursos los cuales te permitirán realizar ciertas acciones asociadas a los documentos tributarios electrónicos ​(DTE).
  
-Para poder usar la API es requisito contar con una cuenta de usuario de LibreDTE, [[http://​libredte.cl/​usuarios/​registrar|¡regístrate gratis!]]. El //hash// o la //API key// está en el [[http://​libredte.cl/​usuarios/​perfil|perfil de usuario]].+Toda la documentación asociada a los Servicios Web está disponible ​en el siguiente enlace:
  
-[[{|width:​12em;​color:​green}https://​doc.libredte.cl/api|Documentación ​API]] +[[{|width:​12em;​color:​green}https://​doc.libredte.cl|Documentación ​Servicios Web]]
-[[{|width:​12em;​color:​green}http://​editor.swagger.io/#/?​import=https://​libredte.github.io/​swagger.yml|Swagger editor]] +
-[[{|width:​12em;​color:​green}https://​github.com/​LibreDTE/​libredte-cliente|Cliente terminal]]+
  
-===== Pasos para integrar tiendas electrónicas ===== 
- 
-  * [[https://​blog.libredte.cl/​index.php/​2017/​09/​03/​integracion-con-shopify/​|Shopify]] 
-  * [[https://​blog.libredte.cl/​index.php/​2017/​08/​19/​integracion-con-woocommerce/​|WooCommerce]] 
-  * [[https://​jumpseller.cl/​support/​libredte/​|Jumpseller]] 
-  * [[https://​www.youtube.com/​watch?​v=IB6usF9c4GY|Alegra]] 
- 
- 
-===== Pasos para integrar software propio ===== 
- 
-Todos los servicios web de LibreDTE están basados en REST usando directamente el protocolo HTTP. Por lo anterior, lo primero es entender cómo consumir este tipo de servicios desde el lenguaje que se esté usando. LibreDTE tiene algunos [[api#​sdk|SDK]] oficiales que se recomienda revisar, si el lenguaje a usar no está dentro de los SDK puedes consumir directamente los servicios web. 
- 
-De forma resumida lo que se debe hacer para poder integrar con tu software es: 
- 
-  - Prepara los datos que usarás para crear el DTE, tienes ejemplos [[https://​github.com/​LibreDTE/​libredte-lib/​tree/​master/​examples/​json|aquí]]. 
-  - Aprender a consumir los servicios web REST, para esto las opciones son: 
-    - Revisar si existe un SDK oficial de LibreDTE para el lenguaje a usar. 
-    - Construir su propio SDK para el lenguaje no soportado oficialmente,​ si lo liberan bajo LGPL se agradece. 
-    - Buscar una biblioteca para su lenguaje que les facilite consumir los servicios web REST. 
-  - Replicar en su software el ejemplo básico de los SDK, el 001, que permite generar un DTE. Se debe: 
-    - [[https://​doc.libredte.cl/​api/#​!/​Crear_DTE/​post_dte_documentos_emitir|Emitir un DTE temporal]] 
-    - [[https://​doc.libredte.cl/​api/#​!/​Crear_DTE/​post_dte_documentos_generar|Generar un DTE real a partir del temporal]] 
-    - [[https://​doc.libredte.cl/​api/#​!/​Crear_DTE/​post_dte_documentos_generar_pdf|Recuperar el PDF del DTE real]] 
-    - Adicionalmente se debería [[https://​doc.libredte.cl/​api/#​!/​Crear_DTE/​get_dte_dte_emitidos_actualizar_estado_dte_folio_emisor|verificar el estado del DTE envíado al SII]] 
- 
-Para emitir un DTE y obtener su PDF se deben realizar desde el cliente las llamadas del siguiente diagrama de secuencia: 
- 
-{{ :​sowerphp:​api:​libredte_api_emision.png?​nolink |}} 
- 
-Más detalles en el video que explica los [[https://​youtu.be/​hFM7UbQQ9kw?​t=32m43s|servicios web que se deben consumir para emitir un DTE]]. 
- 
-Si se desea utilizar preautenticación para iniciar la sesión de un usuario de LibreDTE desde otra aplicación revisar [[webapp:​preauth|el ejemplo de preauth]]. 
- 
-==== Autenticación ==== 
- 
-La autenticación en la API es realizada a través de [[https://​es.wikipedia.org/​wiki/​Autenticaci%C3%B3n_de_acceso_b%C3%A1sica|HTTP Basic Auth]]. Se deberá utilizar el //hash// asociado a la cuenta del usuario, por ejemplo si el hash es //Bgw// mediante curl se consultará la API de la siguiente forma: 
- 
-    $ curl -u Bgw:X https://​libredte.cl/​api/​dte/:​controlador/:​recurso 
- 
-Después del //hash// es obligatorio colocar //:X// 
- 
-Si se está construyendo la cabecera de autenticación se debe respetar el [[https://​es.wikipedia.org/​wiki/​Autenticaci%C3%B3n_de_acceso_b%C3%A1sica#​Lado_Cliente|formato definido por el protocolo HTTP]]. Un ejemplo de construcción en PHP es: 
- 
-<code php> 
-$header['​Authorization'​] = 'Basic '​.base64_encode($hash.':​X'​);​ 
-</​code>​ 
- 
-Donde la variable ''​$header''​ después se puede usar con cURL desde PHP. 
- 
-==== ¿Qué necesito para poder integrar? ==== 
- 
-Para poder hacer las pruebas de integración se necesita: 
- 
-  - Tener una cuenta Plus en https://​libredte.cl [[https://​libredte.cl/​usuarios/​registrar|regístrate]] y [[https://​libredte.cl/​contacto/​comercial|contrata el servicio Plus]] 
-  - [[https://​libredte.cl/​dte/​contribuyentes/​registrar|Registrar la empresa en la aplicación]] 
-  - [[https://​libredte.cl/​dte/​admin/​firma_electronicas/​agregar|Subir la firma electrónica simple del representante legal]] 
-  - [[https://​libredte.cl/​dte/​admin/​dte_folios|Crear los folios y subir los CAF]] 
- 
-===== SDK ===== 
- 
-Los SDK de LibreDTE facilitan la integración con los servicios web de LibreDTE desde diferentes lenguajes. Actualmente está disponible el soporte para los lenguajes: 
- 
-  * Oficiales (creados por SASCO SpA): 
-    * [[https://​github.com/​LibreDTE/​libredte-sdk-php|PHP]] 
-    * [[https://​github.com/​LibreDTE/​libredte-sdk-python|Python]] 
-    * [[https://​github.com/​LibreDTE/​libredte-sdk-java|Java]] 
-    * [[https://​github.com/​LibreDTE/​libredte-sdk-perl|Perl]] 
-    * [[https://​github.com/​LibreDTE/​libredte-sdk-c|C]] 
-    * [[https://​github.com/​LibreDTE/​libredte-sdk-cpp|C++]] 
-    * [[https://​github.com/​LibreDTE/​libredte-sdk-curl|curl]] 
-  * No oficiales (creados por usuarios de la comunidad): 
-    * [[https://​github.com/​LibreDTE/​libredte-sdk-ruby|Ruby]] 
-    * [[https://​github.com/​LibreDTE/​libredte-sdk-asp|ASP]] 
-    * [[https://​github.com/​LibreDTE/​libredte-sdk-c_sharp|C#​]] 
-    * [[https://​github.com/​LibreDTE/​libredte-sdk-delphi|Delphi]] (no cumple con estándar de SDK, sin ejemplos) 
- 
-Que un SDK para cierto lenguaje no exista no significa que no se pueda hacer la integración,​ sólo significa que LibreDTE oficialmente no ha creado dicho SDK o bien no es parte de los de la comunidad. Por ejemplo, un cliente realizó la integración desde vb6 pero aun no lo tenemos como SDK. 
- 
-Si estás interesado en hacerte cargo de uno de los SDK ya existentes o bien crear uno nuevo revisa la [[:​sdk|siguiente documentación]] y [[https://​libredte.cl/​contacto|¡contáctanos!]]. 
- 
-==== Ejemplo SDK PHP ==== 
- 
-Se muestra el [[https://​github.com/​LibreDTE/​libredte-sdk-php/​blob/​master/​ejemplos/​001-generar_dte.php|ejemplo de generación de un DTE desde PHP]], para ilustrar lo simple que es hacerlo con nuestro SDK: 
- 
-<code php> 
-// crear cliente 
-$LibreDTE = new \sasco\LibreDTE\SDK\LibreDTE($hash,​ $url); 
-// crear DTE temporal 
-$emitir = $LibreDTE->​post('/​dte/​documentos/​emitir',​ $dte); 
-// crear DTE real 
-$generar = $LibreDTE->​post('/​dte/​documentos/​generar',​ $emitir['​body'​]);​ 
-// obtener el PDF del DTE 
-$generar_pdf = $LibreDTE->​post('/​dte/​documentos/​generar_pdf',​ ['​xml'​=>​$generar['​body'​]['​xml'​]]);​ 
-// guardar PDF en el disco 
-file_put_contents('​factura.pdf',​ $generar_pdf['​body'​]);​ 
-</​code>​ 
  
sowerphp/api.1578507282.txt.gz · Última modificación: 2020/01/08 18:14 por delaf