NAV Navbar
cURL

Introducción

La API de Fintoc

¡Bienvenido a Fintoc! 👋 Acá encontrarás todo lo que necesitas para poder utilizar nuestra API. Intentamos mantener la documentación lo más amigable posible, pero si aún te quedan dudas nos puedes contactar en [email protected]. ¡Respondemos rápido! ⚡️

Base URL

https://api.fintoc.com

La API de Fintoc sigue el estilo REST. Todas las respuestas son en JSON con códigos HTTP para indicar éxito o error. Todos los requests tienen que incluir el Content-Type como application/json y el body tiene que ser un JSON válido.

Conceptos

Te recomendamos que entiendas los siguientes conceptos ya que los usaremos en el resto de la documentación.

Un Link representa una credencial bancaria, es decir, el rut y contraseña que usas para hacer login en el banco. El Link permite acceder a las cuentas de esa credencial.

Por ejemplo, si se tiene una cuenta corriente y una cuenta de ahorro en el Banco de Chile, la creación de ese Link —o linkeo 👀— permitirá realizar acciones sobre cada una de esas cuentas.

Cada vez que creas un Link, te entregaremos un token de acceso, link_token, asociado a ese Link. Desde ese momento en adelante, cada vez que quieras consultar los balances o movimientos de ese Link deberás ocupar ese access token. Imagina ese token como una contraseña particular de cada Link 🔐.

API Key

La API Key es la llave que usarás para autenticar las llamadas a la API. En la siguiente sección explicamos más en detalle su uso. Puedes ver y administrar tus API keys en el Dashboard de Fintoc.

Existen 2 tipos de API keys:

- Public Key: Es la llave que usarás para hacer las integraciones con el Widget. Tiene el prefijo pk y es única para tu cuenta.

- Secret Key: Es la llave que usarás para consultar la API de Fintoc. Tiene el prefijo sk y puedes tener más de una. Para más información sobre como usarla revisa Autenticación.

Autenticación

Authenticated request

curl -X GET https://api.fintoc.com/v1/links \
-H 'Authorization: sk_test_UeqADW-sQAoeWV2Bbhw_89NRVuRQrZy9MRZD5fTVzJKoxt'

Fintoc ocupa API Keys para autenticar requests. A estas API Keys las llamamos Secret Keys y tienen muchos privilegios, ¡así que asegúrate de mantenerlas seguras! 👮 . No compartas tus Secret Keys en lugares públicos como en Github, o código que corra del lado del cliente.

La API espera que todas las llamadas estén autenticadas con una Secret Key en el Authorization header:

Authorization: YOUR_SECRET_KEY

Ambiente Test

Fintoc tiene un ambiente de test para que puedas probar la API sin necesidad de conectar una cuenta real.

Las API Keys del ambiente de test las encuentras en el Dashboard. Son las que tienen el prefijo sk_test_API_KEY y pk_test_API_KEY.

Las credenciales para conectar una cuenta en el ambiente de test son:

Usuario Contraseña
41614850-3 jonsnow
40427672-7 jonsnow
41579263-8 jonsnow

Paginación

Link Header

Link: <https://api.fintoc.com/v1/links?page=1>; rel="first",
  <https://api.fintoc.com/v1/links?page=2; rel="next"

Por defecto Fintoc pagina a 30 items los requests que retornan una lista de objetos —como listar movimientos. La API retorna la información de paginación en el Link header, siguiendo el estándar RFC. Atento que Link header no tiene relación con los Links de Fintoc. Es solo un alcance de nombres 😕.

Para cada request paginado, la API retorna en el Link header la información de paginación. Este header contiene uno o más links que llevan a las distintas páginas.

Los posibles valores de rel son:

Nombre Descripción
next el link que lleva a la siguiente página.
last el link que lleva a la última página.
first el link que lleva a la primera página.
prev el link que lleva a la página anterior.

Las siguientes librerías parsean el Link header por ti:

Lenguaje Librería
Python requests
Ruby Nitlink
JavaScript parse-link-header

Librerías

Fintoc tiene disponibles los siguientes clientes:

¡Contribuciones de la comunidad son más que bienvenidas! Así que si quieres aportar con un PR o un cliente en un lenguaje que no tengamos, lo aceptamos feliz 🙌

