B2Base

Bürokratie vereinfachen durch Standards

Benutzer-Werkzeuge

Webseiten-Werkzeuge


schemes:logistics:shipment

Lieferungen

B2Base · 1.0.0-draft.1 · Projektentwurf

Sendungskennung, Beteiligte, Zustelladresse und Ereigniszeitpunkte.

Bibliothek · Logistik · Internationale Grundregeln

Direkt verwenden

Austauschschema (JSON) · Schema für den Designer · Beispieldaten

Austauschschema: vollständige Strukturprüfung mit JSON Schema 2020-12. Designer-Fassung: gleiche Datenfelder mit reduzierten Strukturregeln zur Feldübernahme. Anleitung und Grenzen

Felder im Überblick

Feld Typ Pflicht im Modul Bedeutung
id string Ja Sendungskennung.
sender object Nein Verweis auf eine separat gespeicherte Person oder juristische Person; kein JSON-Schema-Verweis.
recipient object Nein Verweis auf eine separat gespeicherte Person oder juristische Person; kein JSON-Schema-Verweis.
deliveryAddress object Ja Internationale Post- oder Standortadresse. Weder Straße, Hausnummer, Stadt noch Postleitzahl sind weltweit obligatorisch.
carrier object Nein Verweis auf eine separat gespeicherte Person oder juristische Person; kein JSON-Schema-Verweis.
trackingIdentifiers array Nein Trackingnummern mit Herausgebersystem.
status string Ja Gemeinsamer Mindeststatus.
dispatchedAt string Nein Tatsächlicher Versandzeitpunkt.
deliveredAt string Nein Tatsächlicher Zustellzeitpunkt.
documentRefs array Nein Begleitdokumente.
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

  • Eine Sendung kann mehrere Packstücke oder Bestellungen betreffen. Deren Identitäten nicht mit der Sendungskennung vermischen.
  • Trackingnummern sind ohne Carrier beziehungsweise Kennungssystem nicht global eindeutig.
  • Zustellung verlangt einen tatsächlich erfassten deliveredAt-Zeitpunkt; Carrier-spezifische Ereignisse lassen sich über vereinbarte Erweiterungen abbilden.

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

example-1.json
{
  "id": "urn:example:shipment:42",
  "deliveryAddress": {
    "country": {
      "code": "GB"
    },
    "addressLines": [
      "Example House",
      "London SW1A 1AA"
    ]
  },
  "status": "planned"
}

Umstellung aus dem bisherigen Wiki

Die angekündigte Logistikkategorie erhält einen ersten Standard mit demselben Adress- und Referenzmodell.

Ä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.

