Resumen
Enriquecer las transacciones bancarias categorizándolas en categorías de gastos e ingresos puede proporcionar información valiosa para la gestión financiera tanto personal como empresarial. Este Neuron te permite categorizar las operaciones bancarias de los clientes (ya sean personas o empresas) en categorías de gastos e ingresos según la taxonomía de Dedomena, además de información del comerciante (merchant).
La taxonomía de Dedomena consta de 92 categorías: 11 relacionadas con ingresos y 81 relacionadas con gastos.
Ejemplos de Categorías:
-
Categorías de Gastos: Supermercado y Alimentación, Taxi, VTC y Movilidad Compartida, Suministros de Oficina y Hogar, Farmacia.
-
Categorías de Ingresos: Salario y Jubilación, Intereses y Dividendos, Ventas, Transferencias entrantes.
Casos de Uso
A continuación se proporcionan algunos casos de uso clave:
-
Presupuestación y Proyecciones: Ayuda a establecer y adherirse a presupuestos mediante el seguimiento de gastos en diversas categorías (ej. alimentación, entretenimiento, servicios). Asiste en la creación de presupuestos precisos y proyecciones financieras al analizar patrones históricos de gastos e ingresos.
-
Seguimiento y Gestión de Gastos: Permite a los usuarios monitorear y analizar patrones de gasto, identificar gastos innecesarios y ajustar hábitos para ahorrar dinero. Ayuda a monitorear y controlar gastos empresariales, identificando áreas donde se pueden reducir los costos.
-
Metas de Ahorro: Asiste en establecer y alcanzar metas de ahorro proporcionando una visión clara de los ingresos vs. gastos.
-
Preparación de Impuestos: Simplifica la declaración de impuestos categorizando las transacciones relevantes para las deducciones fiscales (ej. donaciones caritativas, gastos médicos).
-
Gestión de Deudas: Ayuda a gestionar y priorizar los pagos de deudas mediante el seguimiento de cuánto se paga hacia deudas versus otros gastos.
-
Monitoreo de la Salud Financiera: Proporciona una visión holística de la salud financiera mediante el seguimiento de los ingresos netos y la categorización de los gastos.
-
Análisis de Flujo de Caja: Realiza un seguimiento de los flujos de caja entrantes y salientes, ayudando a las empresas a gestionar la liquidez y planificar futuras necesidades de efectivo.
-
Análisis de Rentabilidad: Permite a las empresas evaluar la rentabilidad de diferentes departamentos o proyectos categorizando los ingresos y los gastos.
-
Cumplimiento Tributario: Simplifica la preparación de impuestos y asegura el cumplimiento categorizando las transacciones según las regulaciones fiscales.
-
Auditoría y Reportes: Facilita auditorías internas y externas y la presentación de informes financieros manteniendo registros de transacciones organizados y categorizados.
-
Detección de Fraude: Identifica transacciones inusuales que se desvían de los patrones normales de gasto o ingreso, señalando posibles actividades fraudulentas.
-
Planificación Financiera: Asiste en la planificación financiera a largo plazo proporcionando una imagen clara de las fuentes de ingresos y hábitos de gasto.
-
Asesoría Financiera Personalizada: Permite a los asesores financieros proporcionar consejos adaptados basados en categorizaciones de transacciones detalladas.
-
Alertas Automatizadas: Configura alertas para categorías de transacciones específicas, como cuando los gastos superan un cierto límite o cuando se depositan ingresos.
-
Integración con Herramientas Financieras: Mejora la funcionalidad de las aplicaciones y herramientas financieras proporcionando datos de transacciones categorizadas para un análisis y asesoramiento financiero más precisos.
Taxonomía
Por favor, encuentra la Taxonomía del Enriquecedor de Transacciones en la pestaña de Recursos.
API y Endpoints
La versión actual de este Neuron es la V6.0.0.
/v6/enricher
POST/v6/enricher/{region}
Esta ruta/endpoint permite clasificar una transacción bancaria o grupo de transacciones bancarias en una de las 92 categorías de la taxonomía de Dedomena. Puede usarse para categorizar una sola transacción o hasta 120,000 transacciones en una sola solicitud.
Parámetros de Ruta:
- region (str): selecciona la región de la(s) transacción(es). Opciones: Spain.
Cabeceras (Headers):
Authorization: Bearer TU_TOKEN_DE_ACCESO
Esta cabecera debe incluirse en cada solicitud para autenticar al usuario.
-
**Nombre de cabecera:**Authorization
-
**Formato de cabecera:**Bearer <tu_token>
Si se omite o es incorrecto, el servidor responderá con un error 401 Unauthorized.
Cuerpo de la Solicitud (Request Body):
Una lista de transacciones a clasificar. Cada transacción debe incluir los siguientes campos:
-
transaction_id (str): cadena con un ID único para cada transacción.
-
date (datetime): variable datetime con la fecha de cada transacción.
-
desc (str): cadena con la descripción/concepto de la transacción.
-
amt (float): variable numérica con el importe de la transacción.

