Das WHMCS SEPA Modul ermöglicht Ihnen Ihren Kunden die Zahlung via SEPA Lastschrift anzubieten und die erteilten Lastschriftmandate zu verwalten. Fällige Rechnungen bei denen Ihnen ein Lastschriftmandat erteilt wurde, können direkt über das Modul in das XML Format exportiert werden und so an Ihre Bank gesendet oder in eine Bankingsoftware importiert werden.
Systemvoraussetzungen
Zur Nutzung des SEPA Moduls müssen folgende Voraussetzungen erfüllt sein:
- Lauffähige WHMCS Installation Version 8.8 – 8.11
- Admin Zugang zu WHMCS
- FTP Zugang
- installierter Ioncube Loader (mindestens Version 13)
- installierte openssl und bcmath PHP Erweiterung
- PHP 7.4, 8.1, 8.2
- Für die Nutzung von Micropayment.de ist ein entsprechender Vertrag mit Micropayment erforderlich
- Für die Nutzung von Stripe ist ein entsprechender Stripe Account mit aktivierter Lastschriftzahlung erforderlich
Installation
- Loggen Sie sich bitte im Kundenbereich von Plambee.de Webhosting ein und laden sich dort die aktuelle Version des SEPA Moduls herunter.
- Entpacken Sie die zip.Datei auf Ihrem Rechner
- Im Ordner modules/addons/sepa befindet sich eine PHP Datei namens secretkeyexample.php, öffnen Sie diese Datei mit einem Editor und geben Sie hier bitte einen
beliebigen Schlüssel ein und speichern Sie die Datei als „secretkey.php“. Mit Hilfe dieses Schlüssels werden dann die Kunden IBAN und BIC in der Datenbank
verschlüsselt. Achtung: Legen Sie sich für diesen Schlüssel eine Sicherheitskopie an. Sollte Ihnen der Schlüssel einmal verloren gehen (z.B. gelöscht, verändert, beschädigt) haben Sie keinen Zugriff mehr auf die Bankdaten der Kunden! Der Schlüssel darf später auch nicht mehr verändert werden. - laden Sie die Ordner modules und das für Sie passende Template aus dem template Ordner via FTP in Ihr WHMCS Verzeichnis. Achtung: Sollten Sie eigene
Anpassungen an der checkout.tpl des standard_cart Orderforms vorgenommen haben, laden Sie den template Ordner erst hoch wenn Sie diese Anpassungen auch an der für das SEPA Modul angepasste checkout.tpl vorgenommen haben. Möchten Sie das IBAN-only Verfahren nutzen löschen Sie bitte das Feld für die BIC Eingabe aus der tpl Datei. - Wenn Sie ein Bootstrap 4 basierendes Kundenbereichstemplate verwenden, benennen Sie die overview_bs4.tpl bitte nach overview.tpl um.
- Loggen Sie sich nun in Ihrem WHMCS Adminbereich ein und gehen dort auf Payment/Payment Gateways/All Payment Gateways und aktivieren den SEPA Gateway. Hier können Sie die Bezeichnung des Gateways ändern
- Gehen Sie nun bitte auf „System/Addon Modules“
- In der Addonauflistung suchen Sie nun bitte nach dem Modul „SEPA Modul“ und klicken dort bitte auf „Activate“ und danach auf „Configure“
- In dem Feld „Module license“ tragen Sie bitte ihren Lizenzcode ein, diesen finden Sie im Plambee.de Kundenbereich in den Produktdetails.
Mit diesen Schritten ist die eigentliche Installation abgeschlossen. Das Modul selbst benötigt aber noch ein paar Einstellungen.
Update Hinweise
Update auf Version 2.0
Ab Version 2.0.0 werden folgende Dateien nicht mehr benötigt und können aus Ihrer WHMCS Installation entfernt werden:
Die Verzeichnisse: /modules/addons/sepa/dist/css/skins /modules/addons/sepa/plugins/jvectormap können inkl. Inhalt gelöscht werden.
Wenn Sie den CSV Import verwenden, beachten Sie bitte das die CSV Datei ab Version 2.0.0 um drei Werte erweitert wurde. Gemeint sind hier die Werte „Rcur“, „automandate_date“ und „automandate_ip“ der Wert „Rcur“ wird vom Modul benutzt um in der XML Datei anzugeben ob das Mandat schon einmal verwendet wurde (1) und es sich damit um eine Folgelastschrift handelt oder ob es eine Erstmalige Verwendung (0) ist. Bei den Werten „automandate_date“ und „automandate_ip“ handelt es sich um Werte die Speichern wann und von wem ein Automandat erzeugt wurde. In der Regel liegen ihnen diese Werte beim Import nicht vor. Sollten Ihnen diese Werte doch vorliegen verwenden Sie für „automandate_date“ bitte dieses Format: 2016-04-01 00:48:36 Die Beispiel csv Datei wurde entsprechend angepasst.
Ab Version 2.0.0 stehen für den Verwendungszweck die Variablen {$reid} für die Rechnungsnummer und {$kid} für die Kundennummer zur Verfügung. Das Modul hängt die Kunden- und Rechnungsnummer somit nicht mehr automatisch an den Verwendungszweck. Bitte passen Sie deshalb den Verwendungszweck vor dem ersten Export entsprechend an.
Update auf Version 2.1
Der Button zum Speichern der Bankverbindung im Kundenbereich hat in Version 2.1.0 einen neuen Namen erhalten um Komplikationen mit anderen Modulen zu vermeiden. Bitte ändern Sie nach dem Update von Version einer Version <2.1.0. den Namen des Buttons in der overview.tpl von saveclientconfig nach sepa_saveclientconfig.
WHMCS bietet leider keinen Hook Point damit Module erfahren können wenn eine Rechnung gelöscht wird. Ab sofort prüft das Modul beim Modulaufruf ob die Rechnungen die im Modul verzeichnet sind noch vorhanden sind und löscht den Eintrag aus dem Modul wenn nicht. Wenn Sie in WHMCS eine Rechnung löschen, wird diese also beim nächsten Modulaufruf im Adminbereich aus der Moduldatenbank entfernt.
Nutzer eines Carttemplates welches auf dem Template modern basiert können den alten Code in der viewcart.tpl von
<script>
function showsepaform() {
if (!jQuery("#sepaform").is(":visible")) {
jQuery("#sepaform").hide().removeClass('hidden').slideDown();
}
}
</script>
durch
<script>
function showsepaform() {
var Value = jQuery("input[name='paymentmethod']:checked").val();
if (Value == 'sepa') {
if (!jQuery("#sepaform").is(":visible")) {
jQuery("#sepaform").hide().removeClass('hidden').slideDown();
}
}
}
</script>
<body onLoad="showsepaform()">
ändern damit die Sepa-Eingabefelder auch nach einem neu laden der Seite sofort geöffnet sind (sofern Sepa als Zahlungsmethode ausgewählt war).
Update auf Version 2.2
Ab Version 2.2 gibt es eine neue E-Mail Vorlage um den Kunden an das Mandat bzw. die Kontoverbindung zu erinnern. Passen Sie den Text bitte Ihren Bedürfnissen an.
Update auf Version 2.6
Mit Version 2.6 wurde der inline scriptcode für die SEPA Eingabefelder im Cart durch eine .js Datei ersetzt. Bitte vergewissern Sie sich nach dem Update auf die neue Version das die Option „jQuery nicht einfügen“ deaktiviert ist und Sie die sepa.js Datei aus dem Modularchiv in den js Ordner Ihres Orderforms kopiert haben. Alternativ können Sie die neue Option auch deaktivieren und die sepa.js Datei selbstständig einfügen. <script type=“text/javascript“ src=“templates/orderforms/IHRCARTjs/sepa.js“ async></script>
Update auf Version 2.8
Ab Version 2.8.0 stehen bei der PDF URL die Variablen {$kid} und {$rid} zur Verfügung um die PDF zum Beispiel extern zu generieren. {$kid} steht für die Kundennummer und {$rid} für die Rechnungsnummer.
Update auf Version 2.9
Hinweis zu WHMCS 7.3, bei manchen Orderformtemplates wird ab WHMCS 7.3 kein jQuery mehr integriert. Das Modul benötigt aber jQuery zum aufklappen der Eingabeboxen im Checkout. Sollten Ihnen mit WHMCS 7.3 die SEPA Eingabeboxen nicht mehr aufklappen prüfen Sie bitte ob jQuery geladen wird und wenn nicht binden Sie es bitte ein.
Am Template des Kundenbereiches gab es einige Änderungen. Sollten Sie die bisherige Templatedatei verändert haben, gleichen Sie die Dateien bitte vorher ab und überschreiben die overview.tpl Datei nicht sofort.
Update auf Version 3.0
Mit Version 3.0 wechselt das Modul bei der Verschlüsslung der Bankverbindungen von mcrypt auf openssl. Grund hierfür ist das mcrypt mit PHP 7.2 entfernt wurde.
Erstellen Sie hierzu als erstes ein Backup Ihrer Datenbank!!!
Laden Sie dann die neusten Moduldateien in Ihre WHMCS Installation hoch und gehen in die Moduleinstellungen. Klicken Sie dann auf der rechten Seite den Link „Upgrade auf Version 3.0“ an und starten dann das Upgrade der Datenbank. Während des Upgrades wird die Seite evtl. mehrfach neu geladen, das Upgrade ist abgeschlossen wenn Sie die entsprechende Meldung erhalten.
Schließen Sie während des Upgrades auf keinen Fall das Fenster und laden Sie die Seite nicht manuell neu.
Update auf Version 5.0.13
Aufgrund eines Fehlers im Template aktualisieren Sie bitte ihre checkout.tpl. Hierfür können Sie sich an die Anpassungen im Wiki orientieren oder die mitgelieferte tpl Datei verwenden
Update auf Version 5.4.0
Mit Version 8.0.0 hat WHMCS den Mailversand über externe Mailprovider ermöglicht. Aufgrund von Beschränkungen der API versendet das Modul E-Mails selbstständig. Hierfür wird entweder die in WHMCS hinterlegte SMTP Einstellung verwendet oder, wenn Sie einen externen Mailprovider nutzen, PHP Mail als Fallback.
Update auf Version 6.1.0
Nachdem Sie von einer Modulversion < 6.1.0 auf eine Modulversion >= 6.1.0 aktualisieren, gehen Sie nach dem Dateiupload bitte auf die WHMCS Modulauflistung oder in das SEPA Modul, damit das Modul die nötigen Datenbankupdates im Hintergrund durchführen kann.
Ab Version 6.1.0 werden die moduleigenen E-Mail Templates zu den WHMCS E-Mail Templates (System Settings -> E-Mail templates) migiert, um so die Mehrsprachigkeit der durch das Modul versendeten E-Mails zu integrieren und die Templates an einem zentralen Platz zu verwahren.
Gehen Sie daher bitte nach durchgeführtem Update in die E-Mail Templates und passen diese nach Ihren Wünschen an und hinterlegen diese ggf. für Sprachen, die Sie in Ihrer WHMCS Installation verwenden.
Wenn Sie das Modul in Verbindung mit Stripe nutzen, loggen Sie sich bitte im Stripe Dashboard ein, gehen dort über den Menüpunkt Entwickler in den von Ihnen angelegten Stripe Webhook und lassen sich dort das Webhook Secret anzeigen und speichern dieses in den Moduleinstellungen. Das Webhook Secret beginnt mit whsec_ und wird zur Verifizierung des Callbacks benötigt. Ohne gültiges Webhook Secret können Callbacks nicht angenommen werden.
Einrichtung
Nachdem das Modul erfolgreich installiert wurde, müssen noch ein paar Einstellungen vorgenommen werden. Gehen Sie hierfür bitte in das Modul und klicken dort auf den
Button „Einstellungen“.
Hier haben Sie auch die Möglichkeit die E-Mails, die das Modul verschickt anzupassen. In der aktuellen Version verschickt das Modul 4 verschiedene E-Mails. Wenn Sie die E-Mails angepasst haben klicken Sie jetzt bitte auf den Punkt „SEPA Einstellungen“. In diesem Menü haben Sie ein paar Einstellungsmöglichkeiten.
Hinweis bzgl. der automatischen Bestellannahme
Mit dieser Funktion können Sie Bestellungen automatisch freischalten lassen damit der Kunde nicht warten muss bis die Bestellung geprüft und manuell freigegeben wird.
Verwenden Sie diese Funktion bitte mit Vorsicht, da Sie mitunter hohe Kosten verursachen kann. Wenn eine Fakebestellung getätigt wird, wird so z.B. die bestellte Domain sofort registriert und Sie bleiben auf den Kosten sitzen. Evtl. lohnt sich hier unser Modul: Gateway Limiter für Sie mit welchem Sie Zahlungsmöglichkeiten nur für Bestandskunden freischalten können. Eine kostenlose Trial Version finden Sie auf unserer Webseite.
SEPA Widget
Widgets sind bei WHMCS die einzelnen kleinen Boxen die Sie sehen wenn Sie sich im WHMCS Adminbereich einloggen und geben Ihnen so über einzelne Bereiche einen schnellen Überblick. Unser Modul enthält hierzu ein Widget welches Ihnen fällige, noch nicht exportierte Rechnungen anzeigt.
So müssen Sie nicht jeden Tag im Modul schauen welche Rechnungen exportiert werden dürfen. Um das Widget zu aktivieren gehen Sie bitte in den WHMCS Adminbereich wählen dann oben im Menü den Punkt Setup/Staff Management/Administrator Roles, wählen Sie dann die entsprechende Gruppe aus die dieses Widget sehen soll und scrollen bei der Rechteauflistung runter um „SEPA Widget“ und oder „SEPA Mandats-Widget“ zu aktivieren. Nachdem Sie die Änderung gespeichert haben wird Ihnen das Widget im WHMCS Admin-Hauptbildschirm angezeigt.
Cart Template Anpassungen
Das Modul benötigt für die Eingabemöglichkeit im Cart einige Anpassungen am Cart Template. Hierzu können Sie die Vorlagen verwenden welche wir mit dem Modul mitliefern. Sofern Sie bereits eigene Anpassungen am Cart vorgenommen haben möchten wir Ihnen hier die nötigen Anpassungen, basierend auf dem standard_cart Template, aufzeigen.
Suchen Sie in der checkout.tpl Templatedatei folgenden Code
<input type="radio" name="paymentmethod" value="{$gateway.sysname}" class="payment-methods{if $gateway.type eq "CC"} is-credit-card{/if}"{if $selectedgateway eq $gateway.sysname} checked{/if} />
und ersetzen diesen durch
<input type="radio" name="paymentmethod" value="{$gateway.sysname}" class="payment-methods{if $gateway.type eq "CC"} is-credit-card{/if} {if $gateway.sysname eq "sepa"} is-sepa{/if}"{if $selectedgateway eq $gateway.sysname} checked{/if} />
unter dem darauf folgendem
<div class="clearfix"></div>
fügen Sie dann bitte folgenden Code ein
{** SEPA MODUL **}
<div id="sepaform"{if $selectedgatewaytype neq "sepa"} class="hidden"{/if}>
<table class="table">
<tr>
<td width="25%"><div class="col-lg-7">{$sepa.bankname}</div></td>
<td><div class="col-lg-6"><input class="form-control" type="text" name="bankname" value="{$sepadetails.bankname}" {if $sepadetails.sepa_client == '1'}disabled{/if}></div></td>
{if $sepadetails.sepa_client == '1'}<input type="hidden" name="bankname" value="{$sepadetails.bankname}">{/if}
</tr>
<tr>
<td width="25%"><div class="col-lg-7">{$sepa.accountholder}</div></td>
<td><div class="col-lg-6"><input class="form-control" type="text" name="accountholder" value="{$sepadetails.accountholder}" {if $sepadetails.sepa_client == '1'}disabled{/if}></div></td>
{if $sepadetails.sepa_client == '1'}<input type="hidden" name="accountholder" value="{$sepadetails.accountholder}">{/if}
</tr>
<tr>
<td width="25%"><div class="col-lg-7">{$sepa.iban}</div></td>
<td><div class="col-lg-6"><input class="form-control input-sm " id="iban" type="text" name="iban" value="{$sepadetails.iban}" {if $sepadetails.sepa_client == '1'}disabled{/if}></div></td>
{if $sepadetails.sepa_client == '1'}<input type="hidden" name="iban" value="{$sepadetails.iban}">{/if}
</tr>
<tr>
<td width="25%"><div class="col-lg-7">{$sepa.bic}</div></td>
<td><div class="col-lg-6"><input class="form-control" type="text" name="bic" value="{$sepadetails.bic}" {if $sepadetails.sepa_client == '1'}disabled{/if}></div></td>
{if $sepadetails.sepa_client == '1'}<input type="hidden" name="bic" value="{$sepadetails.bic}">{/if}
</tr>
<tr>
<td></td>
<td><div class="checkbox"><label><input type="checkbox" id="sepaprivacypolicy" name="sepaprivacypolicy"> {$sepadetails.privacy}</label></div></td>
</tr>
</table>
<br />
</div>
{** End SEPA MODUL **}
<div class="clearfix"></div>
Sofern Sie im Modul die Eingabe der BIC und des Banknamen deaktivieren können Sie die entsprechenden Felder aus dem obrigen Code entfernen.
Verwendung
Kunden manuell hinzufügen
Das manuelle Hinzufügen eines Kunden ist z.B. sinnvoll wenn der Kunde die Zahlungsart ändern möchte, es für Ihn aber keine Neubestellung gibt oder wenn Sie Kundendaten aus einem anderen Modul übernehmen oder von einem Payment-Provider umsteigen möchten.
Wenn Sie einen Kunden manuell ins Sepa Modul laden möchten, klicken Sie bitte oben auf „SEPA Kunden“ und dann auf „Einstellungen“ im Drop-Down Menü wählen Sie dann einfach den Punkt „Neuen Kunden auswählen“ aus.
Auf der neuen Seite haben Sie nun die Möglichkeit den Kunden auszuwählen, hierzu können Sie den Namen oder die Kundennummer in der Suchfeld eingeben und dann den entsprechenden Kunden anklicken. Haben Sie den Kunden ausgewählt hinterlegen Sie bitte die Bankdaten des Kunden. Wenn Sie schon eine Mandat erhalten haben kreuzen Sie bitte die Checkbox „Lastschrift erlaubt“ an und speichern das ganze.
Schon ist der Kunde angelegt. Und wenn Sie die Checkbox angekreuzt haben, erhält der Kunde automatisch eine E-Mail in der Ihm z.B. die neue Mandatsreferenz und Ihre Gläubiger-ID mitgeteilt wird.
Anpassen des Kundenbereichs
Wenn Sie den Kundenbereich anpassen möchten, können Sie hierzu die overview.tpl aus dem Modulverzeichnis anpassen.
Wenn Sie aus Ihrem Kundenbereich auf die SEPA Seite verlinken möchten, nutzen Sie bitte folgenden Link: https.//www.ihredomain.de/index.php?m=sepa
Mandat erstellen
Wenn Ihnen vom Kunden das Mandat erteilt wurde, gehen Sie im Modul einfach auf die Kundenansicht und wählen dort beim entsprechenden Kunden über das Drop Down Menü „Einstellungen“ den Punkt „Mandat erstellen“ aus. Alternativ können Sie auch auf „Kunden bearbeiten gehen“ und dort die entsprechende Checkbox auswählen. In beiden Fällen erhält der Kunde eine E-Mail Benachrichtigung in der ihm mitgeteilt wird das das Mandat eingegangen ist. Zusätzlich erfährt er in der E-Mail seine Mandatsreferenz und Ihre Gläubiger-ID.
Rechnung exportieren
Damit die Rechnungen auch beglichen werden können müssen Sie diese exportieren. Gehen Sie hierfür bitte zur Modulansicht „Offene Sepa Lastschriften“. Hier erhalten Sie
einen Überblick aller offenen Lastschriften, die noch nicht exportiert wurden. Bei Rechnungen bei denen der Export aktuell nicht möglich ist (z.B. weil kein Mandat vorliegt),
ist die Checkbox deaktiviert. Solche Rechnungen können nicht exportiert werden. Um nun die Rechnungen zu exportieren müssen Sie diese einfach nur mittels Checkbox
auswählen und dann auf den blauen „SEPA Export“ Button klicken. Schon wird die XML Datei generiert und die Kunden werden via E-Mail benachrichtigt. Alternativ können Sie
auch einzelne Rechnungen exportieren. Wählen Sie hierzu einfach über den Einstellungsbutton den Punkt „Sepa Export“ aus. Wenn Sie nach dem Export erneut auf den grünen „Offene Sepa Lastschriften“ Button im oberen Menü klicken werden Ihnen nur noch die noch nicht exportierten Rechnungen angezeigt. Eine vollständige Auflistung aller
Rechnungen erhalten Sie nach dem klick auf den Button mit der Bezeichnung „Alle SEPA Buchungen“. Hier können Sie auch bereits exportierte Rechnungen noch einmal einzeln exportieren.
Rechnung als bezahlt makieren
Wenn Sie den Zahlungseingang auf Ihrem Konto verzeichnen, gehen Sie einfach in die WHMCS eigene Rechnungsauflistung und hinterlegen dort die entsprechende Zahlung.
Hinweis: Wenn Sie bei einer Rechnung die bereits in das SEPA Modul eingeladen wurde und den Status „Offen“ hat, manuell eine Zahlung mit einem anderen Gateway hinterlegen möchten, weil der Kunde den fälligen Betrag z.B. plötzlich per Überweisung bezahlt hat, gehen Sie bitte wie folgt vor:
- gehen Sie in die entsprechende Rechnung und klicken dort auf den Tab „Options“
- wählen Sie nun bitte die Zahlungsmöglichkeit aus über die der Kunde bezahlt hat (sonst nichts verändern) und speichern das ganze
- nun können Sie unter dem Tab „Add Payments“ die Transaktion hinterlegen.
Wenn Sie die Zahlung direkt unter „Add Payments“ hinterlegen und einfach dort die Zahlungsart ändern, wird die Rechnung NICHT aus dem Modul gelöscht, sodass diese
vielleicht beim nächsten Export enthalten ist und Sie den Kunden doppelt abrechnen.
Wieso ist das so? Leider liefern die Hook Punkte AddInvoicePayment und InvoicePaid nur die Rechnungs-ID aber keine Zahlungsmöglichkeit zurück die man an das Modul senden könnte. Für eine spätere Version werden wir prüfen ob hier ein Workaround möglich ist.
Wenn der Kunde die Zahlungsart direkt im Kundenbereich geändert hat (viewinvoice) wird die Rechnung automatisch aus dem Modul genommen. Da liefert WHMCS alle nötigen Informationen über den Hook Punkt.
Rücklastschrift hinterlegen
Wenn es bei einer Rechnung zu einer Rücklastschrift kommt, klicken Sie im oberen Menü des Moduls auf den grünen „Offene SEPA Lastschriften“ Button und dann später unten rechts auf den Button mit der Bezeichnung „Alle SEPA Buchungen“. Über die Suchfunktion können Sie nun die entsprechende Rechnung suchen. Klicken Sie dann in der entsprechenden Zeile auf den Einstellungsbutton und wählen dort „Rücklastschrift“ oder „Rücklastschrift wg unerlaubter Buchung“ aus. Die Unterschiede der beiden Rücklastschriften sind folgende: Bei einer normalen Rücklastschrift (z.B. weil das Konto nicht gedeckt war) wird entsprechend Ihrer Einstellung sofort eine Rechnung in Höhe der anfallenden Gebühr erstellt und eine Informations- E-Mail verschickt, das Mandat bleibt allerdings erhalten. Bei einer Rücklastschrift wegen unerlaubter Abbuchung wird auch hier die E-Mail verschickt und evtl. eine Rechnung erstellt allerdings erlischt das Mandat. In beiden Fällen wird die Buchung entsprechend gekennzeichnet und auf der Seite für Rücklastschriften (Menü oben „Rücklastschriften“) aufgelistet. Ab WHMCS 7.2 meldet das Modul eine Rücklastschrift auch an WHMCS zurück wodurch die ursprüngliche Rechnung nicht mehr den Status „unpaid“ bekommt sondern „collected“, dadurch setzt WHMCS dann das Fälligkeitsdatum um einen Abrechnungszeitraum zurück (da das Datum beim hinzufügen der Rechnung ja vor gezählt wurde). Wenn Sie WHMCS < Version 7.2. benutzen denken Sie bei einer Rücklastschrift bitte daran das nächste Fälligkeitsdatum manuell zurück zusetzen.
Rechnung dem Modul hinzufügen
Um dem Modul eine bestehende Rechnung hinzuzufügen haben Sie 2 Möglichkeiten. Im Adminbereich gehen Sie hierzu in die entsprechende Rechnung und wählen dort unter „Options“ Sepa als Zahlungsmethode aus und speichern das ganze.
Als Kunde gehen Sie in die viewinvoice Ansicht und wählen dort Sepa als Zahlungsmöglichkeit aus. Ist der Kunde dem Modul noch nicht bekannt, hat er hier auch die Möglichkeit seine Bankdaten zu hinterlegen und das Formular für das Lastschriftmandat herunterzuladen.
Überweisungen
Seit Version 2.0 kann das Modul auch XML Dateien für Sammelüberweisungen erstellen. Gemeint sind hier Überweisungen welche Sie versenden um z.B. Rückerstattungen aus Widerrufen durchzuführen.
Einstellungen
Bevor Sie Ihre erste Überweisungs-XML erstellen können gehen Sie bitte in die Moduleinstellungen und wählen dort den Reiter „Überweisungen“. Wählen Sie im Drop-Down Menü bitte die erforderliche Pain Version aus und hinterlegen Sie im Textfeld bitte einen Verwendungszweck welcher bei der Überweisung verwendet werden soll. Beim Verwendungszweck stehen Ihnen die Variablen {$reid} fü die Rechnungsnummer und {$kid} für die Kundennummer zur Verfügung. Im Reiter „Benachrichtigungen“ können Sie zudem auswählen ob das Modul beim Export einer Überweisung automatisch eine E-Mailbenachrichtigung versenden soll in welcher der Kunde darüber informiert wird das ihm der Betrag in wenigen Tagen auf dem Konto gutgeschrieben wird. Das E-Mailtemplate für diese Ankündigung kann im Modul unter Einstellungen/E-Mail Templates/Überweisung bearbeitet werden.
Rechnung für die Überweisung erstellen
Wenn Sie eine Rechnung als Überweisung in das Modul laden möchten gehen Sie bitte in eine bestehende Rechnung, oder erstellen Sie eine neue Rechnung, und geben Sie hier bei den Beträgen negative Summen ein also z.B. -25.99 und wählen Sie als Zahlungsart wie gewohnt das Modul aus. Nach dem Speichern erscheint die Rechnung dann unter „Offene Überweisungen“ im Modul.
Exportieren einer Überweisungen
Das Exportieren einer Überweisung erfolgt analog zum export einer Lastschrift. Mit dem Unterschied das Sie Überweisungen jederzeit exportieren können. Eine Überprüfung ob ein Mandat vorliegt erfolgt nicht da dies bei einer Überweisung nicht erforderlich ist.
Um eine Rechnung zu exportieren können Sie entweder die jeweiligen Checkboxen auswählen und dann auf den blauen „SEPA Export“ Button unten klicken oder Sie klicken auf den blauen Einstellungsbutton der jeweiligen Buchung und wählen dort „Sepa Export“ aus.
CSV Import
Wenn Sie von einer anderen Software aus auf WHMCS und auf unser Modul wechseln und schon über einen Kundenstamm verfügen, ist es mit sehr viel Arbeit verbunden jeden einzelnen Kunden manuell in das Modul zu laden. Dadurch das die Bankdaten in unserem Modul aus Gründen der Sicherheit verschlüsselt gespeichert werden, müssen Sie nach dem Import noch ein Script starten. In diesem Kapitel beschreiben wir die komplette Vorgehensweise bei einem Import.
CSV Datei vorbereiten
Damit die Daten importiert werden können muss die CSV Datei einem bestimmten Aufbau entsprechen. Die Reihenfolge der Daten ist: ID, Kundennummer, IBAN, BIC, Mandatsreferenz, Kontoinhaber, Name der Bank, Datum des Mandates und Mandatsstatus. Als Trennzeichen wird ein Komma genutzt. Exportieren Sie nun bitte Ihre bestehenden Bankdaten aus Ihrem alten Programm und bringen die Daten bitte in dieses Format. Im Zip Archiv ist eine Beispieldatei enthalten welche Sie verwenden können. Das erste Feld (ID) wird vom Modul beim Import automatisch vergeben, Sie können die Spalte also leer lassen. Bei Kunden von denen Sie noch keine Abbuchungserlaubnis haben lassen Sie die Felder Mandatsreferenz und Datum des Mandates leer und tragen bei Mandatsstatus eine 0 ein. Bei Kunden von denen Sie eine Abbuchungserlaubnis haben, tragen Sie in der Spalte Mandatsreferenz bitte die Referenz ein, im Feld des Mandatsdatum bitte das Datum wann das Mandat erteilt wurde und im Feld des Mandatsstatus bitte eine 1. Wenn Ihnen für einen Kunden keine BIC vorliegt, lassen Sie das Feld bitte, wie in der Beispieldatei zu sehen, leer.
Datenimport
Legen Sie ein Backup Ihrer Datenbank an und vergewissern Sie sich das Sie in den PHP Einstellungen bei max_execution_time einen geeigneten Wert eingetragen haben.
Laden Sie nun bitte die CSV Datei in das Modulverzeichnis hoch, dort wo sich auch ihre secretkey.php Datei befndet. Die Datei muss den Namen import.csv haben. Loggen Sie sich nun bitte in Ihrem WHMCS Adminbereich ein und gehen in das SEPA Modul. Klicken Sie im Modul bitte auf „SEPA Kunden“ und wählen dann, nach einem Klick auf den Einstellungsbutton den Punkt „Kunden importieren“ aus. Klicken Sie dann bitte auf den Startbutton, wenn Sie mit dem Import beginnen möchten. Das Modul importiert nun die Datensätze aus der Datei und verschlüsselt die Bankdaten des Kunden. Wechseln Sie während des Imports bitte nicht die Seite. Sobald der Import abgeschlossen ist, erhalten Sie darüber eine Mitteilung und die import.csv wird von Ihrem Webspace gelöscht. Sollten Sie für einen Kunden bereits Rechnungen in das SEPA Modul geladen haben, der Kunde selbst aber erst beim Import im Modul hinterlegt wird ist dies kein Problem. Der Import prüft beim anlegen der Kunden automatisch ob für den Kunden bereits eine Rechnung im Modul vorhanden ist und hinterlegt die entsprechenden Daten in der Buchung.
PDF für das Lastschriftmandat
Mit Version 2.9 haben Sie neben der statischen PDF für das Lastschriftmandat die Möglichkeit die PDF automatisch generieren zu lassen. Das Aussehen der PDF können Sie selbst durch Anpassungen an der lastschriftmandat.php Datei verändern. Wir haben uns hier für die HTML Variante entschieden, da dies den meisten Kunden leichter als TCPDF fällt.
Vorteile bei der automatischen PDF Erzeugung:
- Die PDF ist bereits mit den Daten des Kundens vorausgefüllt. Name, Anschrift und auch die Kontodaten sind bereits in der PDF Datei enthalten. Der Kunde muss diese nur noch Prüfen und unterschreiben.
Nachteile bei der automatischen PDF Erzeugung:
- Durch die Nutzung von HTML in Verbindung mit TCPDF ist man was das Aussehen der PDF Datei angeht eingeschränkt, da TCPDF z.B. nur bedingt CSS unterstützt. Bei einer statischen PDF, welche man z.B. mit Word oder Writer erstellt hat, hat man grafisch mehr Möglichkeiten.
Micropayment.de Einrichtung
Einrichtung seitens Micropayment.de
Sobald Sie einen entsprechenden Account bei Micropayment.de erstellt haben legen Sie bitte ein Projekt an und weisen diesem die Zahlungsmethode Lastschrift Event API zu und aktivieren diese.
Als Benachrichtigungsurl geben Sie bitte die URL wie z.B. so an https://ihre-whmcsdomain.de/modules/gateways/callback/pl_sepa.php an.
Einrichtung im Modul
Gehen Sie in die Moduleinstellungen und wählen dort bei Export Methode Micropayment aus. Im Tab „Lastschrift“ hinterlegen Sie dann Ihren Accesskey und das Projektkürzel aus Ihrem Micropayment.de Account. Tragen Sie dan ein nach wie vielen Tage nach der Fälligkeit die Rechnung an Micropayment.de übertragen werden soll (sofern autopay genutzt wird) und ob Sie die Autopay-Funktion verwenden möchten.
Die Optionen: „Verwende Fälligkeitsdatum als Abbuchungsdatum“, „Wochenende überspringen“, „Ein Payment Information Block“ und „Rechnung bei Fälligkeit als bezahlt markieren“ sind bei Nutzung von Micropayment nicht von Bedeutung, da Micropayment das Abbuchungsdatum vorgibt.
Stripe.com Einrichtung und Hinweise
Einrichtung seitens Stripe.com
Sobald Sie einen aktiven Stripe.com Account haben und dort die Zahlungsmethode SEPA Lastschrift freigeschaltet haben, gehen Sie im Stripe Dashboard unter Developers in die Webhook Konfiguration und erstellen dort einen neuen Webhook Endpoint. Die URL sollte diesen Aufbau haben: https://ihre-whmcsdomain.de/modules/gateways/callback/pl_sepa.php . Aktivieren Sie bei dem Webhook die charge und payment_intents Events und kopieren sich das Webhook Secret um dieses in den Moduleinstllungen zu hinterlegen.
Gehen Sie dann unter Developers in den Bereich Api keys und kopieren den Secret Key in die Moduleinstellungen
Einrichtung im Modul
Gehen Sie in die Moduleinstellungen und wählen dort bei der Export Methode Stripe.com aus. Im Tab „Lastschrift“ hinterlegen Sie dann Ihren Public und Ihren Secretkey. Tragen Sie dann ein nach wie vielen Tage nach der Fälligkeit die Rechnung an Stripe.com übertragen werden soll (sofern autopay genutzt wird) und ob Sie die Autopay-Funktion verwenden möchten.
Stripe.com Testumgebung
Wenn Sie die Testumgebung von Stripe nutzen möchten klicken Sie im Stripe Dashboard auf den kleinen Button „View test data“ und legen dort dann den Webhook erneut an und hinterlegen die API Keys der Testumgebung im Modul. Wenn Sie das Modul dann Live nutzen möchten achten Sie bitte darauf im Modul die normalen API Daten zu hinterlegen
Hinweise zu Stripe.com
Bei der Nutzung von Stripe arbeitet das Modul mit einem Automandat, das heißt sobald der Kunde seine Bankdaten im Checkout hinterlegt hat wird das Mandat bei Stripe angelegt und Zahlungen per Lastschrift abgewickelt. Wir empfehlen Ihnen hier zum eigenen Schutz Maßnahmen zu treffen um sich vor Fake Bestellungen zu schützen. Mit unserem Gateway Limiter können Sie einzelne Zahlungsmethoden z.B. für Neukunden sperren.
Ändert der Kunde seine Bankverbindung kann ein Mandat in der Regel weiter verwendet werden, bei Stripe ist dies etwas anders. Hier kann eine Bankverbindung nicht geändert werden, weshalb ein neues Mandat angelegt wird.
Stripe teilt einem leider nicht mit wann der Kunde nun wirklich belastet wird, deshalb enthält die Abbuchungsankündigung immer den nächsten Tag als Belastungsdatum. Denken Sie also bitte daran die Vorankündigungszeit in Ihren AGB/Verträgen entsprechend auf einen Tag zu kürzen.
Wird eine Buchung an Stripe übermittelt erhält diese den Status „Payment Pending“, sobald Stripe den Zahlungseingang per Webhook bestätigt wird der Zahlungsstatus auf „Paid“ geändert.
Bei einer übermittelten Buchung kann es vorkommen das Stripe ein „Failed“ an den Webhook schickt. Das Modul schickt dann ein Modul an die im Modul hinterlegte E-Mail Adresse für Adminbenachrichtigungen (sofern nicht bereits eine Buchung mit dem Faild-tatus vorhanden ist). In diesem Fall müssen Sie die Buchung manuell in Stripe prüfen da hier leider kein genauer Grund übermittelt wird.
Ein Failed entspricht nicht unbedingt einer Rücklastschrift, diese haben bei Stripe einen eigenen Status und werden vom Modul erkannt und entsprechend im Modul gehandhabt.
Tipps und Hinweise
Hinweise zur Lastschrift
Einige Kunden hatten gefragt ob man in Bereichen wie den Rechnungs-E-Mails einen Hinweis auf die Zahlungsart hinterlegen kann um den Kunden daran zu erinnern das er bei dieser Rechnung nichts machen muss, da die Abbuchung ja automatisch erfolgt. Dies ist unabhängig vom Modul möglich. Was Sie wie bearbeiten müssen erfahren Sie hier:
Hinweis auf der PDF Rechnung
Wenn Sie auf der PDF Rechnung einen Hinweis einbinden möchten, welcher dem Kunden noch einmal verdeutlicht das der Rechnungsbetrag eingezogen wird und er keine manuelle Zahlung durchführen muss, öffnen Sie ihre invoicepdf.tpl mit einem geeigneten Editor und fügen z.B. folgenden Code an die gewünschte Stelle:
if ($paymentmethod == 'SEPA Lastschrift'){
$pdf->Cell(180, 4, Lang::trans('IHRLANGSTRING'), '', '', 'C');
}
Wobei ‚SEPA Lastschrift‘ der von Ihnen vergebenen Bezeichnung für die Zahlungsmethode entsprechen muss. Somit wird der Hinweis nur eingebunden wenn die Zahlungsart der Rechnung Lastschrift ist.
Hinweis in der Rechnungs-E-Mail
Wenn Sie in der Rechnungs-E-Mail einen Hinweis einbinden möchten, welcher dem Kunden noch einmal verdeutlicht das der Rechnungsbetrag eingezogen wird und er keine manuelle Zahlung durchführen muss, gehen Sie bitte in die E-Mail Vorlagen in WHMCS und öffnen dort die Vorlage „Invoice Created“. Dort fügen Sie dann an geeigneter Stelle folgenden Code ein:
{if $invoice_payment_method eq „SEPA Lastschrift“}IHR HINWEIS{/if}
Wobei ‚SEPA Lastschrift‘ der von Ihnen vergebenen Bezeichnung für die Zahlungsmethode entsprechen muss. Somit wird der Hinweis nur dargestellt wenn die Zahlungsart der Rechnung Lastschrift ist.
Hinweis auf der viewinoice
Wenn Sie in der viewinvoice einen Hinweis einbinden möchten, welcher dem Kunden noch einmal verdeutlicht das der Rechnungsbetrag eingezogen wird und er keine manuelle Zahlung durchführen muss, öffnen Sie ihre viewinvoice.tpl mit einem geeigneten Editor und fügen dort an geeigneter Stelle folgenden Code ein:
{if $paymentmethod eq „SEPA Lastschrift“}{$LANG.IHR_LANG_STRING}{/if}
Wobei ‚SEPA Lastschrift‘ der von Ihnen vergebenen Bezeichnung für die Zahlungsmethode entsprechen muss. Somit wird der Hinweis nur dargestellt wenn die Zahlungsart der Rechnung Lastschrift ist.
E-Mail-Template Variablen
Das Modul verwendet wie z.B. in der E-Mail zur Abbuchungsankündigung einige Variablen die dann später vom Modul mit entsprechendem Inhalt gefüllt werden. Welche Variablen wo zur Verfügung stehen erfahren Sie in der nachfolgenden Übersicht. Sollten Sie eine Variable vermissen wenden Sie sich bitte an unseren Support damit wir dies in einem Update berücksichtigen können.
Abbuchungsankündigung
In der Abbuchungsankündigung stehen Ihnen folgende Variablen zur Verfügung:
- {$date} = Datum der Belastung
- {$client_name} = Kundenname
- {$reid} = Rechnungsnummer
- {$kdnr} = Kundennummer
- {$amount} = Betrag
- {$glid} = Gläubiger-Identifikationsnummer
- {$mandat} = Mandatsreferenz
- {$iban} = IBAN
- {$owner} = Kontoinhaber
- {$bank} = Name der Bank
- {$signature} = Globale Signatur aus den WHMCS Einstellungen
Mandats-Eingangsbestätigung
In der Mandats-Eingangsbestätigung stehen Ihnen folgende Variablen zur Verfügung:
- {$client_name} = Kundenname
- {$glid} = Gläubiger-Identifikationsnummer
- {$mandat} = Mandatsreferenz
- {$signature} = Globale Signatur aus den WHMCS Einstellungen
Rücklastschrift
- {$client_name} = Kundenname
- {$reid} = Rechnungsnummer
- {$backfee} = Rücklastschriftgebühr
- {$signature} = Globale Signatur aus den WHMCS Einstellungen
Ankündigung zur Überweisung
- {$client_name} = Kundenname
- {$reid} = Rechnungsnummer
- {$signature} = Globale Signatur aus den WHMCS Einstellungen
Mandatserinnerung
- {$client_name} = Kundenname
- {$signature} = Globale Signatur aus den WHMCS Einstellungen
Variablen für das Lastschriftmandat
Wenn Sie die PDF für das Lastschriftmandat automatisch erzeugen lassen möchten stehen Ihnen in der lastschriftmandat.php folgende Variablen zur Verfügung:
- $sepa_creditorid = Ihre Gläubiger Identifikationsnummer
- $sepa_company = Ihr Firmenname
- $sepa_clientfirstname = Vorname des Kontoinhabers
- $sepa_clientlastname = Nachname des Kontoinhabers
- $sepa_clientaddress = Adresse des Kundens
- $sepa_clientpostcode = Postleitzahl des Kundens
- $sepa_clientcity = Stadt des Kundens
- $sepa_clientbankname = Name der Bank
- $sepa_clientbic = BIC der Bankverbindung
- $sepa_clientiban = IBAN der Kontoverbindung
Mandatshinweis auf der Checkoutcomplete Seite
Ab Modul 5.0 bietet das Modul eine Option das dem Kunden auf der Checkoutcomplete Seite ein Hinweis dargestellt wird wenn für Ihn noch kein Mandat vorliegt. Da wir Hooktechnisch da nur einen Standardtext hinterlegen können, empfehlen wir diese Option zu deaktivieren und die Checkoutcomplete.tpl Ihres Carttemplates anzupassen. Ab Version 5.0 liefert das Modul auf dieser Seite eine Variable welche mitteilt ob es für den Kunden bereits ein Mandat gibt. Hierdurch können Sie den Hinweis mit einer einfachen IF Abfrage darstellen und haben mehr Freiheit was Design und Platzierung angeht. Das ganze kann dann so aussehen:
{if $vars[‚paymentmethod‘] == ’sepa‘ && $sepa.has_mandate == ‚1‘}
IHR_TEXT_ODER_LANG_VAR
{/if}
FAQ
Frage: Ich habe heute ein Mandat angelegt, kann aber trotzdem keine Rechnung für den Kunden exportieren. Wieso?
Antwort: Das Mandat muss mindestens einen Tag alt sein bevor man es für den Export nutzen kann. Bitte warten Sie bis morgen um die Rechnungen zu exportieren.
Frage: Nach der Aktivierung des Modules erhalte ich einen 500er Server Error. Wieso?
Antwort: Hierfür gibt es 3 häufig auftretene Ursachen.
Ursache 1: Sie verwenden die falsche IonCube Loader Version. Benötigt wird mindestens Version 5.0.
Ursache 2: Die fehlende oder fehlerhaft eingebundene PHP Erweiterung bcmath.
Ursache 3: Sie haben vergessen die Datei secretkey-example.php in secretkey.php umzubennenen.
Bitte kontrollieren Sie das diese korrekt installiert ist.
Frage: Wenn der Kunde eine Bestellung abschickt erhält er eine weiße Seite bzw. eine Meldung das die Funktion bcmod unbekannt ist. Wieso?
Antwort: Dies deutet auf das Fehlen der PHP Erweiterung bcmath hin. Bitte überprüfen Sie ob diese Erweiterung bei Ihnen korrekt eingebunden ist. Bcmath wird für die Überprüfung der IBAN benötigt.
Frage: Ich habe im Modul Buchungen ohne IBAN/BIC und es gibt keinen entsprechenden Kunden im Modul. Wieso?
Antwort: Wenn der Neukunde z.B. eine Bestellung aufgibt und als Zahlungsart z.B. PayPal auswählt, die Zahlungsmöglichkeit aber in der viewinvoice mittels DropDown auf SEPA ändert, wird die Rechnung von WHMCS sofort auf diese Zahlungsart gesetzt und dem Modul übergeben. Der Kunde selbst kann aber erst hinterlegt werden wenn dieser seine Bankdaten in der viewinvoice hinterlegt.
Frage: Ich habe die Transaktion einer Teilzahlung geändert, allerdings wurde die Buchung im Modul nicht angepasst. Wieso?
Antwort: WHMCS bietet leider nur einen Hook Point beim Anlegen einer neuen Transaktion. Bei Änderungen einer Transaktion meldet WHMCS dem Modul dies leider nicht. Um die Buchung mit dem neuen Wert einzulesen gehen Sie bitte in die Rechnung und ändern dort einmal die Zahlungsmethode auf z.B. Überweisung und dann wieder auf Sepa. Damit wird die Buchung neu erzeugt und die bearbeitete Transaktion berücksichtigt. (Ab Version 2.0)
Frage: Wir benötigen keine BIC mehr und haben diese im Modul auch deaktiviert, dennoch ist die BIC ein Pflichtfeld im SEPA Kundenbereich.
Antwort: Öffnen Sie bitte die overview.tpl Datei aus dem Sepa Modul und entfernen Sie das required in der betroffenen Zeile.