Descarga de PDFs mediante API

 

En este artículo explicamos de modo práctico la forma de descargar PDFs usando la API de Kubbos.

Para ello usaremos la herramienta cURL, y asumimos un entorno Linux. Para otras plataformas o lenguajes de programación habrá que utilizar otras utilidades y/o librerías.

Primero es necesario autenticarse en la plataforma y recuperar la cookie de autenticación que usaremos en las peticiones sucesivas.

Con cURL esto se logra mediante el parámetro cookie-jar:


curl --request POST 'https://www.kubbos.com/api/j_security_check' 
--header 'content-type: application/x-www-form-urlencoded; charset=UTF-8' 
--cookie-jar /ruta/a/fichero_de_cookies 
--data-urlencode 'j_username=usuario' 
--data-urlencode 'j_password=password'

Una vez ejecutemos este comando, deberemos tener la cookie de autenticación guardada en la ruta que le hayamos pasado.

Posteriormente debemos conocer el ID del documento o documentos que queremos descargar. Una forma útil es utilizar las herramientas de desarrollo del navegador web (usualmente pulsando F12) para averiguar el servicio al que nuestro navegador está consultando los datos. Se plantean dos escenarios.

Descarga de un documento

Con las herramientas de desarrollo abiertas accedemos a la edición del documento que queremos imprimir y consultamos la pestaña de actividad de red. Estamos interesados en un servicio que incluya “findById”. En el caso de las facturas es “customerInvoices.findById.kson”. El parámetro “id” con el que se hace la llamada será el ID interno que tenemos que pasar para descargar el PDF.

Descarga de varios documentos

Si abrimos las herramientas de desarrollo y navegamos al listado, en la pestaña de Red vemos que uno de los servicios consultados contiene “list.kson”. Este servicio devuelve el listado paginado que se mestra en la búsqueda. La respuesta es un JSON que contiene los datos de cada uno de los documentos en esa página de resultados. Dentro de dichos resultados deberemos acceder al parámetro “id”.

Ejemplo de descarga

A continuación hacemos la petición de descarga de nuestro PDF. Por ejemplo para facturas (asumiendo que el ID de la factura que queremos descargar es 12345):

curl 'https://www.kubbos.com/api/customerInvoices.print.pdf?id=12345' 
--cookie /ruta/a/fichero_de_cookies 
--output /documentos/factura_12345.pdf

En el caso de querer guardar multiples PDFs, deberemos conocer los IDs de cada uno de nuestros documentos (consultando el servicio de listado) y con esos IDs ir llamando al servicio para recuperar los datos.

Para conocer los servicios de descarga de otros documentos (Albaranes, Pedidos, etc.) podemos utilizar las herramientas de desarrollo del navegador mientras accedemos a los distintos listados.

Escribir un comentario

Tu email no será publicado. Los campos marcados con (*) son requeridos




This site uses Akismet to reduce spam. Learn how your comment data is processed.