Beitrag aus SmartTools Excel Weekly
So können Sie verschiedene Zahlungsarten in E-Rechnungen mit Excel verwenden
Excel 365 2024 2021 2019 2016 2013
Die meisten Rechnungen, die Sie als E-Rechnung verschicken werden wahrscheinlich per Überweisung beglichen. Aber es gibt natürlich auch Kreditkartenzahlungen und bei längerfristigen Verträgen oder wiederkehrenden Leistungen kommt als Zahlungsart auch das Lastschriftverfahren ins Spiel. Wenn Sie eine E-Rechnung ausstellen, sollten Sie auch die verwendete Zahlungsart und die zugehörigen Details angeben. Bei Überweisungen liegt das auf der Hand, denn sonst weiß ein Käufer nicht, auf welches Konto er das Geld überweisen soll. Aber auch bei Lastschriften hilft es dem Rechnungsempfänger, wenn Sie die Kontonummer, von der das Geld abgebucht wird, sowie die Mandatsreferenz und die Gläubiger-ID angeben. Und zu Kreditkartenzahlungen gehören die Kreditkartennummer und der Karteninhaber. In diesem Beitrag zeigen wir Ihnen, wie Sie die Zahlungsdetails mit Hilfe der SmartTools E-Rechnung VBA-Bibliothek für Excel in Ihre E-Rechnungen integrieren, die Sie aus Excel ausgeben.
Mit der SmartTools E-Rechnung VBA-Bibliothek für Excelerweitern Sie Ihre eigenen Rechnungsvorlagen in Excel per VBA um die Ausgabe von E-Rechnungen in jedem beliebigen Format. Unterstützt werden sowohl ZUGFeRD (alle E-Rechnung Profile inkl. Extended) als auch XRechnung (CII und UBL). Nach der automatischen Installation setzen Sie in der VBA-Entwicklungsumgebung einen Verweis auf die Bibliothek und können anschließend neue Anweisungen nutzen, um Daten aus Ihrer Rechnungstabelle auszulesen und dann als E-Rechnung auszugeben. Als Bonus erhalten Sie außerdem Zusatzfunktionen zum Einlesen und Validieren von E-Rechnungen.
Für die Angabe der Zahlungsarten konzentrieren wir uns auf die gängigsten drei Methoden:
- SEPA-Überweisung
- SEPA-Lastschrift
- Kreditkartenzahlung
Andere Zahlungsarten werden selbstverständlich auch von unserer Bibliothek unterstützt. Orientieren Sie sich dann an dem weiter unten vorgestellten Programmcode, falls Sie sie benötigen.
BT-Felder für die Zahlungsarten
Je nach Zahlungsart müssen unterschiedliche BT-Felder in einer E-Rechnung befüllt werden. Damit Sie einen Überblick erhalten, haben wir die Felder in der folgenden Tabelle zusammengestellt. Die Tabelle enthält zudem die Elemente aus der "Payment"-Klasse unserer SmartTools E-Rechnungs-Bibliothek, die den BT-Feldern zugeordnet sind.
| BT-Feld | Beschreibung | SmartTools-Element |
|---|---|---|
| BT-81 | codiertes Zahlungsmittel | PaymentMeansCode |
| BT-82 | Zahlungsmittel (Textform) | PaymentMeans |
Überweisung (CreditTransfer-Objekt pro Konto)
| BT-Feld | Beschreibung | SmartTools-Element |
|---|---|---|
| BT-84 | IBAN | .AccountId |
| BT-85 | Kontoinhaber | .AccountName |
| BT-86 | BIC (optional) | .ServiceProviderId |
Kreditkartenzahlung
| BT-Feld | Beschreibung | SmartTools-Element |
|---|---|---|
| BT-87 | Kartennummer | PaymentCard.PrimaryAccountNumber |
| BT-88 | Karteninhaber | PaymentCard.HolderName |
Lastschrift
| BT-Feld | Beschreibung | SmartTools-Element |
|---|---|---|
| BT-89 | Mandatsreferenz | DirectDebit.MandateReferenceId |
| BT-90 | Gläubiger-ID | DirectDebit.CreditorId |
| BT-91 | IBAN (Zahlungspflichtiger) | DirectDebit.DebitedAccountId |
Der Einfachheit halber nehmen wir für die folgenden Beispiele an, dass Sie sämtliche Daten, die für die Zahlungsarten relevant sind, an Variablen vom Typ „String“ übergeben haben:
| Name der Variablen | Inhalt |
|---|---|
| strIBAN | IBAN des Zahlungsempfängers (Überweisung) |
| strBIC | optionale BIC des Empfängerkontos |
| strKontoinhaber | Name/Inhaber des Empfängerkontos |
| strMandatsref | Mandatsreferenz für Lastschriften |
| strGlaeubigerID | Gläubiger-ID für Lastschriften |
| strIBANLast | IBAN des Zahlungspflichtigen (Lastschrift) |
| strKartennr | Kreditkartennummer |
| strKarteninhaber | Inhaber der Kreditkarte |
Auf Basis dieser Informationen können Sie nun die Zahlungsart einer E-Rechnung definieren.
SEPA-Überweisung als Zahlungsart in E-Rechnungen
Für eine SEPA-Überweisung benötigen Sie Ihre eigenen Kontoinformationen, das heißt den Namen des Kontoinhabers und die IBAN. Die Angabe der BIC ist möglich, aber nicht zwingend erforderlich. Die Besonderheit ist, dass Sie auf einer E-Rechnung auch mehrere Empfängerkonten angeben können. Deshalb werden die Kontoinformationen nicht einfach an Eigenschaften irgendeines Payment-Objekts übergeben. Sie müssen für jedes Konto (auch wenn es nur ein einziges ist) ein neues "CreditTransfer"-Objekt anlegen. Diesem Objekt weisen Sie dann die einzelnen Kontodaten zu. Und schließlich fügen Sie das "CreditTransfer"-Objekt der "Payment"-Klasse hinzu.
WICHTIG Je nach E-Rechnungsart und -profil müssen Sie unterschiedliche „CreditTransfer“-Objekte verwenden. Bei ZUGFeRD-Rechnungen im Profil EN 16931 verwenden Sie zum Beispiel den Typ
SmartTools_Invoicing_EN16931_ZUGFeRD_EN16931_CreditTransfer
bei ZUGFeRD-Rechnungen im Profil Extended ist es der Typ
SmartTools_Invoicing_EN16931_ZUGFeRD_Extended_CreditTransfer
und bei Standard-XRechnungen
SmartTools_Invoicing_EN16931_XRechnung_Standard_CreditTransfer
Um in einer ZUGFeRD-Rechnung im Profil EN 16931 eine Überweisung als Zahlungsart zu definieren, verwenden Sie insgesamt folgenden VBA-Code:
objInvoice.Payment.PaymentMeans = "Überweisung"
objInvoice.Payment.PaymentMeansCode = PaymentMeansCode_SEPA_credit_transfer
Set objAccountInfo = New _
SmartTools_Invoicing_EN16931_ZUGFeRD_EN16931_CreditTransfer
With objAccountInfo
.AccountName = strKontoinhaber
.AccountId = strIBAN
.ServiceProviderId = strBIC
End With
objInvoice.Payment.AddCreditTransfer objAccountInfo
Set objAccountInfo = Nothing
Beachten Sie, dass es in diesem Beispiel nur ein einziges Empfängerkonto gibt. Wenn Sie in Ihrer E-Rechnung mehrere Konten anbieten wollen, müssen Sie lediglich die Zeilen ab "Set objAccountInfo =" wiederholen und dabei "AccountName", "AccountId" und "ServiceProviderId" der weiteren Konten angeben.
SEPA-Lastschrift als Zahlungsart in E-Rechnungen
Beim Lastschriftverfahren kann es immer nur eindeutige Informationen zu einem Vorgang geben – eine Kontonummer des Zahlungspflichtigen, eine Mandatsreferenz und eine Gläubiger-ID. Deshalb werden sämtliche Informationen in einfache Eigenschaften einer „DirectDebit“-Klasse geschrieben.
Für eine Lastschrift-Zahlung verwenden Sie folgenden VBA-Code:
objInvoice.Payment.PaymentMeans = "Lastschrift"
objInvoice.Payment.PaymentMeansCode = PaymentMeansCode_SEPA_direct_debit
With objInvoice.Payment.DirectDebit
.DebitedAccountId = strIBANLast
.MandateReferenceId = strMandatsref
.CreditorId = strGlaeubigerID
End With
Kreditkartenzahlung als Zahlungsart in E-Rechnungen
Ähnlich unkompliziert wie Lastschriften sind Kreditkartenzahlungen. Die Informationen geben Sie in Eigenschaften der „PaymentCard“-Klasse ein. Der VBA-Code dafür sieht wie folgt aus:
objInvoice.Payment.PaymentMeans = "Kartenzahlung"
objInvoice.Payment.PaymentMeansCode = PaymentMeansCode_Credit_card
With objInvoice.Payment.PaymentCard
.HolderName = strKarteninhaber
'in der Rechnung sollte nicht die vollständige Kreditkartennummer,
'sondern es sollten nur die letzten 4 Ziffern erscheinen
.PrimaryAccountNumber = "XXXX XXXX XXXX " & Right(strKartennr, 4)
End With
Im Beispielcode halten wir uns an die Sicherheitsempfehlungen für Kartenzahlungen, nach denen eine Rechnung niemals eine vollständige Kartennummer enthalten sollte. Deshalb erscheinen hier in der E-Rechnung nur die letzten vier Stellen; davor stehen X-Platzhalter für die vorausgehenden Stellen der Kartennummer.
SmartTools E-Rechnung VBA-Bibliothek für Excel zum Aktionspreis
Alle Beispiele in diesem Beitrag beziehen sich auf die SmartTools E-Rechnung VBA-Bibliothek für Excel. dem Rundum-Sorglos-Paket, das Sie brauchen, um mit E-Rechnungen in Access arbeiten. Mit wenigen Zeilen VBA-Code können Sie E-Rechnungen nicht nur erstellen und einlesen, sondern sogar validieren und anzeigen. Unterstützt werden alle Formate (ZUGFeRD / XRechnung) und Profile des E-Rechnungsstandards inklusive des komplexen Extended-Profils. Sie erwerben eine Dauerlizenz und müssen kein Abo abschließen. Die Erweiterung kann derzeit mit 50% Aktionsrabatt bestellt werden: