Repository navigation
Conversation
When the payee's bank does not answer in time, the bank confirms the TAN of an instant payment (HKIPZ) with code 3045 instead of 0010/0020. SendSEPARealtimeTransfer threw 'Bank did not confirm SEPATransfer execution' although the order was accepted. - SendSEPARealtimeTransfer: read the Auftragsidentifikation and status from HIIPZ, treat 3045 as 'status pending' instead of failing. - New action GetSEPARealtimeTransferStatus (HKIPS v1) to request the final status, plus HIIPS/HIIPSS segments. getMinimumWaitingTime() exposes the Mindestwartezeit from HIIPSS. Fixes nemiah#600
fds2610
force-pushed
the
instant-payment-status
branch
from
November 2, 2026 08:10
0950802 to
6689970
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #600
When the payee's bank does not answer in time, the bank confirms the TAN of an instant payment (HKIPZ) with code 3045 ("no status yet") instead of 0010/0020.
SendSEPARealtimeTransferthen threwalthough the order had been accepted. comdirect does this regularly, even for transfers to an own account at another bank.
Changes
SendSEPARealtimeTransfer: reads the Auftragsidentifikation and the status from HIIPZ and treats 3045 as "status pending" instead of failing.GetSEPARealtimeTransferStatus(HKIPS v1) to request the final status, with the segmentsHKIPSv1,HIIPSv1,HIIPSSv1and their parameter DEG.getMinimumWaitingTime()exposes the Mindestwartezeit from HIIPSS, so callers know how long to wait before asking.Tests/Unit/Integration/DKB/SendSEPARealtimeTransferTest(executed directly; pending, then executed via HKIPS; BPD parsing).Testing
Full PHPUnit suite passes on current master. PHPStan reports no new errors for the changed files (master itself currently has some unrelated ones). php-cs-fixer is clean.
I ran it against real banks: comdirect answered the HKIPZ with 3045; HKIPS (no TAN needed) after the minimum waiting time of 99 s returned status 7 (executed). DKB announces HIIPSS with a waiting time of 5 s.
This is (partly) generated code and I as human vouch for it's correctness.
I am using this code in my own repo. If something breaks, i'll fix it. Greets, Felix