Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
PDFBox Version: 3.0.6
Portfolio Performance Version: 0.84.2
System: linux | x86_64 | 25.0.3+9-2-24.04.2-Ubuntu | Ubuntu
-----------------------------------------
Ein Service von:
Für Rückfragen wenden Sie sich
bitte an: info@sunrise.app
Herr
XXXXXXX YYYYYY Fondsabrechnung
ZZZZ Straße. XX
54321 XXXXXXXX Datum: 03.07.2026
Deutschland Depotnummer: 1234567890
Hiermit bestätigen wir Ihnen folgende Transaktion für Sie ausgeführt zu haben:
Transaktion Fondsname Betrag Preis Anteile
ISIN Preisdatum
Verwahrart/Lagerland
Verwahrort
Kauf Standortfonds Deutschland 100.24 € 192.77 € 0.520
AT0000A1Z882 02.07.2026
Girosammelverwahrung/AT
Raiffeisen Bank International AG
100.24 €
0,00%
20260701123456789000001944747
DE33 **** **** **** **** **
Anlagen in Investmentfonds können erst nach Kenntnisnahme der gesetzlichen Verkaufsunterlagen
(Basisinformationsblatt) erfolgen. Diese Unterlagen haben Sie direkt über die Sunrise Kanäle erhalten bzw. vor
Auftragserteilung dort eingesehen.
Die erworbenen Vermögenswerte fallen unter die Regelungen der Richtlinie 2014/65/EU („MiFID II“), insbesondere die
in dieser Richtlinie enthaltenen Bestimmungen zum Schutz Ihrer Vermögenswerte. Informationen und Risiken im
Zusammenhang mit der Sammelverwahrung entnehmen Sie bitte den "Allgemeinen Geschäftsbedingungen" unter
www.sunrise.app.
Wichtiger Hinweis: Einwendungen gegen diese Fondsabrechnung wegen Unrichtigkeit oder Unvollständigkeit richten
Sie bitte schriftlich spätestens einen Monat nach Zugang an: info@sunrise.app.
Mit besten Grüßen
Ihr Sunrise Team
Sunrise Securities GmbH, Gußhausstraße 3/2, A-1040 Wien; UID-Nummer: ATU 68616777, Firmenbuchnummer: FN 410750w
Sunrise Securities GmbH nach österreichischem Recht Zweigniederlassung Deutschland, Rahel-Hirsch-Straße 10, D-10557 Berlin; Handelsregister: HRB 258310 B
Version 2026_01
Version_2025_01_K
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,40 @@ public void testWertpapierKauf05()
hasTaxes("EUR", 0.00), hasFees("EUR", 0.00))));
}

@Test
public void testWertpapierKauf06()
{
var extractor = new SunrisePDFExtractor(new Client());

List<Exception> errors = new ArrayList<>();

var results = extractor.extract(PDFInputFile.loadTestCase(getClass(), "Kauf06.txt"), errors);

assertThat(errors, empty());
assertThat(countSecurities(results), is(1L));
assertThat(countBuySell(results), is(1L));
assertThat(countAccountTransactions(results), is(0L));
assertThat(countAccountTransfers(results), is(0L));
assertThat(countItemsWithFailureMessage(results), is(0L));
assertThat(countSkippedItems(results), is(0L));
assertThat(results.size(), is(2));
new AssertImportActions().check(results, "EUR");

// check security
assertThat(results, hasItem(security( //
hasIsin("AT0000A1Z882"), hasWkn(null), hasTicker(null), //
hasName("Standortfonds Deutschland"), //
hasCurrencyCode("EUR"))));

// check buy sell transaction
assertThat(results, hasItem(purchase( //
hasDate("2026-07-02T00:00"), hasShares(0.520), //
hasSource("Kauf06.txt"), //
hasNote("20260701123456789000001944747"), //
hasAmount("EUR", 100.24), hasGrossValue("EUR", 100.24), //
hasTaxes("EUR", 0.00), hasFees("EUR", 0.00))));
}

@Test
public void testDividende22()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,12 @@ private void addBuySellTransaction()
// @formatter:off
// Kauf Standortfonds Österreich 10.00 € 140.59 € 0.071
// AT0000A1QA38 10.01.2022 5.123
// Kauf Standortfonds Deutschland 100.24 € 192.77 € 0.520
// AT0000A1Z882 02.07.2026
// @formatter:on
.section("name", "currency", "isin") //
.match("^Kauf (?<name>.*) [\\.'\\d]+ \\p{Sc} [\\.'\\d]+ (?<currency>\\p{Sc}) [\\.'\\d]+$") //
.match("^(?<isin>[A-Z]{2}[A-Z0-9]{9}[0-9]) [\\d]{2}\\.[\\d]{2}\\.[\\d]{4} ['\\.\\d]+$") //
.match("^(?<isin>[A-Z]{2}[A-Z0-9]{9}[0-9]) [\\d]{2}\\.[\\d]{2}\\.[\\d]{4}( ['\\.\\d]+)?$") //
.assign((t, v) -> t.setSecurity(getOrCreateSecurity(v)))

// @formatter:off
Expand All @@ -81,26 +83,29 @@ private void addBuySellTransaction()

// @formatter:off
// AT0000A1QA38 10.01.2022 5.123
// AT0000A1Z882 02.07.2026
// @formatter:on
.section("date") //
.match("^[A-Z]{2}[A-Z0-9]{9}[0-9] (?<date>[\\d]{2}\\.[\\d]{2}\\.[\\d]{4}) [\\.'\\d]+$") //
.match("^[A-Z]{2}[A-Z0-9]{9}[0-9] (?<date>[\\d]{2}\\.[\\d]{2}\\.[\\d]{4})( [\\.'\\d]+)?$") //
.assign((t, v) -> t.setDate(asDate(v.get("date"))))

// @formatter:off
// Abrechnungsbetrag: 10.00 €
// 100.24 €
// @formatter:on
.section("amount", "currency") //
.match("^Abrechnungsbetrag: (?<amount>['\\.\\d]+) (?<currency>\\p{Sc})$") //
.match("^(Abrechnungsbetrag:)?\s+(?<amount>['\\.\\d]+) (?<currency>\\p{Sc})$") //
.assign((t, v) -> {
t.setAmount(asAmount(v.get("amount")));
t.setCurrencyCode(asCurrencyCode(v.get("currency")));
})

// @formatter:off
// Auftrags-Nummer: 20220106123456789000000612345
// 20260701123456789000001944747
// @formatter:on
.section("note").optional() //
.match("^(?<note>Auftrags\\-Nummer: [\\d]+)$") //
.match("^(?<note>(Auftrags\\-Nummer:)? [\\d]+)$") //
.assign((t, v) -> t.setNote(trim(v.get("note"))))

.wrap(BuySellEntryItem::new);
Expand Down
Loading