What is a wire transfer?
Wire
A wire is a bank-to-bank transfer sent over a wholesale network such as Fedwire or CHIPS. It is used for large or time-sensitive payments. Wires are usually same-day and hard to reverse once the receiving bank has accepted them. Fees are higher than ACH.
How does a wire transfer work?
The sending bank debits the sender and sends an instruction on the wire network. The receiving bank credits the beneficiary when it accepts. Cutoffs are earlier than ACH. Fees are higher. A wrong account number is painful because there is no cheap return window like ACH.
Wire vs ACH
ACH is a retail batch network. A wire is a wholesale message. ACH can take days and can come back. A wire is meant to be final the same day. Use wires for size and certainty. Use ACH for volume and cost.
Domestic vs international wires
A US domestic wire often travels on Fedwire. A cross-border wire often travels on SWIFT as a message, then settles through correspondent banks. SWIFT is the message. The correspondent chain is the movement. Your ledger still records one obligation per hop you are responsible for.
How it works with Blnk
Blnk records the wire obligation. The sending bank still transmits the message.
For a payout, the source is the customer wallet and the destination is @PayoutUSD_Wire. Hold it inflight until the bank confirms, then commit. Void it if the bank rejects the wire.
We use @PayoutUSD_Wire because it is a system balance that belongs to the organization. Blnk calls these internal balances.
Record a wire payout in four steps:
Name the source and destination
The source is the customer wallet. The destination is
@PayoutUSD_Wire. The amount stays on that internal balance until the bank confirms.Record the transfer inflight
Create the transaction with
inflight: true. Settled balances stay unchanged until the bank confirms.record-wire.tsawait blnk.Transactions.create({ precise_amount: 2500000, precision: 100, reference: 'wire_out_20260816_001', currency: 'USD', source: 'customer_wallet_id', destination: '@PayoutUSD_Wire', description: 'Payout via wire', inflight: true, meta_data: { rail: 'wire', imad: '20260816MMQFMP7B000123', beneficiary_name: 'Ada Lovelace', customer_id: 'cus_8f21a4', }, });Commit the confirmation or void a rejection
Commit when the bank confirms. Void the post if the bank rejects the wire. See update inflight.
Commitawait blnk.Transactions.updateStatus( 'txn_c4e70eb8-e4d6-4e04-a2e2-92a43b969e0c', { status: 'commit' }, );Voidawait blnk.Transactions.updateStatus( 'txn_c4e70eb8-e4d6-4e04-a2e2-92a43b969e0c', { status: 'void' }, );Match the wire report
Upload the wire report in reconciliation and match each line to the committed or voided post.