# Enumerar ingresos

## ▶️ Uso

Con el método List Incomes, puedes:

1. Listar ingresos relacionados con un link.id específico (usando el parámetro de consulta link).
2. Obtener los detalles de un income.id específico (usando el parámetro de consulta id).
3. [No Recomendado] Listar todos los ingresos relacionados con tu cuenta de Belvo (sin usar ningún parámetro de consulta).

## 📖 Paginación

Este método devuelve una respuesta paginada (por defecto: 100 elementos por página). Puedes usar el parámetro de consulta page_size para aumentar el número de elementos devueltos hasta un máximo de 1000 elementos. Puedes usar el parámetro de consulta page para navegar a través de los resultados. Para más detalles sobre cómo navegar por las respuestas paginadas de Belvo, consulta nuestro artículo Consejos de Paginación.

## 🔦 Filtrado de Respuestas

Consulta la lista de campos a continuación para ver los campos por los que puedes filtrar tus respuestas. Para más información sobre cómo usar filtros, consulta nuestro artículo Filtrado de respuestas.

Endpoint: GET /api/incomes/
Version: 1.223.0
Security: basicAuth

## Query parameters:

  - `link` (string)
    El link.id por el que deseas filtrar.

ℹ️ Recomendamos encarecidamente añadir el filtro link.id para mejorar tu rendimiento.
    Example: "8848bd0c-9c7e-4f53-a732-ec896b11d4c4"

  - `page_size` (integer)
    Indica cuántos resultados devolver por página. Por defecto, devolvemos 100 resultados por página.

ℹ️ El número mínimo de resultados devueltos por página es 1 y el máximo es 1000. Si introduces un valor mayor que 1000, nuestra API usará por defecto el valor máximo (1000).
    Example: 100

  - `page` (integer)
    Un número de página dentro del conjunto de resultados paginados.
    Example: 1

  - `link__in` (array)
    Devuelve resultados solo para estos link.ids.
    Example: ["5722d0ba-69d7-42dc-8ff5-33767b83c5d6"]

  - `omit` (string)
    Omite ciertos campos para que no se devuelvan en la respuesta. Para más información, consulta nuestro artículo del DevPortal Filtrando respuestas.

  - `fields` (string)
    Devuelve solo los campos especificados en la respuesta. Para obtener más información, consulta nuestro artículo del DevPortal Filtrando respuestas.

  - `account` (string)
    El account.id por el que deseas filtrar.

ℹ️ Recomendamos encarecidamente agregar filtros de link.id o account.id para mejorar tu rendimiento.
    Example: "8848bd0c-9c7e-4f53-a732-ec896b11d4c4"

  - `account__in` (array)
    Devuelve resultados solo para estos account.ids.
    Example: ["85b77707-90ef-46fd-9059-5a757f24247a"]

## Response 200 fields (application/json):

  - `count` (integer)
    El número total de resultados en tu cuenta de Belvo.
    Example: 130

  - `next` (string,null)
    La URL a la siguiente página de resultados. Cada página consta de hasta 100 elementos. Si no hay suficientes resultados para una página adicional, el valor es null.

En nuestro ejemplo de documentación, usamos {endpoint} como un valor de marcador de posición. En producción, este valor será reemplazado por el endpoint real que estás utilizando actualmente (por ejemplo, accounts o owners).
    Example: "https://sandbox.belvo.com/api/{endpoint}/?link=1bd948f7-245d-4313-b604-34d1044cb908page=2"

  - `previous` (string,null)
    La URL a la página anterior de resultados. Si no hay una página anterior, el valor es null.

  - `results` (array)
    Matriz de objetos de ingresos.

  - `results.id` (string, required)
    Identificador único de Belvo para el elemento actual.
    Example: "0d3ffb69-f83b-456e-ad8e-208d0998d71d"

  - `results.link` (string,null, required)
    El link.id al que pertenecen los datos.
    Example: "30cb4806-6e00-48a4-91c9-ca55968576c8"

  - `results.created_at` (string, required)
    La marca de tiempo ISO-8601 de cuando se creó el punto de datos en la base de datos de Belvo.
    Example: "2022-02-09T08:45:50.406032Z"

  - `results.income_streams` (array, required)
    Una matriz de objetos de flujo de ingresos enriquecidos.

  - `results.income_streams.account_id` (string, required)
    ID único para la cuenta bancaria que se verificará para flujos de ingresos.
    Example: "EBACA-89077589"

  - `results.income_streams.income_type` (string, required)
    El tipo de ingreso utilizado en los cálculos.

Devolvemos uno de los siguientes valores de enum:

  - SALARY
  - GOVERNMENT
  - INTEREST
  - RENT
  - RETIREMENT
  - FREELANCE
  - ALTERNATIVE_INCOME
  - TRANSFER
  - DEPOSIT
  - UNKNOWN
    Enum: "SALARY", "GOVERNMENT", "INTEREST", "RENT", "RETIREMENT", "FREELANCE", "ALTERNATIVE_INCOME", "TRANSFER", "DEPOSIT", "UNKNOWN"

  - `results.income_streams.frequency` (string, required)
    Con qué frecuencia se recibe el ingreso.

