B2Base

Bürokratie vereinfachen durch Standards

Benutzer-Werkzeuge

Webseiten-Werkzeuge


schemes:financial:bankaccount

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
schemes:financial:bankaccount [2024/12/12 14:38] – [description] lars_gerulatschemes:financial:bankaccount [2026/09/08 14:34] (aktuell) – B2Base-Schemaentwurf: internationale Datenmodelle, Beispiele und Erläuterungen 0.0.0.0
Zeile 1: Zeile 1:
-====== description ====== +====== Bankverbindungen ======
-Hier ist ein JSON Schema [[schemes:financial|financial]]:bankaccount, das international gültige Kontoinformationen erfasst. Es berücksichtigt Bankkontodaten wie IBAN, SWIFT/BIC, Kontonummer, Bankleitzahl und weitere Felder, die weltweit verwendet werden könnten.+
  
-In diesem JSON Schema ist es möglich, mehrere Einträge desselben Typs in einem Array zuzulassen, selbst wenn der Typ innerhalb einer oneOf-Definition stehtDie Verwendung von oneOf bedeutet jedoch, dass jeder einzelne Eintrag im Array entweder das Schema für eine natürliche Person oder für eine juristische Person erfüllen muss.+<WRAP b2hero> 
 +**B2Base · 1.0.0-draft.1 · Projektentwurf**
  
-====== references ====== +IBAN-basierte und lokale Kontoverbindungen mit eindeutigen Kontoinhaberverweisen.
-  * [[schemes:person:nameandbirthdetails|schemes:person:nameandbirthdetails]] +
-  * [[schemes:legalentity:nameanddetails|schemes:legalentity:nameanddetails]]+
  
-====== examples ====== +[[schemes:scheme|Bibliothek]] · [[schemes:financial|Finanzen]] · [[schemes:principles|Internationale Grundregeln]] 
-===== json notation ===== +</WRAP> 
-<code>+ 
 +===== 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 ==== 
 + 
 +<file json example-1.json>
 { {
   "accountHolders": [   "accountHolders": [
     {     {
-      "$ref": "https://b2base.eu/doku.php?id=schemes:person:nameandbirthdetails+      "entityType": "person", 
-    },+      "id": "urn:example:person:42
 +    } 
 +  ], 
 +  "accountNumber": "000123456789", 
 +  "routingIdentifiers": [
     {     {
-      "$ref": "https://b2base.eu/doku.php?id=schemes:legalentity:nameanddetails"+      "value": "021000021", 
 +      "scheme": "https://example.org/routing/aba"
     }     }
   ],   ],
-  "authorizedUsers": [+  "bank": { 
 +    "name": "Example Bank", 
 +    "country": "US" 
 +  }, 
 +  "currency": "USD" 
 +
 +</file> 
 + 
 +==== Beispiel 2 ==== 
 + 
 +<file json example-2.json> 
 +
 +  "accountHolders": [
     {     {
-      "$ref": "https://b2base.eu/doku.php?id=schemes:person:nameandbirthdetails", +      "entityType": "legalEntity", 
-      "authorizationLevel": "view" +      "id": "urn:example:organisation:42"
-    }, +
-    { +
-      "$ref""https://b2base.eu/doku.php?id=schemes:person:nameandbirthdetails", +
-      "authorizationLevel": "full access"+
     }     }
   ],   ],
-  "accountNumber": "DE12345678901234567890", 
   "iban": "DE89370400440532013000",   "iban": "DE89370400440532013000",
-  "swiftBic": "COBADEFFXXX", 
   "bank": {   "bank": {
-    "$ref": "https://b2base.eu/doku.php?id=schemes:legalentity:nameanddetails"+    "name": "Example Bank", 
 +    "country""DE"
   },   },
-  "currency": "EUR", +  "currency": "EUR"
-  "additionalDetails": "This is a business account for operational transactions."+
 } }
-</code>+</file>
  
 +===== Umstellung aus dem bisherigen Wiki =====
  
