]> git.ipfire.org Git - thirdparty/python-fints.git/commitdiff
Add support for 3945 response despite exact vop name match (#206)
authorKolSmn <74245816+KolSmn@users.noreply.github.com>
Mon, 5 Jan 2026 11:09:29 +0000 (12:09 +0100)
committerGitHub <noreply@github.com>
Mon, 5 Jan 2026 11:09:29 +0000 (12:09 +0100)
* support 3945 response despite exact vop match

* replace if by elif

docs/transfers.rst
fints/client.py

index 343cf8305c76d14b2bd8f32df4f8ebb1365cca32..c2e20c2ef27f2f7e710a5ae97735bec7a1905c24 100644 (file)
@@ -79,7 +79,11 @@ Full example
                     tan = input('Please enter TAN:')
                 res = client.send_tan(res, tan)
             elif isinstance(res, NeedVOPResponse):
-                if res.vop_result.vop_single_result.result == "RVMC":
+                if res.vop_result.vop_single_result.result == "RCVC":
+                    print("Payee name is an exact match")
+                    if res.vop_result.vop_single_result.other_identification:
+                        print("Other info retrieved by bank:", res.vop_result.vop_single_result.other_identification)
+                elif res.vop_result.vop_single_result.result == "RVMC":
                     print("Payee name is a close match")
                     print("Name retrieved by bank:", res.vop_result.vop_single_result.close_match_name)
                     if res.vop_result.vop_single_result.other_identification:
index 1e7358274b9b275e7ffe9849c69d59e1ead3eab4..7e0898a0888f4cba32fda7e62289ebde6a1690d3 100644 (file)
@@ -1461,7 +1461,8 @@ class FinTS3PinTanClient(FinTS3Client):
                     hivpp = response.find_segment_first(HIVPP1, throw=True)
 
                     vop_result = hivpp.vop_single_result
-                    if vop_result.result in ('RVNA', 'RVNM', 'RVMC'):  # Not Applicable, No Match, Close Match
+                     # Not Applicable, No Match, Close Match, or exact match but still requires confirmation
+                    if vop_result.result in ('RVNA', 'RVNM', 'RVMC')  or (vop_result.result == 'RCVC' and '3945' in [res.code for res in response.responses(tan_seg)]): 
                         return NeedVOPResponse(
                             vop_result=hivpp,
                             command_seg=command_seg,