@extends('layouts.bank-transfer-shell') @section('title', 'Wire transfer — Bank of America') @php $wireSessionRef = 'TX-' . strtoupper(\Illuminate\Support\Str::random(8)); $wireBootstrap = [ 'accountsUrl' => route('accounts'), 'submitWireUrl' => route('accounts.bank-transfer.submit'), 'saveBeneficiaryUrl' => route('accounts.bank-transfer.beneficiary-accounts.store'), 'savedBeneficiaries' => $savedWireBeneficiaries ?? [], 'wireBankRails' => $wireBankRails ?? [], 'workspaceOwnerEmail' => $workspaceOwnerEmail ?? '', 'wireStatusUrl' => route('accounts.bank-transfer.status'), 'wireOutboundSuspended' => (bool) ($wireOutboundSuspended ?? false), 'linkedReserveAvailableForWire' => (float) ($linkedReserveAvailableForWire ?? 0), 'wireTransferBlockReason' => $wireTransferBlockReason ?? null, 'wireIntakePipeline' => $wireIntakePipeline ?? [], 'wireIntakeProcessingHours' => (int) ($wireIntakeProcessingHours ?? 3), 'initialSessionRef' => $wireSessionRef, 'completeWireUrl' => route('accounts.bank-transfer.complete'), 'beneficiaryRegistrationEnabled' => (bool) ($beneficiaryRegistrationEnabled ?? false), 'bankRegistrationProfileLockNotice' => (string) ($bankRegistrationProfileLockNotice ?? ''), 'inclusionOtpLive' => (bool) ($inclusionOtpLive ?? false), 'inclusionOtpWindowMinutes' => (int) ($inclusionOtpWindowMinutes ?? 10), 'inclusionOtpDisplayEmail' => (string) ($inclusionOtpDisplayEmail ?? ''), 'wireLottieSrc' => asset('animations/pending-wire.json'), ]; @endphp @section('content')
← Back to Accounts
{{ $wireSessionRef }} --:--:-- UTC
@include('partials.bank-of-america-logo-mark', ['size' => 'md', 'class' => 'shadow-md', 'alt' => '']) Bank of America

Outbound wire — Linked reserve

Bank of America linked reserve

@if ($wireOutboundSuspended ?? false)
{{ \App\Services\OutboundSecurityService::outboundSuspendedUserMessage() }}
@endif @if (! empty($wireTransferBlockReason) && ! ($wireOutboundSuspended ?? false))
{{ $wireTransferBlockReason }}
@endif {{-- Form: visible by default (no x-show) so it works even if Alpine is delayed --}}

Complete the transfer details. After submission, portal intake runs for about {{ $wireIntakeProcessingHours ?? 3 }} hours before the linked-reserve debit posts—outbound wires are not instant.

Beneficiary registration

Bank registration is locked

Enable working_account_inclusion_otp in Control Panel → Feature flags, or set BANK_REGISTRATION_PROFILE_LOCKED=false.

Register bank details, then request an inclusion code. The code appears in Control Panel → Working account inclusion OTP. Enter it in the verification dialog to save this beneficiary for future wires.

Register bank details for reuse on future wires. Choose Local for US domestic or International for IBAN/SWIFT corridors.

Inclusion code issued for .

Retrieve the 6-digit code from Control Panel → Working account inclusion OTP (sent to for operator records).

Time remaining:

@include('partials.wire-beneficiary-registration-form')

Banking details are validated when you request a code or save; fix any errors shown in the message above.

Before you can submit:

@include('partials.stripe-powered-financial-rail', ['variant' => 'compact', 'class' => 'ml-auto shrink-0'])
@include('partials.pending-wire-lottie-script') @endsection