Instituciones 🏦

Bancos

Los bancos disponibles actualmente son:

Banco País Persona Empresa Movimientos históricos
Banco de Chile Chile 24 meses
Banco Santander Chile 24 meses
Banco Itaú Chile 24 meses
Banco BICE Chile 24 meses
Banco Scotiabank Chile 24 meses
Banco BCI (Empresarios y 360 Connect) Chile 3 meses
Banco Estado Chile 3 meses

Estamos trabajando para agregar cada día más bancos. Si necesitas un banco con urgencia, escríbenos a [email protected].

Monedas

Representación de dinero como entero

A CLP account example

{
    "id": "nMNejK7BT8oGbvO4",
    "name": "Cuenta Corriente USD",
    "official_name": "Cuenta Corriente Moneda Dolar",
    "number": "9530516286",
    "holder_id": "134910798",
    "holder_name": "Lannister SpA",
    "type": "checking_account",
    "currency": "CLP",
    "balance": {
        "available": 150980,
        "current": 150980,
        "limit": 150980
    }
}

A USD account example

{
    "id": "nMNejK7BT8oGbvO4",
    "name": "Cuenta Corriente USD",
    "official_name": "Cuenta Corriente Moneda Dolar",
    "number": "9530516286",
    "holder_id": "134910798",
    "holder_name": "Lannister SpA",
    "type": "checking_account",
    "currency": "USD",
    "balance": {
        "available": 15950,
        "current": 15950,
        "limit": 15950
    }
}

La API de Fintoc devuelve todos los montos de monedas en su menor unidad posible, sin decimales (como entero).

En el caso del peso chileno, la menor unidad es un peso, por lo que $1000 CLP Fintoc lo representa con el entero 1000.

En el caso del dólar, la menor unidad es un centavo por lo que $10.50 USD Fintoc lo representa con el entero 1050.

A la derecha mostramos una cuenta CLP y USD con su respectivo balance. La cuenta CLP tiene disponible $150.980 CLP, mientras que la cuenta USD tiene disponible $159,50 USD.

Fintoc por ahora soporta cuentas CLP, USD y EUR. A continuación mostramos un ejemplo de cada moneda:

Moneda Monto Monto sin decimal
CLP $1000 CLP 1000
USD $10,50 USD 1050
EUR €10,50 EUR 1050

Links

Para poder consultar cuentas bancarias, tienes que crear un Link. Un Link se compone con las credenciales que se usan para ingresar a la página web del banco. En caso de que se quiera conectar una cuenta empresa, entonces estas credenciales además deben incluir el RUT de la empresa.

Al crear un Link, estás linkeando esas credenciales bancarias con Fintoc.

Link object

{
    "id": "nMNejK7BT8oGbvO4",
    "username": "183917137",
    "link_token": "nMNejK7BT8oGbvO4_token_GLtktZX5SKphRtJFe_yJTDWT",
    "holder_type": "individual",
    "created_at": "2020-04-22T21:10:19.254Z",
    "institution": {
        "country": "cl",
        "id": "cl_banco_de_chile",
        "name": "Banco de Chile"
    },
    "accounts": [
        {
            "id": "Z6AwnGn4idL7DPj4",
            "name": "Cuenta Corriente",
            "official_name": "Cuenta Corriente Moneda Local",
            "number": "9530516286",
            "holder_id": "134910798",
            "holder_name": "Jon Snow",
            "type": "checking_account",
            "currency": "CLP",
            "balance": {
              "available": 7010510,
              "current": 7010510,
              "limit": 7510510
            }
        },
        {
            "id": "BO381oEATXonG6bj",
            "name": "Línea de Crédito",
            "official_name": "Linea De Credito Personas",
            "number": "19534121467",
            "holder_id": "134910798",
            "holder_name": "Jon Snow",
            "type": "line_of_credit",
            "currency": "CLP",
            "balance": {
              "available": 500000,
              "current": 500000,
              "limit": 500000
            }
        }
    ]
}

