Taler - Roadmap
Scheduled For Release 2025-05-31
- 0009948: [merchant backoffice SPA] Activate Content-Security-Policy default-src: 'none' for SPA
- 0009598: [wallet (Android App)] Impossible to transfer all the money to the bank (Emmanuel)
- 0009243: [wallet-core] When an Exchange is not reachable, wallet-core should return "not reachable" instead of some JSON error (MarcS)
- 0009919: [merchant backoffice SPA] Per default the one can not enter a "simple" new order
- 0008155: [quality checkpoint] acceptance testing of SPA with MG
- 0009917: [exchange AML backoffice (SPA)] AML SPA must be able to create PDF with entire AML file(s) (Florian Dold)
- 0009918: [exchange AML backoffice (SPA)] implement VQF-compliant GwG file listing (Florian Dold)
- 0009875: [exchange AML backoffice (SPA)] FORM_IDs for challenger forms (sebasjm)
- 0009639: [exchange] spec and implement transaction risk monitoring (Florian Dold)
- 0009905: [exchange AML backoffice (SPA)] cannot enter multi-line values in context (sebasjm)
- 0009777: [exchange AML backoffice (SPA)] implement derived properties (sebasjm)
- 0009677: [exchange AML backoffice (SPA)] force manual AML_INVESTIGATION_STATE on 'other' (sebasjm)
- 0009778: [exchange AML backoffice (SPA)] implement derived events (sebasjm)
- 0009736: [exchange AML backoffice (SPA)] Design change (?): need to be able to provide context when adding measure (sebasjm)
- 0009810: [exchange AML backoffice (SPA)] wild form for custom measure (sebasjm)
- 0009877: [exchange AML backoffice (SPA)] MROS confirmation required without MROS event? (sebasjm)
- 0009906: [exchange AML backoffice (SPA)] "add custom measure" does not actually add the measure to active measures (sebasjm)
- 0009866: [exchange KYC SPA] missing obvious validations to the vqf forms (sebasjm)
- 0009868: [exchange AML backoffice (SPA)] wizard forget the values when moving in and out the section (sebasjm)
- 0009940: [deployment and operations] migrate pre 1.0 deployments to 1.0 setup (Christian Grothoff)
- 0008614: [libeufin-bank] allow different fee classes for cashout (Antoine A)
- 0009945: [merchant backoffice SPA] better error message when there is no wire transfer delay (sebasjm)
- 0009935: [wallet (iOS App)] updated all outdated screenshots and keep them up-to-date (MarcS)
- 0009934: [wallet (all platforms)] (re-)design currency selection in cta-withdraw wallet dialogue (vlada.svirsh)
- 0009932: [wallet (iOS App)] iOS wallet should use "withdraw from bank" instead of plain "withdraw" on cta-withdraw (MarcS)
- 0009930: [deployment and operations] test backups also on rusty (Florian Dold)
- 0009926: [exchange] Fix incorrect SQL statement, parameters and callback signature in exchangedb/pg_select_withdrawals_above_serial_id.c (Christian Grothoff)
- 0009922: [libeufin-nexus] get wallet tests to work with libeufin (Florian Dold)
- 0009053: [exchange] add support for automated sanction list processing [4d] (Christian Grothoff)
- 0009900: [auditor] Adapt auditor/taler-helper-auditor-coins to new refresh (Christian Grothoff)
- 0009819: [libeufin-bank] cannot cashout (Antoine A)
- 0008351: [Web site(s)] Get screenshots from the latest actual mobile apps and the CHF exchange just before going live (MarcS)
- 0009334: [wallet-core] wallet does not automatically handle expired pay-merchant transactions, payment-expired test also only handles manual case (MarcS)
- 0009646: [documentation] Merchant authentication/token API not (fully documented) (schanzen)
- 0009536: [wallet (WebExtension)] two CHF exchanges and weirdness everywhere (also: global vs. regional exchange settings borked) (sebasjm)
- 0009007: [wallet (iOS App)] iOS wrongly reports a network failure when wallet-core cancels a long-poll network call (~ 4-6 hours) (MarcS)
- 0008999: [libeufin-bank] Set limits to all variable size user inputs (Antoine A)
- 0009873: [merchant backoffice SPA]
kyc is not yellow while the kyc is still pending(sebasjm) - 0009943: [merchant backoffice SPA]
Webhook creation page has different event types and fields than webhook edit/update page(sebasjm) - 0009713: [wallet (WebExtension)]
on invoice: QR code should be shown by default(sebasjm) - 0009728: [wallet (WebExtension)]
qr code should be shown by default in P2P(sebasjm) - 0009858: [wallet (Android App)]
migrate qtart away from legacy Maven publishing API(avalos) - 0009947: [exchange]
search_path does not work for some triggers(Christian Grothoff) - 0009946: [wallet (Android App)]
No info if QR already was claimed by another wallet(avalos) - 0009933: [wallet (Android App)]
Android wallet should use "withdraw from bank" instead of plain "withdraw" cta-withdraw(avalos) - 0009944: [exchange]
secmod pthread_detach is unclean(Christian Grothoff) - 0009923: [deployment and operations]
uptimekuma failed to alert when we took spec down(Christian Grothoff) - 0009939: [merchant-pos-terminal (Android App)]
Update dependency for QR code recognition on PoS app(Bohdan)
11 of 48 issue(s) resolved View Issues
Scheduled For Release 2025-06-30
Last-minute changes for GLS public beta
- 0009929: [merchant backend] improve onboarding flow
- 0009892: [merchant backend] make retry timeouts in taler-merchant-kyccheck configurable for better testability (Florian Dold)
- 0009942: [wallet-core] node implementation of dns lookup broke my internet
- 0009756: [deployment and operations] alertmanager in ansible-taler-exchange
- 0009890: [exchange] exchange has no API for AML officer to get default rules
- 0009815: [merchant backend] Backend as a Service (EASE) durch GLS Bank: self-provisioning / Erfassung von Email Adresse und Telefonnummer
- 0009764: [deployment and operations] ansible deployment scripting for GLS
- 0009641: [deployment and operations] create ansible playbook for deploying GLS prod locked down base system
- 0009941: [deployment and operations] enable hack to migrate BFH from CHF to CHFᛒᚠᚺ (or CHFB) (Florian Dold)
- 0009931: [wallet (Android App)] Protect access to Android wallet (avalos)
- 0009920: [merchant backend] Auto-update not working for debian apt findout why and fix it (Bohdan)
- 0009572: [exchange AML backoffice (SPA)] automatic logout (sebasjm)
- 0009647: [merchant backend] Scope in tokens / authorizations needs rework (schanzen)
- 0009556: [specification] address merchant auth token weirdness (schanzen)
- 0009620: [merchant backend] Restrict public instance access and replace token-based authentication with username and password
- 0009754: [merchant backoffice SPA] admin should be able to reset/change password of other instances (sebasjm)
- 0009724: [wallet (iOS App)] Use FaceID/TouchID to enable using the app (MarcS)
- 0009258: [wallet (Android App)] Informationen über erfolgreiche Aufladung / Information about successful top-up (avalos)
- 0009257: [wallet (all platforms)] Cancellation of the e-money contract / Kündigung des E-Geld Vertrages (MarcS)
0 of 19 issue(s) resolved View Issues
Scheduled For Release 2025-07-31
Subscriptions and discount tokens
0 of 2 issue(s) resolved View Issues
Scheduled For Release 2025-08-31
User experience
- 0009613: [merchant backend] View total revenue from Orders (Christian Grothoff)
- 0009361: [merchant backend] transaction overviews for the merchants / Abrechnung für die Händler*innen (Damian Pilka)
- 0009078: [merchant backend] Default wire transfer delay should be absolute (how)
- 0007948: [merchant backoffice SPA] add pagination API for inventory management
- 0008989: [merchant backoffice SPA] Better pagination in merchant SPA
- 0009055: [merchant backoffice SPA] Merchant SPA is not mobile-friendly
- 0009619: [merchant backoffice SPA] Move add Orders button on top of the page
- 0009681: [merchant backoffice SPA] while viewing order details page, SPA does not long-poll, shows stale data
- 0009177: [merchant backoffice SPA] guide the merchant trought the bank account activation
- 0009772: [merchant backoffice SPA] template "print" button
- 0009766: [merchant backoffice SPA] merchant pop-up with KYC-auth wire transfer instructions lacks QR codes
- 0009741: [merchant backoffice SPA] Different quick editing for products with finite and infinite stock
- 0009499: [merchant-pos-terminal (Android App)] need easier way to activate account
- 0009515: [merchant backoffice SPA] QR code for PoS setup
- 0009748: [merchant backend] improve selection of bank account on order creation
- 0009511: [merchant backend] Add product_name field
- 0009148: [merchant backend] merchant should have a default refund deadline
- 0009360: [merchant backend] consider computing refund deadline based on payment deadline, not order creation timestamp
- 0009454: [merchant backend] import transaction settlement data from exchange without wire transfer confirmation
- 0009038: [merchant backend] fix category CRUD api
- 0007949: [specification] unified set of parameters for endpoint with pagination
- 0009525: [merchant backoffice SPA] 'Passwort' instead of 'Zugangstoken' in Merchant Backend (Stefan)
0 of 22 issue(s) resolved View Issues
Scheduled For Release 2026-03-01
Features that are not in scope for 1.0 but we still want to keep track of.
- 0009949: [merchant backend] Add control to exclude domains and IP-ranges for webhooks
- 0009853: [exchange] nginx gives 499 when long polling
- 0009370: [wallet (all platforms)] bank dialects: netzbon
- 0009017: [other] test exchange business shutdown procedure, support alert in wallets
- 0006396: [libeufin-nexus] Implement FinTS
- 0006269: [libeufin-sandbox] sandbox should emit c52/c53 more like real banks do
- 0006893: [libeufin-sandbox] Camt reports should respect time "chunking".
- 0006268: [libeufin-sandbox] sandbox should support balances in c52/c53
- 0007506: [libeufin (general)] Add helpers to generate test data.
- 0006397: [documentation] write a good README(.md) file for LibEuFin
- 0007344: [libeufin-bank] withdraw target unclear
- 0006400: [libeufin-nexus] consider doing faster re-tries for some scheduled operations
- 0006563: [documentation] document recommended rules for wallet's auto-refresh
- 0007509: [documentation] libeufin-sandbox API doc lacks response status codes.
- 0006399: [libeufin-nexus] review and document date/time/timezone handling
- 0007592: [documentation] libeufin-sandbox implementation of Taler Bank Access API may omit HTTP status codes.
- 0005962: [libeufin-nexus] find out details about EBICS case sensitivity
- 0007507: [libeufin-sandbox] EBICS management spans two API routes.
- 0006698: [libeufin (general)] general code cleanup required
- 0006547: [libeufin-nexus] Offer raw EBICS upload for any message.
- 0005955: [libeufin (general)] use EBICS return codes from EBICS spec, make sure correct codes are returned
- 0006962: [libeufin (general)] CAMT reports need more structure to specify negative balances.
- 0007569: [libeufin-sandbox] EBICS error codes should be fetched from the enum defined in Util.
- 0006243: [libeufin-sandbox] sandbox filtering on EBICS date range is missing in C53 requests
- 0006364: [libeufin (general)] Comments style.
- 0007116: [libeufin-nexus] payment bouncing fee should be configurable
- 0007339: [wallet (WebExtension)] withdrawal triggered on insufficient balance does not work in demo (due to fees)
- 0005973: [libeufin-bank] report more information about a user's state
- 0009884: [exchange] AML programs should receive requested config values from the exchange
- 0006664: [documentation] clarify normalization algorithm of contract terms and backup blob
- 0008740: [wallet-core] wallet core should return more specific error codes for failed HTTP requests [scope-unclear]
- 0009697: [wallet (Android App)] Add bank accounts management shorcut in settings
- 0007886: [wallet-core] consider adding log categories instead of file-based log tags
- 0008268: [wallet-core] consider surfacing more information about transaction-related retries to UIs
- 0008624: [libeufin-bank-ui (SPA)] need account setup meta-SPA
- 0008775: [wallet-core] consider allowing all non-final wallet-core states to be suspended/resumed
- 0009019: [specification] clarify usage of currency specification
- 0009606: [exchange] consider also running AML measure program after form/attribute submission by AML officer
- 0008827: [wallet (Android App)] Fastline app description translation missing on Weblate
- 0008662: [wallet-core] implement background task to validate future exchange denominations / signing keys early
- 0009686: [qtart] add build flag to disable libcurl support in quickjs-tart
- 0009679: [exchange AML backoffice (SPA)] consider supporting multi-nationality / multi-country in risk assessment in VQF 902.4
- 0009615: [merchant backend] Auto-Generate IDs for forms
- 0007598: [wallet-core] review and revise backup APIs
- 0008033: [other] i18n langs should not be part of the js bundle
- 0008468: [deployment and operations] regio: consider configuring a systemd timer to re-run taler-exchange-offline
- 0008004: [wallet-core] wallet core should accept prepare a transaction when there is no network
- 0005972: [libeufin-nexus] Avoid sending signed data before key exchange
- 0006073: [libeufin-nexus] serialize some transaction state to the database
- 0007658: [qtart] support threaded crypto workers
- 0006800: [wallet-core] wallet should support link protocol (for double spend error recovery after restore from backup)
- 0005947: [libeufin-bank] spec and implement proper generation of EBICS Host "OrderID"
- 0007719: [wallet (WebExtension)] withdraw call to action should check if mobile withdrawal has been initiated
- 0006558: [wallet-core] transaction item for "lost coins due to expiration" needed
- 0007298: [wallet-core] wallet should allow optionally specifying (and remembering) sender information for p2p payments
- 0007866: [wallet-core] transactions should keep some history data
- 0007850: [wallet-core] aborting: "revive" or "resurrect" back to pending
- 0006077: [wallet-core] sync support needed in wallet core
- 0006614: [wallet-core] consider using JSON-RPC instead of custom, slightly different format
- 0006505: [wallet-core] define UX and API for "global errors/notifications"
- 0006582: [wallet-core] checking for refunds of a purchase should be possible from within the wallet
- 0006039: [wallet-core] consider using underscores for the "public API" exposed by wallet-core
- 0007841: [specification] merchant should require wallet to accept or reject refund
- 0009927: [libeufin (general)] make dist creates non-standard names
- 0009898: [exchange] Parent issue for cleanup tasks post withdraw refactor and new refresh protocol
- 0009828: [exchange] Redesign recoup to accomodate for changes in withdraw and refresh API's
- 0007868: [wallet-core] recoup transaction not spec'ed in DD37
- 0006565: [wallet-core] wallet should try recoup when payment fails with certain error codes
- 0009901: [exchange] Adapt testing/test_exchange_api_twisted to new melt/reveal API
- 0009899: [exchange] Rewrite exchangedb/test_exchange_db.c
- 0009902: [exchange] util: phase out TALER_cs_withdraw_nonce_derive
- 0009924: [auditor] strange valgrind failure in auditordb plugin
- 0009921: [release] improve check-prebuilt
- 0009761: [wallet (Android App)] android wallet should show kycPaytoHash in dev mode for transaction with pending KYC
- 0009497: [libeufin-bank-ui (SPA)] Taler Bank SPA translation into German [May 2025]
- 0009396: [wallet (iOS App)] Adding a known account during deposit create a navigation maze
- 0008859: [merchant backend] it should honor age restriction from template
- 0009406: [documentation] documentation for various hash codes are lacking details
- 0009388: [documentation] Add semver information to REST-API endpoints
- 0008916: [libeufin-bank] Idle logout of demo bank website
- 0008383: [wallet (iOS App)] complete accessibility
- 0008894: [wallet (iOS App)] Pull-to-Refresh (if no pending transactions exist)
- 0009353: [wallet-core] check denomination revocation logic
- 0008943: [wallet-core] integration test for recoup-refresh is incomplete
- 0009828: [exchange] Redesign recoup to accomodate for changes in withdraw and refresh API's
- 0008384: [wallet (iOS App)] Localization
- 0007448: [wallet-core] wallet operation that receive amount in the request should specify if the amount include fee
- 0008734: [wallet (WebExtension)] bulk deletion
- 0009893: [wallet-core] purge old withdrawal/refresh protocol code from wallet-core
- 0009829: [other] move buildPaginatedResult to util in taler-typescript-core.git
- 0009887: [exchange AML backoffice (SPA)] we need a place for the VQF reporting in the UI
- 0009820: [wallet-core] Inconsistentcy in denominations with and without age restrictions during refresh
- 0009913: [exchange KYC SPA] inline translations for vqf forms in form definitions
- 0009831: [wallet (Android App)] Android wallet should show state and error message for exchange entries
- 0009882: [deployment and operations] use challenger converters from the exchange instead of ansible
- 0009386: [auditor (SPA)] account for bank wire transfer fees (incoming/outgoing)
- 0009141: [auditor (SPA)] Auditor SPA (reserve) reporting is missing important values
- 0009862: [wallet (iOS App)] Copy+paste of paytoUri produces twice percent-encoded string on iOS 18.x
- 0009760: [wallet (iOS App)] iOS wallet should show kycPaytoHash in dev mode for transaction with pending KYC
- 0009835: [wallet-core] peer push payment initiation should fail when exchange entry is not in a ready state
- 0009812: [wallet-core] wallet-core request confirmPay should not wait for payment success
- 0009807: [quality checkpoint] QC wallet protocol version handling
- 0009859: [taler-harness] extend balance threshold test with handling of multiple / subsequent balance thresholds, "verboten" limits
- 0009785: [wallet (all platforms)] Unfinished transactions in history should lead to respective flows
- 0009790: [wallet (WebExtension)] Unfinished transactions in history should lead to respective flows
- 0009670: [wallet (all platforms)] More reactive payment flows flows
- 0009885: [exchange] AML programs should validate the FORM_ID and form attributes
- 0009814: [taler-harness] harness tests should clean up processes more thoroughly after test failure
- 0009879: [exchange] voluntary measures not implemented
- 0009048: [exchange] introduce a default check and support vATTEST API [4h]
- 0009908: [libeufin-bank-ui (SPA)] consider asking for name in wire transfer form of the libeufin bank
- 0009907: [exchange AML backoffice (SPA)] AML SPA does not show full AML decision impacts in terms of measures
- 0009626: [taler-harness] Add planchet collision tests to harness
- 0009895: [wallet (all platforms)] write DD to harmonize handling of unfinished payment transactions
- 0009896: [wallet-core] muliple pending tx on the wallet
- 0009897: [wallet (all platforms)] Encrypt mobile database
- 0009874: [exchange] measures do not always have to have PROGRAMS
- 0009867: [deployment and operations] rusty does not show up properly on monitoring
- 0009842: [deployment and operations] improve packaging-ng
- 0009864: [merchant backoffice SPA] space not tolerated in IBAN
- 0009837: [wallet-core] consider implementing dev experiment to fake currency specifications
- 0009830: [wallet (Android App)] in Android wallet, user should have to confirm after scanning a dev-experiment QR code
- 0009834: [wallet (all platforms)] wallets should show spinner / animation in pending state
- 0009825: [exchange KYC SPA] support VQF form 902.12 (foundations)
- 0009826: [exchange KYC SPA] support VQF 902.15 (life insurance)
- 0009827: [exchange KYC SPA] support VQF form 902.13 (trusts)
- 0009817: [merchant backend] Backend as a Service (EASE) durch GLS Bank: self-provisioning / Prozess für Passwort Change
- 0009816: [merchant backend] Backend as a Service (EASE) durch GLS Bank: self-provisioning / Validierung von Email Adresse und Telefonnummer
- 0009811: [wallet (all platforms)] Support pagination / infinite scrolling
- 0009818: [documentation] Point-of-Sales App documentation not helpful for setup
- 0007561: [qtart] make taler-wallet-cli runnable under qtart
- 0007698: [qtart] qtart should support opening a unix domain socket for the daemonized wallet
- 0009801: [wallet (all platforms)] Add P2P mailbox payment request support
- 0009802: [mailbox] Mailbox should honor a delivery period
- 0009523: [other] Allow connecting the merchant backend to the bank revenue API via token in URI
- 0009644: [libeufin-bank-ui (SPA)] bank ui should support listing and revoking tokens
- 0009770: [merchant backend] merchant backend kyc state doesn't wait for longpolling
- 0009793: [exchange] whe there is a missing attr in the context the exchange doesn't inform about it
- 0009782: [merchant backoffice SPA] The Taler logo at the top of the page is not perfectly centered within the top bar. Instead, it appears to be centered relati
- 0007981: [libeufin-bank-ui (SPA)] pressing enter should move to the next field
- 0008874: [sandcastle (containerized demo deployment)] host systemd service should have health check for successful provisioning inside container
- 0007807: [documentation] document conventions/guidelines for source-level dependencies (i.e. prebuilt branches and submodules)
- 0008829: [wallet-core] wallet-core should handle deleted coins in deposit groups gracefully [5h]
- 0009206: [specification] nirvana for regional currency setup
- 0009774: [wallet-core] Extra property log file entries (1)
- 0006951: [documentation] document state machine for payment process
- 0008232: [other] tooling to remove duplicated config options
- 0008378: [wallet (iOS App)] Payment: Detail view should show deadlines
- 0008319: [libeufin-nexus] Unify Depo/Nexus schema and use a common wire gateway implementation
- 0008881: [wallet-core] add better/high-level wallet-core request to check B-i withdrawal status
- 0009567: [wallet-core] wallet-core should also report pay-merchant transactions in dialog state
- 0009033: [wallet (Android App)] Investigate wallet app performance
- 0009026: [libeufin-bank] Support memory-hard password hashing method
- 0009222: [wallet (Android App)] interface between Android wallet and other apps should be documented
- 0008748: [wallet-core] Transactions should always include an Exchange info [2h]
- 0008868: [wallet-core] consider throttling concurrency in shepherd and refresh groups [3h]
- 0008258: [wallet-core] consider providing fluent interface for amount/date types, review date and amount type hierarchy [12h]
- 0005936: [libeufin-sandbox] version / revision / other globals / should be available from context
- 0007997: [libeufin-bank] user should create admin account to setup libeufin bank
- 0008576: [wallet-core] handle change of master public key (as well as currency, fees, ...) gracefully [estimate: 8d+]
- 0009010: [libeufin-nexus] Payments status API
- 0009081: [wallet (Android App)] Missing taxes information for order
- 0009020: [wallet (Android App)] Unify progress bar handling
- 0008687: [documentation] Taler Ops WWW uses Bitmaps (PNGs) where SVGs would be more applicable
- 0009100: [wallet (WebExtension)] Styling in "GET DIGITAL CASH" flow is inconsistent
- 0008379: [wallet (iOS App)] link payment and refund (~ 1 day)
- 0009749: [wallet (Android App)] Error messages layout implementation
- 0009287: [taler-harness] implement DB migration tests for libeufin (and others) in taler-harness
- 0007903: [wallet-core] expose details about the amount lost (or final effective cost) after aborting transactions [16h]
- 0008248: [wallet-core] get wallet-core codebase ready for code review [60+h]
- 0009593: [wallet-core] Revisit lazy denomination validation logic [1-2d]
- 0009763: [wallet (iOS App)] iOS wallet should show the *raw* amount as the maximum depositable amount
- 0007699: [wallet-core] wallet should support different types of instructed amounts (before and after fees)
- 0007806: [wallet (Android App)] Lots of 'complaints' when compiling wallet
- 0006696: [documentation] discuss better structure for LibEuFin docs
- 0008310: [libeufin-nexus] does ebics-submit support DB notification?
- 0008375: [taler-harness] implement test for exchange that changes its currency
- 0009566: [wallet (WebExtension)] iOS wallet should show unconfirmed pay-merchant transactions and allow confirming later
- 0009460: [libeufin-nexus] General EBICS client
- 0007273: [exchange] taler-bank-benchmark should be able to launch libeufin [4h]
- 0009251: [wallet-core] increase max retry timeout for exchange entry when not required by any active tranaction [5h]
- 0008982: [wallet-core] refactor DB transactions [5+d]
- 0008437: [wallet-core] implement tests for transaction filtering [estimate: 3h]
- 0007988: [wallet-core] clean up TypeScript declarations and parsers for protocol types
- 0008546: [specification] design new wallet onboarding screen
- 0008633: [specification] specify metrics and health checks we want for Taler server-side components [estimate: 6h]
- 0009500: [libeufin-bank] desire to print to PDF
- 0009542: [wallet (all platforms)] transaction history weirdness
- 0009277: [other] harness should be able to simulate kyc
- 0009696: [wallet-core] support for pending kyc on bank accounts
- 0009654: [wallet-core] add TOPS and NetzBon exchange to builtin exchanges in wallet-core
- 0009329: [wallet-core] wallet-core should support shopping URL
- 0009276: [exchange] Exchange should expose internal transitions/events on KYC accounts [design-required]
- 0008742: [wallet (all platforms)] i18n for all wallets [ongoing]
- 0008848: [wallet-core] hide network errors for refresh transactions outside dev mode, show instead in dependent transactions [4h]
- 0009699: [wallet (WebExtension)] Warn before forgetting a bank account
- 0009698: [wallet-core] Detect bank account duplicate
- 0007998: [wallet-core] Accountless registration broken repurchase detection for GNS delegations
- 0007916: [wallet-core] support STEFAN parameters [estimate: 20h]
- 0008014: [wallet-core] optimize denomination selection by using denomination families
- 0009595: [wallet (WebExtension)] In the Firefox Wallet, no menu to add a new Exchange in the normal settings.
- 0008172: [libeufin-bank-ui (SPA)] import payto URI should allow QR codes
- 0008270: [wallet (WebExtension)] currency is not sticky
- 0008271: [merchant backoffice SPA] merchant backend SPA detail view page for an order does not long-poll
- 0008029: [merchant backoffice SPA] when showing order details, SPA should update when order status changes
- 0007309: [libeufin-bank-ui (SPA)] improve language switcher integration
- 0007434: [wallet (WebExtension)] icons in transaction history unclear
- 0007518: [wallet (WebExtension)] search transaction
- 0008942: [libeufin-bank-ui (SPA)] check /config when doing a request to account-info-endpoint returns 400 [4hs]
- 0008682: [wallet (WebExtension)] WebExtension on chrome spell-checks entered taler://-URIs
- 0008767: [wallet (WebExtension)] observavility events: add a filter to show events trigger by actions called in the current screen. [6hs]
- 0008642: [specification] design document for extend access token API
- 0009067: [wallet (WebExtension)] importing a function breaks the taler support
- 0009663: [exchange AML backoffice (SPA)] we shoud be able to access the handler directly
- 0009729: [exchange KYC SPA] maximum upload size is 16 MB
- 0009568: [wallet (WebExtension)] webext wallet shows "already claimed" for a short time before showing article after purchase
- 0009642: [merchant backoffice SPA] backend SPA should have option to show raw contract terms on order status
- 0009342: [libeufin-bank-ui (SPA)] Support locked account and token creation 2FA challenges
- 0009551: [exchange KYC SPA] 502 snack bar remains even after error was cleared
- 0008526: [wallet-core] parsing taler:// and payto:// should also get errors
- 0009032: [wallet (WebExtension)] review labels on transaction details screen
- 0009690: [wallet (WebExtension)] Aborting a P2P payment does nothing in the UI
- 0009758: [wallet (WebExtension)] tried to add TOPS exchange to WebExtension and failed
- 0009771: [taler-harness] harness should not use deprecated /instances/admin/* endpoints
- 0009775: [documentation] Write a design document on payment sharing/repurchase/replay from the wallet perspective
- 0009773: [merchant backend] Duplicate bank accounts
- 0009776: [exchange] add support the statistic of many events in the same request
- 0009028: [wallet-core] Fee computing should accept an optional bool 'amountIsNet' parameter
- 0009050: [wallet-core] Implement checkDeposit with gros/net switch
- 0008866: [wallet-core] consider garbage-collecting expired merchant payment transactions in state `dialog(proposed)`
- 0009671: [wallet (iOS App)] internal error on first withdraw...
- 0008134: [wallet-core] wallet-core should use typed HTTP client implementations [estimate: 20h]
- 0008337: [specification] Review/revise Section 4.4 of DD35
- 0009004: [documentation] document wallet-browser integration
- 0009080: [wallet (WebExtension)] Missing taxes information for order
- 0007452: [wallet-core] extend GetExchangeTos wallet operation to be reuse for backup or auditor
- 0009412: [sandcastle (containerized demo deployment)] add a status.html which list all the components with status + version
- 0008594: [wallet-core] do consistency checks when updating denominations
- 0008688: [wallet-core] wallet doesn't validate exchange signing keys, doesn't use them much [estimate: 5h]
- 0008538: [wallet-core] consider removing exchange details pointer in the wallet-core DB
- 0007558: [qtart] bundle TLS CA certs and re-enable TLS peer+host verification for libcurl HTTP client implementation
- 0007855: [wallet-core] All transactions should have a separate "finished" timestamp, sorting should be possible by this finished timestamp
- 0009650: [other] AML forms for trusts (vqf_902_13) and foundations (vqf_902_12)
- 0009557: [wallet-core] consider automatically contacting global/regional exchanges from merchant contract terms
- 0007485: [wallet (WebExtension)] check navigator.share and share_target for adoption
- 0007951: [merchant backoffice SPA] make merchant backend truly multi-currency capable
- 0008963: [wallet (iOS App)] implement mock banking app for iOS to demonstrate wallet integration
- 0009691: [wallet (WebExtension)] Better network issue UI
- 0007978: [wallet-core] store transaction events when changing transaction details
- 0006977: [wallet-core] make wallet-core more resistant against node supply chain attacks
- 0007847: [wallet-core] DoS when all wallet try to refresh coins at the same time
- 0008441: [wallet-core] wallet-core should long-poll withdrawal operation *and* reserve at the same time
- 0008652: [merchant-pos-terminal (Android App)] same amounts can have different fees
- 0007726: [sandcastle (containerized demo deployment)] sandcastle should run services on unix domain sockets instead of ports
- 0009014: [libeufin-bank-ui (SPA)] export activity log
- 0006248: [libeufin-nexus] test error handling during subscriber initialization
- 0006259: [libeufin-nexus] error log in database
- 0009089: [deployment and operations] remove netzbon relicts from main.sh
- 0008690: [wallet-core] reinstate balance from denom-loss transactions when denomination becomes available again
- 0008589: [wallet-core] do GANA pass over wallet-core [estimate: 12h]
- 0008769: [specification] document possible error codes in wallet-core API docs
- 0007952: [merchant backoffice SPA] implement dd51
- 0007848: [wallet-core] wallet-core should return maximum expiration time for purse based on available coins
- 0008710: [wallet-core] validate exchange coin history [estimate: 8h]
- 0007593: [qtart] implement TALER_WALLET_destroy
- 0008543: [wallet (Android App)] Implement wallet-core integration tests as unit/UI tests.
- 0006588: [wallet-core] wallet-core should support range queries for the transactions list
- 0008651: [merchant-pos-terminal (Android App)] Refund doesn't show in payment history
- 0009093: [wallet (WebExtension)] show spinning wheel in webextension wallet when waiting for background task
- 0007780: [taler-harness] taler-harness lint should check exchange ToS markdown syntax
- 0007321: [wallet-core] "pnpm install" complains about unmet peer dependencies
- 0008318: [wallet-core] Improve the security of P2P send
- 0009720: [sandcastle (containerized demo deployment)] add showDemo in settings
- 0009688: [wallet (Android App)] P2P push not network improve UI
- 0009689: [wallet (Android App)] P2P pull not network improve UI
- 0009565: [wallet (WebExtension)] Webext wallet should show unconfirmed pay-merchant transactions and allow confirming later
- 0009540: [exchange AML backoffice (SPA)] AML SPA throttled?
- 0009190: [wallet-core] Check P2P-Expirations more often
- 0008988: [merchant backoffice SPA] Better handling of large images in product creation
- 0009700: [wallet (Android App)] Allow scanning QR code from file
- 0005953: [libeufin (general)] generate code documentation with Dokka
- 0009721: [deployment and operations] Improve Taler systemd service security
- 0009586: [wallet-core] remove obsolete userAttention APIs
- 0009249: [wallet-core] improve performance of backwards transaction iteration
- 0008178: [documentation] specify and document AML SPA configuration in exchange handbook
- 0009516: [merchant backoffice SPA] Verification OTP
- 0009442: [libeufin-bank-ui (SPA)] cash acceptor flow
- 0009508: [merchant backoffice SPA] Delete confirmation
- 0007484: [wallet (WebExtension)] Usability problem with Bitcoin amounts
- 0006721: [libeufin-nexus] consider a way to synchronize the row_id with the TWG
- 0008954: [release] Non-systemd reliance
- 0007854: [qtart] strip absolute pathname from stacktraces
- 0008253: [documentation] Translation into Spanish of tutorial-videos.git
- 0007881: [wallet (WebExtension)] make Wallet Web Extension compatible with Tor private browsing
- 0009562: [specification] Add a batch transfer endpoint to the Wire Gateway API
- 0009248: [merchant-pos-terminal (Android App)] Provide tax information in Point-of-Sales app
- 0009693: [wallet-core] clause-schnorr support untested and likely incomplete
- 0009121: [auditor (SPA)] remove *some* "suppress" buttons
- 0009187: [exchange KYC SPA] export information about context requirements for each KYC form
- 0009476: [wallet (Android App)] TOTP authenticator app with support for Taler amounts
- 0008947: [libeufin-bank-ui (SPA)] fix public accounts page
- 0009018: [documentation] document (new) NFC communication approach between apps
- 0008006: [wallet (WebExtension)] Accessibility Taler demo website
- 0008842: [wallet (WebExtension)] add support for safari
- 0008586: [Web site(s)] Weblate Spanish translation - Taler Systems - 0%
- 0008901: [wallet (Android App)] Create Buildbot test/deployment pipeline for the Android wallet (and other apps) [estimate: 8h]
- 0008964: [wallet (Android App)] implement mock banking app for Android to demonstrate wallet integration
- 0008137: [Merchant frontends (Python3)] simplify merchant frontend order creation
- 0008899: [merchant backend] merchant backend should support bearer token authentication when talking to the bank
- 0009315: [auditor] need tests for auditor KYC support
- 0008995: [merchant backend] consider adding timing information to PoS confirmation codes
- 0009284: [exchange] inefficient web serving in exchange mhd_spa
- 0009027: [exchange] expose measures that have been triggered to AML staff [1d]
- 0009747: [merchant backend] SPA should warn when adding a bank account of a type that no trusted exchange supports
- 0009746: [merchant backend] improve error reporting when order can't be created due to wire method mismatch
- 0009441: [documentation] Protocol version missing in public documentation
- 0009247: [quality checkpoint] When ToS change in the Exchange, the user must be notified
- 0009723: [exchange] exchange should set cache-control headers on GET requests to 'no-store' disable caching in some cases
- 0009710: [exchange] post-kyc redirect is suboptimal
- 0009662: [deployment and operations] set up ufw for persistent blocking on firefly
- 0009702: [exchange] Broken SQL-logic in do_melt skips over nonce-reuse detection
- 0009703: [exchange] taler-exchange-wire-gateway-client --debit-history fails with 404
- 0009706: [specification] expose instance settings e-mail via contracts to customers
- 0009668: [exchange] Potentially change the SQL versioning framework to use schema scopes for versions
- 0009658: [exchange] expose customer statistics to AML SPA
- 0009627: [exchange] bootstrap fails when submodules were renamed, should improve error message
- 0009611: [merchant backend] Increased products images size support: From 1MB to 5MB
- 0009573: [exchange] exchange kyc-check should support long-polling for withdrawals over specified amount
- 0009510: [merchant backend] Products filtering, sorting and searching
- 0008761: [sandcastle (containerized demo deployment)] sandcastle should integrate Woocommerce and Joomla demonstrators
- 0009502: [deployment and operations] migrate weblate to firefly
- 0009457: [merchant backend] scary comment about double payment
- 0009453: [merchant backend] enable data export
- 0009436: [auditor] early_aggregation table lacks REST API for inspection
- 0009316: [auditor] pending deposits not exposed via REST API
- 0009433: [auditor] auditor database garbage collection not implemented
- 0009419: [exchange] some exchange database interactions lack transaction scopes
- 0009373: [exchange] batch_ensure_coin_known not yet used [2d]
- 0009407: [exchange] definition for various hash codes are lacking details
- 0009049: [exchange] fakebank: support Extended Wire Gateway API
- 0009207: [merchant-pos-terminal (Android App)] QR code generation reported as 'too slow'
- 0008785: [deployment and operations] Update taler repository - Can't upgrade packages on anastasis.lu
- 0008036: [Web site(s)] CSP shared between many *.taler.net-sites, should be made specific to each subdomain
- 0009091: [deployment and operations] [regional currencies] required answers should be marked as such.
- 0008858: [deployment and operations] Warning when git pushing, related with Python version
- 0008229: [sandcastle (containerized demo deployment)] systemd timer to update exchange keys via taler-exchange-offline
- 0008770: [specification] add taler error code in merchant/exchange spec
- 0007707: [wallet-core] wallet should not allow certain operations if offline
- 0007426: [Web site(s)] "public-accounts" link points at bank's homepage
- 0007960: [documentation] taler-merchant-demos doesn't document config options
- 0007985: [libeufin (general)] Not possible to generate unindented XML strings.
- 0007950: [specification] add subject search to the transfer list endpoint
- 0008440: [Web site(s)] Add news section on the NGI Taler page to have links to news items related to the project (hga3)
- 0008476: [documentation] regio: improve user manual with detailed steps after installation (vlada.svirsh)
- 0009651: [merchant backend] When changing the instance password we may want to revoke old access tokens (schanzen)
- 0009762: [wallet (WebExtension)] webext wallet should show kycPaytoHash in dev mode for transaction with pending KYC
- 0009869: [exchange KYC SPA] form should only include valid fields (sebasjm)
- 0009838: [wallet-core] Clean P2P lifecycle (Antoine A)
- 0009823: [wallet-core] Refactoring and cleaning (Antoine A)
- 0009824: [wallet-core] Refactor transaction common logic (Antoine A)
- 0009821: [wallet-core] Refactor notifications handling (Antoine A)
- 0009822: [wallet-core] Refactor http impl (Antoine A)
- 0009800: [wallet (all platforms)] Allow alias registration and discovery through taler directory. (schanzen)
- 0008302: [deployment and operations] Current monitoring tools - Write documentation (dvn)
- 0008922: [wallet (iOS App)] allow retrying after scanning (peer-push-credit) QR code (MarcS)
- 0008923: [wallet (Android App)] allow retrying after scanning (peer-push-credit) QR code (avalos)
- 0009645: [libeufin-bank] Lock account on password auth failure (Antoine A)
- 0009547: [sandcastle (containerized demo deployment)] deploy up joomla in sandcastle-ng (dvn)
- 0009546: [sandcastle (containerized demo deployment)] deploy up woocommerce in sandcastle-ng (dvn)
- 0008980: [deployment and operations] lcov.taler.net is very outdated (schanzen)
- 0008160: [wallet-core] Wallet UI: translation of UIs to DE/FR/IT [post-1.0] (Stefan)
- 0008711: [libeufin-nexus] get nexus to work with EBICS dialect of Raiffeisen bank (Antoine A)
- 0009422: [exchange] TALER_EXCHANGE_check_coin_conflict_ was never implemented (oec)
- 0009224: [Web site(s)] add list of exchange operators to web site (Stefan)
- 0008280: [specification] update dd53 with the behavior after payment (MarcS)
- 0008406: [wallet (iOS App)] Let the user copy the DB to the public folder (MarcS)
- 0008112: [merchant backend] Merchant security review (fefe)
- 0008073: [specification] Age restriction support in GNU Taler (oec)
- 0008074: [wallet-core] Add support for age-withraw in wallet-core (oec)
- 0008680: [deployment and operations]
CI projects not always picking up latest nightly packages(dvn)
1 of 379 issue(s) resolved View Issues
Scheduled For Release 2026-04-25
- 0009844: [specification] consider improvements for KYC in deposit-to-own-account
- 0007959: [other] taler-merchant-demos don't support full taler config
- 0007858: [other] consider protocol extensions to shift around fees from customer to merchant
- 0008836: [other] pretix integration does not work well with currency conversion
- 0008648: [wallet (all platforms)] Preconfiguration of purposes
- 0005686: [wallet (WebExtension)] Wallet feature request: silent payments.
- 0008109: [exchange] feature request: reference counting is not atomic (fefe)
- 0009355: [libeufin (general)] Enable Certificate Transparency support
- 0008333: [libeufin-bank] do not use login name in x-taler-bank
- 0009732: [wallet (all platforms)] allow user to choose what happens when reserve balance is higher than expected
- 0007721: [sandcastle (containerized demo deployment)] Do not use pip3 with --break-system-packages
- 0008110: [exchange] feature request: library functions should not abort the process
- 0009225: [wallet-core] consider adding wallet feature to upload diagnostics for last $N transaction to service provider after user consent
- 0009336: [libeufin-bank-ui (SPA)] hard to copy from mobile to webpage when they are in the same network
- 0006562: [wallet-core] should wallet-core handle major system clock changes gracefully?
- 0009427: [specification] decide what to do with the "history fee"
- 0009462: [merchant backend] in-band signaling in the log
- 0007316: [wallet-core] Get the 'taler' URI scheme into the HTML spec safe-list
- 0004629: [other] certificates for merchant public keys aren't supported
- 0003946: [wallet-core] storing merchant's key (and more?) in wallet's DB
- 0006954: [merchant backoffice SPA] create sample deployment to test external authentication
- 0007297: [wallet-core] add extension enabled into exchange info/database
- 0007582: [wallet-core] implement user-initiated p2p kyc / KYCed reserve management
- 0006914: [wallet-core] "annual fee for sync service" gets paid by another wallet, original wallet does not update provider status
- 0007433: [wallet-core] wallet does not support invoicing with non-zero purse fees
- 0007677: [wallet-core] consider having a recovery mode for the wallet
- 0007862: [specification] exchange should return some hint about the kyc requirements
- 0007365: [specification] KYC fee is never charged / not speced or implemented
- 0008098: [wallet-core] After b-i-withdrawals, the Exchange should tell wallet-core that a bank supports Taler integration
- 0005830: [merchant backend] implement request tunneling for wallets
- 0007920: [wallet-core] Support for multiple accounts (private KYC, business KYB)
- 0008282: [deployment and operations] different fee structures for demo/test/head
- 0008540: [deployment and operations] automated browser-based testing of the regional currency deployment
- 0008631: [deployment and operations] Fees charged to payer
- 0006439: [wallet-core] wallet should support Anastasis
- 0008519: [merchant backoffice SPA] add test bank account button
- 0006843: [merchant backoffice SPA] every input type can be forgetable, handle UI to add checkbox
- 0007697: [wallet-core] wallet is not GCing denominations
- 0008366: [wallet-core] add support for recurring payments
- 0006556: [wallet-core] have integration tests that mutate signatures to check that implementation checks all relevant signatures
- 0009424: [auditor] taler-auditor-httpd incorrectly returns 404 when HTTP method does not match
- 0009426: [specification] auditor lacks REST API to accept reports from merchants and wallets
- 0008784: [deployment and operations] Write documentation - Anastasis backup program
- 0004379: [wallet-core] error handling: exportable proof of e.g. double spending for auditor
- 0007815: [exchange] exchange should have API to give refunds for purses in peer-pull payments
- 0007917: [exchange] change applicablility of refresh fees
- 0007174: [other] document conventions for HTTP Content-Type, consider allowing (or requiring?) document type versioning
- 0003476: [wallet-core] evil exchange testsuite
- 0005912: [e-commerce integrations] update django-payments/saleor plugin
- 0007884: [exchange] exchange should have tooling to check consistency between DB and crypto helpers
- 0007942: [libeufin-nexus] Design multiple bank accounts handling.
- 0006564: [wallet-core] wallet-core API and UX design for auditor management needed
- 0007271: [exchange] exchange-to-exchange wad transfers are not implemented
- 0007467: [sandcastle (containerized demo deployment)] have more than one exchange in demo
- 0008114: [exchange] review GC logic of exchange
- 0005129: [other] suggest to the appropriate standard(s) to add certificate information to XMLHttpRequest
- 0007671: [exchange] replace positional parameter for named parameters in taler-exchange-offline
- 0008909: [merchant backend] merchant templates v2 should provide info about merchant and supported exchanges before instantiating order
- 0008931: [merchant backend] support listing/querying the wire transfer status from the exchange for orders
- 0008933: [merchant backend] consider reporting errors from the exchange in wire transfer checks
- 0006941: [specification] design protocol / business procedure for validating the owner of an order via the nonce (oec)
- 0008075: [specification] Extensions for GNU Taler (oec)
- 0008001: [exchange] TEH_extension_post_handler: ensure idempotency
- 0007270: [exchange] extension support is not implemented everywhere consistently
- 0008077: [specification] Deposit Policy Extensions (oec)
- 0007999: [exchange] Refine policy fulfillment handling (oec)
- 0008076: [specification] Brandt-Vickrey Auctions (oec)
0 of 67 issue(s) resolved View Issues