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.
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.
| Lizenzmodell | Funktionsumfang | Lizenzdetails | Preis / Jahr |
|---|---|---|---|
| Einzelplatz | Nutzung 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 € |
| Developer | Nutzung 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 € |
| Unternehmer | Produktive 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 |
| Enterprise | Produktive 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 Plus | Erweiterte 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 € |
| Softwarehaus | Integration 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 / Partner | Vertrieb 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 | Leistungsumfang | Preis |
|---|---|---|
| Standard | Antwortzeit ca. 3 Werktage | In Einzelplatz- und Developer-Lizenz enthalten |
| Priorität | Antwortzeit ca. 1–2 Werktage | 99 € / Jahr, bei Unternehmer-Lizenz fester Bestandteil |
| Enterprise-Support | Priorisierte Bearbeitung für produktive Nutzung im Unternehmensumfeld | In der Enterprise-Lizenz enthalten |
| Premium / SLA | Individuelles SLA, Reaktionszeit nach Vereinbarung, bevorzugte Bearbeitung produktiver Störungen | Projektbezogen, nach Vereinbarung |
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
| Bereich | Aussage |
|---|---|
| Ausgabeformat | XRechnung im CII-Format |
| Validierung | Prüfung der erzeugten XML-Struktur und Rückgabe von Fehlerhinweisen |
| Integration | Nutzbar aus VB6, VBA, VB.NET, C#, Access und Office-Anwendungen |
| Datenquellen | SQL Server, MySQL, PostgreSQL, lokale Datenbanken, CSV/TXT möglich |
| Anhänge | PDF, XML, Bilder und weitere zulässige Belege |
| Lizenzprüfung | Lizenzierung und Aktivierung über Validater/Tool |
| Beispiele | Beispielcode für gängige Entwicklungsumgebungen |
| Support | Direkter technischer Support je nach Lizenzmodell |
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
#include
#include
// 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;
}
*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.
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.