Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/moov-io/irs
Internal Revenue Service (IRS) Filing Information Returns Electronically (FIRE)
https://github.com/moov-io/irs
efile fire hacktoberfest irs taxes
Last synced: 3 months ago
JSON representation
Internal Revenue Service (IRS) Filing Information Returns Electronically (FIRE)
- Host: GitHub
- URL: https://github.com/moov-io/irs
- Owner: moov-io
- License: apache-2.0
- Created: 2020-06-29T18:30:04.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-07-11T17:03:48.000Z (4 months ago)
- Last Synced: 2024-07-23T03:14:15.983Z (4 months ago)
- Topics: efile, fire, hacktoberfest, irs, taxes
- Language: Go
- Homepage: https://moov-io.github.io/irs/
- Size: 1.47 MB
- Stars: 42
- Watchers: 8
- Forks: 15
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
- Authors: AUTHORS
Awesome Lists containing this project
- jimsghstars - moov-io/irs - Internal Revenue Service (IRS) Filing Information Returns Electronically (FIRE) (Go)
README
moov-io/irs
===[![GoDoc](https://godoc.org/github.com/moov-io/irs?status.svg)](https://godoc.org/github.com/moov-io/irs)
[![Build Status](https://github.com/moov-io/irs/workflows/Go/badge.svg)](https://github.com/moov-io/irs/actions)
[![Coverage Status](https://codecov.io/gh/moov-io/irs/branch/master/graph/badge.svg)](https://codecov.io/gh/moov-io/irs)
[![Go Report Card](https://goreportcard.com/badge/github.com/moov-io/irs)](https://goreportcard.com/report/github.com/moov-io/irs)
[![Apache 2 licensed](https://img.shields.io/badge/license-Apache2-blue.svg)](https://raw.githubusercontent.com/moov-io/irs/master/LICENSE)IRS implemented a reader, writer, and HTTP server for IRS electronic [Filing Information Returns
Electronically](https://www.irs.gov/e-file-providers/filing-information-returns-electronically-fire) (FIRE). Our tools and library operate at higher levels (JSON) which makes it easier for developers to leverage over the raw bytes (ASCII).| Input | Output |
|------------|------------|
| JSON | JSON |
| ASCII FIRE | ASCII FIRE |
| | PDF Form |
| | SQL |Docs: [Project](https://moov-io.github.io/irs/) | [API Endpoints](https://moov-io.github.io/irs/api/)
## Project Status
We are just getting started!
- [ ] 1099-MISC [About Form 1099-MISC](https://www.irs.gov/forms-pubs/about-form-1099-misc)
- [x] 1099-NEC [About Form 1099-NEC](https://www.irs.gov/forms-pubs/about-form-1099-nec)... more to come, open an issue or pull request!
## Commands
Irs has command line interface to manage irs files and to lunch web service.
```
irs --help
```
```
Usage:
[command]Available Commands:
convert Convert irs file format
help Help about any command
print Print irs file
validator Validate irs file
web Launches web serverFlags:
-h, --help help for this command
--input string input file (default is $PWD/irs.json)Use " [command] --help" for more information about a command.
```Each interaction that the library supports is exposed in a command-line option:
Command | Info
------- | -------
`convert` | The convert command allows users to convert from a irs file to another format file. Result will create a irs file.
`print` | The print command allows users to print a irs file with special file format (json, irs).
`validator` | The validator command allows users to validate a irs file.
`web` | The web command will launch a web server with endpoints to manage irs files.### file convert
```
irs convert --help
```
```
Usage:
convert [output] [flags]Flags:
--format string format of irs file(required) (default "json")
-h, --help help for convertGlobal Flags:
--input string input file (default is $PWD/irs.json)
```The output parameter is the full path name to convert new irs file.
The format parameter is supported 2 types, "json" and "irs".
The generate parameter will replace new generated trailer record in the file.
The input parameter is source irs file, supported raw type file and json type file.example:
```
irs convert output/output.json --input testdata/packed_file.json --format json
```### file print
```
irs print --help
```
```
Usage:
print [flags]Flags:
--format string print format (default "json")
-h, --help help for printGlobal Flags:
--input string input file (default is $PWD/irs.json)
```The format parameter is supported 2 types, "json" and "irs".
The input parameter is source irs file, supported raw type file and json type file.### file validate
```
irs validator --help
```
```
Usage:
validator [flags]Flags:
-h, --help help for validatorGlobal Flags:
--input string input file (default is $PWD/irs.json)
```The input parameter is source irs file, supported raw type file and json type file.
example:
```
irs validator --input testdata/packed_file.dat
Error: is an invalid value of TotalConsumerSegmentsJ1irs validator --input testdata/packed_file.json
```### web server
```
irs web --help
```
```
Usage:
web [flags]Flags:
-h, --help help for web
-t, --test test serverGlobal Flags:
--input string input file (default is $PWD/irs.json)
```The port parameter is port number of web service.
```
irs web
```Web server have some endpoints to manage irs file
Method | Endpoint | Content-Type | Info
------- | ------- | ------- | -------
`POST` | `/convert` | multipart/form-data | convert irs file. will download new file.
`GET` | `/health` | text/plain | check web server.
`POST` | `/print` | multipart/form-data | print irs file.
`POST` | `/validator` | multipart/form-data | validate irs file.web page example to use irs web server:
```
Single file uploadUpload single file with fields
Format:
Files:
```
## Docker
You can run the [moov/irs Docker image](https://hub.docker.com/r/moov/irs) which defaults to starting the HTTP server.
```
docker run -p 8208:8208 moov/irs:latest
```## Getting Started
Read through the [project docs](docs/README.md) over here to get an understanding of the purpose of this project and how to run it.
## Getting Help
channel | info
------- | -------
[Project Documentation](https://docs.moov.io/) | Our project documentation available online.
Twitter [@moov](https://twitter.com/moov) | 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](https://github.com/moov-io) | If you are able to reproduce a problem please open a GitHub Issue under the specific project that caused the error.
[moov-io slack](https://slack.moov.io/) | Join our slack channel (`#irs`) to have an interactive discussion about the development of the project.## Supported and Tested Platforms
- 64-bit Linux (Ubuntu, Debian), macOS, and Windows
## Contributing
Yes please! Please review our [Contributing guide](CONTRIBUTING.md) and [Code of Conduct](https://github.com/moov-io/ach/blob/master/CODE_OF_CONDUCT.md) to get started! Checkout our [issues for first time contributors](https://github.com/moov-io/irs/contribute) for something to help out with.
This project uses [Go Modules](https://github.com/golang/go/wiki/Modules) and uses Go 1.14 or higher. 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/irs/releases/latest) as well. We highly recommend you use a tagged release for production.
### Test Coverage
Improving test coverage is a good candidate for new contributors while also allowing the project to move more quickly by reducing regressions issues that might not be caught before a release is pushed out to our users. One great way to improve coverage is by adding edge cases and different inputs to functions (or [contributing and running fuzzers](https://github.com/dvyukov/go-fuzz)).
## License
Apache License 2.0 See [LICENSE](LICENSE) for details.