Laudus API para empresas en remoto

Tabla de contenido

Tenemos el agrado de anunciar el estreno de la primera versión de la API de Laudus para nuestros clientes de servicio remoto. El término API seguramente es desconocido para la mayoría, pero intentaremos explicarlo de la manera más sencilla posible.

Una API (Application Programming Interface) es una colección  de funciones relativas a una aplicación (Laudus en nuestro caso) que se exponen de manera pública para que otras aplicaciones las puedan utilizar. De esta manera, desarrollos de terceros pueden acceder a cierta funcionalidad de Laudus de manera automática.
La API puede ser para que accedan otras aplicaciones instaladas en el mismo computador, o para que se pueda acceder a través de internet (son dos tipos de API diferentes, pero el efecto es el mismo, aprovechar ciertas funcionalidades de un software).

Con un ejemplo se comprende mejor: con la API nueva de Laudus, que se puede acceder a través de internet, una tienda online de un cliente puede acceder a sus datos del ERP, consultando stocks, precios, o agregando los pedidos que le llegan por la página web al ERP directamente, sin intervención humana. Y la tienda online y Laudus pueden estar en servidores diferentes, la API es quien consigue que se comuniquen.

API Laudus

La API le sirve a nuestros clientes para conectar sus sistemas externos (e-commerce por ejemplo) con Laudus. Los detalles de la API sólo los utilizan los programadores, no es para cualquier usuario. Pero la ventaja de una API pública es que sus programadores no necesitan de nuestros servicios para conectar los sistemas, simplemente consultan la documentación y hacen uso de la funcionalidad expuesta (consultar stocks, precios, productos, hacer pedidos, …)

La API de Laudus está escrita tomando el estándar de Swagger, lo que permite que sea más fácil de implementar y robusta (grandes empresas como Amazon o IBM cada vez lo implementan más).

Técnicamente, nuestra API está basada en servicios REST, se pueden utilizar inputs JSON o XML, y la documentación se puede consultar en: erp.laudus.cl/LaudusAPI/
Desde la misma documentación puede incluso hacer pruebas, pero deberá tener conocimientos técnicos, insistimos en que la API es sólo para programadores, y suponemos que tienen experiencia en REST y el uso de este tipo de tecnologías.

Por esta misma razón es un producto para el que no damos soporte, ya que no está dentro de nuestro soporte enseñar programación en las diferentes tecnologías, y para ello hemos adoptado el estándar de Swagger, que como se muestra a continuación genera ejemplos desde los que se puede comenzar a trabajar.

Adoptar este estándar conlleva más trabajo para desarrollar la API, pero tiene innumerables ventajas para nuestros clientes. Entre ellas, mayor sencillez de uso, menores tiempos de desarrollo, y por ejemplo se puede utilizar el editor de Swagger, que permite generar automáticamente código para utilizar la API de Laudus en casi 40 lenguajes de programación. Para acceder al editor de Swagger, ingrese en editor.swagger.io e importe la siguiente URL: https://erp.laudus.cl/secureApi.yaml (si no le funciona, guarde la URL en su disco, e impórtelo con \File\Import File en el editor de Swagger).

Laudus API Editor