-====== schema ====== +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. 
-<code>+ 
 +[[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. 
 + 
 +<file json bankaccount.schema.json>
 { {
   "$schema": "https://json-schema.org/draft/2020-12/schema",   "$schema": "https://json-schema.org/draft/2020-12/schema",
-  "title": "https://b2base.eu/doku.php?id=schemes:financial:bankaccount",+  "$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",   "type": "object",
 +  "description": "Bankverbindung; Unterstützung des jeweiligen Zahlungswegs muss separat geprüft werden.",
   "properties": {   "properties": {
     "accountHolders": {     "accountHolders": {
       "type": "array",       "type": "array",
-      "description": "List of account holders (individuals or legal entities)",+      "description": "Verweise auf Kontoinhaber.",
       "items": {       "items": {
-        "type": "object", +        "$ref": "#/$defs/PartyRef
-        "oneOf":+      }, 
-          { +      "minItems": 1
-            "$ref": "https://b2base.eu/doku.php?id=schemes:person:nameandbirthdetails+
-          }, +
-          { +
-            "$ref": "https://b2base.eu/doku.php?id=schemes:legalentity:nameanddetails" +
-          } +
-        ] +
-      }+
     },     },
     "authorizedUsers": {     "authorizedUsers": {
       "type": "array",       "type": "array",
-      "description": "List of individuals with authorization to access the account",+      "description": "Dokumentierte Berechtigungen; übertragen keine Zugriffsrechte.",
       "items": {       "items": {
         "type": "object",         "type": "object",
 +        "description": "Eine Berechtigungsangabe.",
         "properties": {         "properties": {
-          "$ref": "https://b2base.eu/doku.php?id=schemes:person:nameandbirthdetails",+          "party":
 +            "$ref": "#/$defs/PartyRef" 
 +          },
           "authorizationLevel": {           "authorizationLevel": {
             "type": "string",             "type": "string",
-            "description": "Level of authorization (e.g., view, transaction, full access)", +            "minLength": 1, 
-            "enum": ["view", "transaction", "full access"]+            "description": "Beschriebener Umfang.", 
 +            "enum": [ 
 +              "view", 
 +              "transaction", 
 +              "fullAccess" 
 +            ]
           }           }
         },         },
-        "required": ["$ref", "authorizationLevel"]+        "required": [ 
 +          "party", 
 +          "authorizationLevel" 
 +        ]
 +        "additionalProperties": false
       }       }
     },     },
     "accountNumber": {     "accountNumber": {
       "type": "string",       "type": "string",
-      "description": "Account number (if IBAN is not available)"+      "minLength": 1
-      "pattern": "^[A-Za-z0-9]{1,34}$"+      "description": "Lokale Kontonummer in Originalschreibweise; kein globaler Zeichenfilter."
     },     },
     "iban": {     "iban": {
       "type": "string",       "type": "string",
-      "description": "International Bank Account Number", +      "minLength": 1, 
-      "pattern": "^[A-Z]{2}\d{2}[A-Za-z0-9]{1,30}$"+      "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": {     "swiftBic": {
       "type": "string",       "type": "string",
-      "description": "SWIFT/BIC code of the bank", +      "minLength": 1, 
-      "pattern": "^[A-Za-z]{4}[A-Za-z]{2}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$"+      "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": {     "bank": {
-      "$ref": "https://b2base.eu/doku.php?id=schemes:legalentity:nameanddetails", +      "type": "object", 
-      "description": "Details of the bank as a legal entity"+      "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": {     "currency": {
-      "type": "string", +      "$ref": "#/$defs/CurrencyCode"
-      "description": "Currency of the account in ISO 4217 format", +
-      "pattern": "^[A-Z]{3}$"+
     },     },
     "additionalDetails": {     "additionalDetails": {
       "type": "string",       "type": "string",
-      "description": "Additional details or notes regarding the account"+      "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", "iban", "swiftBic", "bank", "currency"], +  "required": [ 
-  "additionalProperties": false+    "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" 
 +    } 
 +  ]
 } }
-</code>+</file> 
 + 
 +===== 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]] 
schemes/financial/bankaccount.1734010722.txt.gz · Zuletzt geändert: (Externe Bearbeitung)

Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki