{"id":13544796,"url":"https://github.com/moov-io/fincen","last_synced_at":"2025-08-12T22:30:52.160Z","repository":{"id":58400403,"uuid":"523867978","full_name":"moov-io/fincen","owner":"moov-io","description":"Fincen BSA E-Filing forms ","archived":false,"fork":false,"pushed_at":"2025-07-25T13:33:38.000Z","size":4934,"stargazers_count":25,"open_issues_count":16,"forks_count":12,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-07-25T20:35:21.931Z","etag":null,"topics":["ctr","fbar","fincen","hacktoberfest","sar"],"latest_commit_sha":null,"homepage":"https://moov-io.github.io/fincen/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moov-io.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-08-11T21:02:34.000Z","updated_at":"2025-07-12T05:41:47.000Z","dependencies_parsed_at":"2023-02-15T12:01:31.479Z","dependency_job_id":"a453b126-504e-44d8-9a92-89b5de3d9ff9","html_url":"https://github.com/moov-io/fincen","commit_stats":{"total_commits":173,"total_committers":8,"mean_commits":21.625,"dds":0.653179190751445,"last_synced_commit":"57fd1f9399b90c02a14213a9f8542463d3119be7"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/moov-io/fincen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moov-io%2Ffincen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moov-io%2Ffincen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moov-io%2Ffincen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moov-io%2Ffincen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moov-io","download_url":"https://codeload.github.com/moov-io/fincen/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moov-io%2Ffincen/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270147518,"owners_count":24535615,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-12T02:00:09.011Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ctr","fbar","fincen","hacktoberfest","sar"],"created_at":"2024-08-01T11:00:53.462Z","updated_at":"2025-08-12T22:30:51.490Z","avatar_url":"https://github.com/moov-io.png","language":"Go","funding_links":[],"categories":["Compliance \u0026 Sanctions"],"sub_categories":[],"readme":"[![Moov Banner Logo](https://user-images.githubusercontent.com/20115216/104214617-885b3c80-53ec-11eb-8ce0-9fc745fb5bfc.png)](https://github.com/moov-io)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://moov-io.github.io/fincen/\"\u003eProject Documentation\u003c/a\u003e\n  ·\n  \u003ca href=\"https://moov-io.github.io/fincen/api/#get-/files\"\u003eAPI Endpoints\u003c/a\u003e\n  ·\n  \u003ca href=\"https://moov.io/blog/education/fincen-api-guide/\"\u003eAPI Guide\u003c/a\u003e\n  ·\n  \u003ca href=\"https://slack.moov.io/\"\u003eCommunity\u003c/a\u003e\n  ·\n  \u003ca href=\"https://moov.io/blog/\"\u003eBlog\u003c/a\u003e\n  \u003cbr\u003e\n  \u003cbr\u003e\n\u003c/p\u003e\n\n[![GoDoc](https://godoc.org/github.com/moov-io/fincen?status.svg)](https://godoc.org/github.com/moov-io/fincen)\n[![Build Status](https://github.com/moov-io/fincen/workflows/Go/badge.svg)](https://github.com/moov-io/fincen/actions)\n[![Coverage Status](https://codecov.io/gh/moov-io/fincen/branch/master/graph/badge.svg)](https://codecov.io/gh/moov-io/fincen)\n[![Go Report Card](https://goreportcard.com/badge/github.com/moov-io/fincen)](https://goreportcard.com/report/github.com/moov-io/fincen)\n[![Repo Size](https://img.shields.io/github/languages/code-size/moov-io/fincen?label=project%20size)](https://github.com/moov-io/fincen)\n[![Apache 2 License](https://img.shields.io/badge/license-Apache2-blue.svg)](https://raw.githubusercontent.com/moov-io/fincen/master/LICENSE)\n[![Slack Channel](https://slack.moov.io/badge.svg?bg=e01563\u0026fgColor=fffff)](https://slack.moov.io/)\n[![Docker Pulls](https://img.shields.io/docker/pulls/moov/fincen)](https://hub.docker.com/r/moov/fincen)\n[![GitHub Stars](https://img.shields.io/github/stars/moov-io/fincen)](https://github.com/moov-io/fincen)\n[![Twitter](https://img.shields.io/twitter/follow/moov?style=social)](https://twitter.com/moov?lang=en)\n\n# fincen\nMoov'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.\n\nMoov's fincen project implements a reader, writer, and validator for Fincen BSA forms in an HTTP server and Go library.\n\nFincen (Financial crimes enforcment network) BSA data transmission methods for the the BSA E-Filing System.\n\nA go library for reading and writing Fincen BSA forms. It is capable of generating, validating, and batching submissions.\n\nThe HTTP server is available in a Docker image and the Go package github.com/moov-io/fincen is available.\n\n\n## Table of contents\n\n- [Project status](#project-status)\n- [Supported Forms](#supported-forms)\n- [Usage](#usage)\n    - As an API\n        - [Docker](#docker)\n        - [Google Cloud](#google-cloud-run)\n        - [HTTP API](https://moov-io.github.io/fincen/usage-docker/)\n    - [As a Go module](#go-library)\n      - [Build report form](#build-report-form)\n    - [As a command line tool](#command-line)\n    - [As an in-browser parser](#in-browser-fincen-form-parser)\n- [Learn About Fincen](#learn-about-fincen)\n- [FAQ](#faq)\n- [Getting help](#getting-help)\n- [Supported and tested platforms](#supported-and-tested-platforms)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Project status\n\nThe project is Fincen which is a financial reporting for the United States.\n\nThere are many forms that are required in this project. **Now implemented XML forms only in following link**.\n(Non XML form will implement in another sub project)\nhttps://bsaefiling.fincen.treas.gov/FilingInformation.html\n\nThe final phase of the project will be a service that collects fillings and then on a scheduled time will batch the fillings and submit them electronically.\nhttps://bsaefiling.fincen.treas.gov/docs/SDTMRequirements.pdf\n\n## Supported Forms\n\n- FinCEN Currency Transaction Report (FinCEN Report 112)\n- FinCEN Designation of Exempt Person (FinCEN Report 110)\n- FinCEN Suspicious Activity Report (FinCEN Report 111)\n- Report of Foreign Bank and Financial Accounts (FinCEN Report 114)\n- Report of Cash Payments Over $10,000 Received in a Trade or Business (FinCEN Form 8300)\n\n## Usage\nThe Fincen project implements an HTTP server and [Go library](https://pkg.go.dev/github.com/moov-io/fincen) for creating and modifying Fincen BSA forms.\n\n### Docker\n\nWe publish a [public Docker image `moov/fincen`](https://hub.docker.com/r/moov/fincen/tags) on Docker Hub with every tagged release of Fincen.\n\u003c!--\nWe also have Docker images for [OpenShift](https://quay.io/repository/moov/fincen?tab=tags) published as `quay.io/moov/fincen`.\n--\u003e\n\nPull \u0026 start the Docker image:\n```\ndocker pull moov/fincen:latest\ndocker run -p 8206:8206 -p 8207:8207 moov/fincen:latest\n```\n\nValidate a file on the HTTP server:\n```\ncurl -X POST --data-binary \"@./data/samples/ctr_batch.txt\" http://localhost:8088/validator\n```\n```\n{\"status\":\"valid file\"}\n```\n\nReformat the file with generated attributes:\n```\ncurl -X POST --data-binary \"@./data/samples/ctr_batch.txt\" http://localhost:8088/reformat\n```\n```\n\u003cEFilingBatchXML ActivityCount=\"1\" TotalAmount=\"47000\" PartyCount=\"6\" SeqNum=\"1\"\n                     xsi:schemaLocation=\"www.fincen.gov/base https://www.fincen.gov/base https://www.fincen.gov/base/EFL_8300XBatchSchema.xsd\"\n                     xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n                     xmlns:fc2=\"www.fincen.gov/base\"\u003e\n    \u003cActivity SeqNum=\"1\"\u003e\n...\n```\n\n### Google Cloud Run\n\nTo get started in a hosted environment you can deploy this project to the Google Cloud Platform.\n\nFrom your [Google Cloud dashboard](https://console.cloud.google.com/home/dashboard) create a new project and call it:\n```\nmoov-fincen-demo\n```\n\nEnable the [Container Registry](https://cloud.google.com/container-registry) API for your project and associate a [billing account](https://cloud.google.com/billing/docs/how-to/manage-billing-account) if needed. Then, open the Cloud Shell terminal and run the following Docker commands, substituting your unique project ID:\n\n```\ndocker pull moov/fincen\ndocker tag moov/fincen gcr.io/\u003cPROJECT-ID\u003e/fincen\ndocker push gcr.io/\u003cPROJECT-ID\u003e/fincen\n```\n\nDeploy the container to Cloud Run:\n```\ngcloud run deploy --image gcr.io/\u003cPROJECT-ID\u003e/fincen --port 8206\n```\n\nSelect your target platform to `1`, service name to `fincen`, 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:\n\n```\nhttps://YOUR-FINCEN-APP-URL.a.run.app\n```\n\nNow you can list files stored in-memory:\n```\ncurl https://YOUR-FINCEN-APP-URL.a.run.app/files\n```\nYou should get this response:\n```\nnull\n```\n\n### Go library\n\nThis project uses [Go Modules](https://go.dev/blog/using-go-modules) and Go v1.18 or newer. See [Golang's install instructions](https://golang.org/doc/install) for help setting up Go. You can download the source code and we offer [tagged and released versions](https://github.com/moov-io/fincen/releases/latest) as well. We highly recommend you use a tagged release for production.\n\n```\n$ git@github.com:moov-io/fincen.git\n\n$ go get -u github.com/moov-io/fincen\n```\nThe package [`github.com/moov-io/fincen`](https://pkg.go.dev/github.com/moov-io/fincen) offers a Go-based Fincen file reader and writer.\n\n### Build report form\n\n**Creating XML Batch Reporting form**\n\nFincen project used general XML batch reporting form struct.\nAvailable types are \"SUBMISSION\", \"CTRX\", \"SARX\", \"DOEPX\", \"FBARX\", \"8300X\"\n\n```\n// create report with type\nnewReport := NewReport(fincen.ReportSubmission)\n```\n\n**Adding activities by each type**\n\nActivity should add into the form struct using sub package\n\n```\n// create activity (ctr)\nvar newActivity currency_transaction.ActivityType\n\n...\nsetting newActivity\n...\n\nerr := newReport.AppendActivity(\u0026newActivity)\n```\n\n**Generating new xml attributes**\n```\nerr = newReport.GenerateAttrs()\n```\n\n**Validating report form**\n```\nerr = newReport.Validate()\n```\n\n### Command Line\n\nThe [`fincen` binary on each release](https://github.com/moov-io/fincen/releases/latest) can be used on the command line.\n\n```\nWork seamlessly with Fincen BSA form from the command line.\n\nUsage:\n  fincen \u003ccommand\u003e [flags]\n\nAvailable commands:\n  summary: display form summary\n  validate: validate financial report form\n  reformat: reformat financial report for\n```\n\n### In-browser Fincen form parser\nUsing our [in-browser utility](http://oss.moov.io/fincen/), you can instantly verify and reformat Fincen BSA forms.\n\n## Learn about Fincen\n- [About the BSA E-Filing System](https://bsaefiling.fincen.treas.gov/AboutBsa.html)\n- [Secure Direct Transfer Mode](https://bsaefiling.fincen.treas.gov/SDTMInfo.html)\n- [Supervisory User Registration](https://bsaefiling1.fincen.treas.gov/AddUser)\n\n\n## FAQ\n\u003cdetails open=\"true\"\u003e\n\u003csummary \u003e\u003cb\u003eIs there an in-browser tool?\u003c/b\u003e\u003c/summary\u003e\nYes! You can find our browser utility at http://oss.moov.io/fincen/.\n\u003c/details\u003e\n\n## Getting help\n\nchannel | info\n ------- | -------\n[Project Documentation](https://moov-io.github.io/fincen/) | Our project documentation available online.\nTwitter [@moov](https://twitter.com/moov)\t| 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.\n[GitHub Issue](https://github.com/moov-io/fincen/issues/new) | If you are able to reproduce a problem please open a GitHub Issue under the specific project that caused the error.\n[moov-io slack](https://slack.moov.io/) | Join our slack channel to have an interactive discussion about the development of the project.\n\n## Supported and tested platforms\n\n- 64-bit Linux (Ubuntu, Debian), macOS, and Windows\n\nNote: 32-bit platforms have known issues and are not supported.\n\n## Contributing\n\nYes please! Please review our [Contributing guide](CONTRIBUTING.md) and [Code of Conduct](CODE_OF_CONDUCT.md) to get started!\n\nThis project uses [Go Modules](https://go.dev/blog/using-go-modules) and Go v1.18 or newer. See [Golang's install instructions](https://golang.org/doc/install) for help setting up Go. You can download the source code and we offer [tagged and released versions](https://github.com/moov-io/fincen/releases/latest) as well. We highly recommend you use a tagged release for production.\n\n\n## License\n\nApache License 2.0 - See [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoov-io%2Ffincen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoov-io%2Ffincen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoov-io%2Ffincen/lists"}