XRechnung einfach in bestehende Software integrieren

Die DLL ist die ideale Komponente für Softwareentwickler und IT-Abteilungen. Sie unterstützt bei der technischen Umsetzung aktueller XRechnungs- und CII-Anforderungen.

Mit nur wenigen Zeilen Code integrieren Sie die XRechnung-Funktionalität nahtlos in Ihre bestehende Anwendung – von der Erstellung über die Validierung bis hin zur Weiterverarbeitung.
Ihre Vorteile auf einen Blick

Nahtlose Integration: Einbindung in Ihren Entwicklungsumgebungen – ohne große Eingriffe in Ihre Architektur. Einfach aufrufen und fertig.
🔍 Automatisierte Validierung: Sofortige Prüfung und Ausgabe auf Konformität. Fehler und manuelle Nachbearbeitung werden drastisch reduziert.
🔄 Zukunftssicher: Regelmäßige Updates halten Ihre Lösung immer auf dem aktuellen Stand der gesetzlichen und technischen Anforderungen
⏱️ Zeit- & Kostenersparnis: Je nach Ausgangsprozess lassen sich manuelle Arbeitsschritte bei der Rechnungserstellung und -prüfung erheblich reduzieren.
🏢 Praxisbewährt: Hat sich bereits mehrfach als Alternative bewährt – inklusive Support und Update-Garantie.

🔒 Universell kompatibel. Schnell eingerichtet. Gesetzeskonform.

E‑Rechnungspflicht? Wir unterstützen Ihre Software bei der Integration.

Viele Unternehmen stehen vor der Herausforderung, dass ihre bestehende Software E-Rechnungen wie XRechnung, ZUGFeRD, Peppol, CII oder UBL nicht nativ unterstützt oder entsprechende Updates mit hohem Aufwand und hohen Kosten verbunden sind.

Die MGS XRechnung.DLL schließt genau diese Lücke. Sie lässt sich direkt in bestehende Softwarelösungen integrieren und erweitert diese um Funktionen zum Erstellen, Einlesen und Verarbeiten elektronischer Rechnungen.

Als technische Schnittstelle übernimmt die DLL die Umwandlung vorhandener Rechnungsdaten in strukturierte, rechtskonforme E-Rechnungsformate. Ihre bestehenden Prozesse und Anwendungen bleiben erhalten – die DLL sorgt für die korrekte technische Umsetzung der digitalen Rechnungsformate für Kunden, Geschäftspartner und öffentliche Auftraggeber.

💻 Lizenzmodelle
LizenzmodellFunktionsumfangLizenzdetailsPreis / Jahr
EinzelplatzNutzung der DLL auf einem einzelnen Arbeitsplatz. Ideal für kleine Unternehmen, Einzelanwender oder gelegentliche Nutzung.Jahreslizenz für 1 Installation, inkl. Updates und Standard-Support. Keine Mehrplatz-, Mehrfirmen- oder Servernutzung.249 €
DeveloperNutzung der DLL für Entwicklung, Test und technische Integration in eigene Projekte.Jahreslizenz pro Entwicklerarbeitsplatz. Nicht für produktive Nutzung beim Endkunden oder im laufenden Rechnungsausgang vorgesehen. Optional mit Testmodus/Wasserzeichen.199 €
UnternehmerProduktive interne Nutzung der DLL innerhalb einer Firma / eines Standorts.Jahreslizenz inkl. Updates. Geeignet für normale interne Nutzung ohne kommerzielle Weitergabe, ohne Mehrfirmen-/Mehrmandantenfähigkeit und ohne Hochvolumenbetrieb. Die Support-Pauschale ist fester Bestandteil der Lizenz und umfasst Prioritäts-Support.1.490 € / Jahr zzgl. 99 € Support-Pauschale
EnterpriseProduktive Nutzung in erweiterten Unternehmensstrukturen, z. B. bei mehreren Firmen, mehreren Mandanten, ERP-/WaWi-Integration oder hohem Rechnungsvolumen.Für bis zu 3 Firmen / Mandanten, höhere Rechnungsvolumen, ERP-/WaWi-Integration und produktionskritische Prozesse. Enterprise-Support inklusive. Individuelle Anpassungen, Einrichtung, Datenmapping, Tests und Integration werden separat berechnet.4.290 €
Enterprise PlusErweiterte Enterprise-Nutzung bei mehr als 3 Firmen / Mandanten, mehreren Standorten, Konzernstrukturen oder SLA-kritischen Produktivprozessen.Umfang, Firmenanzahl, Mandantenstruktur, Standorte, Rechnungsvolumen und Support-Level werden projektbezogen festgelegt.ab 6.900 €
SoftwarehausIntegration der DLL in kommerzielle Softwareprodukte, die an eigene Endkunden verkauft, vermietet oder ausgeliefert werden.Lizenz für die Integration in eigene Softwareprodukte. Preis abhängig von Installationsvolumen, Verbreitung, Endkundenzahl und Nutzungsmodell.ab 4.500 €
Wiederverkäufer / PartnerVertrieb der DLL, Vermittlung an eigene Kunden oder Empfehlung im Rahmen eigener Beratungsleistungen.Partnermodell mit individueller Vereinbarung. Möglich sind Wiederverkäufer-Provisionen, Einkaufskonditionen oder volumenbasierte Partnerkonditionen. Keine Integration in eigene kommerzielle Softwareprodukte ohne Softwarehaus-Lizenz.auf Anfrage

Support-Level

Support-LevelLeistungsumfangPreis
StandardAntwortzeit ca. 3 WerktageIn Einzelplatz- und Developer-Lizenz enthalten
PrioritätAntwortzeit ca. 1–2 Werktage99 € / Jahr, bei Unternehmer-Lizenz fester Bestandteil
Enterprise-SupportPriorisierte Bearbeitung für produktive Nutzung im UnternehmensumfeldIn der Enterprise-Lizenz enthalten
Premium / SLAIndividuelles SLA, Reaktionszeit nach Vereinbarung, bevorzugte Bearbeitung produktiver StörungenProjektbezogen, nach Vereinbarung

Hinweise zur Preisgestaltung

Alle Preise verstehen sich netto zzgl. gesetzlicher Umsatzsteuer.

Individuelle Sonderprogrammierungen, Anpassungen, Einrichtung, Datenmapping, Tests sowie Unterstützung bei der Einbindung in bestehende Systeme werden mit 750 € / Tag berechnet.

Bei Enterprise Plus und Softwarehaus-Lizenzen erfolgt die Preisgestaltung projektbezogen. Maßgeblich sind insbesondere Firmenanzahl, Mandantenstruktur, Standorte, Rechnungsvolumen, Installationsvolumen, Supportbedarf und Nutzungsmodell.

Typische Jahrespreise liegen bei Enterprise Plus zwischen 6.900 € und 15.000 € sowie bei Softwarehaus-Lizenzen zwischen 4.500 € und 25.000 €, je nach Umfang und Einsatzszenario.

 

🗄️ Verbindung zu gängigen Datenbanken
Kompatibel mit SQL Server, MySQL, PostgreSQL & lokalen Datenbanken.
🧾 Erstellen digitaler XRechnungen im CII-Format
Vollständige Unterstützung des Cross Industry Invoice (CII)-Standards für rechtssichere Rechnungen.
📎 Einbetten aller zulässigen Dateiformate
Anhängen von PDF, XML, Bildern oder anderen Belegen – auch mehrere pro Rechnung.
📧 Direkter Support-Kontakt via E-Mail
Schnelle Hilfe durch unser Support-Team, inklusive definierter Antwortzeiten je nach Lizenzmodell.

🔄 Immer aktuell: Regelmäßige Updates für neue XRechnung-Versionen
🛟 Support inklusive: Schnelle Hilfe bei technischen Fragen
🧾 Rechtssicher: Vollständige Konformität mit aktuellen Standards
📈 Skalierbar: Flexible Lizenzmodelle für Einzelunternehmen oder Softwareanbieter

BereichAussage
AusgabeformatXRechnung im CII-Format
ValidierungPrüfung der erzeugten XML-Struktur und Rückgabe von Fehlerhinweisen
IntegrationNutzbar aus VB6, VBA, VB.NET, C#, Access und Office-Anwendungen
DatenquellenSQL Server, MySQL, PostgreSQL, lokale Datenbanken, CSV/TXT möglich
AnhängePDF, XML, Bilder und weitere zulässige Belege
LizenzprüfungLizenzierung und Aktivierung über Validater/Tool
BeispieleBeispielcode für gängige Entwicklungsumgebungen
SupportDirekter technischer Support je nach Lizenzmodell

