Empfängerüberprüfung (VoP)
Das Wichtigste zuerst: Für Einreichungen ohne Empfängerprüfung bleiben die Abläufe wie bisher unverändert bestehen - mit einer Ausnahme: Sofern eingereichte Aufträge nur eine einzelne Zahlung enthalten, ist eine Empfängerprüfung verpflichtend. Dies wird von den Kreditinstituten derzeit unterschiedlich gehandhabt und muss direkt bei der Bank erfragt werden. Die meisten Banken führen einzelne Zahlungen jedoch trotzdem zunächst weiterhin wie gewohnt aus.
Da es sich bei dieser Verpflichtung um eine sinnlose Regulierung handelt, sollten Sie bei Ihrer Bank eine Beschwerde einreichen, sofern diese eine Empfängerüberprüfung für Uploads mit einzelnen Zahlungen verlangt. In Deutschland können Sie diesbezüglich auf eine Stellungnahme der BaFin verweisen:
Gemäß Artikel 5c Absatz 6 der SEPA-Verordnung müssen Zahlungsdienstnutzer, bei denen es sich nicht um Verbraucher handelt, die Möglichkeit haben, auf die Empfängerüberprüfung zu verzichten, wenn sie mehrere Überweisungsaufträge als Bündel einreichen. Im Fall der Einreichung einer Datei mit mehreren Überweisungsaufträgen ist das Anbieten einer solchen Verzichtsmöglichkeit also für den Zahlungsdienstleister verpflichtend vorgesehen (vorausgesetzt, der Zahlungsdienstleister bietet die Einreichung eines Bündels aus mehreren Zahlungsaufträgen überhaupt an).
Bei geringem Zahlungsaufkommen kann es in Einzelfällen durch den Zahlungsdienstnutzer zur Einreichung von Dateien mit lediglich einem Überweisungsauftrag beim Zahlungsdienstleister kommen. Die Bafin wird es in diesen Fällen aufsichtlich nicht beanstanden, wenn ein Zahlungsdienstleister auch bei Dateien mit nur einem Überweisungsauftrag, die mittels Verfahren der Datenfernübertragung eingereicht werden, dem Zahler, der nicht Verbraucher ist, einen Verzicht auf die Empfängerüberprüfung anbietet. Die Duldung gilt bis auf Weiteres. Die BaFin behält sich ausdrücklich vor die Umsetzung und die aufsichtliche Duldung erforderlichenfalls zu überprüfen.
Obwohl Empfängerprüfungen für Unternehmen nicht verpflichtend sind, können diese wie folgt umgesetzt werden (insbesondere zur Verifizierung des Kontoinhabers bei Lastschriften interessant):
EBICS 2.5
Einreichung über die Auftragsart CTV (bzw. CIV für Instant-Payments):
order_id = client.upload('CTV', data)Abruf von detaillierten Ergebnissen der Empfängerprüfung:
data = client.download('VPZ')Freigabe des Auftrags inkl. aller Zahlungen:
client.HVE(order_id)
Stornierung des Auftrags inkl. aller Zahlungen:
client.HVS(order_id)
Sofern Ihre Bank die Empfängerprüfung für einzeln übertragene Transaktionen erzwingt, können Sie den Upload mit direkter Freigabe wie folgt umsetzen:
order_id = client.upload('CTV', data)
data_digest = client._data_digest
for i in range(5):
# Wait for verification of payee
time.sleep(2)
try:
# Sign and approve order
client.HVE(order_id, 'CTV', data_digest)
break
except EbicsFunctionalError as err:
if err.code == err.EBICS_ORDERID_UNKNOWN:
# Order id not found yet. Try again...
continue
raise
else:
raise Exception('Timeout signing CTV order. '
'Order id %s not found' % order_id)EBICS 3.0
Einreichung des Auftrags:
CTV = BusinessTransactionFormat(
service='SCT',
msg_name='pain.001',
option='VOI',
)
order_id = client.BTU(CTV, data)Abruf von detaillierten Ergebnissen der Empfängerprüfung:
VPZ = BusinessTransactionFormat(
service='REP',
msg_name='pain.002',
option='VOP',
format='ZIP',
)
data = client.BTD(VPZ)Freigabe des Auftrags inkl. aller Zahlungen:
client.HVE(order_id)
Stornierung des Auftrags inkl. aller Zahlungen:
client.HVS(order_id)
Upload einer einzelnen Transaktion mit direkter Freigabe:
CTV = BusinessTransactionFormat(
service='SCT',
msg_name='pain.001',
option='VOI',
)
order_id = client.BTU(CTV, data)
data_digest = client._data_digest
for i in range(5):
# Wait for verification of payee
time.sleep(2)
try:
# Sign and approve order
client.HVE(order_id, CTV, data_digest)
break
except EbicsFunctionalError as err:
if err.code == err.EBICS_ORDERID_UNKNOWN:
# Order id not found yet. Try again...
continue
raise
else:
raise Exception('Timeout signing CTV order. '
'Order id %s not found' % order_id)