Creating a Wire Transfer

This guide explains how to use Create Destination Account and Create Wire Transaction to create a wire transfer to a remote bank. These wire transfers use Fedwire rails. You can use these endpoints only to send funds to a remote account (debiting the Galileo account); you cannot originate a request that remote funds be credited to a Galileo account.

Along with this guide, you might want to consult these guides:

  • About Wires — General information on wire transfers at Galileo
  • Wires Workflows — Flowcharts showing how incoming and outgoing wires are processed as well as returns.

Create the destination account

👍

Tip

To verify the validity and ownership of the destination account, call the Get Instant Verification endpoint before creating the destination account.

Follow these steps to create a destination account on the Galileo system:

  1. Call Create Destination Account with the necessary input parameters, shown in the table below.
  2. Capture the destination_account_id from the endpoint response.

This table contains the parameters you need to create a destination account for wires.

ParameterUsage
accountNoRequired. The PRN of the sending account, which is on the Galileo system.
destinationNameRequired. Provide a display name or nickname for the destination account.
destinationBankNameRequired. Use the official name of the bank. Galileo does not validate this field.
destinationBankStandardRoutingOptional. The bank's standard routing number. This number is not used for wires.
destinationBankWireRoutingRequired for wires. Provide the 9-digit routing number for wires. Obtain this information from the destination bank.
destinationBankAddressAddress of the destination bank.
intermediaryBankNamePopulate if destinationBankName uses an intermediary for wires. Provide the official name of the intermediary bank.
intermediaryBankWireRoutingPopulate if destinationBankName uses an intermediary for wires. Provide the 9-digit wire routing number.
intermediaryBankAddressPopulate if destinationBankName uses an intermediary for wires.
destinationAccountNumberRequired. If the destination bank is foreign relative to the Galileo account, provide the IBAN. If it is domestic, provide the conventional account number.
destinationAccountNameRequired. Provide the name of the individual or entity that owns the destination account.
destinationAccountAddressRequired. The address of the person or entity in destinationAccountName
destinationAccountTypeSpecify the account type of destinationAccountNumber: Savings, Checking (DDA), or Money market.

Intermediary banks

Some smaller banks are not capable of handling international wire transfers, so they employ the services of an intermediary bank.

To determine whether the receiving bank uses an intermediary bank, the account holder can go to the web site of the destination bank and search for its SWIFT code. The bank should indicate which intermediary bank handles its international wire transfers.

Create a wire transfer

After you create the destination account, you can create a wire transfer by following these steps:

  1. Call Create Wire Transaction with the destination_account_id and amount.
    • The reference value should contain a description of the wire transfer. Maximum 140 alphanumeric characters including punctuation.
    • The endpoint checks for sufficient funds and for transaction limits for wires. If the transaction does not pass those checks, the endpoint returns the appropriate status code.
  2. Capture the wire_transaction_id in the endpoint response.
  3. The response also provides the expected_transfer_date for the wire. This date is calculated according to the time that Create Wire Transaction was called.
    • If the transaction is initiated more than 30 minutes before the bank's cutoff time, the expected transfer date is the same date that the wire was initiated.
    • If the transaction is initiated less than 30 minutes before the cutoff, then the expected transfer date is the next business day.

After the endpoint response

  • You can cancel a wire transfer up to 10 minutes after the transfer was initiated. Use Cancel Wire Transaction to cancel the transfer.
  • The amount of the wire is immediately debited from the Galileo account, and Galileo sends the BADJ: adj event message.
    • If you have configured a fee for outgoing wires, the fee is also debited from the account, and Galileo sends the BFEE: fee event message.
      • Alternatively, you can assess a fee manually by calling Assess Fee.
  • If any of the following events happen, Galileo moves the funds back into the account and sends the BADJ: adj event message:
    • The wire is returned by the sending bank, Fedwire or the recipient. (There is no return-specific event message.)
    • You cancel the wire after the funds were debited from the account but before the grace period ended.

Viewing the wire transaction

You can view wire transactions in these ways.

Get Wire Details

To retrieve detailed information about an individual wire transaction, call Get Wire Details. For wireTransactionId, specify the UUID as returned by Create Wire Transaction or Get Wire History.

For incoming wires, the sender object is populated, and for outgoing wires the receiver object contains data.

Get Wire History

To retrieve a list of all wire transactions for the specified PRN, call Get Wire History. You can specify a timespan to retrieve, or to return all transactions omit the start and end dates.

For incoming wires, the sender object is populated, and for outgoing wires the receiver object contains data.

General transaction data

Wire transactions are visible in these Program API endpoint responses.

The transactions are also visible in the Posted Transactions RDF, gAnalytics, and the CST.

These are the wire-related transaction codes:

  • Incoming credit (crediting the Galileo account)
    • PMwi — Wire posted to the account
  • Outgoing credit (debiting the Galileo account)
    • ADwo — Wire withdrawal from account
    • ADWR — Withdrawal returned if the wire is returned

Events API

For successful wires, there is no wire-specific event. Instead, you get notification of the payment or adjustment with wire-specific information in the message. When Galileo returns a wire, you get another event that includes the return reason.

BADJ: adj — Sent when the outgoing wire amount is withdrawn from the customer account.

  • odfi_routing_number — Routing number of the originating financial institution
  • orig_acct_number — Account number of the wire originator
  • orig_name — Name of the wire originator
  • payment_rail — Contains fedwire for a wire transaction

BPMT: pmt — Sent when an incoming wire is posted to a customer account.

  • odfi_routing_number — Routing number of the originating financial institution
  • orig_acct_number — Account number of the wire originator
  • orig_name — Name of the wire originator
  • payment_rail — Contains fedwire for a wire transaction
  • reference_id — The input message accountability data (IMAD)
  • transaction_id — The UUID assigned to this wire transaction

RTNG: pmt_hub_return — Sent when Galileo returns an incoming wire.

  • odfi_routing_number — Routing number of the originating financial institution
  • orig_acct_number — Account number of the wire originator
  • orig_name — Name of the wire originator
  • payment_rail — Contains fedwire for a wire transaction
  • return_reason — Contains the reason for returning the wire