Saltar al contenido principal

Servicios de Automatización Financiera Widget (1.2.0)

Widget

A continuación se describen los diferentes endpoints, así como también el flujo para implementar el Widget

Que necesita el Widget

⚠️ Para realizar el siguiente flujo se necesita una API KEY.

⚠️ URL de Boufin Widget.

TL;DR:

  • Acciones que debes hacer tu: 👨‍💻
  • Acciones que hacemos nosotros: 🤖
  1. 👨‍💻 -> Desde tu servidor debes obtener un 🔑 Token Query y 🔒 Token OTP utilizando una API KEY (⚠️👮 Cuidado de no exponer la Api Key en tu aplicación pública, esta debe ser resguardada y usada solo en ambiente de backend).
  2. 👨‍💻 -> Entregas el 🔒 Token OTP a tu aplicacion (web o mobile) para que levante el Widget siguiendo estas instrucciones.
  3. 🤖 -> El Widget utiliza el 🔒 Token OTP para autorizar la sesión y desplegar la interfaz para que el usuario final pueda realizar el flujo de extracción.
  4. 🤖 -> Al finalizar un proceso de extracción, se enviará a tu aplicación mediante post-message el taskId.
  5. 👨‍💻 -> Desde tu servidor utilizando el 🔑 Token Query del punto 1 y el taskId debes consultar el resultado de la extracción a la API Boufin.
    • 5.1. Si consultas el resultado usando el taskId enviado al terminar el proceso de extracción (evento onSuccess), Los datos extraidos estarán disponibles inmediatamente al finalizar el flujo del Widget.
    • 5.2. Si consultas el resultado usando el taskId antes de que el proceso de extracción haya terminado (evento onStart), la API Boufin retornará un estado pending o running durante el tiempo que dure el proceso de extracción. Si hay un error durante el proceso de extracción, la API Boufin retornará el estado correspondiente (wrong_login o error).

A continuación puedes ver como funciona la integración del Widget.

Widget vertical flow

Autenticación

El servicio de widget utiliza los siguientes mecanismos de autenticación:

  • API Key: Token de autenticación para usar las APIs de Boufin
  • 🔒 Token OTP: Token de un solo uso para autenticar la sesión de uso del widget
  • 🔑 Token Query: Token para obtener el resultado de una tarea de extracción iniciada por el widget

apiKey

Autenticarse enviando la API_KEY asociada a la organización.

Security Scheme Type: API Key
Header parameter name: X-API-Key

tokenQuery

Autenticarse enviando el tokenQuery obtenido previamente.

Security Scheme Type: HTTP
HTTP Authorization Scheme: bearer
Bearer format: Bearer

tokenOTP

Autenticarse enviando el tokenOTP de un solo uso obtenido previamente.

Security Scheme Type: HTTP
HTTP Authorization Scheme: bearer
Bearer format: Bearer

Token

Obtención de Tokens

Permite obtener el token de autenticación para el uso del widget (tokenOtp) y el token para consultar el resultado de una tarea de extracción (tokenQuery).

Authorizations:
apiKey
Request Body schema: application/json

configuración

name
required
string

Nombre del usuario

username
required
string

rut o email del usuario

flowType
required
string (Token)
Enum: "extraction:bill" "extraction:tef" "extraction:update-salary" "extraction:investment" "..."

Tipo de flujo de extracción (Ver todos los tipos de flujo disponibles)

Responses

Request samples

Content type
application/json
{
  • "username": "11.111.111-1",
  • "name": "Juan Perez",
  • "flowType": "extraction:bill"
}

Response samples

Content type
application/json
{
  • "tokenOtp": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.ZGF0YQ==.SiGQMoPq9LK4Es44h",
  • "tokenQuery": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.ZGF0YQ==.SiGQMoPq9LK4Es44hidp6Vy4t9UtogVnLmPALLg1IqLtqZujGWCw6HBG424Fx0xHPziEkTPdh2REmTCL5f"
}

🔒 Validar Token OTP

Verifica que el Token OTP sea válido

Authorizations:
tokenOTP

Responses

Request samples

curl -X POST "https://${URL}/api/v1/auth/otp/is-valid-token"  \
  -H "Authorization: Bearer ${TOKEN_OTP}"

Response samples

Content type
application/json
{
  • "message": "Jwt is expired"
}

🔑 Validar Token Query

Verifica que el Token Query sea válido

Authorizations:
tokenQuery

Responses

Request samples

curl -X POST "https://${URL}/api/v1/auth/otp/is-valid-token"  \
  -H "Authorization: Bearer ${TOKEN_QUERY}"

Response samples

Content type
application/json
{
  • "message": "Jwt is expired"
}

Extracción

Consultar el estado del proceso de extracción

Consultar el estado y/o obtener los resultados de la extracción.

Authorizations:
tokenQuery
path Parameters
taskId
required
string

ID de la tarea

Responses

Request samples

curl "https://${URL}/api/v1/tasks/${TASK_ID}" \
  -H "Authorization: Bearer ${TOKEN_QUERY}"

Response samples

Content type
application/json
Example

Extracción exitosa

{
  • "taskStatus": "success",
  • "taskStatusCode": 200,
  • "results": {
    }
}