Atributo Tipo Descripción
id string Identificador único del Link.
username string Nombre de usuario de la credencial bancaria. En Chile es un RUT.
link_token string Token que se usa para consultar las cuentas del Link.
El link_token solo se muestra al crear un Link, después el campo es null. Ve la sección de crear link para más información.
holder_type string Indica si el dueño de la cuenta es persona (individual) o empresa (business).
created_at string Fecha de creación del Link en ISO 8601.
institution object Institución asociada al Link.
accounts array Cuentas asociadas al Link. Ver el objeto Account para más detalles.
Este campo es null cuando se listan los links.

Puedes crear un Link por el Dashboard de Fintoc si quieres linkear una cuenta propia, o integrar nuestro Widget si quieres que tus usuarios puedean linkear sus cuentas desde tu página web o aplicación móvil.

Si quieres crear un Link de tu propio cuenta, te recomendamos que lo crees en el Dashboard. En el Dashboard te aparecerá el mismo formulario que el de nuestro Widget. Una vez que crees el Link, te aparecerá la información del Link que creaste, junto con su link_token.

Integrando el Widget

Widget URL

https://app.fintoc.com/widget?public_key=YOUR_PUBLIC_KEY&holder_type=business&redirect_to=https://domain.com&webhook_url=https://domain.com/webhook

Widget Iframe

// With shadows
<iframe
  src="https://app.fintoc.com/widget-iframe?public_key=YOUR_PUBLIC_KEY&holder_type=business&redirect_to=https://domain.com&webhook_url=https://domain.com/webhook"
  width="385"
  height="525">
</iframe>

// Without shadows
<iframe
  src="https://app.fintoc.com/widget-iframe?public_key=YOUR_PUBLIC_KEY&holder_type=business&redirect_to=https://domain.com&webhook_url=https://domain.com/webhook"
  width="360"
  height="500">
</iframe>

Si quieres que tus usuarios puedan conectar su cuenta a Fintoc desde tu página web o aplicación móvil, entonces debes integrarte con nuestro Widget. Para hacerlo, debes redireccionar al usuario a la URL del widget, o también puedes incluirlo dentro de un iframe en tu aplicación. De ambas formas, la URL del widget debe incluir los siguientes query params:

Parámetro Tipo Descripción
public_key string La Public Key asociada a tu cuenta. La puedes encontrar en el Dashboard.
holder_type string Indica si se quiere linkear una cuenta de persona natural (individual) o empresa (business).
redirect_to string Dirección a la que redireccionaremos al usuario cuando finalice el flujo del Widget. Debe ser una dirección HTTPS.
El flujo del Widget finaliza cuando el usuario crea el Link, o cuando el usuario sale del Widget.
webhook_url string Endpoint al que Fintoc debe enviar el link_token una vez que se haya creado el Link. Debe ser una dirección HTTPS.

El Widget de Fintoc se encarga de todo el flujo de creación de un Link. Valida que las credenciales estén correctas e indica el error al usuario si es que corresponde.

User exited redirect URL example:

https://yourdomain.com?result=user_exited

Cuando el usuario termine el flujo del Widget, el Widget redirigirá al usuario a la URL indicada en el parámetro redirect_to. El flujo del Widget termina cuando el usuario crea correctamente el Link, o si es que el usuario cancela la creación del Widget. Cuando Fintoc redirige al usuario, se incluye el siguiente query param:

Parámetro Tipo Descripción
result string Indica el resultado del intento de linkear una cuenta por el Widget. Puede ser link_created si se creó un Link o user_exited si es que el usuario canceló el formulario.

Link created successfully redirect URL example:

https://yourdomain.com?result=link_created&link_id=jqQ2jNbao9wna&institution_id=cl_banco_de_chile&institution_name=Banco de Chile&username=241516652&holder_id=791028876&holder_type=business

Además, si el usuario crea correctamente el Link, entonces los query params incluyen también la información del Link:

Parámetro Tipo Descripción
link_id string Identificador único del Link creado.
username string Nombre de usuario de la credencial bancaria. En Chile es un RUT.
holder_type string Indica si el dueño de la cuenta es persona (individual) o empresa (business).
holder_id string Identificador del titular de la cuenta. En Chile es un RUT.
institution_id string Indica el id de la institución bancaria del Link creado. Ve las institutiones disponibles.
institution_name string Indica el nombre de la institucion bancaria del Link creado.

Link created webhook event

