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

Nächste Überarbeitung
Vorherige Überarbeitung
schemes:financial:bankaccount [2024/12/12 12:39] – angelegt 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, 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**
  
-====== examples ======+IBAN-basierte und lokale Kontoverbindungen mit eindeutigen Kontoinhaberverweisen.
  
 +[[schemes:scheme|Bibliothek]] · [[schemes:financial|Finanzen]] · [[schemes:principles|Internationale Grundregeln]]
 +</WRAP>
  
 +===== 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]]
  
-====== schema ====== +**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]] 
-<code>+ 
 +===== 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":
 +    { 
 +      "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" 
 +
 +</file> 
 + 
 +==== Beispiel 2 ==== 
 + 
 +<file json example-2.json> 
 +
 +  "accountHolders":
 +    { 
 +      "entityType": "legalEntity", 
 +      "id": "urn:example:organisation:42" 
 +    } 
 +  ], 
 +  "iban": "DE89370400440532013000", 
 +  "bank":
 +    "name": "Example Bank", 
 +    "country": "DE" 
 +  }, 
 +  "currency": "EUR" 
 +
 +</file> 
 + 
 +===== 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. 
 + 
 +<file json bankaccount.schema.json>
 { {
   "$schema": "https://json-schema.org/draft/2020-12/schema",   "$schema": "https://json-schema.org/draft/2020-12/schema",
-  "title": "International Bank Account Information",+  "$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:namedetails" +
-          } +
-        ] +
-      }+
     },     },
     "authorizedUsers": {     "authorizedUsers": {
       "type": "array",       "type": "array",
-      "description": "List of individuals with authorization to access the account",+      "description": "Dokumentierte Berechtigungen; übertragen keine Zugriffsrechte.",
       "items": {       "items": {
-        "$ref": "https://b2base.eu/doku.php?id=schemes:person:nameandbirthdetails"+        "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": {     "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})?$"
     },     },
-    "bankName": {+    "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",       "type": "string",
-      "description": "Name of the bank"+      "minLength": 1, 
 +      "description": "Optionale Erläuterung."
     },     },
-    "bankAddress": {+    "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",       "type": "object",
-      "description": "Address of the bank",+      "description": "Verweis auf eine separat gespeicherte Person oder juristische Person; kein JSON-Schema-Verweis.",
       "properties": {       "properties": {
-        "street": {+        "entityType": {
           "type": "string",           "type": "string",
-          "description": "Street address of the bank"+          "minLength": 1, 
 +          "description": "Art der referenzierten Einheit.", 
 +          "enum":
 +            "person", 
 +            "legalEntity" 
 +          ]
         },         },
-        "city": {+        "id": {
           "type": "string",           "type": "string",
-          "description": "City where the bank is located"+          "minLength": 1, 
 +          "description": "Stabile absolute URI oder URN des Datensatzes, nicht dessen Name.", 
 +          "format": "uri"
         },         },
-        "postalCode": {+        "name": {
           "type": "string",           "type": "string",
-          "description": "Postal code of the bank", +          "minLength": 1, 
-          "pattern": "^[A-Za-z0-9\s-]+$"+          "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": {         "country": {
 +          "$ref": "#/$defs/CountryCode"
 +        },
 +        "validFrom": {
           "type": "string",           "type": "string",
-          "description": "Country where the bank is located", +          "minLength": 1, 
-          "minLength": 2+          "description": "Beginn der angegebenen Gültigkeit.", 
-          "maxLength": 2+          "format": "date" 
-          "pattern": "^[A-Z]{2}$"+        }, 
 +        "validUntil":
 +          "type": "string", 
 +          "minLength": 1
 +          "description": "Letzter Gültigkeitstag, falls bekannt."
 +          "format": "date"
         }         }
       },       },
-      "required": ["street", "city", "postalCode", "country"]+      "required": [ 
 +        "value", 
 +        "scheme" 
 +      ], 
 +      "additionalProperties": false
     },     },
-    "currency": {+    "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",       "type": "string",
-      "description": "Currency of the account in ISO 4217 format", +      "minLength": 1, 
-      "pattern": "^[A-Z]{3}$"+      "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}$"
     },     },
-    "additionalDetails": {+    "CurrencyCode": {
       "type": "string",       "type": "string",
-      "description": "Additional details or notes regarding the account"+      "minLength": 1, 
 +      "description": "ISO-4217-Währungscode; Schreibweise allein belegt weder Zuweisung noch historische Gültigkeit.", 
 +      "pattern": "^[A-Z]{3}$"
     }     }
   },   },
-  "required": ["accountHolders", "iban", "swiftBic", "bankName", "currency"], +  "examples": [ 
-  "additionalProperties": false+    { 
 +      "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.1734003573.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