Enriquecedor de Transacciones

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:

  1. Categorías de Gastos: Supermercado y Alimentación, Taxi, VTC y Movilidad Compartida, Suministros de Oficina y Hogar, Farmacia.

  2. 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

/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.

image

Cuerpo de la Solicitud - Arreglo JSON
json
[
  {
    "transaction_id": "txn-123",
    "date": "2024-10-10 10:10:10",
    "desc": "Payments to Dedomena AI",
    "amt": "-999"
  }
]

Ejemplo usando Python y requests:

python
import pandas as pd
import requests

# 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

Nota: 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. Todos los valores deben pasarse como cadenas (strings).

Respuesta

200

json
[
  {
    "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

json
[
  {
  "detail": "Could not validate credentials"
  }
]

406

json
[
  {
    "detail": "The number of observations in the payload exceed the available quote"
  }
]

422

json
[
  {
    "detail": "Unprocessable Entity"
  }
]

429

json
[
  {
    "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
json
[
  {
    "transaction_id": "txn-123",
    "date": "2024-10-10 10:10:10",
    "desc": "Payments to Dedomena AI",
    "amt": "-999"
  }
]

Ejemplo usando Python y requests

python
import pandas as pd
import requests

# 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

Nota: 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. 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

json
[
  {
  "detail": "Could not validate credentials"
  }
]

406

json
[
  {
    "detail": "The number of observations in the payload exceed the available quote"
  }
]

422

json
[
  {
    "detail": "Unprocessable Entity"
  }
]

429

json
[
  {
    "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.

image

Respuesta

200

json
{
  "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

json
[
  {
  "detail": "Could not validate credentials"
  }
]

422

json
[
  {
    "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.

AccuracyF1-ScoreRecall
0.960.980.96
Enriquecedor de Transacciones | Dedomena AI Documentation | Dedomena AI