====== Bankverbindungen ====== **B2Base · 1.0.0-draft.1 · Projektentwurf** IBAN-basierte und lokale Kontoverbindungen mit eindeutigen Kontoinhaberverweisen. [[schemes:scheme|Bibliothek]] · [[schemes:financial|Finanzen]] · [[schemes:principles|Internationale Grundregeln]] ===== Direkt verwenden ===== [[b2schema>1.0.0-draft.1/financial/bankaccount.schema.json|Austauschschema (JSON)]] · [[b2schema>1.0.0-draft.1/financial/bankaccount.editor.schema.json|Schema für den Designer]] · [[b2schema>1.0.0-draft.1/financial/bankaccount.examples.json|Beispieldaten]] **Austauschschema:** vollständige Strukturprüfung mit JSON Schema 2020-12. **Designer-Fassung:** gleiche Datenfelder mit reduzierten Strukturregeln zur Feldübernahme. [[:guidelines#im_workflowdesigner_verwenden|Anleitung und Grenzen]] ===== Felder im Überblick ===== ^ Feld ^ Typ ^ Pflicht im Modul ^ Bedeutung ^ | ''accountHolders'' | array | Ja | Verweise auf Kontoinhaber. | | ''authorizedUsers'' | array | Nein | Dokumentierte Berechtigungen; übertragen keine Zugriffsrechte. | | ''accountNumber'' | string | Nein | Lokale Kontonummer in Originalschreibweise; kein globaler Zeichenfilter. | | ''iban'' | string | Nein | IBAN ohne Leerzeichen in Großbuchstaben; zusätzlich Landeslänge und MOD-97-Prüfziffer prüfen. | | ''swiftBic'' | string | Nein | BIC in Großbuchstaben; Vergabe separat prüfen. | | ''routingIdentifiers'' | array | Nein | Lokale Clearing-, Branch- oder Routing-Kennungen mit System. | | ''bank'' | object | Ja | Angaben zum kontoführenden Institut. | | ''currency'' | string | Ja | ISO-4217-Währungscode; Schreibweise allein belegt weder Zuweisung noch historische Gültigkeit. | | ''additionalDetails'' | string | Nein | Optionale Erläuterung. | | ''extensions'' | object | Nein | Vereinbarte Erweiterungen; Schlüssel als absolute URI des Herausgebers. Keine stillschweigende Änderung von Kernfeldern. | Pflichtangaben gelten für das jeweilige Objekt, wenn dieses Modul verwendet wird. Zusätzliche Alternativen und Statusregeln stehen im Austauschschema. Optionale Felder weglassen, wenn sie unbekannt oder nicht anwendbar sind; ein leeres Pflichtfeld ist kein gültiger Ersatz. ===== International richtig einsetzen ===== * IBAN wird nur in den dafür registrierten Ländern verwendet. Eine lokale Kontonummer ist eine gleichwertige strukturelle Alternative; nötige Routing-Angaben hängen vom Zahlungsweg ab. * Regex prüft Schreibweise, nicht Prüfziffer, Existenz, Kontoinhaberschaft oder Zahlungsfähigkeit. Hier wird keine Zahlung ausgeführt. * Kontoinhaber und autorisierte Nutzer werden über Datenkennungen referenziert. authorizedUsers ersetzt keine bankseitige Berechtigungsprüfung. ===== Gültige Beispiele ===== Alle Beispiele sind synthetisch. Sie werden mit dem mitgelieferten Schema geprüft; daraus folgt keine fachliche Echtheit oder externe Erreichbarkeit. ==== Beispiel 1 ==== { "accountHolders": [ { "entityType": "person", "id": "urn:example:person:42" } ], "accountNumber": "000123456789", "routingIdentifiers": [ { "value": "021000021", "scheme": "https://example.org/routing/aba" } ], "bank": { "name": "Example Bank", "country": "US" }, "currency": "USD" } ==== Beispiel 2 ==== { "accountHolders": [ { "entityType": "legalEntity", "id": "urn:example:organisation:42" } ], "iban": "DE89370400440532013000", "bank": { "name": "Example Bank", "country": "DE" }, "currency": "EUR" } ===== Umstellung aus dem bisherigen Wiki ===== Breaking Change: IBAN und BIC sind nicht mehr pauschal Pflicht. accountHolders und authorizedUsers verwenden PartyRef-Datenobjekte; bank erhält einen expliziten Mindestkern. Der syntaktisch ungültige Regex-String und das fehlerhafte properties.$ref wurden korrigiert. [[schemes:migration|Änderungsübersicht und Migrationsregeln]] ===== Vollständiges Schema ===== Die Datei ist eigenständig: verwendete Bausteine sind unter ''$defs'' eingebettet, Referenzen bleiben lokal. ''$id'' ist die kanonische Kennung. Die Downloads oben verwenden den aktuellen Server; eine Veröffentlichung unter der kanonischen Domain ist damit nicht behauptet. { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://b2base.eu/schemas/1.0.0-draft.1/financial/bankaccount.schema.json", "title": "Bankverbindungen", "$comment": "B2Base 1.0.0-draft.1. Projektentwurf, kein durch ISO oder andere Normungsgremien verabschiedeter Standard.", "type": "object", "description": "Bankverbindung; Unterstützung des jeweiligen Zahlungswegs muss separat geprüft werden.", "properties": { "accountHolders": { "type": "array", "description": "Verweise auf Kontoinhaber.", "items": { "$ref": "#/$defs/PartyRef" }, "minItems": 1 }, "authorizedUsers": { "type": "array", "description": "Dokumentierte Berechtigungen; übertragen keine Zugriffsrechte.", "items": { "type": "object", "description": "Eine Berechtigungsangabe.", "properties": { "party": { "$ref": "#/$defs/PartyRef" }, "authorizationLevel": { "type": "string", "minLength": 1, "description": "Beschriebener Umfang.", "enum": [ "view", "transaction", "fullAccess" ] } }, "required": [ "party", "authorizationLevel" ], "additionalProperties": false } }, "accountNumber": { "type": "string", "minLength": 1, "description": "Lokale Kontonummer in Originalschreibweise; kein globaler Zeichenfilter." }, "iban": { "type": "string", "minLength": 1, "description": "IBAN ohne Leerzeichen in Großbuchstaben; zusätzlich Landeslänge und MOD-97-Prüfziffer prüfen.", "pattern": "^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$" }, "swiftBic": { "type": "string", "minLength": 1, "description": "BIC in Großbuchstaben; Vergabe separat prüfen.", "pattern": "^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$" }, "routingIdentifiers": { "type": "array", "description": "Lokale Clearing-, Branch- oder Routing-Kennungen mit System.", "items": { "$ref": "#/$defs/Identifier" } }, "bank": { "type": "object", "description": "Angaben zum kontoführenden Institut.", "properties": { "name": { "type": "string", "minLength": 1, "description": "Name." }, "country": { "$ref": "#/$defs/CountryCode" }, "id": { "type": "string", "minLength": 1, "description": "Optionaler Institutsdatensatz.", "format": "uri" } }, "required": [ "name", "country" ], "additionalProperties": false }, "currency": { "$ref": "#/$defs/CurrencyCode" }, "additionalDetails": { "type": "string", "minLength": 1, "description": "Optionale Erläuterung." }, "extensions": { "type": "object", "description": "Vereinbarte Erweiterungen; Schlüssel als absolute URI des Herausgebers. Keine stillschweigende Änderung von Kernfeldern.", "properties": {}, "additionalProperties": true, "propertyNames": { "format": "uri" } } }, "required": [ "accountHolders", "bank", "currency" ], "additionalProperties": false, "anyOf": [ { "required": [ "iban" ] }, { "required": [ "accountNumber" ] } ], "$defs": { "PartyRef": { "type": "object", "description": "Verweis auf eine separat gespeicherte Person oder juristische Person; kein JSON-Schema-Verweis.", "properties": { "entityType": { "type": "string", "minLength": 1, "description": "Art der referenzierten Einheit.", "enum": [ "person", "legalEntity" ] }, "id": { "type": "string", "minLength": 1, "description": "Stabile absolute URI oder URN des Datensatzes, nicht dessen Name.", "format": "uri" }, "name": { "type": "string", "minLength": 1, "description": "Optionale Anzeige; nicht als Identitätsschlüssel verwenden." } }, "required": [ "entityType", "id" ], "additionalProperties": false }, "Identifier": { "type": "object", "description": "Kennung zusammen mit ihrem Namensraum. Führende Nullen, Trennzeichen und Groß-/Kleinschreibung erhalten.", "properties": { "value": { "type": "string", "minLength": 1, "description": "Kennung als Text." }, "scheme": { "type": "string", "minLength": 1, "description": "URI des Kennungssystems; kein allgemeines weltweites Nummernformat.", "format": "uri" }, "type": { "type": "string", "minLength": 1, "description": "Optionale fachliche Bezeichnung." }, "issuer": { "$ref": "#/$defs/Issuer" }, "country": { "$ref": "#/$defs/CountryCode" }, "validFrom": { "type": "string", "minLength": 1, "description": "Beginn der angegebenen Gültigkeit.", "format": "date" }, "validUntil": { "type": "string", "minLength": 1, "description": "Letzter Gültigkeitstag, falls bekannt.", "format": "date" } }, "required": [ "value", "scheme" ], "additionalProperties": false }, "Issuer": { "type": "object", "description": "Aussteller einschließlich internationaler Organisationen.", "properties": { "authority": { "type": "string", "minLength": 1, "description": "Originalname der Behörde oder Organisation." }, "id": { "type": "string", "minLength": 1, "description": "Stabile Kennung des Ausstellers.", "format": "uri" }, "country": { "$ref": "#/$defs/CountryCode", "description": "Optional: Land des Ausstellers; keine erfundene Länderkennung für internationale Organisationen." }, "region": { "type": "string", "minLength": 1, "description": "Optionale Verwaltungseinheit oder Zuständigkeitsbezeichnung." } }, "required": [ "authority" ], "additionalProperties": false }, "CountryCode": { "type": "string", "minLength": 1, "description": "ISO 3166-1 Alpha-2, Großbuchstaben. Das Muster prüft nur die Schreibweise; zugewiesenen Code und Gültigkeitszeitpunkt gesondert prüfen.", "pattern": "^[A-Z]{2}$" }, "CurrencyCode": { "type": "string", "minLength": 1, "description": "ISO-4217-Währungscode; Schreibweise allein belegt weder Zuweisung noch historische Gültigkeit.", "pattern": "^[A-Z]{3}$" } }, "examples": [ { "accountHolders": [ { "entityType": "person", "id": "urn:example:person:42" } ], "accountNumber": "000123456789", "routingIdentifiers": [ { "value": "021000021", "scheme": "https://example.org/routing/aba" } ], "bank": { "name": "Example Bank", "country": "US" }, "currency": "USD" }, { "accountHolders": [ { "entityType": "legalEntity", "id": "urn:example:organisation:42" } ], "iban": "DE89370400440532013000", "bank": { "name": "Example Bank", "country": "DE" }, "currency": "EUR" } ] } ===== Quellen und Abgrenzung ===== * [[https://www.swift.com/standards/data-standards/iban-international-bank-account-number|SWIFT: IBAN und Register nationaler Formate]] * [[https://www.six-group.com/en/products-services/financial-information/market-reference-data/data-standards.html|SIX: ISO-4217-Währungen und Nachkommastellen]] * [[https://json-schema.org/understanding-json-schema/structuring|JSON Schema: Aufbau und Referenzen]] Quellen geprüft am 8. September 2026. Die B2Base-Felder und ihre Kombination sind ein eigener Entwurf. Code-Register, nationale Regeln, Echtheit, Zeitfolgen und Referenzziele benötigen die im jeweiligen Verfahren vereinbarten Zusatzprüfungen. [[schemes:scheme|Zur Bibliothek]] · [[:guidelines|Integration]] · [[:faq|Häufige Fragen]]