NAV

Documentación de Widget de Factoring

Bienvenido a la documentación del widget de Factoring de Fingo. En esta documentación te explicaremos como embeber Fingo en tu aplicación y como interactuar con fingo a través de tu aplicación. . El widget de Fingo es una manera para que los usuarios de tu plataforma puedan obtener financiamiento a través de fingo sin dejar tu aplicación. Esta integración funciona a través del uso de un iframe el cual desplegará nuestro widget de financiamiento.

PC

Proceso de Autenticación y Comunicación entre Servidor y Cliente con Fingo

Para permitir que los usuarios de tu aplicación interactúen de manera segura con Fingo, es necesario un proceso de autenticación seguro. Con el uso de las llaves de encriptación que te entregará Fingo es necesario que generes los tokens necesarios en tu servidor para poder desplegar el widget de factoring en tu plataforma.

Requisitos para la instalación

Para poder acceder al Widget de factoring necesitas distintas llaves que te proporcionará Fingo:

Llave Explicación
FINGO_SECRET_KEY Llave de encriptación única proporcionada por Fingo.
WIDGET_KEY Llave que indica el widget específico a utilizar (en este caso, para la autenticación del widget de factoring).
AUTH_TOKEN Tu API KEY proporcionada por Fingo.

También es necesario que nos indiques los dominios por los cuales quieres acceder al widget de factoring.

Paso 1: Encriptación de la Información del Usuario en el Servidor

import jwt
import os

payload = {
    "company_info": {
        "rut": "7654321-1",
        "name": "Ejemplo S.A." 
    },
    "user_info": {
        "email": "usuario@example.com", 
        "rut": "12345678-9", 
        "phone_number": "+56912345678", 
        "first_name": "Test", 
        "last_name": "Apellido" 
    },
    "widget_key": "example_widget_key"
}

# Obtener la llave secreta desde las variables de entorno
fingo_secret_key = os.getenv('FINGO_SECRET_KEY')

# Encriptar el payload usando la llave secreta
widget_token = jwt.encode(payload, fingo_secret_key, algorithm='HS256')

Fingo proporciona una llave de encriptación única que debes usar para cifrar la información del usuario y su empresa. Esta encriptación debe realizarse en el servidor antes de enviar la información encriptada al cliente para desplegar el widget de Fingo. Como el propósito de este proceso es que tu usario pueda financiarse con Fingo, se necesita tanto la información de quien está accediendo como la empresa que está utilizando en tu plataforma. De esta manera se le creará la cuenta y luego seguirá el flujo de factoring. A continuación mostramos un ejemplo de código de encriptación y la explicación de las variables.

Para la informaciónd de la empresa es necesario armar un payload con la información de la empresa y del usuario y el widget a solicitar. En este caso, el payload contiene la información de la empresa y del usuario, que se encripta usando la llave secreta proporcionada por Fingo. El payload tiene el formato de un objeto JSON y contiene las siguientes variables:

Variables de la empresa

Para la empresa es necesario el rut de la empresa autenticada y su razón social. Esta información va dentro del parámetro company_info.

Variable Explicación Ejemplo Formato
rut RUT de la empresa 7654321-1 Sin puntos y con guión
name Nombre de la empresa Ejemplo S.A. Texto libre

Variables del usuario

Para el usuario es necesario el email, el rut, el número de teléfono, el nombre y el apellido. Esta información va dentro del parámetro user_info.

Variable Explicación Ejemplo Formato
email Email del usuario usuario@example.com Formato de email
rut RUT del usuario (Opcional) 12345678-9 Sin puntos y con guión
phone_number Número de teléfono del usuario (Opcional) +56912345678 Con código de país y el símbolo +
first_name Nombre del usuario Test Texto libre
last_name Apellido del usuario Apellido Texto libre

Variables del widget

Para el widget es necesario la llave del widget de Fingo. Este campo va en el payload con el nombre widget_key. Este campo nos indica de qué producto se trata

Variable Explicación Ejemplo Formato
widget_key Llave del widget de Fingo test_unkp0WEYDmL0gkPwuC48 Texto libre

En este paso, hemos creado un token JWT que contiene la información del usuario y de la empresa. Este token está encriptado usando la llave secreta proporcionada por Fingo (FINGO_SECRET_KEY).

Paso 2: Desplegar el Widget de Fingo en tu plataforma

import React from 'react';
import Fingo from 'fingo-factoring-widget'; // Versión 2.1.3

// Variables obtenidas desde el servidor
const WIDGET_TOKEN = ''; // Token único para el usuario y la empresa, generado en el servidor
const AUTH_TOKEN = ''; // Tu API KEY proporcionada por Fingo

const SDK = () => {
  // Crear una instancia del widget de Fingo
  const FingoWidget = new Fingo(
    WIDGET_TOKEN,
    AUTH_TOKEN,
  );

  return (
    <div id="buttons-container">
      <button onClick={() => FingoWidget.open()}>Abrir Widget</button>
      <button onClick={() => FingoWidget.close()}>Cerrar Widget</button>
      <div id="iframe-container"></div> {/* Contenedor para el iframe del widget */}
    </div>
  );
};

export default SDK;

Una vez que tienes la información del usuario encriptada, puedes proceder a desplegar el widget de Fingo en tu página web. Para este paso. disponibilizamos un paquete en npm el cual puedes instalar en tu proyecto. Este maneja el despliegue del Iframe. Este paquete es 'fingo-factoring-widget', entrega un objeto llamado Fingo, el cual recibe los parámetros del token generado en el servidor y tu API KEY, luego permite abrir y cerrar el widget de factoring.

El widget siempre buscará desplegarse en el contenedor con id "iframe-container". El flujo de despliegue del widget puede depender de tus requisitos, en este caso quisimos ejemplificar los métodos de abrir y cerrar el widget con botones.

Métodos

El objeto Fingo trae los siguientes métodos:

Entorno de prueba

import React from 'react';
import Fingo from 'fingo-factoring-widget'; // Versión 2.1.3

// Variables obtenidas desde el servidor
const WIDGET_TOKEN = ''; // Token único para el usuario y la empresa, generado en el servidor
const AUTH_TOKEN = ''; // Tu API KEY proporcionada por Fingo

const SDK = () => {
  // Crear una instancia del widget de Fingo
  const FingoWidget = new Fingo(
    WIDGET_TOKEN,
    AUTH_TOKEN,
    'staging' // Entorno de prueba
  );

  return (
    <div id="buttons-container">
      <button onClick={() => FingoWidget.open()}>Abrir Widget</button>
      <button onClick={() => FingoWidget.close()}>Cerrar Widget</button>
      <div id="iframe-container"></div> {/* Contenedor para el iframe del widget */}
    </div>
  );
};

export default SDK;

El widget de Fingo se puede probar en un entorno de desarrollo local. Para esto Fingo te puede entregar llaves de prueba para que puedas probar el widget en tu entorno de desarrollo. Luego para autenticar con nuestro entorno de prueba debes entregar un tercer parámetro en la instancia del widget con el valor staging.