Para comenzar a utilizar la API le indicamos los primeros pasos:

  1. Su empresa debe estar en el remoto de Laudus, no se puede utilizar la API si tiene Laudus instalado en su empresa. Es lógico, puesto que todo el acceso a la API son servidores que deben estar donde están sus datos.
  2. Debe habilitar el acceso a la API, que por defecto está deshabilitado. Se hace en \Herramientas\Opciones:
    Habilitar API
  3. Debe crear un usuario para que lo utilice la API como login. El login se hace con el RUT de la empresa, y un nombre de usuario y contraseña definidos en la misma (en \Herramientas\Seguridad\Usuarios). Y el usuario se crea en Laudus, no se crea desde la API.
    No es necesario crear un usuario específico para la API, podría hacer un login con el nombre de usuario y contraseña de cualquier usuario, pero es buena práctica dedicar un usuario solo para la API. Y así le puede dar a dicho usuario los permisos que usted estime necesarios. Por ejemplo, puede dejarle ver la información de los productos, pero no actualizar la misma. De esta forma, usted controla lo que puede hacer el usuario de la API (es decir, el sistema externo que se conectará a su ERP).
  4. Tenga en cuenta que para logearse hay que indicar el RUT de la empresa, y un usuario (nombre de usuario y contraseña). Si usted está utilizando alguna base de datos de prueba de su empresa con el mismo RUT, tendrá dos empresas con el mismo RUT, y la API puede tener problemas para identificar cuál es la correcta. Si va a utilizar la API, no tenga más de una copia de la misma empresa con el mismo RUT.
  5. Cada vez que se va a utilizar la API, hay que comenzar con un login con el usuario y contraseña. Este login devuelve un «token» de sesión, que después se tiene que incluir en la cabecera de cada llamada a la API, para tener seguridad de que nadie puede consultar información sin permiso.
    Recomendamos utilizar POST para hacer el login. El método GET se incluye solo para compatibilidad hacia atrás, porque es menos seguro.
  6. Si utiliza la documentación en: erp.laudus.cl/LaudusAPI/
    primero haga un login, que devolverá un token. Copie este token, y haga click en el botón «Authorize» de arriba a la derecha y pegue el token en la casilla «Value». A partir de entonces podrá utilizar todos los métodos de la documentación de manera interactiva contra sus datos reales.
    Allí puede ver los comandos curl que se han utilizado para realizar cada petición, para así utilizarlos de ayuda para su código.
  7. Los tokens caducan a los 60 minutos.
  8. Los encabezados que debe enviar en el request son:
    «token»: un token válido
    «Accept»: valores «application-json», ó «application-xml», depende en qué formato se quieran recuperar los datos de vuelta de la API.
    «Content.Type»: solo se espcifica en los POST, y siempre es «application-json», porque los datos del request siempre se envían en formato JSON
    Por ejemplo:
    token: 9B37E07D879GE0B90
    Accept: application-json
    Content-Type: application-json

Este servicio está disponible desde ahora mismo (2016), sólo para los clientes de remoto (por razones obvias) y no tiene costo para un uso razonable.

Plan Contador de Laudus: Solución para estudios contables

Obtén acceso a precios preferenciales, soporte prioritario y oportunidad de generar ingresos recurrentes.