{
    "type": "link.created",
    "data": {
        "id": "nMNejK7BT8oGbvO4",
        "username": "183917137",
        "link_token": "nMNejK7BT8oGbvO4_token_GLtktZX5SKphRtJFe_yJTDWT",
        "holder_type": "individual",
        "created_at": "2020-04-22T21:10:19.254Z",
        "institution": {
            "id": "cl_banco_de_chile",
            "name": "Banco de Chile",
            "country": "cl"
        }
    }
}

En el momento que se crea el Link por el Widget, Fintoc envía por un webhook el nuevo Link con su respectivo link token. El Link incluido en el webhook no tiene las cuentas. Esto lo hacemos por seguridad. Para obtener las cuentas, debes ocupar el link_token para ver el detalle del Link.

Al crear un Link, se devolverá en el objeto de respuesta un link_token. El link_token te servirá para consultar el link. Si quieres ver el balance o movimientos de las cuentas del Link, necesitas el token de acceso.

Es importante que guardes ese link_token, ya que solo se mostrará al crear el Link. Si pierdes el link_token no podrás acceder a los datos del Link, y vas a tener que crear otro.

Para mayor seguridad, te recomendamos que guardes el access token de forma segura. Intenta tomar los mismos resguardos que tomarías si fuera una credencial 👮.

Actualización de movimientos

Una vez que se linkea una credencial bancaria, Fintoc actualizará periódicamente los movimientos asociadas a las cuentas de ese Link.

GET /v1/links/:link_token

curl https://api.fintoc.com/v1/links/Z6AwnGn4idL7DPj4_token_GLtktZX5SKphRtJFe_yJTDWT
  -H "Authorization: sk_test_r5fMthnURT8sEMugWNNJo9s1QoovBYwSzTYxaG"

Response

{
    "id": "nMNejK7BT8oGbvO4",
    "username": "183917137",
    "link_token": null,
    "holder_type": "individual",
    "created_at": "2020-04-22T21:10:19.254Z",
    "institution": {
        "country": "cl",
        "id": "cl_banco_de_chile",
        "name": "Banco de Chile"
    },
    "accounts": [
        {
            "id": "Z6AwnGn4idL7DPj4",
            "name": "Cuenta Corriente",
            "official_name": "Cuenta Corriente Moneda Local",
            "number": "9530516286",
            "holder_id": "134910798",
            "holder_name": "Jon Snow",
            "type": "checking_account",
            "currency": "CLP",
            "balance": {
              "available": 7010510,
              "current": 7010510,
              "limit": 7510510
            }
        },
        {
            "id": "BO381oEATXonG6bj",
            "name": "Línea de Crédito",
            "official_name": "Linea De Credito Personas",
            "number": "19534121467",
            "holder_id": "134910798",
            "holder_name": "Jon Snow",
            "type": "line_of_credit",
            "currency": "CLP",
            "balance": {
              "available": 500000,
              "current": 500000,
              "limit": 500000
            }
        }
    ]
}

Obtén el detalle de un Link. Provee el link_token asociado a ese Link , y Fintoc te retornará el detalle —incluyendo las cuentas asociadas y respectivos balances—.

Request HTTP

GET /v1/links/:link_token

GET /v1/links

curl https://api.fintoc.com/v1/links

Response

[
    {
        "id": "BQ62Rk5Vi4LNn5j4",
        "username": "210337474",
        "holder_type": "business",
        "created_at": "2020-05-15T18:30:20.213Z",
        "accounts": null,
        "institution": {
            "id": "cl_banco_santander",
            "name": "Banco Santander",
            "country": "cl"
        },
        "link_token": null
    },
    {
        "id": "NYa61GeEiwGOmvQe",
        "username": "210337474",
        "holder_type": "business",
        "created_at": "2020-05-15T18:22:07.692Z",
        "accounts": null,
        "institution": {
            "id": "cl_banco_de_chile",
            "name": "Banco de Chile",
            "country": "cl"
        },
        "link_token": null
    },
]

Lista todos los Links que has creado. Los Links se retornan ordenados, con el último Link creado primero.

Request HTTP

GET /v1/links

Elimina un Link. Provee el link_token asociado a ese Link, y Fintoc eliminara todo registro asociado a ese Link.

Request HTTP

DELETE /vi/links/:link_token

Cuentas

Objeto Account

Account object

