diff --git a/src/app/actions/external-accounts.ts b/src/app/actions/external-accounts.ts index 8d45d8e03..9412d56fb 100644 --- a/src/app/actions/external-accounts.ts +++ b/src/app/actions/external-accounts.ts @@ -10,7 +10,7 @@ const API_URL = process.env.PEANUT_API_URL! export async function createBridgeExternalAccountForGuest( customerId: string, accountDetails: AddBankAccountPayload -): Promise { +): Promise { try { const response = await fetchWithSentry(`${API_URL}/bridge/customers/${customerId}/external-accounts`, { method: 'POST', @@ -23,6 +23,12 @@ export async function createBridgeExternalAccountForGuest( const data = await response.json() + if (data?.code === 'invalid_parameters') { + const source = + typeof data.source === 'string' ? data.source : data?.source?.key + return { error: data?.message ?? 'Invalid parameters', source } + } + if (!response.ok) { return { error: data.error || 'Failed to create external account.' } } diff --git a/src/components/AddWithdraw/DynamicBankAccountForm.tsx b/src/components/AddWithdraw/DynamicBankAccountForm.tsx index d7fd6d4fd..c68295bf7 100644 --- a/src/components/AddWithdraw/DynamicBankAccountForm.tsx +++ b/src/components/AddWithdraw/DynamicBankAccountForm.tsx @@ -398,8 +398,11 @@ export const DynamicBankAccountForm = forwardRef<{ handleSubmit: () => void }, D > Review - {submissionError && } - {error && } + {submissionError ? ( + + ) : ( + error && + )} diff --git a/src/components/Claim/Link/views/BankFlowManager.view.tsx b/src/components/Claim/Link/views/BankFlowManager.view.tsx index 33c7ca4a8..52458af8c 100644 --- a/src/components/Claim/Link/views/BankFlowManager.view.tsx +++ b/src/components/Claim/Link/views/BankFlowManager.view.tsx @@ -255,7 +255,6 @@ export const BankFlowManager = (props: IClaimScreenProps) => { try { const addBankAccountResponse = await addBankAccount(payload) if (addBankAccountResponse.error) { - setError(addBankAccountResponse.error) return { error: addBankAccountResponse.error } } if (addBankAccountResponse.data?.id) { @@ -316,9 +315,15 @@ export const BankFlowManager = (props: IClaimScreenProps) => { } if (!senderInfo.bridgeCustomerId) throw new Error('Sender bridge customer ID not found') + const threeLetterCountryCode = getCountryCodeForWithdraw(selectedCountry.id) const payloadWithCountry = { ...payload, - country: selectedCountry.id, + countryCode: threeLetterCountryCode, + address: { + ...payload.address, + country: threeLetterCountryCode, + }, + country: threeLetterCountryCode, } const externalAccountResponse = await createBridgeExternalAccountForGuest( @@ -358,7 +363,6 @@ export const BankFlowManager = (props: IClaimScreenProps) => { return {} } catch (e: any) { const errorString = ErrorHandler(e) - setError(errorString) Sentry.captureException(e) return { error: errorString } } finally { diff --git a/src/utils/sdkErrorHandler.utils.tsx b/src/utils/sdkErrorHandler.utils.tsx index 03210cf7c..e66673b1f 100644 --- a/src/utils/sdkErrorHandler.utils.tsx +++ b/src/utils/sdkErrorHandler.utils.tsx @@ -112,7 +112,7 @@ export const ErrorHandler = (error: any) => { } else if (error.toString().includes('The operation either timed out or was not allowed')) { return 'Please confirm the transaction.' } else { - return 'Something failed. Please try again.' + return 'There was an issue with your request. Please contact support.' } } }