Getting Started

What is WIRE

Moov Wire implements an HTTP interface to read and write FEDWire Messages

FEDWire (formerly known as the Federal Reserve Wire Network) is a real-time gross settlement funds transfer system operated by the United States Federal Reserve Banks that allows financial institutions to electronically transfer funds between its more than 9,289 participants (as of March 19, 2009).[1] Transfers can only be initiated by the sending bank once they receive the proper wiring instructions from the receiving bank. These instructions include: the receiving bank's routing number, account number, name and dollar amount being transferred. This information is submitted to the Federal Reserve via the Fedwire system. Once the instructions are received and processed, the Fed will debit the funds from the sending bank's reserve account and credit the receiving bank's account. Wire transfers sent via Fedwire are completed in the same day, while some are completed instantly. source: FedWire

How does FEDWire work?

source: FEDWire: How it Works

Running Moov WIRE Server

Moov WIRE can be deployed in multiple scenarios.

  • Binary Distributions are released with every versioned release. Frequently added to the VM/AMI build script for the application needing Moov WIRE.
  • Our hosted is updated with every versioned release. Our Kubernetes example is what Moov utilizes in our production environment.
  • A Docker container is built and added to Docker Hub with every versioned released.

Binary Distribution

Download the latest Moov WIRE server release for your operating system and run it from a terminal.

$ ./wire-darwin-amd64
ts=2019-06-20T23:23:44.870717Z caller=main.go:75 startup="Starting wire server version v0.2.0"
ts=2019-06-20T23:23:44.871623Z caller=main.go:135 transport=HTTP addr=:8088
ts=2019-06-20T23:23:44.871692Z caller=main.go:125 admin="listening on :9098"

Next Connect to Moov WIRE

Docker Container

Moov WIRE is dependent on Docker being properly installed and running on your machine. Ensure that Docker is running. If your Docker client has issues connecting to the service review the Docker getting started guide if you have any issues.

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Execute the Docker run command

$ docker run -p 8088:8088 -p 9098:9098 moov/wire:latest
ts=2019-06-21T17:03:23.782592Z caller=main.go:69 startup="Starting wire server version v0.2.0"
ts=2019-06-21T17:03:23.78314Z caller=main.go:129 transport=HTTP addr=:8088
ts=2019-06-21T17:03:23.783252Z caller=main.go:119 admin="listening on :9098"

Next Connect to Moov WIRE


The following snippet runs the WIRE Server on Kubernetes in the apps namespace. You could reach the Wire instance at the following URL from inside the cluster.

# Needs to be ran from inside the cluster
$ curl http://wire.apps.svc.cluster.local:8088/ping

Kubernetes manifest - save in a file (wire.yaml) and apply with kubectl apply -f wire.yaml.

Connecting to Moov Wire

The Moov Wire service will be running on port 8088 (with an admin port on 9098).

Confirm that the service is running by issuing the following command or simply visiting the url in your browser localhost:8088/ping

$ curl http://localhost:8088/ping

$ curl http://localhost:8088/files

API documentation

See our API documentation for Moov Wire endpoints.

Wire Admin Port

The port 9098 is bound by ACH for our admin service. This HTTP server has endpoints for Prometheus metrics (GET /metrics), readiness (GET /ready) and liveness checks (GET /live).