{
    "id": "nMNejK7BT8oGbvO4",
    "name": "Cuenta Corriente",
    "official_name": "Cuenta Corriente Moneda Local",
    "number": "9530516286",
    "holder_id": "134910798",
    "holder_name": "Jon Snow",
    "type": "checking_account",
    "currency": "CLP",
    "balance": {
        "available": 500000,
        "current": 500000,
        "limit": 500000
    },
    "refreshed_at": "2020-11-18T18:43:54.591Z"
}

Atributo Tipo Descripción
id string Identificador único de la cuenta.
name string Nombre estandarizado de la cuenta.
official_name string Nombre de la cuenta dado por la institución.
number string Número de la cuenta.
holder_id string Identificador del dueño de la cuenta. En Chile es un RUT.
holder_name string Nombre del dueño de la cuenta.
type string Tipo de cuenta. Ve los tipos disponibles.
currency string Código ISO de divisa de 3 letras.
balance object Balance de la cuenta.
refreshed_at string La última vez que fuimos al banco a actualizar la cuenta. Es una fecha en formato ISO 8601.

Objeto balance

Atributo Tipo Descripción
available integer Monto disponible de la cuenta, de acuerdo a lo indicado por el banco.
En las cuentas de tipo checking_account, savings_account, sight_account y rut_account, available no incluye el monto de la línea de crédito en caso de que la cuenta tenga.
En las cuentas de tipo line_of_credit, generalmente available es igual al límite de la línea, menos el monto contable.
current integer Monto contable de la cuenta .
limit integer Para cuentas de tipo checking_account, savings_account, sight_account y rut_account, limit es igual al monto disponible más el monto disponible de la línea de crédito asociada, si es que tiene una.
Para cuentas de tipo line_of_credit, limit es el monto aprobado de la línea.

Tipos de cuenta

Tipo Descripción
checking_account Cuenta corriente.
savings_account Cuenta de ahorro.
sight_account Cuenta vista.
rut_account Cuenta RUT. Solo disponible en Chile.
line_of_credit Línea de crédito.

Ver detalle de cuenta

GET /v1/accounts/:id

curl https://api.fintoc.com/v1/accounts/nMNejK7BT8oGbvO4?link_token=Z6AwnGn4idL7DPj4_token_GLtktZX5SKphRtJFe_yJTDWT
  -H "Authorization: sk_test_r5fMthnURT8sEMugWNNJo9s1QoovBYwSzTYxaG"

Response

{
    "id": "nMNejK7BT8oGbvO4",
    "name": "Cuenta Corriente",
    "official_name": "Cuenta Corriente Moneda Local",
    "number": "9530516286",
    "holder_id": "134910798",
    "holder_name": "Jon Snow",
    "type": "checking_account",
    "currency": "CLP",
    "balance": {
        "available": 500000,
        "current": 500000,
        "limit": 500000
    },
    "refreshed_at": "2020-11-18T18:43:54.591Z"
}

Obtén el detalle de una cuenta asociada a un Link. Provee el id único de la cuenta y el link_token que se te entregó al crear el Link, y Fintoc te retornará el detalle de la cuenta.

Request HTTP

GET /v1/accounts/:id

Parámetro Descripción
link_token El access token del Link asociado a la cuenta.

Listar cuentas

GET /v1/accounts

curl https://api.fintoc.com/v1/accounts?link_token=Z6AwnGn4idL7DPj4_token_GLtktZX5SKphRtJFe_yJTDWT
  -H "Authorization: sk_test_r5fMthnURT8sEMugWNNJo9s1QoovBYwSzTYxaG"

Response

[
    {
        "id": "nMNejK7BT8oGbvO4",
        "name": "Cuenta Corriente",
        "official_name": "Cuenta Corriente Moneda Local",
        "number": "9530516286",
        "holder_id": "134910798",
        "holder_name": "Jon Snow",
        "type": "checking_account"
        "currency": "CLP",
        "balance": {
          "available": 7010510,
          "current": 7010510,
          "limit": 7510510
        },
        "refreshed_at": "2020-11-18T18:43:54.591Z"
    },
    {
        "id": "BO381oEATXonG6bj",
        "name": "Línea de Crédito",
        "official_name": "Linea De Credito Personas",
        "number": "19534121467",
        "holder_id": "134910798",
        "holder_name": "Jon Snow",
        "type": "line_of_credit"
        "currency": "CLP",
        "balance": {
          "available": 500000,
          "current": 500000,
          "limit": 500000
        },
        "refreshed_at": "2020-11-18T18:43:54.591Z"
    }
]

