CAMT Support in KMyMoney
Jan Ritzerfeld
mailinglists.kmymoney at jan.ritzerfeld.eu
Sat Nov 29 18:20:13 GMT 2025
Am Donnerstag, 27. November 2025, 21:49:34 CET schrieb Martin Preuss via
KMyMoney:
> Hi Jan,
>
> Am 27.11.25 um 21:23 schrieb Jan Ritzerfeld via KMyMoney:
> [...]>> MREF+ is used in SWIFT documents, but mandate reference is also
> provided by
> >> CAMT.052 and as such represented by AqBanking in the field "mandateId" of
> >> AB_TRANSACTION.
> >
> > Yes, and when I downloaded and compared SWIFT MT940 and CAMT v8 files for
> > my banking account in January, it looked like I want "localName". CAMT
> > offers significantly more structured and detailed information than MT940
> > in my opinion. MREF is just an UUID different for each
> > "Lastschriftmandat" and only helped me to indirectly distinguish my wife
> > and me by learning all of them. However, and IIRC, in CAMT, you directly
> > get the name of the person who triggered an transaction in "localName".
> [...]
>
> I have no right to expect that the camt-importer in AqBanking doesn't miss
> information from the received camt (especially in the newest version in
> use).
My initial email was about KMM not importing some useful fields that were
actually imported by AqBanking. In https://github.com/aqbanking/aqbanking/
blob/master/src/libs/plugins/imexporters/xml/data/camt_052_001_02.xml I saw
that NtryDtls/TxDtls/RltdPties/Dbtr/Nm was imported as localName, But in
https://github.com/KDE/kmymoney/blob/master/kmymoney/plugins/kbanking/
kbanking.cpp I didn't find any call to AB_Transaction_GetLocalName.
Since MREF was only a nasty workaround for me and I didn't want it anymore
with CAMT, I didn't check why it stopped working back in January, or I don't
remember it. So I had a look at it just now and the call to
AB_Transaction_GetMandateId worked with SWIFT maybe due to https://github.com/
aqbanking/aqbanking/blob/master/src/libs/plugins/parsers/swift/swift940_86.c
importing MREF as mandateId and then KMM appended that to the memo as MREF in
https://github.com/KDE/kmymoney/blob/master/kmymoney/plugins/kbanking/
kbanking.cpp. However, https://github.com/aqbanking/aqbanking/blob/master/src/
libs/plugins/imexporters/xml/data/camt_052_001_02.xml didn't import Refs/
MndtId so that MREF was empty in KMM when using CAMT.
> In fact, sometimes I probably misunderstand (or don't understand) the
> meaning of some weirdly named fields (not coming from the finance scene).
I feel you, all these specifications are "interesting" to say the least. I'm
not even sure whether I have to look at CAMT.052 or CAMT.053. I can export my
statements in many different formats my reports directly from the online
banking interface (FI IF6 or so). There I can get cam52Pending and
camt52Booked but I thought camt52Booked would be CAMT.053...
> The importers always get updated over time when new examples, info or
> patches arrive. Some banks only send rudimentary camts, others shower you
> with unneeded info.
I see that you added mandateId to https://github.com/aqbanking/aqbanking/blob/
master/src/libs/plugins/imexporters/xml/data/camt_052_001_08.xml. When the v8
dust settles, I will try to update my openSUSE packages and see whether CAMT
works better with KMM now.
> In addition there are also fields like ultimateDebitor
> and ultimateCreditor in some cases.
>
> So any help on that matter is very welcome.
According to https://paymenttalks.com/detailed-explanation-of-all-agents-involved-in-an-iso-payment-message/ Dbtr is a mandatory when the payment
involves a customer while UltmtDbtr is optional and used when the payment is
made on behalf of another entity or individual. There are some figures about
these, but I don't remember seeing them here in any of my downloaded CAMT.
052s.
Gruß
Jan
--
Ignorance is Bliss!
- George Orwell
More information about the KMyMoney
mailing list