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.
Docs: Project | API Endpoints
We publish a public Docker image moov/wire
on Docker Hub with ewire 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.
Start the Docker image:
docker run -p 8088:8088 -p 9098:9098 moov/wire:latest
List files stored in-memory
curl localhost:8088/files
{"files":[],"error":null}
Create a file on the HTTP server
curl -XPOST --data-binary "@./test/testdata/fedWireMessage-CustomerTransfer.txt" http://localhost:8088/files/create
{"id":"970f45b9d6e4b9b8c44345520605be1eca0a54af","fedWireMessage":{"id":"","senderSupplied":{"formatVersion":"30", .....
github.com/moov-io/wire
offers a Go based ACH file reader and writer. To get started checkout a specific example:
Supported Business Function Codes
Business Function Code | Name | Example | Read | Write |
---|---|---|---|---|
DRB | Bank DrawDown Request | 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 |
This project uses Go Modules and uses Go 1.14 or higher. 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
# Pull down into the Go Module cache
$ go get -u github.com/moov-io/wire
$ go doc github.com/moov-io/wire fedWireMessage
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 ) |
Note: By design Wire does not persist (save) any data about the files, batches or entry details created. The only storage occurs in memory of the process and upon restart Wire will have no files, batches, or data saved. Also, no in memory encryption of the data is performed.
We currently run fuzzing over wire in the form of a moov/wirefuzz
Docker image. You can read more or run the image and report crasher examples to security@moov.io
. Thanks!
channel | info |
---|---|
Project Documentation | Our project documentation available online. |
Google Group moov-users | The Moov users Google group is for contributors other people contributing to the Moov project. You can join them without a google account by sending an email to moov-users+subscribe@googlegroups.com. After receiving the join-request message, you can simply reply to that to confirm the subscription. |
Twitter @moov_io | You can follow Moov.IO's Twitter feed to get updates on our project(s). You can also tweet us questions or just share blogs or stories. |
GitHub Issue | If you are able to reproduce a problem please open a GitHub Issue under the specific project that caused the error. |
moov-io slack | Join our slack channel to have an interactive discussion about the development of the project. |
- 64-bit Linux (Ubuntu, Debian), macOS, and Windows
Note: 32-bit platforms have known issues and are not supported.
Yes please! Please review our Contributing guide and Code of Conduct to get started!
This project uses Go Modules and uses Go 1.14 or higher. 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.
To make a release of wire simply open a pull request with CHANGELOG.md
and version.go
updated with the next version number and details. You'll also need to push the tag (i.e. git push origin v1.0.0
) to origin in order for CI to make the release.
Apache License 2.0 See LICENSE for details.