Lista las cuentas asociadas a un Link. Provee el link_token que se te entregó al crear el Link, y Fintoc te devolverá las cuentas asociadas.

Request HTTP

GET /v1/accounts

Parámetro Descripción
link_token El access token del Link del que se quiere listar las cuentas.

Movimientos

Objeto Movement

Movement object

{
    "id": "BO381oEATXonG6bj",
    "amount": 59400,
    "post_date": "2020-04-17T00:00:00.000Z",
    "description": "Traspaso de:Fintoc SpA",
    "transaction_date": "2020-04-16T11:31:12.000Z",
    "currency": "CLP",
    "reference_id": "123740123",
    "type": "transfer",
    "recipient_account": null,
    "sender_account": {
        "holder_id": "771806538",
        "holder_name": "Comercial y Producción SpA",
        "number": "1530108000",
        "institution": {
          "id": "cl_banco_de_chile",
          "name": "Banco de Chile",
          "country": "cl"
        }
    },
    "comment": "Pago factura 198"
}

Atributo Tipo Descripción
id string Identificador único del movimiento.
amount integer Monto del movimiento como entero. Es negativo cuando plata sale de la cuenta, y positivo cuando plata entra. Por ejemplo, una compra es negativo; si alguien transfiere a la cuenta, es positivo.
post_date string Fecha contable del movimiento en formato ISO 8601.
description string Descripción del movimiento entregado por la institución.
transaction_date string Fecha y hora—en formato ISO 8601—en que se realizó el movimiento. Puede ser null.
currency string Código ISO de divisa de 3 letras.
reference_id string El identificador del movimiento entregado por la institución. Puede ser null. En el caso de una transferencia es el número de operación o id de transacción. En el caso de un cheque es el número de documento.
type string El tipo de movimiento. Es transfer si es una transferencia, o other en caso contrario.
recipient_account object Si el movimiento es una transferencia, entonces este campo indica la cuenta hacia la que se transfirió. Puede ser null. Ve el objeto Transfer Account para más detalles.
sender_account object Si el movimiento es una transferencia, entonces este campo indica la cuenta que transfirió. Puede ser null. Ve el objeto Transfer Account para más detalles.
comment string Si el movimiento es de tipo transfer, entonces este campo indica el comentario de la transferencia. Puede ser null.

Objeto Transfer Account

Atributo Tipo Descripción
holder_id string Identificador del titular de la cuenta. En Chile es el RUT del titular.
holder_name string Nombre del titular de la cuenta.
number string Número de la cuenta. Puede ser null.
institution object Institución a la que pertenece la cuenta. Puede ser null.

Listar movimientos

GET /v1/accounts/:id/movements

curl https://api.fintoc.com/v1/accounts/nMNejK7BT8oGbvO4/movements?link_token=Z6AwnGn4idL7DPj4_token_GLtktZX5SKphRtJFe_yJTDWT
  -H "Authorization: sk_test_r5fMthnURT8sEMugWNNJo9s1QoovBYwSzTYxaG"

Response

[
    {
        "id": "BO381oEATXonG6bj",
        "amount": -1717,
        "post_date": "2020-04-06T00:00:00.000Z",
        "description": "Cargo Seguro Proteccion Bancaria",
        "transaction_date": "2020-04-04T02:19:23.000Z",
        "currency": "CLP",
        "type": "other",
        "recipient_account": null,
        "sender_account": null,
        "comment": null
    },
    {
        "id": "Z6AwnGn4idL7DPj4",
        "amount": -350000,
        "post_date": "2020-03-31T00:00:00.000Z",
        "description": "Traspaso a:Fintoc Spa",
        "transaction_date": "2020-03-30T17:04:16.000Z",
        "currency": "CLP",
        "type": "transfer",
        "recipient_account": {
          "holder_id": "634407421",
          "holder_name": "Fintoc SpA",
          "number": "124018344",
          "institution": {
            "id": "cl_banco_santander",
            "name": "Banco Santander",
            "country": "cl"
          }
        },
        "sender_account": null,
        "comment": null
    },
    {
        "id": "nMNejK7BT8oGbvO4",
        "amount": 6500,
        "post_date": "2020-03-23T00:00:00.000Z",
        "description": "Traspaso De:Valeria",
        "transaction_date": "2020-03-21T22:08:26.000Z",
        "currency": "CLP",
        "type": "transfer",
        "recipient_account": null,
        "sender_account": {
          "holder_id": "764407421",
          "holder_name": "Valeria Perez",
          "number": "690000234",
          "institution": {
            "id": "cl_banco_estado",
            "name": "Banco Estado",
            "country": "cl"
          }
        },
        "comment": "Pago factura 203"
    }
]