Code-Beispiele

VB6 / VBA
				
					Private Sub btnXRechnung_Click()

    Dim cls As New clsXRechnung
    Dim selectedFolder As String
    Dim strParameter As String
    Dim bolConnect As Boolean
    Dim filePath As String

    selectedFolder = BrowseForFolderDialog(Me.hWnd, "Bitte Ordner zur Speicherung auswählen")
    If selectedFolder = "" Then Exit Sub

    ExportPath = selectedFolder & "\"

    If Parameter Then
        strParameter = InputBox("Please insert Parameter", "Parameter", 252068)

        If strParameter = "" Then
            MsgBox "Parameter is empty", vbInformation, "Note"
            Exit Sub
        End If

        filePath = ExportPath & Trim(strParameter) & ".xml"

        bolConnect = cls.DLL_Init_DB(SerielNumber, filePath, DBConnect, SQL, _
                                    strParameter, Parameter, ImportFileName, _
                                    TableName, bolFrage, Lizenz)

    Else
        strParameter = InputBox("Please insert filename (without path and extension)", "Filename")

        If strParameter = "" Then Exit Sub

        filePath = ExportPath & strParameter & ".xml"

        bolConnect = cls.DLL_Init_DB(SerielNumber, filePath, DBConnect, SQL, _
                                    "", Parameter, ImportFileName, _
                                    TableName, bolFrage, Lizenz)
    End If

    If Not bolConnect Then
        MsgBox "Connect to database not possible." & vbNewLine & _
               "Connection string incorrectly constructed?", vbExclamation, "Note"
        Set cls = Nothing
        Exit Sub
    End If

    If cls.CreateXRechnung Then
        If Parameter Then
            If MsgBox("Validate XInvoice with ecosio?", vbYesNo + vbQuestion, "Note") = vbYes Then
                cls.Ecosio
            End If
        End If
    End If

    Set cls = Nothing

End Sub
				
			
				
					Imports System.Windows.Forms
Imports clsXRechnung

Public Class Form1

    Private Sub btnXRechnung_Click(sender As Object, e As EventArgs) Handles btnXRechnung.Click

        Try
            Dim cls As New clsXRechnung()

            ' Beispielwerte – anpassen!
            Dim SerielNumber As String = "12345"
            Dim DBConnect As String = "YourConnectionString"
            Dim SQL As String = "SELECT * FROM ..."
            Dim ImportFileName As String = ""
            Dim TableName As String = "MyTable"
            Dim bolFrage As Boolean = False
            Dim Lizenz As String = "XYZ"
            Dim Parameter As Boolean = True

            ' Ordner auswählen
            Dim selectedFolder As String = ""
            Using fbd As New FolderBrowserDialog()
                fbd.Description = "Bitte Ordner auswählen"

                If fbd.ShowDialog() = DialogResult.OK Then
                    selectedFolder = fbd.SelectedPath
                Else
                    Exit Sub
                End If
            End Using

            Dim exportPath As String = selectedFolder & "\"
            Dim strParameter As String = ""
            Dim filePath As String = ""
            Dim bolConnect As Boolean

            If Parameter Then
                strParameter = InputBox("Please insert Parameter", "Parameter", "252068")

                If String.IsNullOrWhiteSpace(strParameter) Then
                    MessageBox.Show("Parameter is empty")
                    Exit Sub
                End If

                filePath = exportPath & strParameter.Trim() & ".xml"

                bolConnect = cls.DLL_Init_DB(
                    SerielNumber,
                    filePath,
                    DBConnect,
                    SQL,
                    strParameter,
                    True,
                    ImportFileName,
                    TableName,
                    bolFrage,
                    Lizenz)

            Else
                strParameter = InputBox("Filename", "Please insert filename")

                If String.IsNullOrWhiteSpace(strParameter) Then Exit Sub

                filePath = exportPath & strParameter & ".xml"

                bolConnect = cls.DLL_Init_DB(
                    SerielNumber,
                    filePath,
                    DBConnect,
                    SQL,
                    "",
                    False,
                    ImportFileName,
                    TableName,
                    bolFrage,
                    Lizenz)
            End If

            If Not bolConnect Then
                MessageBox.Show("DB Verbindung fehlgeschlagen")
                Exit Sub
            End If

            MessageBox.Show("DB verbunden")

            If cls.CreateXRechnung() Then
                MessageBox.Show("XRechnung erstellt")

                If Parameter Then
                    If MessageBox.Show("Ecosio Validierung ausführen?",
                                       "Frage",
                                       MessageBoxButtons.YesNo) = DialogResult.Yes Then

                        cls.Ecosio()
                        MessageBox.Show("Validierung abgeschlossen")
                    End If
                End If
            Else
                MessageBox.Show("Erstellung fehlgeschlagen")
            End If

        Catch ex As Exception
            MessageBox.Show("Fehler: " & ex.Message)
        End Try

    End Sub

