Seit Oktober 2025 gleicht die Bank vor der Ausführung den Empfängernamen mit dem Kontoinhaber ab (Verification of Payee). Der Finanzmanager kannte diese Stufe nicht, die Überweisung blieb stehen. FinTsUeberweisung wartet jetzt auf das Ergebnis, solange die Bank es braucht. Stimmt der Name überein, wird selbst bestätigt und direkt zur TAN gegangen – eine Rückfrage ohne Erkenntnis erspart das dem Nutzer. Weicht der Name ab, ist er nur nahezu gleich oder konnte die Bank nicht prüfen, kommt die neue Maske zahlungsverkehr/vop.php: Ergebnis in einem deutschen Satz, Aufklärungstext der Bank als Klartext, Empfänger und IBAN aus dem Auftrag und – sofern die Bank ihn nennt – der bei ihr hinterlegte Kontoinhaber. Ohne Ausführungstermin steht jetzt das Platzhalterdatum 1999-01-01 in der Nachricht. Mit dem heutigen Datum wurde daraus eine terminierte Überweisung (HKCSE statt HKCCS), die die Bank mit "Die minimale Vorlaufzeit beträgt 1 Tage" zurückwies. Der FinTS-Fork steht auf v4.1.3 mit zwei Eingriffen: Die schrittweise Lieferung des Prüfberichts wird erst abgelehnt, wenn sie wirklich eintritt, und der beim Close Match gemeldete Kontoinhaber wird an die Anwendung durchgereicht. Beide liegen zusätzlich auf eigenen Branches für PRs an das Upstream-Projekt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013iURiWYZJQYVGQNXFFGyWu
90 lines
3.2 KiB
PHP
90 lines
3.2 KiB
PHP
<?php
|
||
|
||
use Finanzmanager\View;
|
||
|
||
/**
|
||
* Der Namensabgleich der Bank weicht ab (Verification of Payee).
|
||
*
|
||
* Die Bank hat den Empfängernamen mit dem Kontoinhaber verglichen und meldet
|
||
* eine Abweichung. Hier steht die Entscheidung: trotzdem senden oder abbrechen
|
||
* und den Empfänger korrigieren. Der Text der Bank wird wortgleich
|
||
* wiedergegeben – ohne die Auszeichnungen, die sie mitschickt.
|
||
*
|
||
* @var array<string,mixed> $vop
|
||
* @var string $meldung
|
||
* @var string $csrfToken
|
||
*/
|
||
|
||
// Der Text kommt bereits als Klartext aus `FinTsUeberweisung::vopHinweis()`.
|
||
$banktext = (string)($vop['text'] ?? '');
|
||
|
||
include __DIR__ . '/../layout/kopf.php';
|
||
?>
|
||
|
||
<div class="kachel einzeln">
|
||
<header>
|
||
<h2>Namensabgleich prüfen</h2>
|
||
<p class="kachelhinweis"><?= View::h($vop['urteil'] ?? '') ?></p>
|
||
</header>
|
||
|
||
<p class="hinweis"><?= View::h($meldung) ?></p>
|
||
|
||
<dl class="merkmale">
|
||
<?php if (($vop['empfaenger'] ?? '') !== ''): ?>
|
||
<dt>So lautet der Empfänger im Auftrag</dt>
|
||
<dd><?= View::h($vop['empfaenger']) ?></dd>
|
||
<?php endif; ?>
|
||
|
||
<?php if (($vop['hinterlegt'] ?? '') !== ''): ?>
|
||
<dt>So lautet er bei der Bank des Empfängers</dt>
|
||
<dd><?= View::h($vop['hinterlegt']) ?></dd>
|
||
<?php endif; ?>
|
||
|
||
<?php if (($vop['iban'] ?? '') !== ''): ?>
|
||
<dt>Empfänger-IBAN</dt>
|
||
<dd><?= View::h($vop['iban']) ?></dd>
|
||
<?php endif; ?>
|
||
</dl>
|
||
|
||
<?php if (($vop['hinterlegt'] ?? '') === ''): ?>
|
||
<p class="feldhinweis">
|
||
Den Namen, der bei der Bank des Empfängers hinterlegt ist, nennt die Bank nur,
|
||
wenn er dem angegebenen nahezu entspricht. Weicht er ganz ab, bleibt er geheim –
|
||
sonst ließen sich über beliebige IBANs Kontoinhaber ausspähen.
|
||
</p>
|
||
<?php endif; ?>
|
||
|
||
<?php if (($vop['grund'] ?? '') !== ''): ?>
|
||
<p class="feldhinweis">Begründung der Bank: <?= View::h($vop['grund']) ?></p>
|
||
<?php endif; ?>
|
||
|
||
<?php if ($banktext !== ''): ?>
|
||
<p class="tanhinweis"><?= nl2br(View::h($banktext)) ?></p>
|
||
<?php endif; ?>
|
||
|
||
<?php if (($vop['gueltig_bis'] ?? null) !== null): ?>
|
||
<p class="feldhinweis">Die Bank hält das Ergebnis bis <?= View::h($vop['gueltig_bis']) ?> vor.</p>
|
||
<?php endif; ?>
|
||
|
||
<form method="post" action="/zahlungsverkehr/vop" class="formular">
|
||
<input type="hidden" name="csrf_token" value="<?= View::h($csrfToken) ?>">
|
||
<div class="knopfleiste">
|
||
<button type="submit" class="knopf primaer">Trotzdem senden</button>
|
||
</div>
|
||
</form>
|
||
|
||
<form method="post" action="/zahlungsverkehr/tan/abbrechen" class="formular">
|
||
<input type="hidden" name="csrf_token" value="<?= View::h($csrfToken) ?>">
|
||
<div class="knopfleiste">
|
||
<button type="submit" class="knopf">Abbrechen</button>
|
||
</div>
|
||
</form>
|
||
|
||
<p class="feldhinweis">
|
||
Beim Abbrechen bleibt der Auftrag als Entwurf stehen; der Empfängername lässt sich
|
||
dann korrigieren und der Auftrag erneut senden. Wird trotz Abweichung gesendet,
|
||
haftet die Bank nicht, wenn das Geld beim falschen Empfänger landet.
|
||
</p>
|
||
</div>
|
||
|
||
<?php include __DIR__ . '/../layout/fuss.php'; ?>
|