feat: Kontoauszug vom Telefon per Teilen-Menue einlesen

Revolut und Raiffeisen lassen die CSV auch am Handy exportieren; nur N26
verlangt die Web-Version. Ein zweiter Kurzbefehl nimmt die Datei aus dem
Teilen-Menue entgegen und schickt sie mit dem gewaehlten Konto an
/quick/statement.

Am Telefon laesst sich keine Spaltenzuordnung vornehmen. Der Endpunkt
verwendet deshalb die Einstellung, mit der dieses Konto zuletzt erfolgreich
eingelesen wurde – und sagt klar Bescheid, wenn es noch keine gibt, statt
mit falschen Spalten zu raten.

Gebucht wird sofort: Ein Auszug hat hunderte Zeilen, die einzeln abzunicken
waere keine Erleichterung. Sicher ist das durch die Duplikaterkennung und
weil der Stapel im Import-Verlauf mit einem Klick zurueckzunehmen ist.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Guido
2026-08-22 21:06:20 +02:00
co-authored by Claude Opus 5
parent e93f565629
commit 34be575eb3
5 changed files with 180 additions and 3 deletions
+8 -1
View File
@@ -483,7 +483,14 @@
"revokeConfirm": "Revoke token “{{name}}”? The shortcut on that device will stop working. Bookings already recorded stay.",
"noDefault": "no default account",
"lastUsed": "used before",
"neverUsed": "never used"
"neverUsed": "never used",
"fileGuideTitle": "Import a statement from your phone",
"fileGuideIntro": "Revolut and Raiffeisen let you export the CSV on the phone too. A second shortcut takes it from the share sheet. Prerequisite: you have imported for this account on a computer once – Certain then reuses that column mapping.",
"fileStep1": "New shortcut → tap its name → enable “Show in Share Sheet”, input type: Files",
"fileStep2": "Search for “List” → “Choose from List” for the account (account ids are at /api/quick/accounts)",
"fileStep3": "Search for “URL” → “Get Contents of URL”. Method POST, header X-Certain-Token as above, request body “Form” with file = Shortcut Input and account_id = the chosen account:",
"fileStep4": "“Show Notification” – you then see “14 booked · 512 already present”",
"fileGuideNote": "It books straight away because a statement has hundreds of rows. That is safe: existing bookings are recognised and skipped, and the whole batch can be undone with one click in the import history."
},
"inbox": {
"title": "Captured",