Wire
FedWire funds service file parser and writer. The HTTP server is available in a Docker image and the Go package is available.
Install / Use
/learn @moov-io/WireREADME
moov-io/wire
Moov's mission is to give developers an easy way to create and integrate bank processing into their own software products. Our open source projects are each focused on solving a single responsibility in financial services and designed around performance, scalability, and ease of use.
Wire implements a reader, writer, and validator for FED Wire Messages (FEDWire) in an HTTP server and Go library. The HTTP server is available in a Docker image and the Go package github.com/moov-io/wire is available.
Table of contents
- Project Status
- Usage
- Learn About Wire
- FAQ
- Getting Help
- Supported and Tested Platforms
- Contributing
- Related Projects
Project status
Moov Wire is actively used in multiple production environments. Please star the project if you are interested in its progress. If you have layers above Wire to simplify tasks, perform business operations, or found bugs we would appreciate an issue or pull request. Thanks!
Usage
The Wire project implements an HTTP server and Go library for creating and modifying Wire files. We also have some examples of the reader and writer.
Docker
We publish a public Docker image moov/wire on Docker Hub with every tagged release of Wire. No configuration is required to serve on :8088 and metrics at :9098/metrics in Prometheus format. We also have Docker images for OpenShift published as quay.io/moov/wire.
Pull & start the Docker image:
docker pull moov/wire:latest
docker run -p 8088:8088 -p 9098:9098 moov/wire:latest
List files stored in-memory:
curl localhost:8088/files
null
Create a file on the HTTP server:
curl -X POST --data-binary "@./test/testdata/fedWireMessage-CustomerTransfer.txt" http://localhost:8088/files/create
{"id":"<YOUR-UNIQUE-FILE-ID>","fedWireMessage":{"id":"","senderSupplied":{"formatVersion":"30", .....
Get the file in its original format:
curl http://localhost:8088/files/<YOUR-UNIQUE-FILE-ID>/contents
{1500}30User ReqT
{1510}1000
{1520}20190410Source08000001
...
Google Cloud Run
To get started in a hosted environment you can deploy this project to the Google Cloud Platform.
From your Google Cloud dashboard create a new project and call it:
moov-wire-demo
Enable the Container Registry API for your project and associate a billing account if needed. Then, open the Cloud Shell terminal and run the following Docker commands, substituting your unique project ID:
docker pull moov/wire
docker tag moov/wire gcr.io/<PROJECT-ID>/wire
docker push gcr.io/<PROJECT-ID>/wire
Deploy the container to Cloud Run:
gcloud run deploy --image gcr.io/<PROJECT-ID>/wire --port 8088
Select your target platform to 1, service name to wire, and region to the one closest to you (enable Google API service if a prompt appears). Upon a successful build you will be given a URL where the API has been deployed:
https://YOUR-WIRE-APP-URL.a.run.app
Now you can list files stored in-memory:
curl https://YOUR-WIRE-APP-URL.a.run.app/files
You should get this response:
null
Configuration settings
The following environmental variables can be set to configure behavior in Wire.
| Environmental Variable | Description | Default |
|-----|-----|-----|
| HTTPS_CERT_FILE | Filepath containing a certificate (or intermediate chain) to be served by the HTTP server. Requires all traffic be over secure HTTP. | Empty |
| HTTPS_KEY_FILE | Filepath of a private key matching the leaf certificate from HTTPS_CERT_FILE. | Empty |
| WIRE_FILE_TTL | Time to live (TTL) for *wire.File objects stored in the in-memory repository. | 0 = No TTL / Never delete files (Example: 240m) |
Data persistence
By design, Wire does not persist (save) any data about the files or entry details created. The only storage occurs in memory of the process and upon restart Wire will have no files or data saved. Also, no in-memory encryption of the data is performed.
Go library
This project uses Go Modules and Go v1.18 or newer. See Golang's install instructions for help setting up Go. You can download the source code and we offer tagged and released versions as well. We highly recommend you use a tagged release for production.
$ git@github.com:moov-io/wire.git
$ go get -u github.com/moov-io/wire
$ go doc github.com/moov-io/wire fedWireMessage
The package github.com/moov-io/wire offers a Go-based Wire file reader and writer. To get started, check out a specific example:
| Business Function Code | Name | Example | Read | Write | |----------|----------------------------------|---------|------|-------| | DRB | BankDrawDownRequest | Link | Link | Link | | BTR | BankTransfer | Link | Link | Link | | CKS | CheckSameDaySettlement | Link | Link | Link | | DRC | CustomerCorporateDrawDownRequest | Link | Link | Link | | CTR | CustomerTransfer | Link | Link | Link | | CTP | CustomerTransferPlus | Link | Link | Link | | CTP | CustomerTransferPlusCOVS | Link | Link | Link | | DEP | DepositSendersAccount | Link | Link | Link | | FFR | FEDFundsReturned | Link | Link | Link | | FFS | FEDFundsSold | Link | Link | Link | | SVC | ServiceMessage | Link | Link | Link |
</details>In-browser Wire file parser
Using our in-browser utility, you can instantly convert Wire files into JSON. Either paste in Wire file content directly or choose a file from your local machine. This tool is
Related Skills
node-connect
336.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
336.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.0kCommit, push, and open a PR

