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