Devolvemos uno de los siguientes valores de enum:

  - MONTHLY - Para transacciones que ocurren una vez al mes.
  - FORTNIGHTLY - Para transacciones que ocurren una vez cada dos semanas.
  - WEEKLY - Para transacciones que ocurren una vez por semana.
  - IRREGULAR - Para transacciones que no ocurren con un patrón de frecuencia definido.
  - SINGLE - Para transacciones que ocurren solo una vez y no se repiten.
    Enum: "MONTHLY", "FORTNIGHTLY", "WEEKLY", "IRREGULAR", "SINGLE"

  - `results.income_streams.monthly_average` (number, required)
    La cantidad promedio de ingresos recibidos de la fuente durante periods_with_income.
    Example: 2500

  - `results.income_streams.monthly_median` (number)
    La cantidad mediana de ingresos recibidos de la fuente durante un mes natural.
    Example: 2200

  - `results.income_streams.average_income_amount` (number, required)
    El monto promedio de transacción de ingresos de la fuente.
    Example: 2500

  - `results.income_streams.last_income_amount` (number, required)
    El monto del ingreso más reciente recibido de la fuente.
    Example: 2500

  - `results.income_streams.currency` (string, required)
    El código de moneda de tres letras del ingreso. Por ejemplo:

  • 🇧🇷 BRL (Real Brasileño)
  • 🇨🇴 COP (Peso Colombiano)
  • 🇲🇽 MXN (Peso Mexicano)
    Example: "BRL"

  - `results.income_streams.last_income_description` (string, required)
    La descripción del ingreso más reciente del stream.
    Example: "Salário"

  - `results.income_streams.last_income_date` (string, required)
    La fecha en que se recibió el ingreso más reciente del flujo, en formato YYYY-MM-DD.
    Example: "2023-02-09"

  - `results.income_streams.stability` (number,null, required)
    La estabilidad del ingreso basada en su cantidad, con un rango de 0 a 1, donde 1 representa estabilidad perfecta.

Nota: Para transacciones con frequency=SINGLE, este valor devuelve null.
    Example: 1

  - `results.income_streams.regularity` (number,null, required)
    La regularidad del ingreso se basa en su frecuencia, con un rango de 0 a 1, donde 1 representa una regularidad perfecta.

Nota: Para transacciones con frequency=SINGLE, este valor devuelve null.
    Example: 1

  - `results.income_streams.trend` (number,null, required)
    La tendencia de ingresos durante un período de tiempo se calcula entre el último ingreso y el primer ingreso recibido, donde:
  - un número flotante negativo significa que la tendencia de ingresos está disminuyendo durante el período de tiempo.
  - un número flotante positivo significa que la tendencia de ingresos está aumentando durante el período de tiempo.

Nota: Para transacciones con frequency=SINGLE, este valor devuelve null.

  - `results.income_streams.lookback_periods` (integer, required)
    Número de unidades de período (basadas en meses móviles) utilizadas para generar conocimientos y cálculos.

Nota: Un mes móvil es un período de 30 días. Por ejemplo, del 2023-01-15 al 2023-02-15.
    Example: 9

  - `results.income_streams.full_periods` (integer, required)
    Número de unidades de período (basado en meses móviles) con datos para realizar cálculos.

Nota: Un mes móvil es un período de 30 días. Por ejemplo, del 2023-01-15 al 2023-02-15.
    Example: 9

  - `results.income_streams.periods_with_income` (integer, required)
    Número de unidades de período (basadas en meses móviles) con al menos un ingreso disponible.

Nota: Un mes móvil es un período de 30 días. Por ejemplo, del 2023-01-15 al 2023-02-15.
    Example: 9

  - `results.income_streams.number_of_incomes` (integer, required)
    Número de transacciones de ingresos durante los lookback_periods.
    Example: 9

  - `results.income_streams.confidence` (string, required)
    Nivel de confianza de Belvo para ingresos futuros.

Devolvemos uno de los siguientes valores de enum:

  - HIGH
  - MEDIUM
  - LOW
    Enum: "HIGH", "MEDIUM", "LOW"

  - `results.income_source_type` (string, required)
    El tipo de fuente de la que generamos información sobre ingresos.
