« Previous | Next » 

Revision fafb0595

Parent 77ca1144
Child eb50ded7

Added by Tobias Deiminger 4 months ago

Send acknowledgements (HKQTG)

FinTS 3.0 defines an acknowledge workflow (C.9.4, "Empfangsquittung"):

By sending this segment, the customer acknowledges they have
correctly received a bank response. The acknowledgement always
relates to the direclty preceding bank response.
Optionally, the acknowledgement can be supplemented by a code
("Quittungscode", e.g. a hash value), which allows the bank to draw
addtional conclusion about the job to be acknowledged.

In practice, this means you can mark documents in the inbox of a
banking web client as "read", and prevent your bank from sending
you printed documents by post.

FinTS defines acknwoledgement only for a subset of jobs
- HIEKA "Quittungscode"
BPD HIEKAS "Parameter Kontoauszug":"Quittierung benoetig"
- HIECA "Quittungscode"
BPD HIEKAS "Parameter Kontoauszug camt":"Quittierung benoetig"
- HIEKP "Quittungscode"
BPD HIEKPS "Parameter Kontoauszug PDF":"Quittierung benoetig"
- HIKAA "Quittungscode"
BPD HIKAA "Postfach Nachricht abrufen":"Quittierung (fallweise)

This commit adds some generic handling, and fully enables acknowledgment
for HIEKA and HIEKP, i.e. AB_Transaction_CommandGetEStatements.

Users can enable acknowledgement with a new CLI option for the request
$ aqbanking-cli -P /tmp/pinfile request --estatements -a 1234567 -c est.ctx --fromdate=20200101 --docnumber=10 --acknowledge

or they enable it via API by
AB_Transaction_SetAcknowledge(myTransaction, AB_Transaction_AckJobsWithAckCode).

Disclaimer: I don't understand the spec in how "preceding response" is
supposed to be interpreted for multi-segment responses and if the optional
acknowledge code was not sent by the bank. Seems the spec leaves some doubt
there, it could mean
- ack all segments from the preceding multi-segment response
- ack only the first segment from the preceding multi-segment response
- ack only the last segement
- ... whatever, you get it

Therefore I'm only implementing cases where an acknowledgement code was
given, because it allows to definitely identify the segment we mean.


  • added
  • modified
  • copied
  • renamed
  • deleted

View differences