Project Documentation
·
API Endpoints
·
API Guide
·
Community
·
Blog
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.
Fed implements utility services for searching the United States Federal Reserve System such as ABA routing numbers, financial institution name lookup, and Fedwire and FedACH routing information. The HTTP server is available in a Docker image and the Go package github.com/moov-io/fed
is available. Moov's primary usage for this project is with ACH origination in our paygate project.
The data and formats in this repository represent a compilation of FedWire and FedACH data from the Federal Reserve Bank Services site. Both the official Fed plaintext and JSON file formats are supported.
- Project status
- Usage
- As an API
- As a Go module
- Learn about Fed services participation
- Getting help
- Supported and tested platforms
- Contributing
- Related projects
- Copyright
Moov Fed is actively used in multiple production environments. Please star the project if you are interested in its progress. We would appreciate any issues created or pull requests. Thanks!
The Fed project implements an HTTP server and Go library for searching for FedACH and Fedwire participants.
Note: The data files included in this repository (FedACHdir.md
and fpddir.md
) are outdated and from 2018. The Fed no longer releases this data publicly and licensing on more recent files prevents us from distributing them. However, the Fed still complies this data and you can retrieve up-to-date files for use in our project, either from LexisNexis or your financial institution.
Moov Fed can read the data files from anywhere on the filesystem. This allows you to mount the files and set FEDACH_DATA_PATH
/ FEDWIRE_DATA_PATH
environmental variables. Both official formats from the Federal Reserve (plaintext and JSON) are supported.
The Federal Reserve Board (FRB) eServices offers API access to download the files. To download these files, work with your ODFI / banking partner to obtain a download code. Then run Fed with the following environment variables set.
FRB_ROUTING_NUMBER=123456780
FRB_DOWNLOAD_CODE=86cfa5a9-1ab9-4af5-bd89-0f84d546de13
Fed can download the files from a proxy or other HTTP resources. The optional URL template is configured as an environment variable. If the URL template is not configured, Fed will download the files directly from FRB eServices by default. This value is considered a template because when preparing the request Fed replaces %s
in the path with the requested list name(fedach
or fedwire
).
FRB_DOWNLOAD_URL_TEMPLATE=https://my.example.com/files/%s?format=json
We publish a public Docker image moov/fed
from Docker Hub or use this repository. No configuration is required to serve on :8086
and metrics at :9096/metrics
in Prometheus format. We also have Docker images for OpenShift published as quay.io/moov/fed
.
Pull & start the Docker image:
docker pull moov/fed:latest
docker run -p 8086:8086 -p 9096:9096 moov/fed:latest
Fed can be used to look up Financial Institutions for Automated Clearing House (ACH) transfers by their routing number (?routingNumber=...
):
curl "localhost:8086/fed/ach/search?routingNumber=273976369"
{
"achParticipants": [
{
"routingNumber": "273976369",
"officeCode": "O",
"servicingFRBNumber": "071000301",
"recordTypeCode": "1",
"revised": "041513",
"newRoutingNumber": "000000000",
"customerName": "VERIDIAN CREDIT UNION",
"achLocation": {
"address": "1827 ANSBOROUGH",
"city": "WATERLOO",
"state": "IA",
"postalCode": "50702",
"postalCodeExtension": "0000"
},
"phoneNumber": "3192878332",
"statusCode": "1",
"viewCode": "1"
}
],
"wireParticipants": null
}
Fed can be used to look up Financial Institutions for Fedwire messages by their routing number (?routingNumber=...
):
curl "localhost:8086/fed/wire/search?routingNumber=273976369"
{
"achParticipants": null,
"wireParticipants": [
{
"routingNumber": "273976369",
"telegraphicName": "VERIDIAN",
"customerName": "VERIDIAN CREDIT UNION",
"wireLocation": {
"city": "WATERLOO",
"state": "IA"
},
"fundsTransferStatus": "Y",
"fundsSettlementOnlyStatus": " ",
"bookEntrySecuritiesTransferStatus": "N",
"date": "20141107"
}
]
}