# Get categorizations summary for a session Returns aggregated categorization summary with insights by category and institution. Provides a high-level overview of categorized transaction data aggregated across all institutions and accounts linked in the session, including income sources, creditors, spending patterns, and detailed breakdowns by category, subcategory, and counterparty. Endpoint: GET /v1/sessions/{sessionId}/categorizations-summary Version: 1.0 Security: keycloakAuthTest, keycloakAuthLive ## Path parameters: - `sessionId` (string, required) ## Response 200 fields (application/json): - `summary` (object,null, required) Overall summary statistics aggregated across all institutions and accounts. Includes key metrics like income sources, creditors, average monthly income and liabilities. - `summary.status` (string, required) Shows the overall status of bank account categorization across all connected countries and providers. If some data sources are pending or errored, status shows "Some data missing". Possible values: SUCCESS (All relevant data successfully retrieved and processed), SOME_DATA_MISSING (Partial success — some providers still pending, errored, or missing customer input), WAITING_FOR_CUSTOMER (Waiting for user to provide necessary input - only when one source involved), WAITING_FOR_PROVIDER (Waiting for data provider's response - only when one source involved), FORBIDDEN (Access not permitted for this provider), UNSUPPORTED_COUNTRY (Data not available in the given country), PACKAGE_UPGRADE_REQUIRED (Access requires a higher data package), ERROR (Technical or validation error encountered), UNKNOWN (Unexpected or undefined status). Enum: "UNKNOWN", "SUCCESS", "ERROR", "FORBIDDEN", "UNSUPPORTED_COUNTRY", "WAITING_FOR_CUSTOMER", "WAITING_FOR_PROVIDER", "PACKAGE_UPGRADE_REQUIRED", "ID_TAX_ONLY" - `summary.countOfInstitutions` (integer,null) Number of financial institutions (e.g. banks) the user has connected in this session. Example: If the user adds accounts from Bank A, Bank B, and Bank C -> value = 3 - `summary.countOfAccounts` (integer,null) Number of bank accounts the user has connected during this session. Includes all types of accounts, from all providers. Example: 2 current accounts from Bank A + 1 savings account from Bank B -> value = 3 - `summary.countOfIncomeSources` (integer,null) Number of different income sources detected across all connected accounts. Includes employers, government agencies, or platforms that paid the user over the past 6 months. Only regular income types are counted: salary, pension, government support, disability benefits, or gig income. Example: If income comes from 1 employer + 1 pension fund -> value = 2 - `summary.countOfCreditors` (integer,null) Number of different creditors the user is currently making payments to, based on their connected accounts. Includes payments for loans, credit cards, BNPL services, mortgages, and other recurring debts. Example: If the user pays a car loan, mortgage, and credit card from different banks -> value = 3 - `summary.averageMonthlyIncome` (array,null) The user's average monthly income over the last 6 months, calculated separately for each currency. All connected banks and accounts are included. Regular income includes salary, pension, government support, and similar. Example: If the user receives €1000 in Jan, €1200 in Mar, €1400 in Apr -> Average = €600/month (over 6 months) - `summary.averageMonthlyIncome.amount` (number, required) Monetary value represented as a decimal number. - `summary.averageMonthlyIncome.currencyCode` (string,null, required) Currency code in ISO 4217 format (e.g., EUR, GBP). - `summary.averageMonthlyLiabilities` (array,null) Shows the user's average monthly loan or debt payments over the past 6 months, calculated separately for each currency. Includes payments for mortgages, personal loans, credit cards, and similar liabilities across all connected accounts. Example: If the user paid €300 (Jan), €200 (Apr), €400 (May) -> Average = €150/month - `categoryInsights` (array,null) Aggregated insights grouped by transaction category (INCOMES, LIABILITIES, EXPENSES, OTHER_INCOMING_PAYMENTS). Each category includes subcategory breakdowns and counterparty details where applicable. - `categoryInsights.category` (string, required) Name of the specific category (e.g. INCOMES, OTHER_INCOMING_PAYMENTS, LIABILITIES, EXPENSES) Enum: "INCOMES", "OTHER_INCOMING_PAYMENTS", "LIABILITIES", "EXPENSES" - `categoryInsights.summary` (object,null, required) Summary statistics for this category including count of months, total amounts, average monthly amounts, and country codes. - `categoryInsights.summary.countOfMonths` (integer) Number of different months (within the last 6) where the user made or received at least one transaction in the selected category, subcategory, or from/to a specific company. - `categoryInsights.summary.totalAmounts` (array,null) Total amount of transactions in the selected category, subcategory, or from a specific company over the last 6 months. Shown separately for each currency. Per currency. - `categoryInsights.summary.averageMonthlyAmounts` (array,null) The user's average monthly amount in the selected category, subcategory, or from/to a specific company, based on the last 6 months. Reported per currency. Per currency. - `categoryInsights.summary.countryCodes` (array,null) Shows the country or countries where relevant transactions occurred, based on the bank accounts involved. Reported as ISO 3-letter country codes (e.g., "ESP", "DEU", "EST"). - `categoryInsights.subCategories` (array,null) List of subcategory insights providing more detailed breakdowns within this category. - `categoryInsights.subCategories.subCategory` (string, required) Name of the specific subcategory (e.g. SALARY, CONSUMER_LOAN, CREDIT_CARD, GAMBLING, ENTERTAINMENT) Enum: "BANK_FEES", "BNPL", "CAR_LOAN", "CHILD_SUPPORT", "CONSUMER_LOAN", "CREDIT_CARD", "DISABILITY", "ENTERTAINMENT", "FOOD_AND_DRINK", "GAMBLING", "GENERAL_MERCHANDISE", "GENERAL_SERVICE", "GIG_ECONOMY", "GOVERNMENT", "GOVERNMENT_AND_NON_PROFIT", "HOME_IMPROVEMENT", "INTEREST_AND_DIVIDENDS", "INTEREST_PAYMENT", "INVESTMENT_AND_SAVINGS", "LOAN_DISBURSEMENT", "MEDICAL", "MORTGAGE_LOAN", "OTHER", "PERSONAL_CARE", "RENTAL", "RENT_AND_UTILITIES", "RETIREMENT", "SALARY", "STUDENT_LOAN", "TRANSFER_IN", "TRANSFER_OUT", "TRAVEL_AND_TRANSPORT", "UNEMPLOYMENT", "UNKNOWN" - `categoryInsights.subCategories.summary` (object,null, required) Summary statistics for this subcategory including count of months, total amounts, average monthly amounts, and country codes. - `categoryInsights.subCategories.counterparties` (array,null) List of counterparty insights within this subcategory. Only applicable for INCOMES and LIABILITIES categories - null for OTHER_INCOMING_PAYMENTS and EXPENSES. - `categoryInsights.subCategories.counterparties.counterpartyName` (string,null, required) Name of the counterparty (e.g., employer, creditor, merchant). If counterpartyName is not provided by the bank, transaction description is used to group transactions (fuzzy logic applied). - `categoryInsights.subCategories.counterparties.summary` (object,null, required) Summary statistics for all transactions with this counterparty including count of months, total amounts, average monthly amounts, and country codes. - `institutions` (array,null) List of financial institutions (banks) with their accounts and categorized transactions. Each institution includes summary statistics and detailed account-level data. - `institutions.status` (string, required) Current status of the categorization data for this institution. Similar to overall status logic. Enum: "UNKNOWN", "SUCCESS", "ERROR", "FORBIDDEN", "UNSUPPORTED_COUNTRY", "WAITING_FOR_CUSTOMER", "WAITING_FOR_PROVIDER", "PACKAGE_UPGRADE_REQUIRED", "ID_TAX_ONLY" - `institutions.countryCode` (string,null, required) ISO 3166-1 alpha-3 country code of the specific institution. Based on the country the user selected when adding the account. - `institutions.name` (string,null, required) Name of the financial institution. - `institutions.summary` (object,null) Summary statistics aggregated across all accounts at this institution. Null if status is not SUCCESS. - `institutions.summary.requestedPeriodMonths` (integer) Number of months of transaction data that were requested from the data provider. Minimum of 6 months is always requested. - `institutions.summary.receivedPeriodMonths` (integer) Number of full months covered by the transaction data actually received from the specific bank or account. Calculated based on the time span between the first and last transaction. - `institutions.summary.countOfMonthsWithIncome` (integer) Number of months in which the user received income from the specific bank or account. Multiple payments in the same month count only once. Includes regular income like salary, pension, government support, and gig earnings. - `institutions.summary.countOfMonthsWithLiabilities` (integer) Number of months in which the user made debt or loan payments from the specific bank or account. Multiple payments in the same month count only once. - `institutions.summary.averageMonthlyIncome` (array,null) Average monthly income from the specific bank or account, calculated separately for each currency. Divides the total income received by the number of months requested (typically 6). Includes regular income like salary, pension, government support, and gig earnings. Based on total income divided by requested months (default: 6). Example: €3600 income over 6 months -> average = €600/month - `institutions.summary.averageMonthlyLiabilities` (array,null) Average monthly loan and debt payments from the specific bank or account, per currency. Based on total liability transactions divided by requested months (default: 6). Calculated over requested period (default: 6 months). Example: If the user paid €300 (Feb), €200 (Apr), and €400 (May) -> Total = €900 -> Average = €900 / 6 = €150/month - `institutions.summary.totalIncome` (array,null) Total income from the specific bank or account during the period received, calculated separately for each currency. Includes regular income like salary, pension, government support, and gig earnings. - `institutions.summary.totalLiabilities` (array,null) Total amount of liabilities from the specific bank or account during the period received, calculated separately for each currency. Includes credit cards, mortgages, personal loans, BNPL, and other liabilities. - `institutions.accounts` (array,null) List of accounts at this institution with their categorized transactions. - `institutions.accounts.status` (string, required) Current status of the categorization data for this account. Enum: "UNKNOWN", "SUCCESS", "ERROR", "FORBIDDEN", "UNSUPPORTED_COUNTRY", "WAITING_FOR_CUSTOMER", "WAITING_FOR_PROVIDER", "PACKAGE_UPGRADE_REQUIRED", "ID_TAX_ONLY" - `institutions.accounts.displayName` (string,null, required) Display name of the account as provided by the institution. - `institutions.accounts.ownerNames` (array,null) List of account owner full names. Account can have multiple owners. - `institutions.accounts.overdraftLimit` (object,null) Overdraft limit available on this account, if applicable. - `institutions.accounts.summary` (object,null) Summary statistics for transactions in this account. Null if status is not SUCCESS. - `institutions.accounts.transactions` (array,null) List of categorized transactions from this account. - `institutions.accounts.transactions.date` (string,null) Date of the transaction. - `institutions.accounts.transactions.category` (string, required) Main category assigned to the transaction. Enum: "INCOMES", "OTHER_INCOMING_PAYMENTS", "LIABILITIES", "EXPENSES" - `institutions.accounts.transactions.subCategory` (string, required) Subcategory providing more detailed classification of the transaction. Enum: "BANK_FEES", "BNPL", "CAR_LOAN", "CHILD_SUPPORT", "CONSUMER_LOAN", "CREDIT_CARD", "DISABILITY", "ENTERTAINMENT", "FOOD_AND_DRINK", "GAMBLING", "GENERAL_MERCHANDISE", "GENERAL_SERVICE", "GIG_ECONOMY", "GOVERNMENT", "GOVERNMENT_AND_NON_PROFIT", "HOME_IMPROVEMENT", "INTEREST_AND_DIVIDENDS", "INTEREST_PAYMENT", "INVESTMENT_AND_SAVINGS", "LOAN_DISBURSEMENT", "MEDICAL", "MORTGAGE_LOAN", "OTHER", "PERSONAL_CARE", "RENTAL", "RENT_AND_UTILITIES", "RETIREMENT", "SALARY", "STUDENT_LOAN", "TRANSFER_IN", "TRANSFER_OUT", "TRAVEL_AND_TRANSPORT", "UNEMPLOYMENT", "UNKNOWN" - `institutions.accounts.transactions.amount` (object,null) Monetary amount of the transaction. - `institutions.accounts.transactions.counterpartyName` (string,null) Name of the counterparty involved in the transaction. - `institutions.accounts.transactions.originalDescription` (string,null) Description text as inserted by the remitter. ## Response 400 fields (application/json): - `type` (string,null) - `title` (string,null) - `status` (integer,null) - `detail` (string,null) - `instance` (string,null) - `errors` (object,null) ## Response 401 fields ## Response 403 fields ## Response 404 fields ## Response 500 fields