63 Comentarios

  1. Mis disculpas ya que mi consulta no tiene relación directa con el tema publicado, pero, agradecería a Uds. informar si será posible llevar la contabilidad y cumplir con lo establecido en la reforma tributaria chilena en los plazos legales. ¿Será necesario algún módulo adicional?

  2. Estimados tengo las siguientes duda con su api. Cuanto es el tiempo de vigencia del token para saber cuando debo renovarlo y no tener que esperar recibir el error de que esta vencido. Otra cosa hay algun problema con el api ya estoy tratando de crear una consulta consulta a un producto y tarda casi 30 segundos en realizar estos 5 llamados:
    1)get token
    2)get_productid
    3) contruir el detalle de ese producto:
    3.1) get_stock
    3.2) get_price
    3.3)get_product_detail

  3. Estimados,

    en cual de las plataformas funcionara su API? Si una pagina esta hecha con WooCommerce (WordPress), debería funcionar o hay otra plataforma que sera mejor al respecto de su compatibilidad?

    Atte,
    Alejandro

  4. La funcion user login me esta dando el siguiente error:
    {
    «errorNumber»: -1,
    «errorMessage»: «error formato json»
    }
    Pueden verificarlo por que mi usuario, password, y rut, son correctos. Esta función deberia estar devolviendo el token.

  5. Estimados,
    Logro conectarme a la API con el método users/login, pero me obliga a tener abierta una sesión con ese mismo usuario vía Escritorio Remoto para que la API me deje iniciar sesión y me entregue el token. Caso contrario, ese método retorna {Usuario y/o contraseña incorrecta}.

    Esta dependencia entre login por escritorio remoto y login por API es normal?
    Atentos,
    Saludos

    1. Hola Francisco en Herramientas -> Opciones -> Extranets tienes habilitada la opción Habilitar API de web Services.

      Yo la tengo asi y no me da error cuando el usuario no esta logeado por remoto. Igual tengo un usuario que es de uso exclusivo del api.

  6. Estimados,
    ¿Puedo crear un usuario con conexión a la API que tenga permisos de solo lectura para ciertos elementos? Por ejemplo que solo pueda hacer login, listar productos y stock.
    Saludos.

  7. Estimados buenas, consulta:

    Al momento de probar el login me arroja sin problemas un token, pero luego al hacer una petición (la cual la hago inmediatamente después de recibir el token), por ejemplo pedir la lista de los productos, me arroja el error «Token inválido o expirado», N° 1002.
    Alguna idea de lo que pudiera estar pasando, o yo estar haciendo mal?

    Gracias desde ya,
    Saludos.

  8. Buenas noches,

    Me gustaría saber si disponen de una API mediante la cual se puedan obtener los movimientos contables asociados a un determinado período y otra para las cuentas contables.

  9. Hola.
    Estoy haciendo una consulta desde Excel con Power Query de la siguiente forma:
    https://erp.laudus.cl/api/products/get/stock/13865/warehouseId=001?user=xxxxxxxxxxx&password=xxxxxx&companyVatId=XXXXXXX-X&AcceptZZZZZZZZ

    Mi duda es la siguiente: ¿ Cuál es la sintaxis correcta en 13865/warehouseId=001?user=xxxxxxxxxxx

    Intenté separando con / , ; ? y varias combinaciones más pero solo funciona sin warehouseId=001 y con 13865? pero no se sabe de que bodega es el stock

    Muchas gracias por la ayuda

  10. Hola,
    estoy utilizando https://erp.laudus.cl/LaudusAPI/#/ para probar distintos comandos y en el comando para agregar una linea a una orden existente al probar este con mis datos arroja error -1 «error formato json» con el siguiente comando:
    curl -X POST –header ‘Content-Type: application/json’ –header ‘Accept: application/json’ –header ‘token: XXXXXXXXXXXX’ -d ‘{«lineNumber»:X,»productId»:XXXX,»productCode»:»XXXXXX»,»description»:»XXXXXX»,»quantity»:XX,»unitPrice»:XXXXX,»discountPercentage»:0}’ ‘https://erp.laudus.cl/api/orders/detailLines/new/XXXX’

    Podrian actualizar el formato del JSON pedido en ese comando? ó, en el caso de que me equivoque yo al ingresar el comando, corregirme por este medio? Gracias de antemano

  11. Hola amigos, luego de varias pruebas y carga de datos, pudimos integrar Laudus al sistema interno de la empresa de nuestro cliente.

    La api funciona muy bien y es estable.

    Sería de gran ayuda que tuvieran una forma de notificar los cambios o actualizaciones de la api. Ya que se hace un poco dificil hacerle seguimiento a los cambios.

  12. Hola tengo unas dudas estoy usando la api de sales/invoices para crear una facturación y al generar el pdf sale con estado pendiente, y luego al crear otra facturación para el mismo cliente lo bloquea, como hago para que la facturación no quede en estado pendiente existe un enpoint en swagger que le cambie el estado, y otra pregunta los totales se envían en 0 o yo tengo que calcularlos

  13. Hola, estoy agregando una integración, pero tengo el siguiente error:
    Al realizar el llamado al endpoint production/recipes/list y querer traer la columna ‘discontinued’ y querer hacer el filterBy por esta columna, con el siguiente body:
    {
    «fields»: [
    «recipeId»,
    «discontinued»
    ],
    «filterBy»: [
    {
    «field»: «discontinued»,
    «operator»: «=»,
    «value»: false
    }
    ],
    «options»: {
    «offset»: 0,
    «limit»: 0
    },
    «orderBy»: [
    {
    «field»: «recipeId»,
    «direction»: «DESC»
    }
    ]
    }

    me arroja el error:

    {
    «type»: «error»,
    «message»: «SQL: no se encuentra la columna ‘DISCONTINUADO’.»,
    «status»: 500,
    «code»: «»
    }

    Me podrían ayudar con este error, ya que, mi objetivo es traer solo las recetas que se encuentran activas.

  14. «Estimados, ¿cómo puedo vincular un pedido de venta (sales/orders) con una factura (sales/invoices) utilizando la API? Estoy realizando las solicitudes a través de la documentación de Swagger. ¿Existe algún campo específico que permita establecer la relación entre estos dos recursos?»

Escribir

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

HTML tags y atributos:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Notas recientes

Newsletter

Este campo está oculto cuando se visualiza el formulario