¿Como integrarse al proyecto?

 

Esta impulsado desde el Instituto de Innovación y Justicia de la Junta Federal de Cortes de Argentina (JUFEJUS) y actualmente participan las áreas de tecnología de los poderes judiciales.

Dado que es un proyecto abierto y participativo podrán involucrarse tanto organismos públicos como privados.

¿Que hay en este repositorio?


En este repositorio vas a poder descargar las librerías de integración con el BUS Federal de Justicia y código de ejemplo sobre como integrarlas a tu sistema de gestión. Actualmente solo tenemos librerías de integración para C# pero próximamente tendremos disponibles librerías para JAVA, PHP, Python y NodeJS. Hasta tanto tengamos disponibles todas las librerías y si no utilizas C#, podés integrar accediendo directamente a la API REST del BUS.

Para eso tenemos disponible un ambiente de SandBox pensado y desplegado para que todos los interesados puedan desarrollar y probar sus integraciones.

Para participar existen 2 canales abiertos 

  • Correo Electrónico:  This email address is being protected from spambots. You need JavaScript enabled to view it.
  • Telegram: https://t.me/busfederal_tech
    (Grupo de telegram para la comunidad técnica, la idea es intercambiar ideas respecto de la integración con el BUS Federal).


¿Como accedo al sandbox del BUS Federal?


Una vez que hayas gestionado las credenciales de acceso podes conectarte a la API de integración en esta URL: https://api-borde-qa.bus-justicia.org.ar y también podés importar las deficiones de OpenAPI desde esta URL https://api-borde-qa.bus-justicia.org.ar/swagger/v1/swagger.json

Desde la API de integración vas a poder acceder a los métodos para la gestión de dependencias de tu organización (Altas, Bajas y Modificaciones), envío y recepción de documentos electrónicos y descarga del comprobante de la transacción realizada.

El organismo principal lo definimos desde el backend del BUS como parte del aprovisionamiento de credenciales, una vez definido vas a tener la posibilidad de dar de alta tus propias dependencias y de descargarte los datos de los otros organismos y dependencias definidos en el BUS, todo esto lo vas a poder hacer accediendo a los métodos de organismos y dependencias de la API del BUS.

Algunos tips para integrar con el BUS Federal de Justicia


Toda la interacción de tu sistema de gestión con el BUS Federal de Justicia se va a instrumentar con la interface API REST autenticada, esta interface es sincrónica por definición, pero tenés que tener en cuenta que la operación interna del BUS es completamente asincrónica y el proceso de envió de un documento electrónico a otro organismo a través del BUS se va a dar en dos pasos, y hasta que no esté completo el segundo paso no vas a saber si la operación fue exitosa o no, de hecho puede ser que la transacción demore hasta horas en finalizar ya que utilizamos dependencias externas al BUS que pueden adicionar demoras importantes al proceso.

Para enviar un documento


El primer paso consiste en enviarle el documento al BUS para eso vas a invocar el método REST/enviar pasando en el cuerpo del mensaje la estructura de datos que podes obtener de la definición OpenAPI de nuestro servicio. Una vez que envíes correctamente el documento, el método enviar te va a devolver un código de operación denominado uuid esto identificador único te va a permitir identificar esta transacción unívocamente. Hasta este punto, la transacción puede ser rechazada por lo que no la tenés que dar por concluida, sino que recomendamos persistir la transacción en un estado PENDIENTE o similar. Una vez que la transacción hay sido finalizada, ya sea realizando el envío del documento o rechazándolo el BUS va a emitir un TICKET de comprobante de la transacción. Este ticket no es mas que un documento electrónico estructurado en formato JSON que contiene el detalle de los pasos intermedios realizados por el BUS, los hashes de los documentos y estructuras de datos del mensaje enviado y los datos de sellado de la transacción en el Blockchain Federal Argentina, esto último para que en el futuro puedas utilizar los datos del ticket para acreditar que la operación realmente sucedió. Para poder finalizar y cerrar la operación de envío, tenés que descargar del BUS un ticket cuyo valor en el campo uuidOperacion coincida con el código uuid que te devolvimos en el paso anterior. Para acceder a los tickets tenés que invocar el método /ticket y pasarle como parámetro el código uuid. Una vez que tengas el ticket, vas a saber si fue exitoso o no y en este último caso vas a tener acceso al motivo del RECHAZO, de una forma u otro ya tenés lo necesario para marcar la transacción como finalizada. En caso de que por algún motivo nunca recibas el ticket, vas a poder usar el código uuid para hacer el reclamo y que nosotros podamos rastrear la transacción.