shipment.schema.json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://b2base.eu/schemas/1.0.0-draft.1/logistics/shipment.schema.json",
  "title": "Lieferungen",
  "$comment": "B2Base 1.0.0-draft.1. Projektentwurf, kein durch ISO oder andere Normungsgremien verabschiedeter Standard.",
  "type": "object",
  "description": "Eine logistische Sendung.",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "Sendungskennung.",
      "format": "uri"
    },
    "sender": {
      "$ref": "#/$defs/PartyRef"
    },
    "recipient": {
      "$ref": "#/$defs/PartyRef"
    },
    "deliveryAddress": {
      "$ref": "#/$defs/Address"
    },
    "carrier": {
      "$ref": "#/$defs/PartyRef"
    },
    "trackingIdentifiers": {
      "type": "array",
      "description": "Trackingnummern mit Herausgebersystem.",
      "items": {
        "$ref": "#/$defs/Identifier"
      }
    },
    "status": {
      "type": "string",
      "minLength": 1,
      "description": "Gemeinsamer Mindeststatus.",
      "enum": [
        "planned",
        "dispatched",
        "inTransit",
        "delivered",
        "exception",
        "cancelled"
      ]
    },
    "dispatchedAt": {
      "type": "string",
      "minLength": 1,
      "description": "Tatsächlicher Versandzeitpunkt.",
      "format": "date-time"
    },
    "deliveredAt": {
      "type": "string",
      "minLength": 1,
      "description": "Tatsächlicher Zustellzeitpunkt.",
      "format": "date-time"
    },
    "documentRefs": {
      "type": "array",
      "description": "Begleitdokumente.",
      "items": {
        "type": "string",
        "minLength": 1,
        "description": "Dokument-URI.",
        "format": "uri"
      }
    },
    "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": [
    "id",
    "deliveryAddress",
    "status"
  ],
  "additionalProperties": false,
  "allOf": [
    {
      "if": {
        "properties": {
          "status": {
            "const": "delivered"
          }
        },
        "required": [
          "status"
        ]
      },
      "then": {
        "required": [
          "deliveredAt"
        ]
      }
    }
  ],
  "$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
    },
    "Address": {
      "type": "object",
      "description": "Internationale Post- oder Standortadresse. Weder Straße, Hausnummer, Stadt noch Postleitzahl sind weltweit obligatorisch.",
      "properties": {
        "type": {
          "type": "string",
          "minLength": 1,
          "description": "Verwendungszweck, etwa home, work oder delivery."
        },
        "addressLines": {
          "type": "array",
          "description": "Geordnete Druckzeilen in der Originalschrift; bei Angabe maßgeblich für die Darstellung.",
          "items": {
            "type": "string",
            "minLength": 1,
            "description": "Eine Adresszeile."
          },
          "minItems": 1
        },
        "language": {
          "$ref": "#/$defs/LanguageTag"
        },
        "recipient": {
          "type": "string",
          "minLength": 1,
          "description": "Optionale Empfängerbezeichnung."
        },
        "street": {
          "type": "object",
          "description": "Straßenname.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "description": "Straßenname."
            },
            "line_in_address": {
              "type": "integer",
              "description": "Optionale Druckzeile, beginnend bei 1; aus dem bisherigen Modell beibehalten.",
              "minimum": 1
            },
            "position_in_address_line": {
              "type": "integer",
              "description": "Optionale Position in der Druckzeile, beginnend bei 1.",
              "minimum": 1
            }
          },
          "required": [
            "name"
          ],
          "additionalProperties": false
        },
        "number": {
          "type": "object",
          "description": "Hausnummer, auch alphanumerisch.",
          "properties": {
            "value": {
              "type": "string",
              "minLength": 1,
              "description": "Hausnummer, auch alphanumerisch."
            },
            "line_in_address": {
              "type": "integer",
              "description": "Optionale Druckzeile, beginnend bei 1; aus dem bisherigen Modell beibehalten.",
              "minimum": 1
            },
            "position_in_address_line": {
              "type": "integer",
              "description": "Optionale Position in der Druckzeile, beginnend bei 1.",
              "minimum": 1
            }
          },
          "required": [
            "value"
          ],
          "additionalProperties": false
        },
        "unit": {
          "type": "object",
          "description": "Einheit oder Wohnung.",
          "properties": {
            "value": {
              "type": "string",
              "minLength": 1,
              "description": "Einheit oder Wohnung."
            },
            "line_in_address": {
              "type": "integer",
              "description": "Optionale Druckzeile, beginnend bei 1; aus dem bisherigen Modell beibehalten.",
              "minimum": 1
            },
            "position_in_address_line": {
              "type": "integer",
              "description": "Optionale Position in der Druckzeile, beginnend bei 1.",
              "minimum": 1
            }
          },
          "required": [
            "value"
          ],
          "additionalProperties": false
        },
        "floor": {
          "type": "object",
          "description": "Etagenbezeichnung.",
          "properties": {
            "value": {
              "type": "string",
              "minLength": 1,
              "description": "Etagenbezeichnung."
            },
            "line_in_address": {
              "type": "integer",
              "description": "Optionale Druckzeile, beginnend bei 1; aus dem bisherigen Modell beibehalten.",
              "minimum": 1
            },
            "position_in_address_line": {
              "type": "integer",
              "description": "Optionale Position in der Druckzeile, beginnend bei 1.",
              "minimum": 1
            }
          },
          "required": [
            "value"
          ],
          "additionalProperties": false
        },
        "postBox": {
          "type": "object",
          "description": "Postfach.",
          "properties": {
            "value": {
              "type": "string",
              "minLength": 1,
              "description": "Postfach."
            },
            "line_in_address": {
              "type": "integer",
              "description": "Optionale Druckzeile, beginnend bei 1; aus dem bisherigen Modell beibehalten.",
              "minimum": 1
            },
            "position_in_address_line": {
              "type": "integer",
              "description": "Optionale Position in der Druckzeile, beginnend bei 1.",
              "minimum": 1
            }
          },
          "required": [
            "value"
          ],
          "additionalProperties": false
        },
        "blockOrPlotNumber": {
          "type": "object",
          "description": "Block- oder Parzellenbezeichnung.",
          "properties": {
            "value": {
              "type": "string",
              "minLength": 1,
              "description": "Block- oder Parzellenbezeichnung."
            },
            "line_in_address": {
              "type": "integer",
              "description": "Optionale Druckzeile, beginnend bei 1; aus dem bisherigen Modell beibehalten.",
              "minimum": 1
            },
            "position_in_address_line": {
              "type": "integer",
              "description": "Optionale Position in der Druckzeile, beginnend bei 1.",
              "minimum": 1
            }
          },
          "required": [
            "value"
          ],
          "additionalProperties": false
        },
        "city": {
          "type": "object",
          "description": "Ort oder Zustellbezirk.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "description": "Ort oder Zustellbezirk."
            },
            "line_in_address": {
              "type": "integer",
              "description": "Optionale Druckzeile, beginnend bei 1; aus dem bisherigen Modell beibehalten.",
              "minimum": 1
            },
            "position_in_address_line": {
              "type": "integer",
              "description": "Optionale Position in der Druckzeile, beginnend bei 1.",
              "minimum": 1
            }
          },
          "required": [
            "name"
          ],
          "additionalProperties": false
        },
        "state": {
          "type": "object",
          "description": "Region, Provinz oder Bundesstaat.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "description": "Region, Provinz oder Bundesstaat."
            },
            "line_in_address": {
              "type": "integer",
              "description": "Optionale Druckzeile, beginnend bei 1; aus dem bisherigen Modell beibehalten.",
              "minimum": 1
            },
            "position_in_address_line": {
              "type": "integer",
              "description": "Optionale Position in der Druckzeile, beginnend bei 1.",
              "minimum": 1
            }
          },
          "required": [
            "name"
          ],
          "additionalProperties": false
        },
        "postalCode": {
          "type": "object",
          "description": "Postleitzahl als Text; keine globale fünfstellige Regel.",
          "properties": {
            "value": {
              "type": "string",
              "minLength": 1,
              "description": "Postleitzahl als Text; keine globale fünfstellige Regel."
            },
            "line_in_address": {
              "type": "integer",
              "description": "Optionale Druckzeile, beginnend bei 1; aus dem bisherigen Modell beibehalten.",
              "minimum": 1
            },
            "position_in_address_line": {
              "type": "integer",
              "description": "Optionale Position in der Druckzeile, beginnend bei 1.",
              "minimum": 1
            }
          },
          "required": [
            "value"
          ],
          "additionalProperties": false
        },
        "wardNumber": {
          "type": "object",
          "description": "Verwaltungsbezirk.",
          "properties": {
            "value": {
              "type": "string",
              "minLength": 1,
              "description": "Verwaltungsbezirk."
            },
            "line_in_address": {
              "type": "integer",
              "description": "Optionale Druckzeile, beginnend bei 1; aus dem bisherigen Modell beibehalten.",
              "minimum": 1
            },
            "position_in_address_line": {
              "type": "integer",
              "description": "Optionale Position in der Druckzeile, beginnend bei 1.",
              "minimum": 1
            }
          },
          "required": [
            "value"
          ],
          "additionalProperties": false
        },
        "country": {
          "type": "object",
          "description": "Zielland. Name und Code sind verschiedene Informationen.",
          "properties": {
            "code": {
              "$ref": "#/$defs/CountryCode"
            },
            "name": {
              "type": "string",
              "minLength": 1,
              "description": "Landesname in der angegebenen Sprache."
            },
            "line_in_address": {
              "type": "integer",
              "description": "Optionale Druckzeile, beginnend bei 1; aus dem bisherigen Modell beibehalten.",
              "minimum": 1
            },
            "position_in_address_line": {
              "type": "integer",
              "description": "Optionale Position in der Druckzeile, beginnend bei 1.",
              "minimum": 1
            }
          },
          "additionalProperties": false,
          "anyOf": [
            {
              "required": [
                "code"
              ]
            },
            {
              "required": [
                "name"
              ]
            }
          ]
        },
        "militaryAddress": {
          "type": "boolean",
          "description": "Kennzeichnet eine militärische Adresse, falls bekannt."
        },
        "geolocation": {
          "$ref": "#/$defs/Geolocation"
        },
        "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": [
        "country"
      ],
      "additionalProperties": false,
      "anyOf": [
        {
          "required": [
            "addressLines"
          ]
        },
        {
          "required": [
            "street"
          ]
        },
        {
          "required": [
            "postBox"
          ]
        },
        {
          "required": [
            "city"
          ]
        },
        {
          "required": [
            "geolocation"
          ]
        },
        {
          "required": [
            "blockOrPlotNumber"
          ]
        }
      ]
    },
    "LanguageTag": {
      "type": "string",
      "minLength": 1,
      "description": "BCP-47-Sprachtag, etwa de, zh-Hant-TW, sr-Latn oder x-internal. Das Muster prüft nur die Grundform, nicht Registrierung oder alle BCP-47-Regeln.",
      "pattern": "^[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*$"
    },
    "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}$"
    },
    "Geolocation": {
      "type": "object",
      "description": "WGS-84-Koordinaten in Dezimalgrad. Benannte Felder vermeiden eine vertauschte Achsenreihenfolge.",
      "properties": {
        "latitude": {
          "type": "number",
          "description": "Breitengrad.",
          "minimum": -90,
          "maximum": 90
        },
        "longitude": {
          "type": "number",
          "description": "Längengrad.",
          "minimum": -180,
          "maximum": 180
        },
        "accuracyMeters": {
          "type": "number",
          "description": "Geschätzter horizontaler Unsicherheitsradius in Metern.",
          "minimum": 0
        }
      },
      "required": [
        "latitude",
        "longitude"
      ],
      "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
    }
  },
  "examples": [
    {
      "id": "urn:example:shipment:42",
      "deliveryAddress": {
        "country": {
          "code": "GB"
        },
        "addressLines": [
          "Example House",
          "London SW1A 1AA"
        ]
      },
      "status": "planned"
    }
  ]
}

Quellen und Abgrenzung

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.

Zur Bibliothek · Integration · Häufige Fragen

schemes/logistics/shipment.txt · Zuletzt geändert: von 0.0.0.0

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