Lista los movimientos asociados a una cuenta. Indica el id de la cuenta de la que quieres listar los movimientos junto con el link_token del Link correspondiente y Fintoc te devolverá los movimientos en orden descendiente según la fecha contable.

Request HTTP

GET /v1/accounts/:id/movements

Parámetro Descripción
link_token El access token del Link asociado a la cuenta.
since Fecha en formato ISO 8601. Si está presente, se retornan solo movimientos con fecha contable mayor o igual a since.
until Fecha en formato ISO 8601. Si está presente, se retornan solo movimientos con fecha contable menor o igual a until.
per_page Número de movimientos por página. Por defecto son 30. El máximo es 300.

Si bien Fintoc se esfuerza al máximo para obtener la mayor data histórica posible, hay factores que limitan los movimientos que se pueden obtener. Esto depende de la institución en cuestión.

Suscripciones

Las suscripciones te permiten poder realizar cobros recurrentes o pagos al interior de tu aplicación. La suscripciones se debe crear utilizando el Widget de Fintoc.

A grandes rasgos se debe crear el widget URL y luego embeber esto en el iframe de tu aplicación.

Crear widget URL

Para crear la suscripción se debe embeber el iframe del widget de la siguiente manera:

https://app.fintoc.com/widget?public_key=YOUR_PUBLIC_KEY&product=subscription&customer_id=YOUR_USER_ID&holder_type=individual&redirect_to=https://domain.com&webhook_url=https://domain.com/webhook

Widget Iframe

// With shadows
<iframe
  src="https://app.fintoc.com/widget-iframe?public_key=YOUR_PUBLIC_KEY&product=subscription&customer_id=YOUR_USER_ID&holder_type=individual&redirect_to=https://domain.com&webhook_url=https://domain.com/webhook"
  width="385"
  height="525">
</iframe>

// Without shadows
<iframe
  src="https://app.fintoc.com/widget-iframe?public_key=YOUR_PUBLIC_KEY&product=subscription&customer_id=YOUR_USER_ID&holder_type=individual&redirect_to=https://domain.com&webhook_url=https://domain.com/webhook"
  width="360"
  height="500">
</iframe>
Parámetro Tipo Descripción
public_key string La Public Key asociada a tu cuenta. La puedes encontrar en el Dashboard.
product string Debe ser subscription.
customer_id string En el formulario del banco lo llaman «número de servicio». Es el identificador de tu cliente en el banco. Generalmente es un RUT (sin puntos ni guiones).
holder_type string Indica si se quiere linkear una cuenta de persona natural (individual) o empresa (business). Por ahora solo soportamos crear suscripciones para personas naturales, así que debe ser individual.
redirect_to string Dirección a la que redireccionaremos al usuario cuando finalice el flujo del Widget. Debe ser una dirección HTTPS.
El flujo del Widget finaliza cuando el usuario se suscribe exitosamente, o cuando el usuario sale del Widget.
webhook_url string Endpoint al que Fintoc debe enviar el link_token una vez que el usuario se haya suscrito. Debe ser una dirección HTTPS. El link_token te servirá para consultar el Link asociado a la suscripción.

Resultado del redirect

Parámetro Tipo Descripción
result string Indica el resultado de la suscripción del usuario. Puede ser subscription_created si se suscribió correctamente o user_exited si es que el usuario canceló el formulario.

Si es exitoso además se incluye

Parámetro Tipo Descripción
link_id string Identificador único del Link creado.
subscription_id string Identificador único de la suscripción creada.