Para recibir un documento


Otra implementación a realizar como parte de la integración es la de recepción de documentos electrónicos por parte de otros organismos integrados con el BUS, como explicamos antes, la única forma que tenes de darte cuenta si te llego un documento es a través de los tickets. Para eso podés generar un loop con un delay (en la próxima versión vamos a incluir un aviso tipo PUSH) que busque nuevos tickets emitidos para tu organismo, para esto podes llamar el método /ticket/nuevos de la interface REST, este método te va a devolver todos los tickets con la propiedad leído en false. Iterando sobre la colección de tickets que te devuelve el método podés extraer el identificador uuid y usarlo para obtener el documento.

La interface REST tiene varias opciones para obtener el documento y los datos asociados (en caso que los tenga):

  • BASE64: Invocando el método /documento vas a obtener como resultado el contenido del documento en formato BASE64.
  • Binario: Invocando el método /documento/binario vas a obtener el documento en este formato.
  • Link de descarga: Invocando el método /documento/link vas a obtener un enlace de un solo uso que te va a permitir descargar el documento de nuestro repositorio de documentos electrónicos.

Cuando descargues el documento u obtengas el enlace, vamos a marcar el ticket como leído, así ya no se va a informar en las próximas llamadas. Igualmente, en la interface REST hay métodos que te van a permitir recuperar tickets en función de varios campos de filtro. Vale aclarar que el objeto del BUS Federal no es almacenar los documentos, simplemente es asegurar que el documento se entregue, que cumpla con un conjunto mínimo de políticas y que quede un registro trazable de la transacción, es por eso que una vez que descargues el documento u obtengas el link, el BUS va a iniciar un garbage collector y eliminara el documento del repositorio unos días después de descargado. Por último, y para que sea más simple la realización de pruebas durante la implementación de la integración, tenemos un BOT que responde y envía documentos electrónicos por demanda. De esta forma no dependes de nada para generarte documentos o para responder los que envías. Para usar el BOT podés hacerlo de dos formas, una es enviando un documento electrónico al código de organismo PDIBFJ-AR-B-PUB y al código de dependencia echo-1, en un lapso no mayor a 30 segundos deberás recibir un ticket de documento electrónico enviado como respuesta al que vos enviaste, en este caso el campo uuid_respuesta del ticket va a coincidir con el código uuid del documento que enviaste originalmente. El BOT de documentos también tiene un endpoint REST autenticado que te permite disparar el envío de un documento que no esté relacionado con ninguna transacción previa, para esto podes invocar el método /api/enviar_documento?organismo=[tu_codigo_organismo]&dependencia=[codigo_dependencia] en este caso vas a recibir el ticket de documento enviado inmediatamente. La URL del BOT en el ambiente de sandbox para la integración es https://documentbot-qa.bus-justicia.org.ar

BOT de documentos electrónicos


Este BOT de documentos electrónicos tiene como única función la de generar envíos y respuestas de documentos electrónicos para facilitar las tareas de integración con el BUS. Hay dos formas de usar este BOT.

Solicitar el envío de documentos electrónicos


Para solicitar que el BOT te envíe un documento electrónico de prueba a una dependencia podes invocar el metodo REST autenticado /api/enviar_documento y pasarle como parámetros el código de organismo y el código de dependencia de destino. Por ejemplo: https://documentbot-qa.bus-justicia.org.ar/api/enviar_documento?organismo=[codigo_de_organismo]&dependencia=[codigo_dependencia]

Responder el envío de un documento


Para probar la respuesta a documentos poder enviar un documento electrónico al organismo PDIBFJ-AR-B-PUB y al código de dependencia echo-1 y en un lapso no mayor a las 30 segundos el BOT te va a generar un documento de respuesta.

Estado del servicio


Para verificar si el BOT esta funcionando podes invocar el metodo /status/ping y debería devolverte un mensaje pong.

La URL del BOT en el ambiente de sandbox es https://documentbot-qa.bus-justicia.org.ar y el mecanismo de autenticación es el mismo que para la API de borde del BUS.

logo bus-justicia