Token OTP
Una vez completada la configuración inicial, el siguiente paso es generar un Token OTP (One-Time Password) desde el backend. Este token permite autenticar y autorizar las sesiones de extracción de datos de manera segura.
Tipos de flujo
Boufin Connect soporta dos tipos de flujo según el tipo de usuario:
- Flujo de persona natural: La configuración base para usuarios individuales que autorizan la extracción de información de sus cuentas personales.
- Flujo de persona jurídica: Utiliza la misma configuración del flujo de persona natural, pero agrega información adicional de la empresa.
Endpoint
Ambos flujos utilizan el siguiente endpoint:
POST https://BACKEND_URL/api/v1/token/otp/create
Los identificadores y credenciales necesarios para este endpoint (Client ID, Widget Config ID y API key) se obtienen del Customer Success Manager de Boufin. Para más detalles, consulte la sección de identificadores y credenciales en la configuración inicial.
Flujo de persona natural
Para usuarios individuales que autorizan la extracción de información de sus cuentas personales.
Ejemplo
curl -X POST https://BACKEND_URL/api/v1/token/otp/create \
  -H "Content-Type: application/json" \
  -H "x-api-key: bf_sk_3f2a1b4c5d6e7f8g9h0i1j2k3l4m5n6o" \
  -d '{
    "products": ["movement", "product-balance"],
    "user": {
      "username": "1111111-1",
      "email": "correo@synaptic.cl"
    },
    "filters": {
      "entities": {
        "include": {
          "types": ["business-bank"]
        }
      }
    },
    "clientId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "widgetConfigId": "d2945J2DzQtHNlXiNFLO"
  }'
Argumentos
- products(array, requerido)- Lista de IDs de las acciones que el usuario autoriza. Para ver los posibles valores, el listado de acciones disponibles.
 
- user(object, requerido)- Datos de identificación del usuario. 
- username(string, requerido) - Identificador del usuario. En el caso de Chile, corresponde al RUT, el cual puede incluir o no puntos y guión, pero debe contener el dígito verificador correspondiente.
- email(string, opcional) - Correo electrónico del usuario.
 
- filters(object, opcional)- Configuración que permite definir los criterios de filtrado para determinar qué entidades estarán disponibles al usuario. Estas son las cuentas que podrá elegir y conectar. 
- entities.include.types(array, opcional) - Especifica los tipos de entidades disponibles para conexión. Valores posibles:- bank,- business-bank,- government,- service,- afp,- exchange.
 
- clientId(string, requerido)- Identificador único del cliente (ver Identificadores y credenciales).
 
- widgetConfigId(string, requerido)- Identificador de configuración de Boufin Connect (ver Identificadores y credenciales).
- Es case sensitive, distingue entre mayúsculas y minúsculas.
 
Flujo de persona jurídica
Para empresas que autorizan la extracción de información de sus cuentas corporativas.
Ejemplo
curl -X POST https://BACKEND_URL/api/v1/token/otp/create \
  -H "Content-Type: application/json" \
  -H "x-api-key: bf_sk_3f2a1b4c5d6e7f8g9h0i1j2k3l4m5n6o" \
  -d '{
    "products": ["movement", "product-balance"],
    "user": {
      "username": "1111111-1",
      "email": "correo@synaptic.cl"
    },
    "company": {
      "id": "12312312-3"
    },
    "filters": {
      "entities": {
        "include": {
          "types": ["business-bank"]
        }
      }
    },
    "clientId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "widgetConfigId": "d352DzQtHNlXi45ANFLt"
  }'
Argumentos
Los argumentos son los mismos que el flujo de persona natural, con la adición de:
- company(object, requerido)- Datos de identificación de la empresa.
- id(string, requerido) - Identificador de la empresa. En el caso de Chile corresponde al RUT.
 
Respuesta
Ambos flujos retornan la siguiente estructura de respuesta:
{
  "data": {
    "otpToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "consentId": "c9ee477f-39d5-4777-9b32-0855badc2138"
  }
}
- otpToken(string)- Token JWT de un solo uso que se utiliza para inicializar Boufin Connect.
 
- consentId(string)- Identificador único del consentimiento generado para esta sesión.