diff --git a/packages/wallet-webui/src/routes/withdrawal-model.ts b/packages/wallet-webui/src/routes/withdrawal-model.ts index 7ce8098c6..b46ba1588 100644 --- a/packages/wallet-webui/src/routes/withdrawal-model.ts +++ b/packages/wallet-webui/src/routes/withdrawal-model.ts @@ -19,6 +19,8 @@ import { i18n } from "../i18n/runtime.js"; export interface WireFieldView { label: string; value: string; + /** The subject / payment reference the exchange needs to credit the transfer. */ + reference?: boolean; } export interface WireOptionView { @@ -202,7 +204,11 @@ export function wireOptions( if (amount) fields.push({ label: i18n.str`Amount`, value: amount }); if (subject) // Translators: Subject or remittance reference for a bank transfer. - fields.push({ label: i18n.str`Payment reference`, value: subject }); + fields.push({ + label: i18n.str`Payment reference`, + value: subject, + reference: true, + }); return { id: `${accountIndex}-${optionIndex}`, label: diff --git a/packages/wallet-webui/src/screens/WireTransferScreen.tsx b/packages/wallet-webui/src/screens/WireTransferScreen.tsx index 9a69c205f..d780dce75 100644 --- a/packages/wallet-webui/src/screens/WireTransferScreen.tsx +++ b/packages/wallet-webui/src/screens/WireTransferScreen.tsx @@ -147,8 +147,8 @@ export function WireTransferScreen(props: { ) : (

{props.amountRaw}

- {/* Translators: %1$s is the effective digital-cash amount after fees. */} -

{i18n.str`Transfer this amount to receive ${props.amountEffective} as digital cash.`}

+ {/* Translators: %1$s is the amount to wire, %2$s the effective digital-cash amount after fees. */} +

{i18n.str`You need to transfer ${props.amountRaw} from your regular bank account to the exchange to receive ${props.amountEffective} as digital cash in this wallet.`}

)} {props.options.length === 0 ? ( @@ -326,11 +326,28 @@ export function WireTransferScreen(props: { {!blockedReason && option.fields.length > 0 && (

{i18n.str`Wire transfer instructions`}

- {/* Translators: The payment reference identifies this bank transfer to the exchange. */} -

{i18n.str`Copy these details exactly into your banking app. The payment reference is required.`}

+ {isKycAuth ? ( + /* Translators: The payment reference identifies this bank transfer to the exchange. */ +

{i18n.str`Copy these details exactly into your banking app. The payment reference is required.`}

+ ) : ( +

{ + /* Translators: Step 1 of 3 of the wire-transfer instructions (DD 88). */ i18n.str`Step 1: If you don't already have it in your banking favorites list, then copy and paste recipient and account into the matching fields in your banking app or website (and save it as favorite for the next time):` + }

+ )}
{option.fields.map((field) => (
+ {!isKycAuth && field.reference && ( +
+

{ + /* Translators: Step 2 of 3 of the wire-transfer instructions (DD 88). */ i18n.str`Step 2: Copy this code and paste it into the subject/purpose field in your banking app or website:` + }

+

{i18n.str`This is mandatory, otherwise your money will not arrive in this wallet.`}

+
+ )}
{field.label}
@@ -351,6 +368,11 @@ export function WireTransferScreen(props: {
))}
+ {!isKycAuth && ( +

{ + /* Translators: Step 3 of 3 of the wire-transfer instructions (DD 88); %1$s is the amount to wire. */ i18n.str`Step 3: Finish the wire transfer of ${props.amountRaw} in your banking app or website, then this withdrawal will proceed automatically. Depending on your bank the transfer can take from minutes to two working days, please be patient.` + }

+ )}
)}