Skip to content

Commit 746176a

Browse files
authored
Parse "Kupongutschrift" documents from Deutsche Bank. (#5168)
Due to lack of native support for cupons, the payment will be recorded as a "dividend". Same way as done for Onvista and Postbank.
1 parent 59e5b10 commit 746176a

File tree

3 files changed

+73
-2
lines changed

3 files changed

+73
-2
lines changed

name.abuchen.portfolio.tests/src/name/abuchen/portfolio/datatransfer/pdf/deutschebank/DeutscheBankPDFExtractorTest.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,39 @@ public void testDividende09WithSecurityInEUR()
544544
}))));
545545
}
546546

547+
@Test
548+
public void testKupon01()
549+
{
550+
var extractor = new DeutscheBankPDFExtractor(new Client());
551+
552+
List<Exception> errors = new ArrayList<>();
553+
554+
var results = extractor.extract(PDFInputFile.loadTestCase(getClass(), "Kupon01.txt"), errors);
555+
556+
assertThat(errors, empty());
557+
assertThat(countSecurities(results), is(1L));
558+
assertThat(countBuySell(results), is(0L));
559+
assertThat(countAccountTransactions(results), is(1L));
560+
assertThat(countAccountTransfers(results), is(0L));
561+
assertThat(countItemsWithFailureMessage(results), is(0L));
562+
assertThat(results.size(), is(2));
563+
new AssertImportActions().check(results, "EUR");
564+
565+
// check security
566+
assertThat(results, hasItem(security( //
567+
hasIsin("XS2722190795"), hasWkn("A3511H"), hasTicker(null), //
568+
hasName("4% DEUTSCHE BAHN AG MTN.23 23.11. 43"), //
569+
hasCurrencyCode("EUR"))));
570+
571+
// check dividends (here: interest) transaction
572+
assertThat(results, hasItem(dividend( //
573+
hasDate("2025-11-24T00:00"), hasShares(10.00), //
574+
hasSource("Kupon01.txt"), //
575+
hasNote(null), //
576+
hasAmount("EUR", 33.46), hasGrossValue("EUR", 40.00), //
577+
hasTaxes("EUR", 6.20 + 0.34), hasFees("EUR", 0.00))));
578+
}
579+
547580
@Test
548581
public void testWertpapierKauf01()
549582
{
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
PDFBox Version: 3.0.5
2+
Portfolio Performance Version: 0.80.4
3+
System: linux | x86_64 | 21.0.9+10-Ubuntu-124.04 | Ubuntu
4+
-----------------------------------------
5+
Deutsche Bank AG
6+
24/7-Kundenservice (069) 910-10000
7+
Max Mustermann
8+
Musterstr. 1 A
9+
22222 Musterstadt
10+
24. November 2025
11+
Ihr Depot Nr. 100 1234567 01
12+
Kupongutschrift
13+
CorpID: IPP0000000829024
14+
Nominal Währung WKN ISIN
15+
1.000,000000 EUR A3511H XS2722190795
16+
4% DEUTSCHE BAHN AG MTN.23 23.11. 43
17+
Zinsen in % 4,0000000000 Zahlbar 24.11.2025
18+
Ursprungsland DEUTSCHLAND Ex-Tag 24.11.2025
19+
Bruttoertrag 40,00 EUR
20+
Kapitalertragsteuer (KESt) - 6,20 EUR
21+
Solidaritätszuschlag auf KESt - 0,34 EUR
22+
Gutschrift mit Wert 24.11.2025 33,46 EUR
23+
Steuerliche Bemessungsgrundlagen zur Kupongutschrift - keine Steuerbescheinigung
24+
Angerechneter Verlusttopf "Sonstige" 14,28 EUR
25+
KESt-pflichtiger Kapitalertrag 25,72 EUR
26+
Auf die KESt angerechnete ausländische 22,80 EUR
27+
Quellensteuer
28+
Vorsitzender des Aufsichtsrats: Alexander R. Wynaendts
29+
Vorstand: Christian Sewing (Vorsitzender), James von Moltke, Fabrizio Campelli, Marcus Chromik, Bernd Leukert, Alexander von zur Mühlen, Laura Padovani, Claudio de Sanctis,
30+
Rebecca Short
31+
Deutsche Bank Aktiengesellschaft mit Sitz in Frankfurt am Main; Amtsgericht Frankfurt am Main, HRB Nr. 30 000; Umsatzsteuer-Id.-Nr. DE114103379; www.db.com/de 1/2
32+
TRINCM0001 KUPO 20251122 99999999
33+
34+
35+
Wir überweisen den Betrag von 33,45 EUR auf Ihr Konto 1234567 00.
36+
Kapitalerträge sind einkommensteuerpflichtig!
37+
Diese Mitteilung wurde maschinell erstellt und wird nicht unterschrieben.
38+
2/2

name.abuchen.portfolio/src/name/abuchen/portfolio/datatransfer/pdf/DeutscheBankPDFExtractor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -300,10 +300,10 @@ private void addBuyTransactionFundsSavingsPlan()
300300

301301
private void addDividendeTransaction()
302302
{
303-
var type = new DocumentType("(Dividendengutschrift|Ertragsgutschrift)");
303+
var type = new DocumentType("(Dividendengutschrift|Ertragsgutschrift|Kupongutschrift)");
304304
this.addDocumentTyp(type);
305305

306-
var firstRelevantLine = new Block("^^(Dividendengutschrift|Ertragsgutschrift)$");
306+
var firstRelevantLine = new Block("^^(Dividendengutschrift|Ertragsgutschrift|Kupongutschrift)$");
307307
type.addBlock(firstRelevantLine);
308308

309309
var pdfTransaction = new Transaction<AccountTransaction>();

0 commit comments

Comments
 (0)