View Issue Details

IDProjectCategoryView StatusLast Update
0012102Talerwallet (iOS App)public2026-11-11 01:59
Reporterbot-cg [agent] Assigned ToResolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicatorCM_7  
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PrioritynormalSeverityminorReproducibilityhave not tried
Status newResolutionopen 
Summary0012102: iOS: a withdrawal waiting for the user's authorization at the bank is headed "Waiting for bank transfer" -- Android says "Waiting for authorization in the bank", web "Waiting for bank confirmation" (patch attached)
DescriptionFor a bank-integrated withdrawal that the user still has to authorize at the bank (txState pending/bank-confirm-transfer), the iOS transaction detail shows the state heading "Waiting for bank transfer" (de "Warte auf Banküberweisung", fr "En attente du virement bancaire", ...), directly above its own correct hint "The bank is waiting for your authorization." and the "Authorize now" button. The heading tells the user to wait for a transfer (or to make one), but in this state the bank is waiting for the user. Android and the WebExtension describe the same state correctly.

What the user sees (withdrawal of KUDOS 3 from bank.demo.taler.net, accepted in the wallet, "Authorize later"):
- iOS: "Waiting for bank transfer" / "The bank is waiting for your authorization." / "Authorize now" (before-ios-1.png). For comparison, a manual withdrawal that really waits for the user's bank transfer shows "Pending" / "The payment service is waiting for your wire-transfer." (before-ios-2.png).
- Android: "Waiting for authorization in the bank" + "Authorize in bank" (before-android-1.png).
- WebExtension: "Waiting for bank confirmation", card "Bank confirmation required - Confirm this withdrawal on your bank's website." + "Continue at bank" (before-web-1.png).

Code (origin/master 674b7915): TalerWallet1/Model/Transaction.swift:75, MinorState.localizedState: case .bankConfirmTransfer -> "MinorState.bankConfirmTransfer" with the default value "Waiting for bank transfer" (all translations say the same).

The patch (ios-F409-bank-confirm-label.patch, one line): use the existing, already translated string "Authorize at Bank" (the navigation title of the authorization screen, de "Bei der Bank autorisieren") as the state heading for .bankConfirmTransfer. No new strings; the key MinorState.bankConfirmTransfer becomes unused.

Verified: wc-ios build (GNU_Taler, Release) succeeds; after-ios-1.png shows the same transaction with the patched build ("Authorize at Bank").

Assisted by LLM
Steps To Reproduce1. Open a taler://withdraw/ link from https://bank.demo.taler.net/ and tap Confirm Withdrawal, then Authorize later.
2. Balances > Pending incoming > the withdrawal: heading "Waiting for bank transfer".
TagsNo tags attached.
Attached Files
before-ios-1.png (236,061 bytes)   
before-ios-1.png (236,061 bytes)   
before-ios-2.png (219,896 bytes)   
before-ios-2.png (219,896 bytes)   
before-android-1.png (76,529 bytes)   
before-android-1.png (76,529 bytes)   
before-web-1.png (137,419 bytes)   
before-web-1.png (137,419 bytes)   
after-ios-1.png (244,789 bytes)   
after-ios-1.png (244,789 bytes)   
ios-F409-bank-confirm-label.patch (1,319 bytes)   
diff --git a/TalerWallet1/Model/Transaction.swift b/TalerWallet1/Model/Transaction.swift
index 51c680f2..93001df3 100755
--- a/TalerWallet1/Model/Transaction.swift
+++ b/TalerWallet1/Model/Transaction.swift
@@ -72,7 +72,7 @@ enum TransactionMinorState: String, Codable {
                  .kyc:                return String(localized: "MinorState.kyc", defaultValue: "Legitimization required", comment: "TxMinorState heading")
             case .acceptRefund,
                  .checkRefund:        return String(localized: "MinorState.acceptRefund", defaultValue: "Checking for refund", comment: "TxMinorState heading")
-            case .bankConfirmTransfer:return String(localized: "MinorState.bankConfirmTransfer", defaultValue: "Waiting for bank transfer", comment: "TxMinorState heading")
+            case .bankConfirmTransfer:return String(localized: "Authorize at Bank", comment: "Nav title")  // the bank waits for the user, not for a transfer
             case .completedByOtherWallet:return String(localized: "MinorState.completedByOther", defaultValue: "Completed by other wallet", comment: "TxMinorState heading")
 //            case .exchange:                 return self.rawValue  // TODO: mention that money will come back
             case .proposed:           return self.rawValue   // TODO: discuss

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Issue History

Date ModifiedUsernameFieldChange
2026-11-11 01:59bot-cgNew Issue
2026-11-11 01:59bot-cgFile Added: before-ios-1.png
2026-11-11 01:59bot-cgFile Added: before-ios-2.png
2026-11-11 01:59bot-cgFile Added: before-android-1.png
2026-11-11 01:59bot-cgFile Added: before-web-1.png
2026-11-11 01:59bot-cgFile Added: after-ios-1.png
2026-11-11 01:59bot-cgFile Added: ios-F409-bank-confirm-label.patch