Products
Data license: CC-BY-4.0 · Data source: bankproducts.info
25 rows where source_document_id = 2 sorted by bank_id descending
This data as json, CSV (advanced)
Suggested facets: category, currency, target_group, access_tier
| id | bank_id ▲ | category | name | currency | client_type | target_group | description | valid_from | source_document_id | bpg | access_tier | is_tailored | notice_period_days | iso_account_type |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| postfinance:saron_hypothek | PostFinance AG postfinance | mortgage | Saron Hypothek | CHF | private | standard | Zinsanpassungen 1. April 2026 2 | BPG003FMNY1T | pro | 0 | ||||
| postfinance:festhypothek | PostFinance AG postfinance | mortgage | Festhypothek | CHF | private | standard | Zinsanpassungen 1. April 2026 2 | BPG003N2V39Q | pro | 0 | ||||
| postfinance:krypto | PostFinance AG postfinance | wealth_management | Krypto | CHF | private | standard | Zinsanpassungen 1. April 2026 2 | BPG003CC17FN | pro | 0 | ||||
| postfinance:selfservice_fonds | PostFinance AG postfinance | wealth_management | Selfservice Fonds | CHF | private | standard | Zinsanpassungen 1. April 2026 2 | BPG003175GHD | pro | 0 | ||||
| postfinance:anlageberatung_plus | PostFinance AG postfinance | wealth_management | Anlageberatung Plus | CHF | private | standard | Zinsanpassungen 1. April 2026 2 | BPG003MA1MWB | pro | 0 | ||||
| postfinance:fondsberatung_basis | PostFinance AG postfinance | wealth_management | Fondsberatung Basis | CHF | private | standard | Zinsanpassungen 1. April 2026 2 | BPG003QN35VP | pro | 0 | ||||
| postfinance:e_vermoegensverwaltung | PostFinance AG postfinance | wealth_management | E-Vermoegensverwaltung | CHF | private | standard | Zinsanpassungen 1. April 2026 2 | BPG003D290X5 | pro | 0 | ||||
| postfinance:smartstudents | PostFinance AG postfinance | package | Bankpaket SmartStudents | CHF | private | students | 18-30 Jahre in Ausbildung | Zinsanpassungen 1. April 2026 2 | BPG00326J36X | free | 0 | |||
| postfinance:smartyoung | PostFinance AG postfinance | package | Bankpaket SmartYoung | CHF | private | youth | Bis 20 Jahre | Zinsanpassungen 1. April 2026 2 | BPG003KKN9MX | free | 0 | |||
| postfinance:smartkids | PostFinance AG postfinance | package | Bankpaket SmartKids | CHF | private | children | Zinsanpassungen 1. April 2026 2 | BPG003YQWT8V | free | 0 | ||||
| postfinance:smartplus | PostFinance AG postfinance | package | Bankpaket SmartPlus | CHF | private | standard | Erweitertes Bankpaket ab 20 Jahren | Zinsanpassungen 1. April 2026 2 | BPG0037JK09X | free | 0 | |||
| postfinance:smart | PostFinance AG postfinance | package | Bankpaket Smart | CHF | private | standard | Fuer erwachsene Kund:innen ab 20 Jahren | Zinsanpassungen 1. April 2026 2 | BPG003HTFH1M | free | 0 | |||
| postfinance:prepaid_value | PostFinance AG postfinance | prepaid_card | PostFinance Mastercard Value | CHF | private | standard | Zinsanpassungen 1. April 2026 2 | BPG003W5174Z | free | 0 | ||||
| postfinance:credit_platinum | PostFinance AG postfinance | credit_card | PostFinance Visa Platinum | CHF | private | standard | Zinsanpassungen 1. April 2026 2 | BPG003S9Q4W3 | free | 0 | ||||
| postfinance:credit_gold | PostFinance AG postfinance | credit_card | PostFinance Visa Gold/Mastercard Gold | CHF | private | standard | Zinsanpassungen 1. April 2026 2 | BPG003PNHRD4 | free | 0 | ||||
| postfinance:credit_classic | PostFinance AG postfinance | credit_card | PostFinance Visa Classic/Mastercard Standard | CHF | private | standard | Zinsanpassungen 1. April 2026 2 | BPG003MWGR2N | free | 0 | ||||
| postfinance:kontokarte | PostFinance AG postfinance | debit_card | Kontokarte in CHF/EUR | CHF | private | standard | Zinsanpassungen 1. April 2026 2 | BPG00334Z5S1 | free | 0 | ||||
| postfinance:card_eur | PostFinance AG postfinance | debit_card | PostFinance Card in EUR | EUR | private | standard | Zinsanpassungen 1. April 2026 2 | BPG003YHF34G | free | 0 | ||||
| postfinance:card_chf | PostFinance AG postfinance | debit_card | PostFinance Card in CHF | CHF | private | standard | Zinsanpassungen 1. April 2026 2 | BPG003VYMN8T | free | 0 | ||||
| postfinance:freizuegigkeit | PostFinance AG postfinance | vested_benefits | PostFinance Freizuegigkeitskonto | CHF | private | standard | Zinsanpassungen 1. April 2026 2 | BPG003HWQ8X6 | pro | 0 | ||||
| postfinance:vorsorgekonto_3a | PostFinance AG postfinance | pillar_3a | PostFinance Vorsorgekonto 3a | CHF | private | standard | Zinsanpassungen 1. April 2026 2 | BPG003BG2VW1 | pro | 0 | ||||
| postfinance:jugendsparkonto | PostFinance AG postfinance | savings_account | PostFinance E-Jugendsparkonto | CHF | private | youth | Zinsanpassungen 1. April 2026 2 | BPG0036EXPW6 | free | 0 | ||||
| postfinance:sparkonto | PostFinance AG postfinance | savings_account | PostFinance Sparkonto/E-Sparkonto | CHF | private | standard | Zinsanpassungen 1. April 2026 2 | BPG0038G2346 | free | 0 | ||||
| postfinance:privatkonto_eur | PostFinance AG postfinance | current_account | PostFinance Privatkonto EUR | EUR | private | standard | Zinsanpassungen 1. April 2026 2 | BPG003WHRWPB | free | 0 | ||||
| postfinance:privatkonto | PostFinance AG postfinance | current_account | PostFinance Privatkonto | CHF | private | standard | Zinsanpassungen 1. April 2026 2 | BPG0031AH6YN | free | 0 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE product (
id TEXT PRIMARY KEY, -- zkb:privatkonto, ubs:key4_banking
bank_id TEXT NOT NULL REFERENCES bank(id),
category TEXT NOT NULL, -- current_account, savings_account, pillar_3a, vested_benefits,
-- debit_card, credit_card, prepaid_card, package, ebanking,
-- mortgage, wealth_management, term_deposit, securities_trading,
-- fiduciary_deposit, safe_deposit, guarantee, leasing,
-- financial_planning, personal_advisory, loyalty_program,
-- digital_vault, fx_subscription, robo_advisory, self_directed_trading,
-- metal_account, deposit_account, check
name TEXT NOT NULL, -- bank's own product name
currency TEXT DEFAULT 'CHF',
client_type TEXT DEFAULT 'private', -- private, business, institutional
target_group TEXT, -- standard, young, children, students, seniors, eco, gift, rental_deposit, member
description TEXT,
valid_from TEXT,
source_document_id INTEGER REFERENCES source_document(id),
bpg CHAR(12) -- opaque global id, BPG003xxxxxx; populated post-load by bpg_assignments.sql
CHECK (bpg IS NULL OR bpg GLOB 'BPG003[0-9A-HJKMNP-TV-Z][0-9A-HJKMNP-TV-Z][0-9A-HJKMNP-TV-Z][0-9A-HJKMNP-TV-Z][0-9A-HJKMNP-TV-Z][0-9A-HJKMNP-TV-Z]'),
access_tier TEXT NOT NULL DEFAULT 'free' -- freemium gating: free public, pro/business paid
CHECK (access_tier IN ('free', 'pro', 'business')),
is_tailored INTEGER -- v2.6 (atom #278): mirrors CDS-AU (Australian Open Banking) isTailored.
-- 0 = pricing publicly published in a schedule (machine-readable, comparable);
-- 1 = negotiated per client (UHNW classical private banking, business loans);
-- NULL = unknown / not yet classified (default for new loads).
-- Distinguishes "we haven't crawled it" (NULL) from "bank deliberately
-- doesn't publish because it's relationship-priced" (1) — three states
-- that previously collapsed into "fee.amount IS NULL".
CHECK (is_tailored IS NULL OR is_tailored IN (0, 1)),
notice_period_days INTEGER -- v2.7 (atom #307): normalised withdrawal notice in days.
-- 0/NULL = on-demand; X = days notice. Conversion: months×30,
-- years×365, days verbatim. Backfilled from
-- product_feature.notice_period free-text by
-- db/notice_period_backfill.sql.
CHECK (notice_period_days IS NULL OR notice_period_days >= 0),
iso_account_type CHAR(4) -- v2.8 (atom #308): ISO 20022 ExternalCashAccountType1Code.
-- 4-letter code from the official ISO enum: CACC (Current),
-- SVGS (Savings), LOAN, SACC (Special), MOMA (Money Market),
-- CHAR (Charges), CASH, etc.
-- NULL for categories outside ISO scope: cards
-- (debit/credit/prepaid), mandates (wealth_management,
-- securities_trading, fiduciary_deposit), CH-specific
-- (pillar_3a, vested_benefits, pension_account).
-- Mapped from `category` by db/iso_account_type_backfill.sql.
-- Backfill is conservative — when in doubt, leave NULL rather
-- than force-fit a code that misrepresents the product.
CHECK (iso_account_type IS NULL OR iso_account_type GLOB '[A-Z][A-Z][A-Z][A-Z]')
);
CREATE INDEX idx_product_bank ON product(bank_id);
CREATE INDEX idx_product_category ON product(category);
CREATE INDEX idx_product_lookup ON product(bank_id, category, client_type, target_group);
CREATE UNIQUE INDEX idx_product_bpg ON product(bpg) WHERE bpg IS NOT NULL;
CREATE INDEX idx_product_access_tier ON product(access_tier);
CREATE INDEX idx_product_is_tailored ON product(is_tailored) WHERE is_tailored IS NOT NULL;
CREATE INDEX idx_product_iso_account_type ON product(iso_account_type) WHERE iso_account_type IS NOT NULL;
CREATE INDEX idx_product_notice_period ON product(notice_period_days) WHERE notice_period_days IS NOT NULL;