Cuerpo de la Solicitud - Arreglo JSON
[
{
"transaction_id": "txn-123",
"date": "2024-10-10 10:10:10",
"desc": "Payments to Dedomena AI",
"amt": "-999"
}
]
???+ example "Ejemplo usando Python y requests"
import pandas as pd
import requests
```text
# Leer los datos
data_request = pd.read_csv(...) ## Actualiza con la ruta del conjunto de datos y los parámetros necesarios.
# Cambiar nombres y tipos
data_request["columns"] = ["transaction_id", "date", "desc", "amt"] # Opcional: cambiar nombres de columnas.
data_request["transaction_id"] = data_request["transaction_id"].astype(str) # Opcional: convertir columna "transaction_id" a tipo string/object
data_request["amt"] = data_request["amt"].astype(str) # Opcional: convertir columna "amt" a tipo string/object
# Convertir a JSON desde dataframe de Pandas
data_json = data_request.sample(100).to_json(orient='records') ## Aquí se toman 100 filas de muestra del conjunto original. Por favor, modifícalo según conveniencia.
# Definir el Payload y guardar la solicitud en un objeto response
payload = {'region':'SPAIN'}
headers = {
"Authorization": f"Bearer {TU_TOKEN_DE_ACCESO}" ## Actualiza con el token de la pestaña de la API.
}
response = requests.post(url=f"{api_url}/v6/enricher", params=payload, data=data_json)
print(response)
# Transformar la respuesta de la solicitud a un dataframe de Pandas
enriched_data = pd.DataFrame(response.json(),
columns=["transaction_id","date","desc","amt","pred_category","pred_category_name",
"pred_prob", "pred_category_parent","pred_category_parent_name"])
# Verificar los resultados
enriched_data
???+ note
Debes reemplazar los valores de TU_TOKEN_DE_ACCESO y api_url con la información correcta en el código anterior. Estos valores pueden encontrarse en la pestaña de la API de la plataforma de Dedomena.
<Admonition type="warning" isCollapsible={true} isOpen={true} title="warning">
</Admonition>
```text
Todos los valores deben pasarse como cadenas (strings).
Respuesta
200
[
{
"transaction_id": "txn-345",
"pred_category": 164,
"pred_category_name": "ATM, Cash",
"pred_prob": 0.999999,
"pred_category_parent": 161,
"pred_category_parent_name": "Miscelaneous expenses",
},
]
Descripción:
-
'transaction_id': cadena con un ID único para cada transacción.
-
'pred_category': variable numérica con el id de la categoría a la cual pertenece la transacción.
-
'pred_category_name': cadena con el nombre de la categoría a la cual pertenece la transacción.
-
'pred_prob': probabilidad de que la transacción pertenezca a la categoría predicha.
-
'pred_category_parent': variable numérica con el id de la categoría padre a la cual pertenece la transacción.
-
'pred_category_parent_name': cadena con el nombre de la categoría padre a la cual pertenece la transacción.
402
[
{
"detail": "Could not validate credentials"
}
]
406
[
{
"detail": "The number of observations in the payload exceed the available quote"
}
]
422
[
{
"detail": "Unprocessable Entity"
}
]
429
[
{
"detail": "The maximum monthly number of calls or predictions for your account has been exceeded"
}
]
/v2/merchant
POST/v2/merchant
Esta ruta/endpoint te permite extraer el comerciante (merchant) de la transacción bancaria.
Parámetros de Ruta:
- region: selecciona la región de la(s) transacción(es). Opciones: Spain.
Cabeceras (Headers):
Authorization: Bearer TU_TOKEN_DE_ACCESO
Esta cabecera debe incluirse en cada solicitud para autenticar al usuario.
-
**Nombre de cabecera:**Authorization
-
**Formato de cabecera:**Bearer <tu_token>
Si se omite o es incorrecto, el servidor responderá con un error 401 Unauthorized.
Cuerpo de la Solicitud (Request Body):
Una lista de transacciones a clasificar. Cada transacción debe incluir los siguientes campos:
-
transaction_id: cadena con un ID único para cada transacción.
-
date: variable datetime con la fecha de cada transacción.
-
desc: cadena con la descripción/concepto de la transacción.
-
amt: variable numérica con el importe de la transacción.
Cuerpo de la Solicitud - Arreglo JSON
[
{
"transaction_id": "txn-123",
"date": "2024-10-10 10:10:10",
"desc": "Payments to Dedomena AI",
"amt": "-999"
}
]
???+ example "Ejemplo usando Python y requests"
import pandas as pd
import requests
```text
# Leer los datos
data_request = pd.read_csv(...) ## Actualiza con la ruta del conjunto de datos y los parámetros necesarios.
# Cambiar nombres y tipos
data_request["columns"] = ["transaction_id", "date", "desc", "amt"] # Opcional: cambiar nombres de columnas.
data_request["transaction_id"] = data_request["transaction_id"].astype(str) # Opcional: convertir columna "transaction_id" a tipo string/object
data_request["amt"] = data_request["amt"].astype(str) # Opcional: convertir columna "amt" a tipo string/object
# Convertir a JSON desde dataframe de Pandas
data_json = data_request.sample(100).to_json(orient='records') ## Aquí se toman 100 filas de muestra del conjunto original. Por favor, modifícalo según conveniencia.
# Definir el Payload y guardar la solicitud en un objeto response
payload = {'region':'SPAIN'} ## Actualiza con la región de la pestaña de la API.
headers = {
"Authorization": f"Bearer {TU_TOKEN_DE_ACCESO}" ## Actualiza con el token de la pestaña de la API.
}
response = requests.post(url=f"{api_url}/v2/merchant", params=payload, data=data_json)
print(response)
# Transformar la respuesta de la solicitud a un dataframe de Pandas
merchant_data = pd.DataFrame(response.json(), columns=["transaction_id","merchant"])
# Verificar los resultados
merchant_data
???+ note
Debes reemplazar los valores de TU_TOKEN_DE_ACCESO y api_url con la información correcta en el código anterior. Estos valores pueden encontrarse en la pestaña de la API de la plataforma de Dedomena.
???+ warning
Todos los valores deben pasarse como cadenas (strings).
##### Respuesta
200
```json
[
{
"transaction_id": "txn-123",
"merchant": "MERCADONA"
}
]
Descripción:
-
'transaction_id': cadena con un ID único para cada transacción.
-
'merchant': cadena con el comerciante identificado en las transacciones.
402
[
{
"detail": "Could not validate credentials"
}
]
406
[
{
"detail": "The number of observations in the payload exceed the available quote"
}
]
422
[
{
"detail": "Unprocessable Entity"
}
]
429
[
{
"detail": "The maximum monthly number of calls or predictions for your account has been exceeded"
}
]
/metrics
POST/metrics
Esta ruta/endpoint te permite ver la cuota disponible para llamadas y predicciones de la API, tal como se ve en la pestaña de Métricas.
cabeceras (headers):
Authorization: Bearer TU_TOKEN_DE_ACCESO
Esta cabecera debe incluirse en cada solicitud para autenticar al usuario.
-
**Nombre de cabecera:**Authorization
-
**Formato de cabecera:**Bearer <tu_token>
Si se omite o es incorrecto, el servidor responderá con un error 401 Unauthorized.

Respuesta
200
{
"MonthlyRequestsLimit": 10,
"CurrentRequestsCount": 2,
"MonthlyOutputsLimit": 10,
"CurrentOutputsCount": 5
}
Descripción:
-
'MonthlyRequestsLimit': Límite de solicitudes/llamadas disponibles según el plan contratado por mes.
-
'CurrentRequestsCount': Número de solicitudes/llamadas consumidas en el período actual.
-
'MonthlyOutputsLimit': Límite de resultados/predicciones disponibles según el plan contratado por mes.
-
'CurrentOutputsCount': Número de resultados/predicciones consumidas en el período actual.
402
[
{
"detail": "Could not validate credentials"
}
]
422
[
{
"detail": "Unprocessable Entity"
}
]
Métricas de Modelo de IA
A continuación, puedes encontrar métricas calculadas comunes para medir el rendimiento de modelos de IA y ML. Se siguieron las mejores prácticas, como métodos hold-out utilizando conjuntos de datos de prueba y validación, para calcular las métricas resultantes.
| Accuracy | F1-Score | Recall |
|---|---|---|
| 0.96 | 0.98 | 0.96 |