Project

General

Profile

Actions

Bug #320

closed

Aqbanking VOP mit hbci/chipkarte/secoder: 9010:Erneute Auftragseinreichung für VOP-Bestätigung notwendig.

Added by ErwinRieger 3 months ago. Updated about 1 month ago.

Status:
Closed
Priority:
Normal
Category:
AqBanking
Start date:
10/16/2025
Due date:
Betriebssystem:
Linux
AqBanking-Version:
Git 132660f088b5aaeaf9154103ed02e71ebdc0b353 vom 16.10.25
Anwendung:
aqbanking-cli
Version der Anwendung:
AqBanking-CLI: 6.7.1 Gwenhywfar : 5.13.0.0 AqBanking : 6.6.4.0

Description

Hallo, ich versuche gerade eine sepa-einzelüberweisung bei der Volksbank Allgau-Oberschwaben (VBAO) zu
machen. Zugriff mit VOP über HBCI/Chipkarte/Secoder.

Nachdem der VOP-abgleich durchgeführt wurde, bekomme ich die folgende fehlermeldung und die transaktion wird abgebrochen:

HBCI: 9010:Erneute Auftragseinreichung für VOP-Bestätigung notwendig.

Dabei ist es egal, ob ein MATCH oder ein CLOSE-MATCH vorliegt.

Logdateien:
a_log_2.txt: Versuch mit ganzem empfängernamen, MATCH
a_log_4.txt: Versuch mit kurzem empfängernamen, CLOSE_MATCH

Laut FinTS_3.0_Messages_Geschaeftsvorfaelle_VOP_1.01_2025_06_27_FV.pdf, muss in diesem fall wohl der
auftrag erneut eingereicht werden. Siehe kapitel "E.8.2 VOP mit Kryptographie und ggf. Secoder", dort steht:

...werden HKVPA und der Zahlungsauftrag und die (Secoder-)Signatur immer zusammen eingereicht. Der HKVPA gilt
hier als die Bestätigung, dass der Auftrag ausgeführt werden soll.

Als workaround habe ich folgende änderung in cbox_vophbci.c eingebaut:

diff --git a/src/libs/plugins/backends/aqhbci/applayer/cbox_vophbci.c b/src/libs/plugins/backends/aqhbci/applayer/cbox_vophbci.c
index 05b4a69d..5d8d4f88 100644
--- a/src/libs/plugins/backends/aqhbci/applayer/cbox_vophbci.c
+++ b/src/libs/plugins/backends/aqhbci/applayer/cbox_vophbci.c
@@ -313,8 +313,14 @@ AH_JOBQUEUE *_createQueueForStage2(AB_USER *user, AH_JOB *vppJob, AH_JOB *vpaJob
     }
   }