Devolvemos uno de los siguientes valores de 'enum':

  - BANK
    Enum: "BANK"

  - `results.first_transaction_date` (string,null, required)
    La fecha en que ocurrió la primera transacción, en formato YYYY-MM-DD.
    Example: "2022-06-09"

  - `results.last_transaction_date` (string, required)
    La fecha en la que ocurrió la última transacción, en formato YYYY-MM-DD.
    Example: "2023-02-09"

  - `results.best_working_day_to_charge` (integer, required)
    El mejor día laborable del mes para cobrar al usuario.
    Example: 22

  - `results.good_working_days_to_charge` (array, required)
    Días laborales adicionales que se han identificado como buenos días para cobrar al usuario.
    Example: [17,7,2]

  - `results.number_of_income_streams` (integer, required)
    Número de flujos de ingresos totales analizados.
    Example: 1

  - `results.monthly_average` (number, required)
    Cantidad promedio de ingresos recibidos por mes en todas las cuentas para el usuario específico.
    Example: 2500

  - `results.monthly_average_regular` (number, required)
    Cantidad promedio de ingresos regulares (con una frecuencia de MONTHLY, FORTNIGHTLY o WEEKLY) recibidos por mes para el usuario específico.
    Example: 2500

  - `results.monthly_average_irregular` (number, required)
    Monto promedio de ingresos irregulares (con una frecuencia de SINGLE o IRREGULAR) recibidos por mes para el usuario específico.

  - `results.monthly_average_low_confidence` (number, required)
    Cantidad promedio de ingresos recibidos por mes para el usuario específico con confianza LOW.

  - `results.monthly_average_medium_confidence` (number, required)
    Cantidad promedio de ingresos recibidos por mes para el usuario específico con confianza MEDIUM.

  - `results.monthly_average_high_confidence` (number, required)
    Cantidad promedio de ingresos recibidos por mes para el usuario específico con confianza HIGH.
    Example: 2500

  - `results.total_income_amount` (number, required)
    Monto total de todos los ingresos recibidos para el usuario específico.
    Example: 22500

  - `results.total_regular_income_amount` (number, required)
    Cantidad total de ingresos regulares (con una frecuencia de MONTHLY, FORTNIGHTLY, WEEKLY) para el usuario específico.
    Example: 22500

  - `results.total_irregular_income_amount` (number)
    Monto total de ingresos irregulares (con una frecuencia de SINGLE o IRREGULAR) para el usuario específico.

  - `results.total_low_confidence` (number, required)
    Cantidad total de ingresos para el usuario específico con confianza LOW.

  - `results.total_medium_confidence` (number, required)
    Cantidad total de ingresos para el usuario específico con confianza MEDIUM.

  - `results.total_high_confidence` (number, required)
    Cantidad total de ingresos para el usuario específico con confianza HIGH.
    Example: 22500

## Response 403 fields (application/json):

  - `code` (string)
    Un código de error único (access_to_resource_denied) que te permite clasificar y manejar el error de manera programática.

ℹ️ Consulta nuestro DevPortal para obtener más información sobre cómo manejar 403 access_to_resource_denied.
    Example: "access_to_resource_denied"

  - `message` (string)
    Una breve descripción del error.

Para los errores access_to_resource_denied, la descripción es:

  - You don't have access to this resource..
    Example: "You don't have access to this resource."

  - `request_id` (string)
    Un ID único de 32 caracteres de la solicitud (que coincide con un patrón regex de: [a-f0-9]{32}). Proporcione este ID al contactar al equipo de soporte de Belvo para acelerar las investigaciones.
    Example: "9e7b283c6efa449c9c028a16b5c249fb"

## Response 404 fields (application/json):

  - `code` (string)
    Un código de error único (not_found) que te permite clasificar y manejar el error de manera programática.
    Example: "not_found"

  - `message` (string)
    Una breve descripción del error.

Para errores not_found, la descripción es:

  - Not found
    Example: "Not found"

  - `request_id` (string)
    Un ID único de 32 caracteres de la solicitud (que coincide con un patrón regex de: [a-f0-9]{32}). Proporcione este ID al contactar al equipo de soporte de Belvo para acelerar las investigaciones.
    Example: "9e7b283c6efa449c9c028a16b5c249fb"

## Response 408 fields (application/json):

  - `code` (string)
    Un código de error único (request_timeout) que te permite clasificar y manejar el error de manera programática.

ℹ️ Consulta nuestro DevPortal para obtener más información sobre cómo manejar errores 408 request_timeout.
    Example: "request_timeout"

  - `message` (string)
    Una breve descripción del error.

Para los errores de request_timeout, la descripción es:

  - The request timed out, you can retry asking for less data by changing your query parameters.
    Example: "The request timed out, you can retry asking for less data by changing your query parameters"

  - `request_id` (string)
    Un ID único de 32 caracteres de la solicitud (que coincide con un patrón regex de: [a-f0-9]{32}). Proporcione este ID al contactar al equipo de soporte de Belvo para acelerar las investigaciones.
    Example: "9e7b283c6efa449c9c028a16b5c249fb"

## Response 500 fields (application/json):

  - `code` (string)
    Un código de error único (unexpected_error) que te permite clasificar y manejar el error de manera programática.

ℹ️ Consulta nuestro DevPortal para obtener más información sobre cómo manejar errores 500 unexpected_error.
    Example: "unexpected_error"

  - `message` (string)
    Una breve descripción del error.

Para los errores unexpected_error, la descripción es:

- Belvo no puede procesar la solicitud debido a un problema interno del sistema o a una respuesta no soportada de una institución.
    Example: "Belvo is unable to process the request due to an internal system issue or to an unsupported response from an institution"

  - `request_id` (string)
    Un ID único de 32 caracteres de la solicitud (que coincide con un patrón regex de: [a-f0-9]{32}). Proporcione este ID al contactar al equipo de soporte de Belvo para acelerar las investigaciones.
    Example: "9e7b283c6efa449c9c028a16b5c249fb"