End Class
				
			
				
					using clsXRechnung;

private void btnXRechnung_Click(object sender, EventArgs e)
{
    var cls = new clsXRechnung();

    string selectedFolder = BrowseForFolderDialog(this.Handle, "Bitte Ordner zur Speicherung auswählen");
    if (string.IsNullOrEmpty(selectedFolder))
        return;

    ExportPath = selectedFolder + "\\";
    string strParameter;
    string filePath;
    bool bolConnect;

    if (Parameter)
    {
        strParameter = Microsoft.VisualBasic.Interaction.InputBox(
            "Please insert Parameter", "Parameter", "252068");

        if (string.IsNullOrEmpty(strParameter))
        {
            MessageBox.Show("Parameter is empty", "Note",
                MessageBoxButtons.OK, MessageBoxIcon.Information);
            return;
        }

        filePath = ExportPath + strParameter.Trim() + ".xml";

        bolConnect = cls.DLL_Init_DB(
            SerielNumber,
            filePath,
            DBConnect,
            SQL,
            strParameter,
            Parameter,
            ImportFileName,
            TableName,
            bolFrage,
            Lizenz);
    }
    else
    {
        strParameter = Microsoft.VisualBasic.Interaction.InputBox(
            "Please insert filename (without path and extension)", "Filename");

        if (string.IsNullOrEmpty(strParameter))
            return;

        filePath = ExportPath + strParameter + ".xml";

        bolConnect = cls.DLL_Init_DB(
            SerielNumber,
            filePath,
            DBConnect,
            SQL,
            "",
            Parameter,
            ImportFileName,
            TableName,
            bolFrage,
            Lizenz);
    }

    if (!bolConnect)
    {
        MessageBox.Show(
            "Connect to database not possible.\nConnection string incorrectly constructed?",
            "Note",
            MessageBoxButtons.OK,
            MessageBoxIcon.Warning);
        return;
    }

    if (cls.CreateXRechnung())
    {
        if (Parameter)
        {
            var result = MessageBox.Show(
                "Validate XInvoice with ecosio?",
                "Note",
                MessageBoxButtons.YesNo,
                MessageBoxIcon.Question);

            if (result == DialogResult.Yes)
            {
                cls.Ecosio();
            }
        }
    }
}
				
			
				
					procedure TForm1.btnXRechnungClick(Sender: TObject);
var
  cls: TclsXRechnung;
  selectedFolder: string;
  strParameter: string;
  filePath: string;
  bolConnect: Boolean;
