Attached you will find a Statement of german Sparkasse Pforzheim-Calw in CAMT.052 Format.
Before Upgrade to 8.0, import of statements worked fine.
Since 8.0 import failes while missing the Amount in Detail.
Does this file not conform to the Standard ISO20022? (must the Amount always be present in the <NtryDtls>?)
In 7.8 the Amount was taken from <Ntry>
def _camt_amount(self, node, detail=None):
amount = Decimal(node.findtext('./{*}Amt'))
if node.findtext('./{*}CdtDbtInd') == 'DBIT':
amount *= -1
return amount
Whereas 8.0 only takes the Amound from <Ntry> if no Detail is available:
def _camt_amount(self, entry, detail=None):
if detail is not None:
amount = Decimal(detail.findtext('./{*}AmtDtls/{*}TxAmt/{*}Amt'))
else:
amount = Decimal(entry.findtext('./{*}Amt'))
if entry.findtext('./{*}CdtDbtInd') == 'DBIT':
amount *= -1
return amount
CAMT.052 file in question:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.052.001.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.052.001.02 camt.052.001.02.xsd">
<BkToCstmrAcctRpt>
<GrpHdr>
<MsgId>camt52_20260524041004__ONLINEBA</MsgId>
<CreDtTm>2026-05-24T04:10:04+02:00</CreDtTm>
<MsgPgntn>
<PgNb>1</PgNb>
<LastPgInd>true</LastPgInd>
</MsgPgntn>
</GrpHdr>
<Rpt>
<Id>camt052_ONLINEBA</Id>
<ElctrncSeqNb>00000</ElctrncSeqNb>
<CreDtTm>2026-05-24T04:10:04+02:00</CreDtTm>
<Acct>
<Id>
<IBAN>DEXX66650085XXXXXXXXXX</IBAN>
</Id>
<Ccy>EUR</Ccy>
<Svcr>
<FinInstnId>
<BIC>PZHSDE66XXX</BIC>
<Nm>Sparkasse Pforzheim Calw</Nm>
<Othr>
<Id>DE144189922</Id>
<Issr>UmsStId</Issr>
</Othr>
</FinInstnId>
</Svcr>
</Acct>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>PRCD</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="EUR">1050.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2026-05-21</Dt>
</Dt>
</Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>CLBD</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="EUR">1000.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2026-05-22</Dt>
</Dt>
</Bal>
<Ntry>
<Amt Ccy="EUR">50.00</Amt>
<CdtDbtInd>DBIT</CdtDbtInd>
<Sts>BOOK</Sts>
<BookgDt>
<Dt>2026-05-22</Dt>
</BookgDt>
<ValDt>
<Dt>2026-05-22</Dt>
</ValDt>
<AcctSvcrRef>NONREF</AcctSvcrRef>
<BkTxCd/>
<NtryDtls>
<TxDtls>
<Refs>
<EndToEndId>STRXXXXXXXXXXXXXXXXXXXXXXXXXXXXXFF</EndToEndId>
<MndtId>YXXXXXXXXXXXXXXL</MndtId>
<Prtry>
<Tp>FI-UMSATZ-ID</Tp>
<Ref>2026-05-22-00.XX.XX.XXXXXX</Ref>
</Prtry>
</Refs>
<BkTxCd>
<Prtry>
<Cd>NDDT+XXX+XXXX+888</Cd>
<Issr>DK</Issr>
</Prtry>
</BkTxCd>
<RltdPties>
<Dbtr>
<Nm>XXXXXXXXXX FLOOR 3 BLOCK 3 MIESIAN PLAZA</Nm>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>DEXX66650085XXXXXXXXXX</IBAN>
</Id>
</DbtrAcct>
<Cdtr>
<Nm>Starlink Internet Services Limited</Nm>
<Id>
<PrvtId>
<Othr>
<Id>IE22ZZZ362416</Id>
</Othr>
</PrvtId>
</Id>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>IE30CITI99005132956548</IBAN>
</Id>
</CdtrAcct>
</RltdPties>
<RltdAgts>
<DbtrAgt>
<FinInstnId>
<BIC>PZHSDE66</BIC>
</FinInstnId>
</DbtrAgt>
<CdtrAgt>
<FinInstnId>
<BIC>STTOIE22</BIC>
</FinInstnId>
</CdtrAgt>
</RltdAgts>
<RmtInf>
<Ustrd>STARLINK INTERNET</Ustrd>
</RmtInf>
</TxDtls>
</NtryDtls>
<AddtlNtryInf>FOLGELASTSCHRIFT</AddtlNtryInf>
</Ntry>
</Rpt>
</BkToCstmrAcctRpt>
</Document>