-  if (vppJob && workJob) {
-    if (!AH_Job_HasResultWithCode(vppJob, 25) && !!AH_Job_HasResultWithCode(vppJob, 20)) {
+  if (vppJob && workJob && (AH_Job_HasResultWithCode(vppJob, 20) || AH_Job_HasResultWithCode(vppJob, 3090))) {
+
+    int resend = !AH_Job_HasResultWithCode(vppJob, 25);
+    if (!resend && getenv("AQ_VOP_FORCE"))
+      DBG_ERROR(AQHBCI_LOGDOMAIN, "_createQueueForStage2: force-hack active!!!");
+      resend = 1;
+
+    if (resend) {
       /* result "MATCH" not found, need to add workJob again */
       AH_Job_Attach(workJob);
       rv=AH_JobQueue_AddJob(jobQueue, workJob);

Nun kann ich das erneute versenden des auftrages mit hilfe der umgebungsvariable AQ_VOP_FORCE erzwingen.

Logdateien:
a_log_5.txt: Versuch mit ganzem empfängernamen, MATCH (bricht später ab wegen bug-xxx-kommtnoch)
a_log_6.txt: Versuch mit kurzem empfängernamen, CLOSE_MATCH (läuft durch, überweisung erfolgreich)


Files

a_log_2.txt (30.8 KB) a_log_2.txt Versuch mit ganzem empfängernamen, MATCH ErwinRieger, 10/16/2025 03:58 PM
a_log_4.txt (32.8 KB) a_log_4.txt Versuch mit kurzem empfängernamen, CLOSE_MATCH ErwinRieger, 10/16/2025 03:59 PM
FinTS_3.0_Messages_Geschaeftsvorfaelle_VOP_1.01_2025_06_27_FV.pdf (930 KB) FinTS_3.0_Messages_Geschaeftsvorfaelle_VOP_1.01_2025_06_27_FV.pdf ErwinRieger, 10/16/2025 04:19 PM
a_log_5.txt (33.8 KB) a_log_5.txt Erneutes senden, versuch mit ganzem empfängernamen, MATCH, sepa-transaktion NOTOK ErwinRieger, 10/16/2025 04:29 PM
a_log_6.txt (35.7 KB) a_log_6.txt Erneutes senden, versuch mit kurzem empfängernamen, CLOSE_MATCH, sepa-transaktion OK ErwinRieger, 10/16/2025 04:31 PM
Actions #1

Updated by ErwinRieger 3 months ago

bug-xxx-kommtnoch = Bug #321

Actions #2

Updated by martin 3 months ago

Moin,

die Specs habe ich natuerlich, aber danke ;-)

+  if (vppJob && workJob && (AH_Job_HasResultWithCode(vppJob, 20) || AH_Job_HasResultWithCode(vppJob, 3090))) {
+
+    int resend = !AH_Job_HasResultWithCode(vppJob, 25);
+    if (!resend && getenv("AQ_VOP_FORCE"))
+      DBG_ERROR(AQHBCI_LOGDOMAIN, "_createQueueForStage2: force-hack active!!!");
+      resend = 1;
+
+    if (resend) {
       /* result "MATCH" not found, need to add workJob again */
       AH_Job_Attach(workJob);
       rv=AH_JobQueue_AddJob(jobQueue, workJob);

Was mir hier auffaellt: Da Du keine geschweifte Klammer gesetzt hast, wird

resend = 1;

immer ausgefuehrt.

Das Ergebnis ist aber trotzdem korrekt, sollte aber einfacher zu erreichen sein: In E.8.2 steht ja, dass immer auch der workJob in die Queue gestellt werden muss, also habe ich das mal so eingebaut. Geht das mit der aktuellen GIT Version bei Dir auch?

Gruss
Martin

Actions #3

Updated by martin 3 months ago

  • Status changed from New to Feedback
Actions #4

Updated by ErwinRieger 3 months ago

Hallo Martin,

Was mir hier auffaellt: Da Du keine geschweifte Klammer gesetzt hast, wird

[...]

immer ausgefuehrt.

Ups, stimmt.

Das Ergebnis ist aber trotzdem korrekt, sollte aber einfacher zu erreichen sein: In E.8.2 steht ja, dass immer auch der workJob in die Queue gestellt werden muss, also habe ich das mal so eingebaut. Geht das mit der aktuellen GIT Version bei Dir auch?

Ja, funktioniert mit der GIT version von heute.

Wie ist das, wenn _handleStage1(), mit resultat 0, hier verlassen wird:

    else if (AH_Job_HasResultWithCode(vppJob, 9210)) {
      DBG_ERROR(AQHBCI_LOGDOMAIN, "Result of VOP: Transaction rejected (e.g. non-existent IBAN).");
      GWEN_Gui_ProgressLog(0, GWEN_LoggerLevel_Notice, I18N("Result of VOP: Transaction rejected (e.g. non-existent IBAN)."));
    }

, dann wird doch auch _handleStage2() aufgerufen und der job nochmals versendet. Ist das so gewollt?

Gruss
Martin

Gruss, Erwin

Actions #5

Updated by martin 3 months ago

Moin Erwin,

da hast Du jetzt wieder Recht ;-)
Ab jetzt wird da ein Fehler zurueckgegeben.

Waere aber eh nix passiert, weil die Bank ja den Auftrag schon abgelehnt hat und sich vermutlich auch danach nicht ueberzeugen laesst, ihn doch noch anzunehmen ;-)

Gruss
Martin

Actions #6

Updated by martin about 2 months ago

Klappt das inzwischen?

Actions #7

Updated by SirTux about 2 months ago

Ich habs gerade mit der aktuellen Beta unter KMyMoney getestet: Die Überweisung failed mit Nachricht "VoP erforderlich" (oder so ähnlich). Es kommt auch kein Dialog.

Bank ist die Volksbank Breisgau Markgräflerland

Actions #8

Updated by martin about 1 month ago

Da braeuchte ich etwas mehr Info... (Bugreports)

Actions #9

Updated by ErwinRieger about 1 month ago

martin schrieb (#note-6):

Klappt das inzwischen?

Hallo Martin,

ja, das geht. Bin zufrieden soweit. Von mir aus kann der bug geschlossen werden...

Gruß, Erwin

Actions #10

Updated by martin about 1 month ago

  • Status changed from Feedback to Closed
Actions

Also available in: Atom PDF