Ambiente de test

Puedes probar el flujo completo para crear una suscripción con el ambiente de test.

En el momento del segundo factor, debes ingresar el código 0000. Cualquier otro código fallará.

Errores

Utilizamos las convenciones de códigos de estado HTTP 🤓 para comunicar el resultado de una respuesta. Las respuestas HTTP 2xx son llamadas exitosas, 4xx son errores debido a la información provista—e.g. se omitió un parámetro, o las credenciales bancarias estaban incorrectas—y los 5xx son errores de Fintoc o problemas de una institución bancaria.

Resumen de códigos de estado HTTP

Código Significado
200 - OK Todo funcionó 👌.
201 - Created Objeto creado 👌.
400 - Bad Request La solicitud contiene información errónea y no debería repetirse.
401 - Unauthorized Tu API Key es inválida o no estás realizando la autenticación de acuerdo al formato requerido por la API 👮.
403 - Forbidden La solicitud es válida, pero no cuentas con los permisos para realizarla 👮.
404 - Not Found Recurso no encontrado. Revisa la URL que estás solicitando.
409 - Conflict La solicitud tiene un conflicto. Puede ser por que la institución financiera indica que las credenciales están bloqueadas 🚨.
429 - Too Many Requests Has superado el límite de solicitudes por segundo (~2 req/s).
500 - Internal Server Error Existe un problema con nuestro servidor 😱 y estamos corriendo en círculos trabajando arduamente para arreglarlo.
503 - Service Unavailable Puede ser que la institución está fuera de servicio.

Objeto Error

Error response

{
    "error": {
        "type": "invalid_request_error"
        "code": "missing_parameter",
        "message": "Missing required param: link_token",
        "param": "link_token",
        "doc_url": "https://fintoc.com/docs#invalid-request-error",
    }
}
Atributo Tipo Descripción
type string El tipo de error. Puede ser api_error, authentication_error, link_error, institution_error o invalid_request_error.
code string El error puntual para que pueda ser manejado programáticamente.
message string Mensaje amigable que entrega detalles del error. Estos pueden cambiar en el tiempo, así que no deberían ser usados programáticamente.
param string Si el error está relacionado con un parámetro, este atributo indica ese parámetro. Puede ser null.
doc_url string La URL de la documentación 📖 del code .

En los errores devolvemos mensajes (message) super explícitos por lo que no deberías tener mayores problemas para manejarlos. Aún así, la mejor forma de solucionar un problema que no puedes resolver después de haber leido la documentación es escribiendonos al chat. Estamos acostumbrados a resolver dudas.

Invalid request error

code Descripción
missing_resource El recurso no existe. Puede ser porque el ID es inválido, o porque el ID es de otro recurso.
invalid_link_token El link_token es inválido. El link_token se muestra una sola vez y si se pierde entonces hay que crear el Link de nuevo. Puedes ver más información en la sección para crear un link.
invalid_username El username es inválido. Recuerda que para las instituciones chilenas, el username es un RUT.
invalid_date El parámetro es una fecha inválida. Asegúrate que la fecha esté en formato ISO 8601: YYYY-MM-DD o YYYY-MM-DDTHH:MM:SSZ si es un timestamp.
invalid_holder_type El holder_type es inválido. Recuerda que el holder_type puede ser o individual o business.
missing_parameter En la solicitud te faltó incluir un parámetro obligatorio.
empty_string El parámetro es un string vacío.
unrecognized_request Fintoc no reconoce el request. Puede que la ruta que estés consultando no exista, o que el verbo que estás ocupando para esa ruta no es válido.
code Descripción
invalid_credentials La institución indicó que las credenciales provistas son inválidas.
locked_credentials La institución indicó que las credenciales provistas son están bloqueadas.

Authentication error

code Descripción
invalid_api_key Tu API Key es inválida o no estás realizando la autenticación de acuerdo al formato requerido por la API 👮.

Institution error

code Descripción
unavailable_institution La institución no está disponible en estos momentos. Puede ser porque tienen sus servidores caídos, o por un problema de Fintoc.

API error

code Descripción
internal_server_error Existe un problema con nuestro servidor 😱 y estamos corriendo en círculos trabajando arduamente para arreglarlo.