All Downloads are FREE. Search and download functionalities are using the official Maven repository.

metadata-schemas.metadata_schema_1.0.0.json Maven / Gradle / Ivy

Go to download

Library that provides client access to the FIT-Connect api-endpoints for sending, subscribing and routing

The newest version!
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://schema.fitko.de/fit-connect/metadata/1.0.0/metadata.schema.json",
  "type": "object",
  "title": "Metadaten",
  "description": "",
  "required": [
    "contentStructure"
  ],
  "properties": {
    "contentStructure": {
      "description": "Beschreibt die Struktur der zusätzlichen Inhalte der Einreichung, wie Anlagen oder Fachdaten.",
      "type": "object",
      "required": [
        "attachments"
      ],
      "properties": {
        "data": {
          "description": "Definiert das Schema und die Signatur(-art), die für die Fachdaten verwendet werden.",
          "type": "object",
          "required": [
            "hash",
            "submissionSchema"
          ],
          "properties": {
            "signature": {
              "type": "object",
              "description": "Beschreibt das Signaturformt und Profile",
              "examples": [],
              "properties": {
                "signatureFormat": {
                  "type": "string",
                  "description": "Beschreibt, welches Signaturformat die genutzte Signatur / das genutzte Siegel nutzt. Aktuell wird die Hinterlegung folgender Signaturformate unterstützt: CMS = Cryptographic Message Syntax, Asic = Associated Signature Containers, PDF = PDF Signatur, XML = XML-Signature, JSON = JSON Web Signature. ",
                  "enum": [
                    "cms",
                    "xml",
                    "pdf",
                    "asic",
                    "json"
                  ]
                },
                "eidasAdesProfile": {
                  "type": "string",
                  "description": "Referenziert ein eindeutiges Profil einer AdES (advanced electronic signature/seal) gemäß eIDAS-Verordnung über eine URI gemäß [ETSI TS 119 192](https://www.etsi.org/deliver/etsi_ts/119100_119199/119192/01.01.01_60/ts_119192v010101p.pdf).\n\nFür die Details zur Verwendung und Validierung von Profilen siehe auch https://ec.europa.eu/cefdigital/DSS/webapp-demo/doc/dss-documentation.html#_signatures_profile_simplification",
                  "enum": [
                    "http://uri.etsi.org/ades/191x2/level/baseline/B-B#",
                    "http://uri.etsi.org/ades/191x2/level/baseline/B-T#",
                    "http://uri.etsi.org/ades/191x2/level/baseline/B-LT#",
                    "http://uri.etsi.org/ades/191x2/level/baseline/B-LTA#"
                  ]
                },
                "detachedSignature": {
                  "type": "boolean",
                  "description": "Beschreibt, ob die Signatur als seperate (detached) Signatur (`true`) oder als Teil des Fachdatensatzes bzw. der Anlage  (`false`) übertragen wird. Wenn der Wert `true` ist, dann wird die Signatur Base64- oder Base64Url-kodiert im Feld `content` übertragen."
                },
                "content": {
                  "type": "string",
                  "description": "Hier wird die Signatur im Falle einer Detached-Signatur als Base64- oder Base64Url-kodierte Zeichenkette hinterlegt. Eine Base64Url-Kodierung kommt nur bei Einsatz von JSON Web Signatures (JWS / JAdES) zum Einsatz.",
                  "pattern": "^[a-zA-Z0-9+/=]+|[a-zA-Z0-9_-]+$"
                }
              },
              "required": [
                "signatureFormat",
                "detachedSignature"
              ]
            },
            "hash": {
              "title": "Hashwert",
              "description": "Der Hashwert der unverschlüsselten Fachdaten. Die Angabe des Hashwertes dient der Integritätssicherung des Gesamtantrags und schützt vor einem Austausch der Fachdaten durch Systeme zwischen Sender und Subscriber (z.B. dem Zustelldienst).",
              "type": "object",
              "required": [
                "type",
                "content"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Der verwendete Hash-Algorithmus. Derzeit ist nur `sha512` erlaubt.",
                  "enum": [
                    "sha512"
                  ]
                },
                "content": {
                  "type": "string",
                  "description": "Der Hex-kodierte Hashwert gemäß des angegebenen Algorithmus.",
                  "pattern": "^[a-f0-9]{128}$"
                }
              }
            },
            "submissionSchema": {
              "title": "Fachdatenschema",
              "description": "Referenz auf ein Schema, das die Struktur der Fachdaten einer Einreichung beschreibt.",
              "type": "object",
              "required": [
                "schemaUri",
                "mimeType"
              ],
              "properties": {
                "schemaUri": {
                  "type": "string",
                  "format": "uri",
                  "description": "URI des Fachschemas. Wird hier eine URL verwendet, sollte das Schema unter der angegebenen URL abrufbar sein. Eine Verfügbarkeit des Schemas unter der angegebenen URL darf jedoch nicht vorausgesetzt werden."
                },
                "mimeType": {
                  "type": "string",
                  "description": "Mimetype (z.B. application/json oder application/xml) des referenzierten Schemas (z.B. XSD- oder JSON-Schema).",
                  "enum": [
                    "application/json",
                    "application/xml"
                  ]
                }
              }
            }
          }
        },
        "attachments": {
          "type": "array",
          "items": {
            "type": "object",
            "description": "Eine in der Einreichung enthaltene Anlage.",
            "required": [
              "hash",
              "purpose",
              "mimeType",
              "attachmentId"
            ],
            "properties": {
              "hash": {
                "title": "Hashwert",
                "description": "Der Hashwert der unverschlüsselten Anlage. Die Angabe des Hashwertes dient der Integritätssicherung des Gesamtantrags und schützt vor einem Austausch der Anlage durch Systeme zwischen Sender und Subscriber (z.B. dem Zustelldienst).",
                "type": "object",
                "required": [
                  "type",
                  "content"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "Der verwendete Hash-Algorithmus. Derzeit ist nur `sha512` erlaubt.",
                    "enum": [
                      "sha512"
                    ]
                  },
                  "content": {
                    "type": "string",
                    "description": "Der Hex-kodierte Hashwert gemäß des angegebenen Algorithmus.",
                    "pattern": "^[a-f0-9]{128}$"
                  }
                }
              },
              "signature": {
                "$ref": "#/properties/contentStructure/properties/data/properties/signature"
              },
              "purpose": {
                "description": "Zweck/Art der Anlage\n- form: Automatisch generierte PDF-Repräsentation des vollständigen Antragsformulars\n- attachment: Anlage, die von einem Bürger hochgeladen wurde\n- report: Vom Onlinedienst, nachträglich erzeugte Unterlage",
                "type": "string",
                "enum": [
                  "form",
                  "attachment",
                  "report"
                ]
              },
              "filename": {
                "type": "string",
                "description": "Ursprünglicher Dateiname bei Erzeugung oder Upload"
              },
              "description": {
                "type": "string",
                "description": "Optionale Beschreibung der Anlage"
              },
              "mimeType": {
                "type": "string",
                "title": "MIME Type",
                "description": "Internet Media Type gemäß RFC 2045, z. B. application/pdf.",
                "examples": [
                  "application/xml"
                ],
                "pattern": "^[-\\w.]+/[-\\w.+]+$"
              },
              "attachmentId": {
                "type": "string",
                "description": "Innerhalb einer Einreichung eindeutige Id der Anlage im Format einer UUIDv4.",
                "format": "uuid",
                "minLength": 32,
                "maxLength": 36
              }
            }
          }
        }
      }
    },
    "publicServiceType": {
      "type": "object",
      "title": "Verwaltungsleistung",
      "description": "Beschreibung der Art der Verwaltungsleistung. Eine Verwaltungsleistung sollte immer mit einer LeiKa-Id beschrieben werden. Ist für die gegebene Verwaltungsleistung keine LeiKa-Id vorhanden, kann die Verwaltungsleistung übergangsweise über die Angabe einer anderen eindeutigen Schema-URN beschrieben werden.",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name/Bezeichnung der Verwaltungsleistung"
        },
        "description": {
          "type": "string",
          "description": "(Kurz-)Beschreibung der Verwaltungsleistung"
        },
        "identifier": {
          "title": "Leistungs-Identifikator",
          "description": "URN einer Leistung. Im Falle einer Leistung aus dem Leistungskatalog sollte hier `urn:de:fim:leika:leistung:` vorangestellt werden.\n",
          "type": "string",
          "minLength": 7,
          "maxLength": 255,
          "pattern": "^urn:[a-z0-9][a-z0-9-]{0,31}:[a-z0-9()+,.:=@;$_!*'%/?#-]+$"
        }
      },
      "required": [
        "identifier"
      ]
    },
    "authenticationInformation": {
      "description": "Eine Liste aller Identifikationsnachweise der Einreichung.",
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "description": "Eine Struktur, die einen Identifikationsnachweis beschreibt.",
        "properties": {
          "type": {
            "description": "Definiert die Art des Identifikationsnachweises.",
            "type": "string",
            "enum": [
              "identificationReport"
            ]
          },
          "version": {
            "type": "string",
            "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$",
            "description": "semver kompatible Versionsangabe des genutzten Nachweistyps."
          },
          "content": {
            "type": "string",
            "description": "Der Nachweis wird als Base64Url-kodierte Zeichenkette angegeben.",
            "pattern": "^[a-zA-Z0-9_\\-.]+$"
          }
        },
        "required": [
          "type",
          "version",
          "content"
        ]
      }
    },
    "paymentInformation": {
      "description": "Dieses Objekt enthält die Informationen vom Bezahldienst.",
      "type": "object",
      "required": [
        "transactionReference",
        "transactionId",
        "paymentMethod",
        "status"
      ],
      "properties": {
        "transactionUrl": {
          "type": "string",
          "format": "uri",
          "minLength": 1,
          "examples": [
            "https://payment.bundesland.zzzz/api/v1/paymenttransaction/12002312/MELD-ANT-FORM-4711/9xxd-432x-6543-xfd6-gfdx-fd27"
          ],
          "description": "Die Rest-URL der Payment Transaction für die Statusabfrage."
        },
        "transactionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 36,
          "pattern": "^[\\w\\d-]+$",
          "examples": [
            "9xxd-432x-6543-xfd6-gfdx-fd27"
          ],
          "description": "Eine vom Bezahldienst vergebene Transaktions-Id."
        },
        "transactionReference": {
          "type": "string",
          "description": "Bezahlreferenz bzw. Verwendungszweck, wie z. B. ein Kassenzeichen."
        },
        "transactionTimestamp": {
          "type": "string",
          "format": "date-time",
          "description": "Zeitstempel der erfolgreichen Durchführung der Bezahlung."
        },
        "paymentMethod": {
          "type": "string",
          "enum": [
            "GIROPAY",
            "PAYDIRECT",
            "CREDITCARD",
            "PAYPAL",
            "INVOICE",
            "OTHER"
          ],
          "examples": [
            "CREDITCARD"
          ],
          "description": "Die vom Benutzer ausgewählte Zahlart. Das Feld ist nur bei einer erfolgreichen Zahlung vorhanden / befüllt."
        },
        "paymentMethodDetail": {
          "type": "string",
          "minLength": 1,
          "maxLength": 36,
          "pattern": "^[\\w\\d-]+$",
          "examples": [
            "Visa"
          ],
          "description": "Weitere Erläuterung zur gewählten Zahlart."
        },
        "status": {
          "type": "string",
          "enum": [
            "INITIAL",
            "BOOKED",
            "FAILED",
            "CANCELED"
          ],
          "description": "- INITIAL - der Einreichung hat einen Payment-Request ausgelöst und eine Payment-Transaction wurde angelegt. Der Nutzer hat aber im Bezahldienst noch keine Wirkung erzeugt.\n- BOOKED - der Nutzer hat die Bezahlung im Bezahldienst autorisiert.\n- FAILED - der Vorgang wurde vom Bezahldienst aufgrund der Nutzereingaben abgebrochen.\n- CANCELED - der Nutzer hat die Bezahlung im Bezahldienst abgebrochen."
        },
        "grossAmount": {
          "type": "number",
          "minimum": 0.01,
          "multipleOf": 0.01,
          "description": "Bruttobetrag"
        }
      }
    },
    "replyChannel": {
      "type": "object",
      "minProperties": 1,
      "maxProperties": 1,
      "properties": {
        "eMail": {
          "type": "object",
          "properties": {
            "address": {
              "type": "string",
              "format": "email"
            },
            "pgpPublicKey": {
              "type": "string",
              "description": "Hilfe zur Erstellung gibt es in der Dokumentation unter https://docs.fitko.de/fit-connect/details/pgp-export",
              "pattern": "^-----BEGIN PGP PUBLIC KEY BLOCK-----\\n\\n"
            }
          },
          "required": [
            "address"
          ]
        },
        "deMail": {
          "type": "object",
          "description": "Akkreditierte Anbieter siehe https://www.bsi.bund.de/DE/Themen/Oeffentliche-Verwaltung/Moderner-Staat/De-Mail/Akkreditierte-DMDA/akkreditierte-dmda_node.html",
          "properties": {
            "address": {
              "type": "string",
              "format": "email"
            }
          },
          "required": [
            "address"
          ]
        },
        "fink": {
          "type": "object",
          "description": "Postfachadresse in einem interoperablen Servicekonto (FINK.PFISK)",
          "properties": {
            "finkPostfachRef": {
              "type": "string",
              "description": "FINK Postfachadresse",
              "examples": [
                "hh/by/12345"
              ],
              "maxLength": 150,
              "pattern": "^[-._a-z0-9~/]*$"
            },
            "host": {
              "type": "string",
              "description": "URL des Servicekontos, in dem das Ziel-Postfach liegt",
              "format": "uri",
              "examples": [
                "https://servicekonto1.example.com/"
              ]
            }
          },
          "required": [
            "finkPostfachRef"
          ]
        },
        "elster": {
          "type": "object",
          "description": "Siehe https://www.elster.de/elsterweb/infoseite/elstertransfer_hilfe_schnittstellen",
          "properties": {
            "accountId": {
              "type": "string",
              "pattern": "^\\d{10}$"
            },
            "lieferTicket": {
              "type": "string"
            },
            "geschaeftszeichen": {
              "type": "string",
              "maxLength": 10
            }
          },
          "required": [
            "accountId"
          ]
        }
      }
    },
    "additionalReferenceInfo": {
      "type": "object",
      "description": "Eine Struktur, um zusätzliche Informationen zu hinterlegen",
      "properties": {
        "senderReference": {
          "type": "string",
          "description": "Eine Referenz zum Vorgang im sendenden System, um bei Problemen und Rückfragen außerhalb von FIT-Connect den Vorgang im dortigen System schneller zu identifizieren."
        },
        "applicationDate": {
          "type": "string",
          "format": "date",
          "description": "Das Datum der Antragstellung. Das Datum muss nicht zwingend identisch mit dem Datum der Einreichung des Antrags über FIT-Connect sein."
        }
      }
    }
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy