rechnungsapi.de
    StartseitePreiseValidatorBlogKontaktAPI Docs
    🔑Anmelden🚀Loslegen
    RechnungsAPIv1.0.10

    Server

    https://onefinancebe.finbc.de

    Auth

    Bearer Token

    Fügen Sie Ihren API-Token als Authorization-Header hinzu:

    Authorization: Bearer <your-token>

    Ihr Token finden Sie nach der Anmeldung unten im Bereich Profil.

    Erste Schritte

    AuthentifizierungSchnellstart

    Endpunkte

    Rechnungserzeugung

    POSTXRechnung aus JSON erzeugenPOSTZUGFeRD aus JSON + PDF erzeugenPOSTZUGFeRD-PDF aus XRechnung erstellenPOSTZUGFeRD-Rechnungs-PDF aus JSON erzeugen (Template)

    PDF Analyse

    POSTRechnungs-PDF analysieren

    Extraktion

    POSTXRechnung aus ZUGFeRD als JSON extrahieren

    Validierung

    POSTXRechnung-XML validierenPOSTZUGFeRD-PDF validieren

    Referenz

    RechnungsobjektFehler

    RechnungsAPI Dokumentation

    EN-16931-konforme E-Rechnungen (XRechnung & ZUGFeRD) erzeugen, validieren, extrahieren und analysieren – über eine einfache REST- + JSON-Schnittstelle.

    v1.0.10 — Produktivhttps://onefinancebe.finbc.de

    Authentifizierung

    Alle Anfragen werden mit einem Bearer-Token authentifiziert. Senden Sie ihn bei jedem Aufruf im Authorization-Header. Tokens sind kontogebunden – geben Sie sie nicht weiter und committen Sie sie nicht.

    Header-Format

    json
    Authorization: Bearer <your-token>
    1. Melden Sie sich im Dashboard an unter rechnungsapi.de.
    2. Öffnen Sie Ihr Profil und kopieren Sie unten den API-Token.
    3. Speichern Sie den Token sicher (Env-Variable oder Secret-Manager) und übergeben Sie ihn bei jeder Anfrage.
    Sicherheitshinweis: Behandeln Sie Ihren API-Token wie ein Passwort. Rotieren Sie ihn bei Verdacht auf Leaks sofort über das Dashboard.

    Schnellstart

    Machen Sie Ihren ersten Aufruf in unter einer Minute. Das folgende Beispiel erzeugt eine XRechnung-XML aus einer minimalen Rechnungs-Payload.

    curl -X POST "https://onefinancebe.finbc.de/api/v1/zugferd/createXinvoiceFromJson" \
      -H "Authorization: Bearer $RECHNUNGSAPI_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "invoice": {
          "invoiceNumber": "INV-2025-0001",
          "invoiceIssueDate": "2025-06-01",
          "invoiceTypeCode": "380",
          "invoiceCurrencyCode": "EUR",
          "buyerReference": "PO-12345"
        }
      }'

    Setzen Sie die Umgebungsvariable RECHNUNGSAPI_TOKEN auf Ihren API-Token, bevor Sie das Snippet ausführen.

    Endpunkte

    Alle Endpunkte sind POST und akzeptieren application/json. Wählen Sie den Workflow passend zu Ihrem Anwendungsfall – Erzeugung, Analyse, Extraktion oder Validierung.

    Rechnungserzeugung

    POST/api/v1/zugferd/createXinvoiceFromJson

    XRechnung aus JSON erzeugen

    Erzeugt eine valide XRechnungs-XML-Datei aus strukturierten JSON-Rechnungsdaten nach EN 16931. Gibt das XML und Validierungsfehler zurück.

    FieldTypeRequiredDescription
    invoiceobjectrequiredRechnungsobjekt nach EN 16931 Feldmapping.

    Beispiel

    json
    {
      "invoice": {
        "invoiceNumber": "String | BT-1",
        "invoiceIssueDate": "Date | BT-2",
        "invoiceTypeCode": "String | BT-3",
        "invoiceCurrencyCode": "String | BT-5",
        "vatAccountingCurrencyCode": "String | BT-6",
        "valueAddedTaxPointDate": "String | BT-7",
        "valueAddedTaxPointDateCode": "String | BT-8",
        "paymentDueDate": "Date | BT-9",
        "buyerReference": "String | BT-10",
        "projectReference": {
          "projectReferenceIdentifier": "String | BT-11",
          "projectReferenceName": "String | BT-11-0"
        },
        "contractReference": "String | BT-12",
        "purchaseOrderReference": "String | BT-13",
        "salesOrderReference": "String | BT-14",
        "receivingAdviceReference": "String | BT-15",
        "despatchAdviceReference": "String | BT-16",
        "tenderOrLotReference": "String | BT-17",
        "invoicedObjectIdentifier": "String | BT-18",
        "buyerAccountingReference": "String | BT-19",
        "paymentTerms": "String | BT-20",
        "invoiceNote": [
          {
            "invoiceNoteSubjectCode": "String | BT-21",
            "invoiceNote": "String | BT-22"
          }
        ],
        "processControl": {
          "businessProcessTypeIdentifier": "String | BT-23",
          "specificationIdentifier": "String | BT-24"
        },
        "precedingInvoiceReference": [
          {
            "precedingInvoiceReference": "String | BT-25",
            "precedingInvoiceIssueDate": "Date | BT-26"
          }
        ],
        "seller": {
          "sellerName": "String | BT-27",
          "sellerTradingName": "String | BT-28",
          "sellerIdentifier": [
            "String | BT-29"
          ],
          "sellerLegalRegistrationIdentifier": "String | BT-30",
          "sellerVatIdentifier": "String | BT-31",
          "sellerTaxRegistrationIdentifier": "String | BT-32",
          "sellerAdditionalLegalInformation": "String | BT-33",
          "sellerElectronicAddress": "String | BT-34",
          "sellerPostalAddress": {
            "sellerAddressLine1": "String | BT-35",
            "sellerAddressLine2": "String | BT-36",
            "sellerAddressLine3": "String | BT-162",
            "sellerCity": "String | BT-37",
            "sellerPostCode": "String | BT-38",
            "sellerCountrySubdivision": "String | BT-39",
            "sellerCountryCode": "String | BT-40"
          },
          "sellerContact": {
            "sellerContactPoint": "String | BT-41",
            "sellerContactTelephoneNumber": "String | BT-42",
            "sellerContactEmailAddress": "String | BT-43"
          }
        },
        "buyer": {
          "buyerName": "String | BT-44",
          "buyerTradingName": "String | BT-45",
          "buyerIdentifier": "String | BT-46",
          "buyerLegalRegistrationIdentifier": "String | BT-47",
          "buyerVatIdentifier": "String | BT-48",
          "buyerElectronicAddress": "String | BT-49",
          "buyerPostalAddress": {
            "buyerAddressLine1": "String | BT-50",
            "buyerAddressLine2": "String | BT-51",
            "buyerAddressLine3": "String | BT-163",
            "buyerCity": "String | BT-52",
            "buyerPostCode": "String | BT-53",
            "buyerCountrySubdivision": "String | BT-54",
            "buyerCountryCode": "String | BT-55"
          },
          "buyerContact": {
            "buyerContactPoint": "String | BT-56",
            "buyerContactTelephoneNumber": "String | BT-57",
            "buyerContactEmailAddress": "String | BT-58"
          }
        },
        "payee": {
          "payeeName": "String | BT-59",
          "payeeIdentifier": "String | BT-60",
          "payeeLegalRegistrationIdentifier": "String | BT-61"
        },
        "sellerTaxRepresentativeParty": {
          "sellerTaxRepresentativeName": "String | BT-62",
          "sellerTaxRepresentativeVatIdentifier": "String | BT-63",
          "sellerTaxRepresentativePostalAddress": {
            "taxRepresentativeAddressLine1": "String | BT-64",
            "taxRepresentativeAddressLine2": "String | BT-65",
            "taxRepresentativeAddressLine3": "String | BT-164",
            "taxRepresentativeCity": "String | BT-66",
            "taxRepresentativePostCode": "String | BT-67",
            "taxRepresentativeCountrySubdivision": "String | BT-68",
            "taxRepresentativeCountryCode": "String | BT-69"
          }
        },
        "deliveryInformation": {
          "deliverToPartyName": "String | BT-70",
          "deliverToLocationIdentifier": "String | BT-71",
          "actualDeliveryDate": "Date | BT-72",
          "deliverToAddress": {
            "deliverToAddressLine1": "String | BT-75",
            "deliverToAddressLine2": "String | BT-76",
            "deliverToAddressLine3": "String | BT-165",
            "deliverToCity": "String | BT-77",
            "deliverToPostCode": "String | BT-78",
            "deliverToCountrySubdivision": "String | BT-79",
            "deliverToCountryCode": "String | BT-80"
          }
        },
        "invoicingPeriod": {
          "invoicingPeriodStartDate": "Date | BT-73",
          "invoicingPeriodEndDate": "Date | BT-74"
        },
        "paymentInstructions": {
          "paymentMeansTypeCode": "String | BT-81",
          "paymentMeansText": "String | BT-82",
          "remittanceInformation": "String | BT-83",
          "creditTransfer": [
            {
              "paymentAccountIdentifier": "String | BT-84",
              "paymentAccountName": "String | BT-85",
              "paymentServiceProviderIdentifier": "String | BT-86"
            }
          ],
          "paymentCardInformation": {
            "paymentCardPrimaryAccountNumber": "String | BT-87",
            "paymentCardHolderName": "String | BT-88"
          },
          "directDebit": {
            "mandateReferenceIdentifier": "String | BT-89",
            "bankAssignedCreditorIdentifier": "String | BT-90",
            "debitedAccountIdentifier": "String | BT-91"
          }
        },
        "documentLevelAllowances": [
          {
            "documentLevelAllowanceAmount": "Decimal | BT-92",
            "documentLevelAllowanceBaseAmount": "Decimal | BT-93",
            "documentLevelAllowancePercentage": "Decimal | BT-94",
            "documentLevelAllowanceVatCategoryCode": "String | BT-95",
            "documentLevelAllowanceVatRate": "Decimal | BT-96",
            "documentLevelAllowanceReason": "String | BT-97",
            "documentLevelAllowanceReasonCode": "String | BT-98"
          }
        ],
        "documentLevelCharges": [
          {
            "documentLevelChargeAmount": "Decimal | BT-99",
            "documentLevelChargeBaseAmount": "Decimal | BT-100",
            "documentLevelChargePercentage": "Decimal | BT-101",
            "documentLevelChargeVatCategoryCode": "String | BT-102",
            "documentLevelChargeVatRate": "Decimal | BT-103",
            "documentLevelChargeReason": "String | BT-104",
            "documentLevelChargeReasonCode": "String | BT-105"
          }
        ],
        "documentTotals": {
          "sumOfInvoiceLineNetAmount": "Decimal | BT-106",
          "sumOfAllowancesOnDocumentLevel": "Decimal | BT-107",
          "sumOfChargesOnDocumentLevel": "Decimal | BT-108",
          "invoiceTotalAmountWithoutVat": "Decimal | BT-109",
          "invoiceTotalVatAmount": "Decimal | BT-110",
          "invoiceTotalVatAmountInAccountingCurrency": "Decimal | BT-111",
          "invoiceTotalAmountWithVat": "Decimal | BT-112",
          "paidAmount": "Decimal | BT-113",
          "roundingAmount": "Decimal | BT-114",
          "amountDueForPayment": "Decimal | BT-115"
        },
        "vatBreakdown": [
          {
            "vatCategoryTaxableAmount": "Decimal | BT-116",
            "vatCategoryTaxAmount": "Decimal | BT-117",
            "vatCategoryCode": "String | BT-118",
            "vatCategoryRate": "Decimal | BT-119",
            "vatExemptionReasonText": "String | BT-120",
            "vatExemptionReasonCode": "String | BT-121"
          }
        ],
        "additionalSupportingDocuments": [
          {
            "supportingDocumentReference": "String | BT-122",
            "supportingDocumentDescription": "String | BT-123",
            "externalDocumentLocation": "String | BT-124",
            "attachedDocument": "String | BT-125"
          }
        ],
        "invoiceLine": [
          {
            "invoiceLineIdentifier": "String | BT-126",
            "invoiceLineNote": "String | BT-127",
            "invoiceLineObjectIdentifier": "String | BT-128",
            "invoicedQuantity": "Decimal | BT-129",
            "invoicedQuantityUnitOfMeasureCode": "String | BT-130",
            "invoiceLineNetAmount": "Decimal | BT-131",
            "referencedPurchaseOrderLineReference": "String | BT-132",
            "invoiceLineBuyerAccountingReference": "String | BT-133",
            "invoiceLinePeriod": {
              "invoiceLinePeriodStartDate": "Date | BT-134",
              "invoiceLinePeriodEndDate": "Date | BT-135"
            },
            "invoiceLineAllowances": [
              {
                "invoiceLineAllowanceAmount": "Decimal | BT-136",
                "invoiceLineAllowanceBaseAmount": "Decimal | BT-137",
                "invoiceLineAllowancePercentage": "Decimal | BT-138",
                "invoiceLineAllowanceReason": "String | BT-139",
                "invoiceLineAllowanceReasonCode": "String | BT-140"
              }
            ],
            "invoiceLineCharges": [
              {
                "invoiceLineChargeAmount": "Decimal | BT-141",
                "invoiceLineChargeBaseAmount": "Decimal | BT-142",
                "invoiceLineChargePercentage": "Decimal | BT-143",
                "invoiceLineChargeReason": "String | BT-144",
                "invoiceLineChargeReasonCode": "String | BT-145"
              }
            ],
            "priceDetails": {
              "itemNetPrice": "Decimal | BT-146",
              "itemPriceDiscount": "Decimal | BT-147",
              "itemGrossPrice": "Decimal | BT-148",
              "itemPriceBaseQuantity": "Decimal | BT-149",
              "itemPriceBaseQuantityUnitOfMeasure": "String | BT-150"
            },
            "lineVatInformation": [
              {
                "invoicedItemVatCategoryCode": "String | BT-151",
                "invoicedItemVatRate": "Decimal | BT-152"
              }
            ],
            "itemInformation": {
              "itemName": "String | BT-153",
              "itemDescription": "String | BT-154",
              "itemSellersIdentifier": "String | BT-155",
              "itemBuyersIdentifier": "String | BT-156",
              "itemStandardIdentifier": "String | BT-157",
              "itemStandardIdentifierSchemeIdentifier": "String | BT-157-1",
              "itemClassificationIdentifier": [
                {
                  "itemClassificationIdentifier": "String | BT-158",
                  "itemClassificationIdentifierListIdentifier": "String | BT-158-1",
                  "itemClassificationIdentifierListVersionIdentifier": "String | BT-158-2"
                }
              ],
              "itemCountryOfOrigin": "String | BT-159",
              "itemAttributes": [
                {
                  "itemAttributeName": "String | BT-160",
                  "itemAttributeValue": "String | BT-161"
                }
              ]
            }
          }
        ]
      }
    }

    Beispielantwort

    json
    {
      "valid": false,
      "message": "xInvoice generated",
      "numberOfXInvoiceErrors": 1,
      "xInvoice": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><rsm:CrossIndustryInvoice xmlns:rsm=\"urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100\">...</rsm:CrossIndustryInvoice>",
      "xInvoiceErrors": [
        {
          "id": "BR-CO-25",
          "line": null,
          "location": "/rsm:CrossIndustryInvoice",
          "message": "In case the Amount due for payment (BT-115) is positive, either the Payment due date (BT-9) or the Payment terms (BT-20) shall be present.",
          "schemaFile": "EN16931-CII-validation",
          "type": "fatal"
        }
      ]
    }

    Playground

    Diesen Endpunkt live im Browser testen.

    POST/api/v1/zugferd/createZugferdFromJson

    ZUGFeRD aus JSON + PDF erzeugen

    Kombiniert strukturierte JSON-Rechnungsdaten mit einem vorhandenen PDF zu einem ZUGFeRD-konformen PDF/A-3-Dokument mit eingebetteter XRechnungs-XML.

    FieldTypeRequiredDescription
    invoiceobjectrequiredRechnungsobjekt.
    invoicePdf64string (base64)requiredBase64-kodiertes PDF für die XML-Einbettung.

    Beispiel

    json
    {
      "invoice": {
        "invoiceNumber": "String | BT-1",
        "invoiceIssueDate": "Date | BT-2",
        "invoiceTypeCode": "String | BT-3",
        "invoiceCurrencyCode": "String | BT-5",
        "vatAccountingCurrencyCode": "String | BT-6",
        "valueAddedTaxPointDate": "String | BT-7",
        "valueAddedTaxPointDateCode": "String | BT-8",
        "paymentDueDate": "Date | BT-9",
        "buyerReference": "String | BT-10",
        "projectReference": {
          "projectReferenceIdentifier": "String | BT-11",
          "projectReferenceName": "String | BT-11-0"
        },
        "contractReference": "String | BT-12",
        "purchaseOrderReference": "String | BT-13",
        "salesOrderReference": "String | BT-14",
        "receivingAdviceReference": "String | BT-15",
        "despatchAdviceReference": "String | BT-16",
        "tenderOrLotReference": "String | BT-17",
        "invoicedObjectIdentifier": "String | BT-18",
        "buyerAccountingReference": "String | BT-19",
        "paymentTerms": "String | BT-20",
        "invoiceNote": [
          {
            "invoiceNoteSubjectCode": "String | BT-21",
            "invoiceNote": "String | BT-22"
          }
        ],
        "processControl": {
          "businessProcessTypeIdentifier": "String | BT-23",
          "specificationIdentifier": "String | BT-24"
        },
        "precedingInvoiceReference": [
          {
            "precedingInvoiceReference": "String | BT-25",
            "precedingInvoiceIssueDate": "Date | BT-26"
          }
        ],
        "seller": {
          "sellerName": "String | BT-27",
          "sellerTradingName": "String | BT-28",
          "sellerIdentifier": [
            "String | BT-29"
          ],
          "sellerLegalRegistrationIdentifier": "String | BT-30",
          "sellerVatIdentifier": "String | BT-31",
          "sellerTaxRegistrationIdentifier": "String | BT-32",
          "sellerAdditionalLegalInformation": "String | BT-33",
          "sellerElectronicAddress": "String | BT-34",
          "sellerPostalAddress": {
            "sellerAddressLine1": "String | BT-35",
            "sellerAddressLine2": "String | BT-36",
            "sellerAddressLine3": "String | BT-162",
            "sellerCity": "String | BT-37",
            "sellerPostCode": "String | BT-38",
            "sellerCountrySubdivision": "String | BT-39",
            "sellerCountryCode": "String | BT-40"
          },
          "sellerContact": {
            "sellerContactPoint": "String | BT-41",
            "sellerContactTelephoneNumber": "String | BT-42",
            "sellerContactEmailAddress": "String | BT-43"
          }
        },
        "buyer": {
          "buyerName": "String | BT-44",
          "buyerTradingName": "String | BT-45",
          "buyerIdentifier": "String | BT-46",
          "buyerLegalRegistrationIdentifier": "String | BT-47",
          "buyerVatIdentifier": "String | BT-48",
          "buyerElectronicAddress": "String | BT-49",
          "buyerPostalAddress": {
            "buyerAddressLine1": "String | BT-50",
            "buyerAddressLine2": "String | BT-51",
            "buyerAddressLine3": "String | BT-163",
            "buyerCity": "String | BT-52",
            "buyerPostCode": "String | BT-53",
            "buyerCountrySubdivision": "String | BT-54",
            "buyerCountryCode": "String | BT-55"
          },
          "buyerContact": {
            "buyerContactPoint": "String | BT-56",
            "buyerContactTelephoneNumber": "String | BT-57",
            "buyerContactEmailAddress": "String | BT-58"
          }
        },
        "payee": {
          "payeeName": "String | BT-59",
          "payeeIdentifier": "String | BT-60",
          "payeeLegalRegistrationIdentifier": "String | BT-61"
        },
        "sellerTaxRepresentativeParty": {
          "sellerTaxRepresentativeName": "String | BT-62",
          "sellerTaxRepresentativeVatIdentifier": "String | BT-63",
          "sellerTaxRepresentativePostalAddress": {
            "taxRepresentativeAddressLine1": "String | BT-64",
            "taxRepresentativeAddressLine2": "String | BT-65",
            "taxRepresentativeAddressLine3": "String | BT-164",
            "taxRepresentativeCity": "String | BT-66",
            "taxRepresentativePostCode": "String | BT-67",
            "taxRepresentativeCountrySubdivision": "String | BT-68",
            "taxRepresentativeCountryCode": "String | BT-69"
          }
        },
        "deliveryInformation": {
          "deliverToPartyName": "String | BT-70",
          "deliverToLocationIdentifier": "String | BT-71",
          "actualDeliveryDate": "Date | BT-72",
          "deliverToAddress": {
            "deliverToAddressLine1": "String | BT-75",
            "deliverToAddressLine2": "String | BT-76",
            "deliverToAddressLine3": "String | BT-165",
            "deliverToCity": "String | BT-77",
            "deliverToPostCode": "String | BT-78",
            "deliverToCountrySubdivision": "String | BT-79",
            "deliverToCountryCode": "String | BT-80"
          }
        },
        "invoicingPeriod": {
          "invoicingPeriodStartDate": "Date | BT-73",
          "invoicingPeriodEndDate": "Date | BT-74"
        },
        "paymentInstructions": {
          "paymentMeansTypeCode": "String | BT-81",
          "paymentMeansText": "String | BT-82",
          "remittanceInformation": "String | BT-83",
          "creditTransfer": [
            {
              "paymentAccountIdentifier": "String | BT-84",
              "paymentAccountName": "String | BT-85",
              "paymentServiceProviderIdentifier": "String | BT-86"
            }
          ],
          "paymentCardInformation": {
            "paymentCardPrimaryAccountNumber": "String | BT-87",
            "paymentCardHolderName": "String | BT-88"
          },
          "directDebit": {
            "mandateReferenceIdentifier": "String | BT-89",
            "bankAssignedCreditorIdentifier": "String | BT-90",
            "debitedAccountIdentifier": "String | BT-91"
          }
        },
        "documentLevelAllowances": [
          {
            "documentLevelAllowanceAmount": "Decimal | BT-92",
            "documentLevelAllowanceBaseAmount": "Decimal | BT-93",
            "documentLevelAllowancePercentage": "Decimal | BT-94",
            "documentLevelAllowanceVatCategoryCode": "String | BT-95",
            "documentLevelAllowanceVatRate": "Decimal | BT-96",
            "documentLevelAllowanceReason": "String | BT-97",
            "documentLevelAllowanceReasonCode": "String | BT-98"
          }
        ],
        "documentLevelCharges": [
          {
            "documentLevelChargeAmount": "Decimal | BT-99",
            "documentLevelChargeBaseAmount": "Decimal | BT-100",
            "documentLevelChargePercentage": "Decimal | BT-101",
            "documentLevelChargeVatCategoryCode": "String | BT-102",
            "documentLevelChargeVatRate": "Decimal | BT-103",
            "documentLevelChargeReason": "String | BT-104",
            "documentLevelChargeReasonCode": "String | BT-105"
          }
        ],
        "documentTotals": {
          "sumOfInvoiceLineNetAmount": "Decimal | BT-106",
          "sumOfAllowancesOnDocumentLevel": "Decimal | BT-107",
          "sumOfChargesOnDocumentLevel": "Decimal | BT-108",
          "invoiceTotalAmountWithoutVat": "Decimal | BT-109",
          "invoiceTotalVatAmount": "Decimal | BT-110",
          "invoiceTotalVatAmountInAccountingCurrency": "Decimal | BT-111",
          "invoiceTotalAmountWithVat": "Decimal | BT-112",
          "paidAmount": "Decimal | BT-113",
          "roundingAmount": "Decimal | BT-114",
          "amountDueForPayment": "Decimal | BT-115"
        },
        "vatBreakdown": [
          {
            "vatCategoryTaxableAmount": "Decimal | BT-116",
            "vatCategoryTaxAmount": "Decimal | BT-117",
            "vatCategoryCode": "String | BT-118",
            "vatCategoryRate": "Decimal | BT-119",
            "vatExemptionReasonText": "String | BT-120",
            "vatExemptionReasonCode": "String | BT-121"
          }
        ],
        "additionalSupportingDocuments": [
          {
            "supportingDocumentReference": "String | BT-122",
            "supportingDocumentDescription": "String | BT-123",
            "externalDocumentLocation": "String | BT-124",
            "attachedDocument": "String | BT-125"
          }
        ],
        "invoiceLine": [
          {
            "invoiceLineIdentifier": "String | BT-126",
            "invoiceLineNote": "String | BT-127",
            "invoiceLineObjectIdentifier": "String | BT-128",
            "invoicedQuantity": "Decimal | BT-129",
            "invoicedQuantityUnitOfMeasureCode": "String | BT-130",
            "invoiceLineNetAmount": "Decimal | BT-131",
            "referencedPurchaseOrderLineReference": "String | BT-132",
            "invoiceLineBuyerAccountingReference": "String | BT-133",
            "invoiceLinePeriod": {
              "invoiceLinePeriodStartDate": "Date | BT-134",
              "invoiceLinePeriodEndDate": "Date | BT-135"
            },
            "invoiceLineAllowances": [
              {
                "invoiceLineAllowanceAmount": "Decimal | BT-136",
                "invoiceLineAllowanceBaseAmount": "Decimal | BT-137",
                "invoiceLineAllowancePercentage": "Decimal | BT-138",
                "invoiceLineAllowanceReason": "String | BT-139",
                "invoiceLineAllowanceReasonCode": "String | BT-140"
              }
            ],
            "invoiceLineCharges": [
              {
                "invoiceLineChargeAmount": "Decimal | BT-141",
                "invoiceLineChargeBaseAmount": "Decimal | BT-142",
                "invoiceLineChargePercentage": "Decimal | BT-143",
                "invoiceLineChargeReason": "String | BT-144",
                "invoiceLineChargeReasonCode": "String | BT-145"
              }
            ],
            "priceDetails": {
              "itemNetPrice": "Decimal | BT-146",
              "itemPriceDiscount": "Decimal | BT-147",
              "itemGrossPrice": "Decimal | BT-148",
              "itemPriceBaseQuantity": "Decimal | BT-149",
              "itemPriceBaseQuantityUnitOfMeasure": "String | BT-150"
            },
            "lineVatInformation": [
              {
                "invoicedItemVatCategoryCode": "String | BT-151",
                "invoicedItemVatRate": "Decimal | BT-152"
              }
            ],
            "itemInformation": {
              "itemName": "String | BT-153",
              "itemDescription": "String | BT-154",
              "itemSellersIdentifier": "String | BT-155",
              "itemBuyersIdentifier": "String | BT-156",
              "itemStandardIdentifier": "String | BT-157",
              "itemStandardIdentifierSchemeIdentifier": "String | BT-157-1",
              "itemClassificationIdentifier": [
                {
                  "itemClassificationIdentifier": "String | BT-158",
                  "itemClassificationIdentifierListIdentifier": "String | BT-158-1",
                  "itemClassificationIdentifierListVersionIdentifier": "String | BT-158-2"
                }
              ],
              "itemCountryOfOrigin": "String | BT-159",
              "itemAttributes": [
                {
                  "itemAttributeName": "String | BT-160",
                  "itemAttributeValue": "String | BT-161"
                }
              ]
            }
          }
        ]
      },
      "invoicePdf64": "JVBERi0xLjQK..."
    }

    Beispielantwort

    json
    {
      "message": "ZUGFeRD created",
      "zugferdValid": false,
      "xInvoiceValid": false,
      "numberOfZugferdErrors": 1,
      "numberOfxInvoiceErrors": 1,
      "zugferd": "JVBERi0xLjcKJY/6qbAKMyAwIG9iago8PC9...",
      "zugferdErrorList": [],
      "xInvoice": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><rsm:CrossIndustryInvoice>...</rsm:CrossIndustryInvoice>",
      "xInvoiceErrorList": []
    }

    Playground

    Diesen Endpunkt live im Browser testen.

    POST/api/v1/zugferd/createZugferdPdfFromXinvoice

    ZUGFeRD-PDF aus XRechnung erstellen

    Erstellt ein ZUGFeRD-konformes PDF/A-3, indem eine vorhandene XRechnungs-XML in ein PDF-Dokument eingebettet wird.

    FieldTypeRequiredDescription
    xInvoiceXmlstringrequiredXRechnungs-XML als String.
    invoicePdf64string (base64)requiredBase64-kodiertes PDF für die XML-Einbettung.

    Beispiel

    json
    {
      "xInvoiceXml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><rsm:CrossIndustryInvoice>...</rsm:CrossIndustryInvoice>",
      "invoicePdf64": "JVBERi0xLjQK..."
    }

    Beispielantwort

    json
    {
      "valid": false,
      "message": "zugferd created",
      "numberOfZugferdErrors": 0,
      "zugferdFile": "JVBERi0xLjcKJaOIwOMKMyAwIG9iago...",
      "zugferdErrors": []
    }

    Playground

    Diesen Endpunkt live im Browser testen.

    POST/api/v1/zugferd/createInvoicePdfFromJson

    ZUGFeRD-Rechnungs-PDF aus JSON erzeugen (Template)

    Erzeugt ein ZUGFeRD-konformes Rechnungs-PDF aus JSON-Daten über ein eigenes Word- oder Design-Template. Ab 2027 in Deutschland verpflichtend.

    FieldTypeRequiredDescription
    invoiceobjectrequiredRechnungsobjekt.
    templateIdstringrequiredID des Templates für die PDF-Erzeugung.

    Beispiel

    json
    {
      "templateId": "your-template-id",
      "invoice": {
        "invoiceNumber": "String | BT-1",
        "invoiceIssueDate": "Date | BT-2",
        "invoiceTypeCode": "String | BT-3",
        "invoiceCurrencyCode": "String | BT-5",
        "vatAccountingCurrencyCode": "String | BT-6",
        "valueAddedTaxPointDate": "String | BT-7",
        "valueAddedTaxPointDateCode": "String | BT-8",
        "paymentDueDate": "Date | BT-9",
        "buyerReference": "String | BT-10",
        "projectReference": {
          "projectReferenceIdentifier": "String | BT-11",
          "projectReferenceName": "String | BT-11-0"
        },
        "contractReference": "String | BT-12",
        "purchaseOrderReference": "String | BT-13",
        "salesOrderReference": "String | BT-14",
        "receivingAdviceReference": "String | BT-15",
        "despatchAdviceReference": "String | BT-16",
        "tenderOrLotReference": "String | BT-17",
        "invoicedObjectIdentifier": "String | BT-18",
        "buyerAccountingReference": "String | BT-19",
        "paymentTerms": "String | BT-20",
        "invoiceNote": [
          {
            "invoiceNoteSubjectCode": "String | BT-21",
            "invoiceNote": "String | BT-22"
          }
        ],
        "processControl": {
          "businessProcessTypeIdentifier": "String | BT-23",
          "specificationIdentifier": "String | BT-24"
        },
        "precedingInvoiceReference": [
          {
            "precedingInvoiceReference": "String | BT-25",
            "precedingInvoiceIssueDate": "Date | BT-26"
          }
        ],
        "seller": {
          "sellerName": "String | BT-27",
          "sellerTradingName": "String | BT-28",
          "sellerIdentifier": [
            "String | BT-29"
          ],
          "sellerLegalRegistrationIdentifier": "String | BT-30",
          "sellerVatIdentifier": "String | BT-31",
          "sellerTaxRegistrationIdentifier": "String | BT-32",
          "sellerAdditionalLegalInformation": "String | BT-33",
          "sellerElectronicAddress": "String | BT-34",
          "sellerPostalAddress": {
            "sellerAddressLine1": "String | BT-35",
            "sellerAddressLine2": "String | BT-36",
            "sellerAddressLine3": "String | BT-162",
            "sellerCity": "String | BT-37",
            "sellerPostCode": "String | BT-38",
            "sellerCountrySubdivision": "String | BT-39",
            "sellerCountryCode": "String | BT-40"
          },
          "sellerContact": {
            "sellerContactPoint": "String | BT-41",
            "sellerContactTelephoneNumber": "String | BT-42",
            "sellerContactEmailAddress": "String | BT-43"
          }
        },
        "buyer": {
          "buyerName": "String | BT-44",
          "buyerTradingName": "String | BT-45",
          "buyerIdentifier": "String | BT-46",
          "buyerLegalRegistrationIdentifier": "String | BT-47",
          "buyerVatIdentifier": "String | BT-48",
          "buyerElectronicAddress": "String | BT-49",
          "buyerPostalAddress": {
            "buyerAddressLine1": "String | BT-50",
            "buyerAddressLine2": "String | BT-51",
            "buyerAddressLine3": "String | BT-163",
            "buyerCity": "String | BT-52",
            "buyerPostCode": "String | BT-53",
            "buyerCountrySubdivision": "String | BT-54",
            "buyerCountryCode": "String | BT-55"
          },
          "buyerContact": {
            "buyerContactPoint": "String | BT-56",
            "buyerContactTelephoneNumber": "String | BT-57",
            "buyerContactEmailAddress": "String | BT-58"
          }
        },
        "payee": {
          "payeeName": "String | BT-59",
          "payeeIdentifier": "String | BT-60",
          "payeeLegalRegistrationIdentifier": "String | BT-61"
        },
        "sellerTaxRepresentativeParty": {
          "sellerTaxRepresentativeName": "String | BT-62",
          "sellerTaxRepresentativeVatIdentifier": "String | BT-63",
          "sellerTaxRepresentativePostalAddress": {
            "taxRepresentativeAddressLine1": "String | BT-64",
            "taxRepresentativeAddressLine2": "String | BT-65",
            "taxRepresentativeAddressLine3": "String | BT-164",
            "taxRepresentativeCity": "String | BT-66",
            "taxRepresentativePostCode": "String | BT-67",
            "taxRepresentativeCountrySubdivision": "String | BT-68",
            "taxRepresentativeCountryCode": "String | BT-69"
          }
        },
        "deliveryInformation": {
          "deliverToPartyName": "String | BT-70",
          "deliverToLocationIdentifier": "String | BT-71",
          "actualDeliveryDate": "Date | BT-72",
          "deliverToAddress": {
            "deliverToAddressLine1": "String | BT-75",
            "deliverToAddressLine2": "String | BT-76",
            "deliverToAddressLine3": "String | BT-165",
            "deliverToCity": "String | BT-77",
            "deliverToPostCode": "String | BT-78",
            "deliverToCountrySubdivision": "String | BT-79",
            "deliverToCountryCode": "String | BT-80"
          }
        },
        "invoicingPeriod": {
          "invoicingPeriodStartDate": "Date | BT-73",
          "invoicingPeriodEndDate": "Date | BT-74"
        },
        "paymentInstructions": {
          "paymentMeansTypeCode": "String | BT-81",
          "paymentMeansText": "String | BT-82",
          "remittanceInformation": "String | BT-83",
          "creditTransfer": [
            {
              "paymentAccountIdentifier": "String | BT-84",
              "paymentAccountName": "String | BT-85",
              "paymentServiceProviderIdentifier": "String | BT-86"
            }
          ],
          "paymentCardInformation": {
            "paymentCardPrimaryAccountNumber": "String | BT-87",
            "paymentCardHolderName": "String | BT-88"
          },
          "directDebit": {
            "mandateReferenceIdentifier": "String | BT-89",
            "bankAssignedCreditorIdentifier": "String | BT-90",
            "debitedAccountIdentifier": "String | BT-91"
          }
        },
        "documentLevelAllowances": [
          {
            "documentLevelAllowanceAmount": "Decimal | BT-92",
            "documentLevelAllowanceBaseAmount": "Decimal | BT-93",
            "documentLevelAllowancePercentage": "Decimal | BT-94",
            "documentLevelAllowanceVatCategoryCode": "String | BT-95",
            "documentLevelAllowanceVatRate": "Decimal | BT-96",
            "documentLevelAllowanceReason": "String | BT-97",
            "documentLevelAllowanceReasonCode": "String | BT-98"
          }
        ],
        "documentLevelCharges": [
          {
            "documentLevelChargeAmount": "Decimal | BT-99",
            "documentLevelChargeBaseAmount": "Decimal | BT-100",
            "documentLevelChargePercentage": "Decimal | BT-101",
            "documentLevelChargeVatCategoryCode": "String | BT-102",
            "documentLevelChargeVatRate": "Decimal | BT-103",
            "documentLevelChargeReason": "String | BT-104",
            "documentLevelChargeReasonCode": "String | BT-105"
          }
        ],
        "documentTotals": {
          "sumOfInvoiceLineNetAmount": "Decimal | BT-106",
          "sumOfAllowancesOnDocumentLevel": "Decimal | BT-107",
          "sumOfChargesOnDocumentLevel": "Decimal | BT-108",
          "invoiceTotalAmountWithoutVat": "Decimal | BT-109",
          "invoiceTotalVatAmount": "Decimal | BT-110",
          "invoiceTotalVatAmountInAccountingCurrency": "Decimal | BT-111",
          "invoiceTotalAmountWithVat": "Decimal | BT-112",
          "paidAmount": "Decimal | BT-113",
          "roundingAmount": "Decimal | BT-114",
          "amountDueForPayment": "Decimal | BT-115"
        },
        "vatBreakdown": [
          {
            "vatCategoryTaxableAmount": "Decimal | BT-116",
            "vatCategoryTaxAmount": "Decimal | BT-117",
            "vatCategoryCode": "String | BT-118",
            "vatCategoryRate": "Decimal | BT-119",
            "vatExemptionReasonText": "String | BT-120",
            "vatExemptionReasonCode": "String | BT-121"
          }
        ],
        "additionalSupportingDocuments": [
          {
            "supportingDocumentReference": "String | BT-122",
            "supportingDocumentDescription": "String | BT-123",
            "externalDocumentLocation": "String | BT-124",
            "attachedDocument": "String | BT-125"
          }
        ],
        "invoiceLine": [
          {
            "invoiceLineIdentifier": "String | BT-126",
            "invoiceLineNote": "String | BT-127",
            "invoiceLineObjectIdentifier": "String | BT-128",
            "invoicedQuantity": "Decimal | BT-129",
            "invoicedQuantityUnitOfMeasureCode": "String | BT-130",
            "invoiceLineNetAmount": "Decimal | BT-131",
            "referencedPurchaseOrderLineReference": "String | BT-132",
            "invoiceLineBuyerAccountingReference": "String | BT-133",
            "invoiceLinePeriod": {
              "invoiceLinePeriodStartDate": "Date | BT-134",
              "invoiceLinePeriodEndDate": "Date | BT-135"
            },
            "invoiceLineAllowances": [
              {
                "invoiceLineAllowanceAmount": "Decimal | BT-136",
                "invoiceLineAllowanceBaseAmount": "Decimal | BT-137",
                "invoiceLineAllowancePercentage": "Decimal | BT-138",
                "invoiceLineAllowanceReason": "String | BT-139",
                "invoiceLineAllowanceReasonCode": "String | BT-140"
              }
            ],
            "invoiceLineCharges": [
              {
                "invoiceLineChargeAmount": "Decimal | BT-141",
                "invoiceLineChargeBaseAmount": "Decimal | BT-142",
                "invoiceLineChargePercentage": "Decimal | BT-143",
                "invoiceLineChargeReason": "String | BT-144",
                "invoiceLineChargeReasonCode": "String | BT-145"
              }
            ],
            "priceDetails": {
              "itemNetPrice": "Decimal | BT-146",
              "itemPriceDiscount": "Decimal | BT-147",
              "itemGrossPrice": "Decimal | BT-148",
              "itemPriceBaseQuantity": "Decimal | BT-149",
              "itemPriceBaseQuantityUnitOfMeasure": "String | BT-150"
            },
            "lineVatInformation": [
              {
                "invoicedItemVatCategoryCode": "String | BT-151",
                "invoicedItemVatRate": "Decimal | BT-152"
              }
            ],
            "itemInformation": {
              "itemName": "String | BT-153",
              "itemDescription": "String | BT-154",
              "itemSellersIdentifier": "String | BT-155",
              "itemBuyersIdentifier": "String | BT-156",
              "itemStandardIdentifier": "String | BT-157",
              "itemStandardIdentifierSchemeIdentifier": "String | BT-157-1",
              "itemClassificationIdentifier": [
                {
                  "itemClassificationIdentifier": "String | BT-158",
                  "itemClassificationIdentifierListIdentifier": "String | BT-158-1",
                  "itemClassificationIdentifierListVersionIdentifier": "String | BT-158-2"
                }
              ],
              "itemCountryOfOrigin": "String | BT-159",
              "itemAttributes": [
                {
                  "itemAttributeName": "String | BT-160",
                  "itemAttributeValue": "String | BT-161"
                }
              ]
            }
          }
        ]
      }
    }

    Beispielantwort

    json
    {
      "message": "invoice and pdf created",
      "fileName": "in-2525-4n4_20250805_1755765122.pdf",
      "fileExtension": "pdf",
      "fileSize": 78573,
      "filecontentB64": "JVBERi0xLjQK..."
    }

    Beispielantwort

    json
    {
      "message": "invoice and pdf created",
      "fileName": "in-2525-4n4_20250805_1755765122.pdf",
      "fileExtension": "pdf",
      "fileSize": 78573,
      "filecontentB64": "JVBERi0xLjQK..."
    }

    Playground

    Diesen Endpunkt live im Browser testen.

    PDF Analyse

    POST/api/v1/zugferd/createJSONFromAnalysedPdf

    Rechnungs-PDF analysieren

    Analysiert das übergebene Rechnungs-PDF und extrahiert strukturierte Daten: Käufer, Verkäufer, Positionen, MwSt. und Gesamtbeträge. Ideal als Einstiegspunkt für PDF-basierte Rechnungsworkflows.

    FieldTypeRequiredDescription
    pdfInvoiceBase64stringrequiredBase64-kodierter Inhalt der PDF-Rechnung.

    Beispiel

    json
    {
      "pdfInvoiceBase64": "JVBERi0xLjQKJf..."
    }

    Beispielantwort

    json
    {
      "apiStatus": 200,
      "invoice": [
        {
          "invoiceNumber": "String | BT-1",
          "invoiceIssueDate": "Date | BT-2",
          "invoiceTypeCode": "String | BT-3",
          "invoiceCurrencyCode": "String | BT-5",
          "vatAccountingCurrencyCode": "String | BT-6",
          "valueAddedTaxPointDate": "String | BT-7",
          "valueAddedTaxPointDateCode": "String | BT-8",
          "paymentDueDate": "Date | BT-9",
          "buyerReference": "String | BT-10",
          "projectReference": {
            "projectReferenceIdentifier": "String | BT-11",
            "projectReferenceName": "String | BT-11-0"
          },
          "contractReference": "String | BT-12",
          "purchaseOrderReference": "String | BT-13",
          "salesOrderReference": "String | BT-14",
          "receivingAdviceReference": "String | BT-15",
          "despatchAdviceReference": "String | BT-16",
          "tenderOrLotReference": "String | BT-17",
          "invoicedObjectIdentifier": "String | BT-18",
          "buyerAccountingReference": "String | BT-19",
          "paymentTerms": "String | BT-20",
          "invoiceNote": [
            {
              "invoiceNoteSubjectCode": "String | BT-21",
              "invoiceNote": "String | BT-22"
            }
          ],
          "processControl": {
            "businessProcessTypeIdentifier": "String | BT-23",
            "specificationIdentifier": "String | BT-24"
          },
          "precedingInvoiceReference": [
            {
              "precedingInvoiceReference": "String | BT-25",
              "precedingInvoiceIssueDate": "Date | BT-26"
            }
          ],
          "seller": {
            "sellerName": "String | BT-27",
            "sellerTradingName": "String | BT-28",
            "sellerIdentifier": [
              "String | BT-29"
            ],
            "sellerLegalRegistrationIdentifier": "String | BT-30",
            "sellerVatIdentifier": "String | BT-31",
            "sellerTaxRegistrationIdentifier": "String | BT-32",
            "sellerAdditionalLegalInformation": "String | BT-33",
            "sellerElectronicAddress": "String | BT-34",
            "sellerPostalAddress": {
              "sellerAddressLine1": "String | BT-35",
              "sellerAddressLine2": "String | BT-36",
              "sellerAddressLine3": "String | BT-162",
              "sellerCity": "String | BT-37",
              "sellerPostCode": "String | BT-38",
              "sellerCountrySubdivision": "String | BT-39",
              "sellerCountryCode": "String | BT-40"
            },
            "sellerContact": {
              "sellerContactPoint": "String | BT-41",
              "sellerContactTelephoneNumber": "String | BT-42",
              "sellerContactEmailAddress": "String | BT-43"
            }
          },
          "buyer": {
            "buyerName": "String | BT-44",
            "buyerTradingName": "String | BT-45",
            "buyerIdentifier": "String | BT-46",
            "buyerLegalRegistrationIdentifier": "String | BT-47",
            "buyerVatIdentifier": "String | BT-48",
            "buyerElectronicAddress": "String | BT-49",
            "buyerPostalAddress": {
              "buyerAddressLine1": "String | BT-50",
              "buyerAddressLine2": "String | BT-51",
              "buyerAddressLine3": "String | BT-163",
              "buyerCity": "String | BT-52",
              "buyerPostCode": "String | BT-53",
              "buyerCountrySubdivision": "String | BT-54",
              "buyerCountryCode": "String | BT-55"
            },
            "buyerContact": {
              "buyerContactPoint": "String | BT-56",
              "buyerContactTelephoneNumber": "String | BT-57",
              "buyerContactEmailAddress": "String | BT-58"
            }
          },
          "payee": {
            "payeeName": "String | BT-59",
            "payeeIdentifier": "String | BT-60",
            "payeeLegalRegistrationIdentifier": "String | BT-61"
          },
          "sellerTaxRepresentativeParty": {
            "sellerTaxRepresentativeName": "String | BT-62",
            "sellerTaxRepresentativeVatIdentifier": "String | BT-63",
            "sellerTaxRepresentativePostalAddress": {
              "taxRepresentativeAddressLine1": "String | BT-64",
              "taxRepresentativeAddressLine2": "String | BT-65",
              "taxRepresentativeAddressLine3": "String | BT-164",
              "taxRepresentativeCity": "String | BT-66",
              "taxRepresentativePostCode": "String | BT-67",
              "taxRepresentativeCountrySubdivision": "String | BT-68",
              "taxRepresentativeCountryCode": "String | BT-69"
            }
          },
          "deliveryInformation": {
            "deliverToPartyName": "String | BT-70",
            "deliverToLocationIdentifier": "String | BT-71",
            "actualDeliveryDate": "Date | BT-72",
            "deliverToAddress": {
              "deliverToAddressLine1": "String | BT-75",
              "deliverToAddressLine2": "String | BT-76",
              "deliverToAddressLine3": "String | BT-165",
              "deliverToCity": "String | BT-77",
              "deliverToPostCode": "String | BT-78",
              "deliverToCountrySubdivision": "String | BT-79",
              "deliverToCountryCode": "String | BT-80"
            }
          },
          "invoicingPeriod": {
            "invoicingPeriodStartDate": "Date | BT-73",
            "invoicingPeriodEndDate": "Date | BT-74"
          },
          "paymentInstructions": {
            "paymentMeansTypeCode": "String | BT-81",
            "paymentMeansText": "String | BT-82",
            "remittanceInformation": "String | BT-83",
            "creditTransfer": [
              {
                "paymentAccountIdentifier": "String | BT-84",
                "paymentAccountName": "String | BT-85",
                "paymentServiceProviderIdentifier": "String | BT-86"
              }
            ],
            "paymentCardInformation": {
              "paymentCardPrimaryAccountNumber": "String | BT-87",
              "paymentCardHolderName": "String | BT-88"
            },
            "directDebit": {
              "mandateReferenceIdentifier": "String | BT-89",
              "bankAssignedCreditorIdentifier": "String | BT-90",
              "debitedAccountIdentifier": "String | BT-91"
            }
          },
          "documentLevelAllowances": [
            {
              "documentLevelAllowanceAmount": "Decimal | BT-92",
              "documentLevelAllowanceBaseAmount": "Decimal | BT-93",
              "documentLevelAllowancePercentage": "Decimal | BT-94",
              "documentLevelAllowanceVatCategoryCode": "String | BT-95",
              "documentLevelAllowanceVatRate": "Decimal | BT-96",
              "documentLevelAllowanceReason": "String | BT-97",
              "documentLevelAllowanceReasonCode": "String | BT-98"
            }
          ],
          "documentLevelCharges": [
            {
              "documentLevelChargeAmount": "Decimal | BT-99",
              "documentLevelChargeBaseAmount": "Decimal | BT-100",
              "documentLevelChargePercentage": "Decimal | BT-101",
              "documentLevelChargeVatCategoryCode": "String | BT-102",
              "documentLevelChargeVatRate": "Decimal | BT-103",
              "documentLevelChargeReason": "String | BT-104",
              "documentLevelChargeReasonCode": "String | BT-105"
            }
          ],
          "documentTotals": {
            "sumOfInvoiceLineNetAmount": "Decimal | BT-106",
            "sumOfAllowancesOnDocumentLevel": "Decimal | BT-107",
            "sumOfChargesOnDocumentLevel": "Decimal | BT-108",
            "invoiceTotalAmountWithoutVat": "Decimal | BT-109",
            "invoiceTotalVatAmount": "Decimal | BT-110",
            "invoiceTotalVatAmountInAccountingCurrency": "Decimal | BT-111",
            "invoiceTotalAmountWithVat": "Decimal | BT-112",
            "paidAmount": "Decimal | BT-113",
            "roundingAmount": "Decimal | BT-114",
            "amountDueForPayment": "Decimal | BT-115"
          },
          "vatBreakdown": [
            {
              "vatCategoryTaxableAmount": "Decimal | BT-116",
              "vatCategoryTaxAmount": "Decimal | BT-117",
              "vatCategoryCode": "String | BT-118",
              "vatCategoryRate": "Decimal | BT-119",
              "vatExemptionReasonText": "String | BT-120",
              "vatExemptionReasonCode": "String | BT-121"
            }
          ],
          "additionalSupportingDocuments": [
            {
              "supportingDocumentReference": "String | BT-122",
              "supportingDocumentDescription": "String | BT-123",
              "externalDocumentLocation": "String | BT-124",
              "attachedDocument": "String | BT-125"
            }
          ],
          "invoiceLine": [
            {
              "invoiceLineIdentifier": "String | BT-126",
              "invoiceLineNote": "String | BT-127",
              "invoiceLineObjectIdentifier": "String | BT-128",
              "invoicedQuantity": "Decimal | BT-129",
              "invoicedQuantityUnitOfMeasureCode": "String | BT-130",
              "invoiceLineNetAmount": "Decimal | BT-131",
              "referencedPurchaseOrderLineReference": "String | BT-132",
              "invoiceLineBuyerAccountingReference": "String | BT-133",
              "invoiceLinePeriod": {
                "invoiceLinePeriodStartDate": "Date | BT-134",
                "invoiceLinePeriodEndDate": "Date | BT-135"
              },
              "invoiceLineAllowances": [
                {
                  "invoiceLineAllowanceAmount": "Decimal | BT-136",
                  "invoiceLineAllowanceBaseAmount": "Decimal | BT-137",
                  "invoiceLineAllowancePercentage": "Decimal | BT-138",
                  "invoiceLineAllowanceReason": "String | BT-139",
                  "invoiceLineAllowanceReasonCode": "String | BT-140"
                }
              ],
              "invoiceLineCharges": [
                {
                  "invoiceLineChargeAmount": "Decimal | BT-141",
                  "invoiceLineChargeBaseAmount": "Decimal | BT-142",
                  "invoiceLineChargePercentage": "Decimal | BT-143",
                  "invoiceLineChargeReason": "String | BT-144",
                  "invoiceLineChargeReasonCode": "String | BT-145"
                }
              ],
              "priceDetails": {
                "itemNetPrice": "Decimal | BT-146",
                "itemPriceDiscount": "Decimal | BT-147",
                "itemGrossPrice": "Decimal | BT-148",
                "itemPriceBaseQuantity": "Decimal | BT-149",
                "itemPriceBaseQuantityUnitOfMeasure": "String | BT-150"
              },
              "lineVatInformation": [
                {
                  "invoicedItemVatCategoryCode": "String | BT-151",
                  "invoicedItemVatRate": "Decimal | BT-152"
                }
              ],
              "itemInformation": {
                "itemName": "String | BT-153",
                "itemDescription": "String | BT-154",
                "itemSellersIdentifier": "String | BT-155",
                "itemBuyersIdentifier": "String | BT-156",
                "itemStandardIdentifier": "String | BT-157",
                "itemStandardIdentifierSchemeIdentifier": "String | BT-157-1",
                "itemClassificationIdentifier": [
                  {
                    "itemClassificationIdentifier": "String | BT-158",
                    "itemClassificationIdentifierListIdentifier": "String | BT-158-1",
                    "itemClassificationIdentifierListVersionIdentifier": "String | BT-158-2"
                  }
                ],
                "itemCountryOfOrigin": "String | BT-159",
                "itemAttributes": [
                  {
                    "itemAttributeName": "String | BT-160",
                    "itemAttributeValue": "String | BT-161"
                  }
                ]
              }
            }
          ]
        }
      ]
    }

    Playground

    Diesen Endpunkt live im Browser testen.

    Extraktion

    POST/api/v1/zugferd/extractXInvoiceFromZugferdToJson

    XRechnung aus ZUGFeRD als JSON extrahieren

    Extrahiert die eingebettete XRechnungs-XML aus einem ZUGFeRD-PDF und gibt sie als strukturiertes JSON-Objekt für die Weiterverarbeitung zurück.

    FieldTypeRequiredDescription
    zugferd64string (base64)requiredDas ZUGFeRD-PDF-Dokument als Base64-kodierter String.

    Beispiel

    json
    {
      "zugferd64": "JVBERi0xLjcKJbe3wvUKMyAwIG9iago8PC9UeXBl..."
    }

    Beispielantwort

    json
    {
      "invoice": {
        "invoiceNumber": "String | BT-1",
        "invoiceIssueDate": "Date | BT-2",
        "invoiceTypeCode": "String | BT-3",
        "invoiceCurrencyCode": "String | BT-5",
        "vatAccountingCurrencyCode": "String | BT-6",
        "valueAddedTaxPointDate": "String | BT-7",
        "valueAddedTaxPointDateCode": "String | BT-8",
        "paymentDueDate": "Date | BT-9",
        "buyerReference": "String | BT-10",
        "projectReference": {
          "projectReferenceIdentifier": "String | BT-11",
          "projectReferenceName": "String | BT-11-0"
        },
        "contractReference": "String | BT-12",
        "purchaseOrderReference": "String | BT-13",
        "salesOrderReference": "String | BT-14",
        "receivingAdviceReference": "String | BT-15",
        "despatchAdviceReference": "String | BT-16",
        "tenderOrLotReference": "String | BT-17",
        "invoicedObjectIdentifier": "String | BT-18",
        "buyerAccountingReference": "String | BT-19",
        "paymentTerms": "String | BT-20",
        "invoiceNote": [
          {
            "invoiceNoteSubjectCode": "String | BT-21",
            "invoiceNote": "String | BT-22"
          }
        ],
        "processControl": {
          "businessProcessTypeIdentifier": "String | BT-23",
          "specificationIdentifier": "String | BT-24"
        },
        "precedingInvoiceReference": [
          {
            "precedingInvoiceReference": "String | BT-25",
            "precedingInvoiceIssueDate": "Date | BT-26"
          }
        ],
        "seller": {
          "sellerName": "String | BT-27",
          "sellerTradingName": "String | BT-28",
          "sellerIdentifier": [
            "String | BT-29"
          ],
          "sellerLegalRegistrationIdentifier": "String | BT-30",
          "sellerVatIdentifier": "String | BT-31",
          "sellerTaxRegistrationIdentifier": "String | BT-32",
          "sellerAdditionalLegalInformation": "String | BT-33",
          "sellerElectronicAddress": "String | BT-34",
          "sellerPostalAddress": {
            "sellerAddressLine1": "String | BT-35",
            "sellerAddressLine2": "String | BT-36",
            "sellerAddressLine3": "String | BT-162",
            "sellerCity": "String | BT-37",
            "sellerPostCode": "String | BT-38",
            "sellerCountrySubdivision": "String | BT-39",
            "sellerCountryCode": "String | BT-40"
          },
          "sellerContact": {
            "sellerContactPoint": "String | BT-41",
            "sellerContactTelephoneNumber": "String | BT-42",
            "sellerContactEmailAddress": "String | BT-43"
          }
        },
        "buyer": {
          "buyerName": "String | BT-44",
          "buyerTradingName": "String | BT-45",
          "buyerIdentifier": "String | BT-46",
          "buyerLegalRegistrationIdentifier": "String | BT-47",
          "buyerVatIdentifier": "String | BT-48",
          "buyerElectronicAddress": "String | BT-49",
          "buyerPostalAddress": {
            "buyerAddressLine1": "String | BT-50",
            "buyerAddressLine2": "String | BT-51",
            "buyerAddressLine3": "String | BT-163",
            "buyerCity": "String | BT-52",
            "buyerPostCode": "String | BT-53",
            "buyerCountrySubdivision": "String | BT-54",
            "buyerCountryCode": "String | BT-55"
          },
          "buyerContact": {
            "buyerContactPoint": "String | BT-56",
            "buyerContactTelephoneNumber": "String | BT-57",
            "buyerContactEmailAddress": "String | BT-58"
          }
        },
        "payee": {
          "payeeName": "String | BT-59",
          "payeeIdentifier": "String | BT-60",
          "payeeLegalRegistrationIdentifier": "String | BT-61"
        },
        "sellerTaxRepresentativeParty": {
          "sellerTaxRepresentativeName": "String | BT-62",
          "sellerTaxRepresentativeVatIdentifier": "String | BT-63",
          "sellerTaxRepresentativePostalAddress": {
            "taxRepresentativeAddressLine1": "String | BT-64",
            "taxRepresentativeAddressLine2": "String | BT-65",
            "taxRepresentativeAddressLine3": "String | BT-164",
            "taxRepresentativeCity": "String | BT-66",
            "taxRepresentativePostCode": "String | BT-67",
            "taxRepresentativeCountrySubdivision": "String | BT-68",
            "taxRepresentativeCountryCode": "String | BT-69"
          }
        },
        "deliveryInformation": {
          "deliverToPartyName": "String | BT-70",
          "deliverToLocationIdentifier": "String | BT-71",
          "actualDeliveryDate": "Date | BT-72",
          "deliverToAddress": {
            "deliverToAddressLine1": "String | BT-75",
            "deliverToAddressLine2": "String | BT-76",
            "deliverToAddressLine3": "String | BT-165",
            "deliverToCity": "String | BT-77",
            "deliverToPostCode": "String | BT-78",
            "deliverToCountrySubdivision": "String | BT-79",
            "deliverToCountryCode": "String | BT-80"
          }
        },
        "invoicingPeriod": {
          "invoicingPeriodStartDate": "Date | BT-73",
          "invoicingPeriodEndDate": "Date | BT-74"
        },
        "paymentInstructions": {
          "paymentMeansTypeCode": "String | BT-81",
          "paymentMeansText": "String | BT-82",
          "remittanceInformation": "String | BT-83",
          "creditTransfer": [
            {
              "paymentAccountIdentifier": "String | BT-84",
              "paymentAccountName": "String | BT-85",
              "paymentServiceProviderIdentifier": "String | BT-86"
            }
          ],
          "paymentCardInformation": {
            "paymentCardPrimaryAccountNumber": "String | BT-87",
            "paymentCardHolderName": "String | BT-88"
          },
          "directDebit": {
            "mandateReferenceIdentifier": "String | BT-89",
            "bankAssignedCreditorIdentifier": "String | BT-90",
            "debitedAccountIdentifier": "String | BT-91"
          }
        },
        "documentLevelAllowances": [
          {
            "documentLevelAllowanceAmount": "Decimal | BT-92",
            "documentLevelAllowanceBaseAmount": "Decimal | BT-93",
            "documentLevelAllowancePercentage": "Decimal | BT-94",
            "documentLevelAllowanceVatCategoryCode": "String | BT-95",
            "documentLevelAllowanceVatRate": "Decimal | BT-96",
            "documentLevelAllowanceReason": "String | BT-97",
            "documentLevelAllowanceReasonCode": "String | BT-98"
          }
        ],
        "documentLevelCharges": [
          {
            "documentLevelChargeAmount": "Decimal | BT-99",
            "documentLevelChargeBaseAmount": "Decimal | BT-100",
            "documentLevelChargePercentage": "Decimal | BT-101",
            "documentLevelChargeVatCategoryCode": "String | BT-102",
            "documentLevelChargeVatRate": "Decimal | BT-103",
            "documentLevelChargeReason": "String | BT-104",
            "documentLevelChargeReasonCode": "String | BT-105"
          }
        ],
        "documentTotals": {
          "sumOfInvoiceLineNetAmount": "Decimal | BT-106",
          "sumOfAllowancesOnDocumentLevel": "Decimal | BT-107",
          "sumOfChargesOnDocumentLevel": "Decimal | BT-108",
          "invoiceTotalAmountWithoutVat": "Decimal | BT-109",
          "invoiceTotalVatAmount": "Decimal | BT-110",
          "invoiceTotalVatAmountInAccountingCurrency": "Decimal | BT-111",
          "invoiceTotalAmountWithVat": "Decimal | BT-112",
          "paidAmount": "Decimal | BT-113",
          "roundingAmount": "Decimal | BT-114",
          "amountDueForPayment": "Decimal | BT-115"
        },
        "vatBreakdown": [
          {
            "vatCategoryTaxableAmount": "Decimal | BT-116",
            "vatCategoryTaxAmount": "Decimal | BT-117",
            "vatCategoryCode": "String | BT-118",
            "vatCategoryRate": "Decimal | BT-119",
            "vatExemptionReasonText": "String | BT-120",
            "vatExemptionReasonCode": "String | BT-121"
          }
        ],
        "additionalSupportingDocuments": [
          {
            "supportingDocumentReference": "String | BT-122",
            "supportingDocumentDescription": "String | BT-123",
            "externalDocumentLocation": "String | BT-124",
            "attachedDocument": "String | BT-125"
          }
        ],
        "invoiceLine": [
          {
            "invoiceLineIdentifier": "String | BT-126",
            "invoiceLineNote": "String | BT-127",
            "invoiceLineObjectIdentifier": "String | BT-128",
            "invoicedQuantity": "Decimal | BT-129",
            "invoicedQuantityUnitOfMeasureCode": "String | BT-130",
            "invoiceLineNetAmount": "Decimal | BT-131",
            "referencedPurchaseOrderLineReference": "String | BT-132",
            "invoiceLineBuyerAccountingReference": "String | BT-133",
            "invoiceLinePeriod": {
              "invoiceLinePeriodStartDate": "Date | BT-134",
              "invoiceLinePeriodEndDate": "Date | BT-135"
            },
            "invoiceLineAllowances": [
              {
                "invoiceLineAllowanceAmount": "Decimal | BT-136",
                "invoiceLineAllowanceBaseAmount": "Decimal | BT-137",
                "invoiceLineAllowancePercentage": "Decimal | BT-138",
                "invoiceLineAllowanceReason": "String | BT-139",
                "invoiceLineAllowanceReasonCode": "String | BT-140"
              }
            ],
            "invoiceLineCharges": [
              {
                "invoiceLineChargeAmount": "Decimal | BT-141",
                "invoiceLineChargeBaseAmount": "Decimal | BT-142",
                "invoiceLineChargePercentage": "Decimal | BT-143",
                "invoiceLineChargeReason": "String | BT-144",
                "invoiceLineChargeReasonCode": "String | BT-145"
              }
            ],
            "priceDetails": {
              "itemNetPrice": "Decimal | BT-146",
              "itemPriceDiscount": "Decimal | BT-147",
              "itemGrossPrice": "Decimal | BT-148",
              "itemPriceBaseQuantity": "Decimal | BT-149",
              "itemPriceBaseQuantityUnitOfMeasure": "String | BT-150"
            },
            "lineVatInformation": [
              {
                "invoicedItemVatCategoryCode": "String | BT-151",
                "invoicedItemVatRate": "Decimal | BT-152"
              }
            ],
            "itemInformation": {
              "itemName": "String | BT-153",
              "itemDescription": "String | BT-154",
              "itemSellersIdentifier": "String | BT-155",
              "itemBuyersIdentifier": "String | BT-156",
              "itemStandardIdentifier": "String | BT-157",
              "itemStandardIdentifierSchemeIdentifier": "String | BT-157-1",
              "itemClassificationIdentifier": [
                {
                  "itemClassificationIdentifier": "String | BT-158",
                  "itemClassificationIdentifierListIdentifier": "String | BT-158-1",
                  "itemClassificationIdentifierListVersionIdentifier": "String | BT-158-2"
                }
              ],
              "itemCountryOfOrigin": "String | BT-159",
              "itemAttributes": [
                {
                  "itemAttributeName": "String | BT-160",
                  "itemAttributeValue": "String | BT-161"
                }
              ]
            }
          }
        ]
      }
    }

    Playground

    Diesen Endpunkt live im Browser testen.

    Validierung

    POST/api/v1/zugferd/validateXinvoiceXML

    XRechnung-XML validieren

    Validiert XRechnungs-XML gegen EN 16931 und XRechnung-Business-Regeln. Gibt strukturierte Fehler mit Regel-IDs und Positionen zurück, damit Verstöße vor dem Versand behoben werden können.

    FieldTypeRequiredDescription
    xinvoiceXMLstringrequiredXRechnungs-XML-Inhalt als String.

    Beispiel

    json
    {
      "xinvoiceXML": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>..."
    }

    Beispielantwort

    json
    {
      "valid": false,
      "message": "validated. (7835)",
      "xInvoiceErrors": [
        {
          "id": "BR-CO-25",
          "line": null,
          "location": "/rsm:CrossIndustryInvoice",
          "message": "In case the Amount due for payment (BT-115) is positive, either the Payment due date (BT-9) or the Payment terms (BT-20) shall be present.",
          "schemaFile": "EN16931-CII-validation",
          "type": "fatal"
        }
      ]
    }

    Playground

    Diesen Endpunkt live im Browser testen.

    POST/api/v1/zugferd/validateZugferdPdf

    ZUGFeRD-PDF validieren

    Validiert ein bestehendes ZUGFeRD-PDF inkl. eingebettetem XML gegen EN 16931. Liefert ein klares Bestanden/Nicht-bestanden mit einer detaillierten Fehlerliste.

    FieldTypeRequiredDescription
    zugferdFile64string (base64)requiredBase64-kodiertes ZUGFeRD-PDF.

    Beispiel

    json
    {
      "zugferdFile64": "JVBERi0xLjQK..."
    }

    Beispielantwort

    json
    {
      "valid": false,
      "message": "File was validated",
      "numberOfZugferdErrors": 10,
      "zugferdErrors": [
        {
          "id": "BR-CO-25",
          "line": null,
          "location": "/rsm:CrossIndustryInvoice",
          "message": "In case the Amount due for payment (BT-115) is positive, either the Payment due date (BT-9) or the Payment terms (BT-20) shall be present.",
          "schemaFile": "EN16931-CII-validation",
          "type": "fatal"
        }
      ]
    }

    Playground

    Diesen Endpunkt live im Browser testen.

    Rechnungsobjekt – Referenz

    Das Rechnungsobjekt folgt dem europäischen Semantik-Standard EN 16931. Jedes Feld ist einem Business Term (BT-*) oder einer Business Group (BG-*) zugeordnet. Die folgenden Tabellen zeigen, welche Felder Pflicht und welche optional sind – gruppiert nach ihrer Rolle in der Rechnung.

    Wie diese Tabellen zu lesen sind

    • Pflichtfelder müssen vorhanden sein, damit die Rechnung gegen EN 16931 valide ist.
    • Mit „Min. 1 Pflicht“ markierte Arrays müssen mindestens einen Eintrag enthalten (z. B. Rechnungspositionen, USt-Aufschlüsselung).
    • Verschachtelte Felder werden mit Punktnotation dargestellt (z. B. sellerPostalAddress.sellerCity).
    required

    Pflichtfelder auf einen Blick

    Dies sind die Mindest-Pflichtfelder für eine valide EN-16931-Rechnung. Alles Übrige in den Tabellen unten ist optional und kann weggelassen werden.

    Kopfdaten (BT-1 bis BT-26)
    • BT-1invoiceNumber
    • BT-2invoiceIssueDate
    • BT-3invoiceTypeCode
    • BT-5invoiceCurrencyCode
    • BT-10buyerReference
    Verkäufer (BG-4, BT-27 bis BT-43)
    • BT-27sellerName
    • BT-31sellerVatIdentifier
    • BT-34sellerElectronicAddress
    • BT-37sellerPostalAddress.sellerCity
    • BT-38sellerPostalAddress.sellerPostCode
    • BT-40sellerPostalAddress.sellerCountryCode
    Käufer (BG-7, BT-44 bis BT-58)
    • BT-44buyerName
    • BT-49buyerElectronicAddress
    • BT-52buyerPostalAddress.buyerCity
    • BT-53buyerPostalAddress.buyerPostCode
    • BT-55buyerPostalAddress.buyerCountryCode
    Zahlungsanweisungen (BG-16, BT-81 bis BT-91)
    • BT-81paymentMeansTypeCode
    Rechnungsbeträge (BG-22, BT-106 bis BT-115)
    • BT-106sumOfInvoiceLineNetAmount
    • BT-109invoiceTotalAmountWithoutVat
    • BT-110invoiceTotalVatAmount
    • BT-112invoiceTotalAmountWithVat
    • BT-115amountDueForPayment
    USt-Aufschlüsselung (BG-23, BT-116 bis BT-121)· ≥ 1
    • BT-116vatCategoryTaxableAmount
    • BT-117vatCategoryTaxAmount
    • BT-118vatCategoryCode
    • BT-119vatCategoryRate
    Rechnungspositionen (BG-25, BT-126 bis BT-161)· ≥ 1
    • BT-126invoiceLineIdentifier
    • BT-129invoicedQuantity
    • BT-130invoicedQuantityUnitOfMeasureCode
    • BT-131invoiceLineNetAmount
    • BT-146priceDetails.itemNetPrice
    • BT-151lineVatInformation[].invoicedItemVatCategoryCode
    • BT-152lineVatInformation[].invoicedItemVatRate
    • BT-153itemInformation.itemName

    Kopfdaten (BT-1 bis BT-26)

    Top-Level-Rechnungsdaten: Nummer, Datumsangaben, Währung und Referenzen. Diese Felder identifizieren das Dokument und seinen Geschäftskontext.

    BTFieldTypePflichtBeschreibung
    BT-1invoiceNumberstringrequiredEindeutige Rechnungsnummer des Verkäufers.
    BT-2invoiceIssueDatedaterequiredAusstellungsdatum der Rechnung. Format JJJJMMTT oder JJJJ-MM-TT.
    BT-3invoiceTypeCodestringrequiredRechnungsart: 380 = Rechnung, 381 = Gutschrift, 384 = Korrekturrechnung.
    BT-5invoiceCurrencyCodestringrequiredISO-4217-Währungscode der Rechnung (z. B. EUR).
    BT-6vatAccountingCurrencyCodestringoptionalWährung für die USt-Buchhaltung, falls abweichend von der Rechnungswährung.
    BT-7valueAddedTaxPointDatedateoptionalUSt-Stichtag – Datum, an dem die USt fällig wird.
    BT-8valueAddedTaxPointDateCodestringoptionalCode, der angibt, welches Datum den USt-Stichtag bestimmt.
    BT-9paymentDueDatedateoptionalFälligkeitsdatum der Zahlung. Pflicht, sofern ein offener Betrag und kein Zahlungsbedingungstext vorhanden ist.
    BT-10buyerReferencestringrequiredKäuferreferenz (Leitweg-ID bei der öffentlichen Verwaltung, sonst eine mit dem Käufer vereinbarte Referenz).
    BT-11projectReferenceobjectoptionalOptionale Projektreferenz (Kennung + Name).
    BT-12contractReferencestringoptionalKennung des zugrunde liegenden Vertrags.
    BT-13purchaseOrderReferencestringoptionalBestellreferenz des Käufers.
    BT-14salesOrderReferencestringoptionalAuftragsreferenz des Verkäufers.
    BT-17tenderOrLotReferencestringoptionalAusschreibungs- oder Losreferenz.
    BT-19buyerAccountingReferencestringoptionalBuchhaltungsreferenz des Käufers.
    BT-20paymentTermsstringoptionalZahlungsbedingungen als Freitext. Pflicht, wenn BT-9 fehlt.
    BT-21/22invoiceNotearrayoptionalFreitext-Hinweise zur Rechnung, jeweils mit optionalem Themencode.
    BT-23/24processControlobjectoptionalGeschäftsprozess- und Spezifikations-Identifikatoren.
    BT-25/26precedingInvoiceReferencearrayoptionalReferenz auf eine vorhergehende Rechnung (für Korrekturen / Gutschriften).

    Verkäufer (BG-4, BT-27 bis BT-43)

    Identifikations- und Kontaktdaten des Rechnungsstellers.

    BTFieldTypePflichtBeschreibung
    BT-27sellerNamestringrequiredEingetragener Firmenname des Verkäufers.
    BT-28sellerTradingNamestringoptionalGeschäftsname, falls vom Firmennamen abweichend.
    BT-29sellerIdentifierstring[]optionalZusätzliche Verkäufer-Identifikatoren (z. B. GLN).
    BT-30sellerLegalRegistrationIdentifierstringoptionalHandelsregisternummer.
    BT-31sellerVatIdentifierstringrequiredUmsatzsteuer-Identifikationsnummer des Verkäufers.
    BT-32sellerTaxRegistrationIdentifierstringoptionalSteuernummer.
    BT-33sellerAdditionalLegalInformationstringoptionalWeitere Rechtsangaben (Geschäftsführer, Registergericht usw.).
    BT-34sellerElectronicAddressstringrequiredElektronische Adresse des Verkäufers (i. d. R. Postfach für E-Rechnungen oder E-Mail).
    BT-35sellerPostalAddress.sellerAddressLine1stringoptionalStraße und Hausnummer (Zeile 1).
    BT-37sellerPostalAddress.sellerCitystringrequiredOrt.
    BT-38sellerPostalAddress.sellerPostCodestringrequiredPostleitzahl.
    BT-40sellerPostalAddress.sellerCountryCodestringrequiredISO-3166-1 alpha-2 Ländercode (z. B. DE).
    BT-41/42/43sellerContactobjectoptionalAnsprechpartner: Name, Telefon, E-Mail.

    Käufer (BG-7, BT-44 bis BT-58)

    Identifikations- und Kontaktdaten des Rechnungsempfängers.

    BTFieldTypePflichtBeschreibung
    BT-44buyerNamestringrequiredEingetragener Firmenname des Käufers.
    BT-45buyerTradingNamestringoptionalGeschäftsname, falls vom Firmennamen abweichend.
    BT-46buyerIdentifierstringoptionalZusätzlicher Käufer-Identifikator.
    BT-47buyerLegalRegistrationIdentifierstringoptionalHandelsregisternummer des Käufers.
    BT-48buyerVatIdentifierstringoptionalUmsatzsteuer-Identifikationsnummer des Käufers.
    BT-49buyerElectronicAddressstringrequiredElektronische Adresse des Käufers.
    BT-50buyerPostalAddress.buyerAddressLine1stringoptionalStraße und Hausnummer (Zeile 1).
    BT-52buyerPostalAddress.buyerCitystringrequiredOrt.
    BT-53buyerPostalAddress.buyerPostCodestringrequiredPostleitzahl.
    BT-55buyerPostalAddress.buyerCountryCodestringrequiredISO-3166-1 alpha-2 Ländercode.
    BT-56/57/58buyerContactobjectoptionalAnsprechpartner: Name, Telefon, E-Mail.

    Zahlungsanweisungen (BG-16, BT-81 bis BT-91)

    Wie der Käufer zahlen soll. Verwenden Sie je nach Zahlungsart-Code entweder Überweisung, Karte oder Lastschrift.

    BTFieldTypePflichtBeschreibung
    BT-81paymentMeansTypeCodestringrequiredUNTDID 4461 Zahlungsmittelcode (z. B. 58 = SEPA-Überweisung, 30 = Überweisung, 48 = Kreditkarte).
    BT-82paymentMeansTextstringoptionalFreitext-Zahlungsanweisungen.
    BT-83remittanceInformationstringoptionalVerwendungszweck (vom Käufer bei Zahlung anzugeben).
    BT-84creditTransfer[].paymentAccountIdentifierstringoptionalIBAN oder Kontonummer für die Zahlung.
    BT-85creditTransfer[].paymentAccountNamestringoptionalKontoinhaber.
    BT-86creditTransfer[].paymentServiceProviderIdentifierstringoptionalBIC der Empfängerbank.
    BT-87/88paymentCardInformationobjectoptionalKartenzahlungsinformationen (PAN, Karteninhaber).
    BT-89/90/91directDebitobjectoptionalLastschriftmandat-Informationen.

    Rechnungsbeträge (BG-22, BT-106 bis BT-115)

    Beträge auf Dokumentenebene. Diese müssen mit der Summe der Positionen und der USt-Aufschlüsselung übereinstimmen.

    BTFieldTypePflichtBeschreibung
    BT-106sumOfInvoiceLineNetAmountdecimalrequiredSumme der Nettobeträge aller Rechnungspositionen.
    BT-107sumOfAllowancesOnDocumentLeveldecimaloptionalSumme der Nachlässe auf Dokumentenebene.
    BT-108sumOfChargesOnDocumentLeveldecimaloptionalSumme der Zuschläge auf Dokumentenebene.
    BT-109invoiceTotalAmountWithoutVatdecimalrequiredRechnungs-Gesamtbetrag ohne USt (Nettosumme).
    BT-110invoiceTotalVatAmountdecimalrequiredGesamter USt-Betrag.
    BT-111invoiceTotalVatAmountInAccountingCurrencydecimaloptionalGesamt-USt in der Buchhaltungswährung (BT-6), falls von BT-5 abweichend.
    BT-112invoiceTotalAmountWithVatdecimalrequiredRechnungs-Gesamtbetrag inkl. USt (Bruttosumme).
    BT-113paidAmountdecimaloptionalBereits bezahlter Betrag.
    BT-114roundingAmountdecimaloptionalRundungsbetrag.
    BT-115amountDueForPaymentdecimalrequiredZu zahlender Betrag (BT-112 − BT-113 + BT-114).

    USt-Aufschlüsselung (BG-23, BT-116 bis BT-121)

    Array · Min. 1 Pflicht

    Array mit USt-Zwischensummen. Mindestens ein Eintrag ist Pflicht, mit einer Zeile pro Kombination aus USt-Kategorie und -Satz.

    BTFieldTypePflichtBeschreibung
    BT-116vatCategoryTaxableAmountdecimalrequiredSteuerbarer Betrag für diese USt-Kategorie.
    BT-117vatCategoryTaxAmountdecimalrequiredUSt-Betrag für diese Kategorie (BT-116 × BT-119 / 100).
    BT-118vatCategoryCodestringrequiredUSt-Kategorie: S (Standard), Z (Nullsatz), E (Befreit), AE (Umkehr der Steuerschuld), K (Innergemeinschaftlich), G (Ausfuhr), O (Außerhalb), L (Kanarische Inseln), M (Ceuta/Melilla).
    BT-119vatCategoryRatedecimalrequiredUSt-Satz in Prozent (z. B. 19 für 19 %).
    BT-120vatExemptionReasonTextstringoptionalPflicht bei Steuerbefreiung oder Nullsatz. Freitext-Begründung.
    BT-121vatExemptionReasonCodestringoptionalKodierte Befreiungsgründe (z. B. VATEX-EU-AE, VATEX-EU-IC).

    Rechnungspositionen (BG-25, BT-126 bis BT-161)

    Array · Min. 1 Pflicht

    Array der Rechnungspositionen. Jede Position beschreibt ein Produkt oder eine Leistung und muss Identifikation, Menge, Nettopreis, Positions-Nettobetrag und USt-Zuordnung enthalten.

    BTFieldTypePflichtBeschreibung
    BT-126invoiceLineIdentifierstringrequiredEindeutige Positionsnummer innerhalb der Rechnung.
    BT-127invoiceLineNotestringoptionalFreitext-Hinweis zur Position.
    BT-128invoiceLineObjectIdentifierstringoptionalObjektkennung, auf die die Position verweist.
    BT-129invoicedQuantitydecimalrequiredIn Rechnung gestellte Menge.
    BT-130invoicedQuantityUnitOfMeasureCodestringrequiredUN/ECE Empfehlung 20 Maßeinheit (z. B. H87 = Stück, HUR = Stunde, KGM = Kilogramm).
    BT-131invoiceLineNetAmountdecimalrequiredPositions-Nettobetrag (Menge × Nettopreis − Positionsnachlässe + Positionszuschläge).
    BT-132referencedPurchaseOrderLineReferencestringoptionalReferenz auf eine Bestellposition des Käufers.
    BT-133invoiceLineBuyerAccountingReferencestringoptionalBuchungsreferenz für diese Position.
    BT-134/135invoiceLinePeriodobjectoptionalLeistungszeitraum dieser Position (Start/Ende).
    BT-136 to BT-140invoiceLineAllowancesarrayoptionalNachlässe/Rabatte auf Positionsebene.
    BT-141 to BT-145invoiceLineChargesarrayoptionalZuschläge auf Positionsebene.
    BT-146priceDetails.itemNetPricedecimalrequiredNetto-Stückpreis (nach Artikel-Preisrabatt).
    BT-147priceDetails.itemPriceDiscountdecimaloptionalRabatt auf den Brutto-Stückpreis zur Ermittlung des Nettopreises.
    BT-148priceDetails.itemGrossPricedecimaloptionalBrutto-Stückpreis vor Rabatt.
    BT-149/150priceDetails.itemPriceBaseQuantityobjectoptionalBezugsmenge des Stückpreises + Maßeinheit.
    BT-151lineVatInformation[].invoicedItemVatCategoryCodestringrequiredUSt-Kategorie der Position (passt zu einem Eintrag in vatBreakdown).
    BT-152lineVatInformation[].invoicedItemVatRatedecimalrequiredUSt-Satz der Position.
    BT-153itemInformation.itemNamestringrequiredArtikelbezeichnung auf der Rechnung.
    BT-154itemInformation.itemDescriptionstringoptionalAusführliche Artikelbeschreibung.
    BT-155itemInformation.itemSellersIdentifierstringoptionalArtikelnummer des Verkäufers.
    BT-156itemInformation.itemBuyersIdentifierstringoptionalArtikelnummer des Käufers.
    BT-157itemInformation.itemStandardIdentifierstringoptionalStandardartikelkennung (z. B. GTIN). Pflicht, wenn BT-157-1 gesetzt ist.
    BT-157-1itemInformation.itemStandardIdentifierSchemeIdentifierstringoptionalISO-6523-Schema für BT-157. Pflicht, wenn BT-157 gesetzt ist.
    BT-158itemInformation.itemClassificationIdentifierarrayoptionalArtikelklassifizierungen (z. B. UNSPSC, eCl@ss) mit Schema und Version.
    BT-159itemInformation.itemCountryOfOriginstringoptionalISO-3166-1 alpha-2 Herkunftsland.
    BT-160/161itemInformation.itemAttributesarrayoptionalArtikelmerkmale als Name/Wert-Paare (z. B. Farbe, Größe).

    Optionale Parteien, Zeiträume und Anpassungen auf Dokumentenebene

    Diese Gruppen sind komplett optional. Verwenden Sie sie nur wenn relevant – ansonsten weglassen. Die internen Felder folgen denselben EN-16931-Mapping-Konventionen.

    BTFieldTypePflichtBeschreibung
    BG-10 / BT-59 to BT-61payeeobjectoptionalZahlungsempfänger, falls vom Verkäufer abweichend.
    BG-11 / BT-62 to BT-69sellerTaxRepresentativePartyobjectoptionalSteuervertreter des Verkäufers (üblicherweise für Verkäufer außerhalb der EU).
    BG-13 / BT-70 to BT-80deliveryInformationobjectoptionalLieferpartei, Ort und tatsächliches Lieferdatum.
    BG-14 / BT-73, BT-74invoicingPeriodobjectoptionalLeistungszeitraum auf Rechnungsebene.
    BG-20 / BT-92 to BT-98documentLevelAllowancesarrayoptionalNachlässe/Rabatte auf Dokumentenebene.
    BG-21 / BT-99 to BT-105documentLevelChargesarrayoptionalZuschläge auf Dokumentenebene.
    BG-24 / BT-122 to BT-125additionalSupportingDocumentsarrayoptionalZusätzliche Belege (Stundennachweis, Lieferschein usw.). Entweder externe URL oder Base64-Anhang.

    Fehler

    RechnungsAPI verwendet konventionelle HTTP-Status-Codes für Transport-Fehler. Fachliche Validierungsergebnisse (EN-16931- / XRechnung-Regelverstöße) werden mit HTTP 200 in einer strukturierten Fehlerliste zurückgegeben – siehe Schema unten.

    CodeBezeichnungBeschreibung
    200OKAnfrage verarbeitet. Bei Validierungs- und Erzeugungs-Endpunkten zusätzlich das Feld `valid` prüfen – HTTP 200 bedeutet nicht, dass die Rechnung valide ist.
    400Ungültige AnfrageUngültiges JSON oder ungültige Rechnungsdaten. Der Response-Body listet die betroffenen Felder.
    401Nicht autorisiertFehlender oder ungültiger Authorization-Header / Bearer-Token.
    402Zahlung erforderlichKein aktives Abo oder API-Kontingent aufgebraucht. Bitte Support kontaktieren oder Plan upgraden.
    412Vorbedingung fehlgeschlagenErforderliche Eingabe (PDF, XML oder Rechnungsdaten) fehlt im Request-Body.
    500ServerfehlerUnerwarteter serverseitiger Fehler. Mit exponentiellem Backoff erneut versuchen; bei dauerhaftem Fehler Support mit Request-ID kontaktieren.

    Schema eines Validierungsfehlers

    Jeder Eintrag in `xInvoiceErrors` / `zugferdErrors` folgt diesem Schema. Nutzen Sie `id` und `location`, um zur fehlerhaften Stelle zu springen.

    json
    {
      "id": "BR-CO-25",
      "line": null,
      "location": "/rsm:CrossIndustryInvoice",
      "message": "In case the Amount due for payment (BT-115) is positive, either the Payment due date (BT-9) or the Payment terms (BT-20) shall be present.",
      "schemaFile": "EN16931-CII-validation",
      "type": "fatal"
    }
    rechnungsapi.de

    Professionelle E-Rechnungs-APIs für KMUs. Transformieren Sie Ihr ERP-System mit ZUGFeRD-konformen Lösungen und DSGVO-konformer KI-Technologie.

    DSGVO-konform & sicher

    Produkt

    • Preise

    Rechtliches

    • Impressum
    • Datenschutzerklärung
    • Nutzungsbedingungen
    • Kontakt
    • DSGVO-Konformität

    © 2025 rechnungsapi.de

    support@rechnungsapi.de