begin
  cls := TclsXRechnung.Create;
  try
    selectedFolder := BrowseForFolderDialog(Handle, 'Bitte Ordner zur Speicherung auswählen');
    if selectedFolder = '' then Exit;

    ExportPath := selectedFolder + '\';

    if Parameter then
    begin
      strParameter := InputBox('Parameter', 'Please insert Parameter', '252068');

      if strParameter = '' then
      begin
        ShowMessage('Parameter is empty');
        Exit;
      end;

      filePath := ExportPath + Trim(strParameter) + '.xml';

      bolConnect := cls.DLL_Init_DB(
        SerielNumber,
        filePath,
        DBConnect,
        SQL,
        strParameter,
        Parameter,
        ImportFileName,
        TableName,
        bolFrage,
        Lizenz
      );
    end
    else
    begin
      strParameter := InputBox('Filename', 'Please insert filename (without path and extension)', '');

      if strParameter = '' then Exit;

      filePath := ExportPath + strParameter + '.xml';

      bolConnect := cls.DLL_Init_DB(
        SerielNumber,
        filePath,
        DBConnect,
        SQL,
        '',
        Parameter,
        ImportFileName,
        TableName,
        bolFrage,
        Lizenz
      );
    end;

    if not bolConnect then
    begin
      ShowMessage('Connect to database not possible.' + sLineBreak +
                  'Connection string incorrectly constructed?');
      Exit;
    end;

    if cls.CreateXRechnung then
    begin
      if Parameter then
      begin
        if MessageDlg('Validate XInvoice with ecosio?',
                      mtConfirmation, [mbYes, mbNo], 0) = mrYes then
        begin
          cls.Ecosio;
        end;
      end;
    end;

  finally
    cls.Free;
  end;
end;
				
			
				
					import win32com.client

cls = win32com.client.Dispatch("clsXRechnung")

result = cls.DLL_Init_DB(
    SerielNumber,
    filePath,
    DBConnect,
    SQL,
    strParameter,
    Parameter,
    ImportFileName,
    TableName,
    bolFrage,
    Lizenz
)

if result:
    if cls.CreateXRechnung():
        cls.Ecosio()
				
			
				
					#include <iostream>
#include <windows.h>
#include <comdef.h>

// COM DLL importieren
#import "mgsXRechnungDLL.dll" no_namespace named_guids

int main()
{
    HRESULT hr = CoInitialize(NULL);
    if (FAILED(hr))
    {
        std::cout << "COM Init fehlgeschlagen\n";
        return -1;
    }

    try
    {
        // COM Objekt erstellen
        clsXRechnungPtr cls(__uuidof(clsXRechnung));

        // Beispielwerte (anpassen!)
        _bstr_t SerielNumber = "12345";
        _bstr_t filePath = "C:\\Temp\\test.xml";
        _bstr_t DBConnect = "YourConnectionString";
        _bstr_t SQL = "SELECT * FROM ...";
        _bstr_t strParameter = "252068";
        VARIANT_BOOL Parameter = VARIANT_TRUE;
        _bstr_t ImportFileName = "";
        _bstr_t TableName = "MyTable";
        VARIANT_BOOL bolFrage = VARIANT_FALSE;
        _bstr_t Lizenz = "XYZ";

        VARIANT_BOOL bolConnect = cls->DLL_Init_DB(
            SerielNumber,
            filePath,
            DBConnect,
            SQL,
            strParameter,
            Parameter,
            ImportFileName,
            TableName,
            bolFrage,
            Lizenz
        );

        if (bolConnect == VARIANT_FALSE)
        {
            std::cout << "DB Verbindung fehlgeschlagen\n";
        }
        else
        {
            std::cout << "DB verbunden\n";

            if (cls->CreateXRechnung() == VARIANT_TRUE)
            {
                std::cout << "XRechnung erstellt\n";

                // Optional
                cls->Ecosio();
            }
        }
    }
    catch (_com_error& e)
    {
        std::wcout << L"COM Fehler: " << e.ErrorMessage() << std::endl;
    }

    CoUninitialize();
    return 0;
}
				
			

Videoanleitung

Installation und Konfiguration

Ihr Kontakt zu uns

Wenn Sie den Vertrag widerrufen möchten, füllen Sie bitte dieses Formular aus und senden Sie es zurück.

*Bitte beachten Sie, dass aktivierte Software vom Widerruf ausgeschlossen ist.

Vielen Dank für die Kontaktaufnahme.

Wir werden uns umgehend mit Ihnen in Verbindung setzten.

Beratung anfragen

Ihre Anforderungen an die individuelle Beratung

Sie möchten ein konkretes SQL-Server-Problem lösen, bestehende Prozesse optimieren oder Ihre XRechnung-Workflows automatisieren? Beschreiben Sie kurz Ihre aktuelle Situation. Auf dieser Grundlage erhalten Sie eine individuell auf Ihre Anforderungen abgestimmte Empfehlung.