{"id":15035384,"url":"https://github.com/moov-io/paygate","last_synced_at":"2025-10-04T05:30:45.053Z","repository":{"id":48477125,"uuid":"121570684","full_name":"moov-io/paygate","owner":"moov-io","description":"A RESTful API enabling electronic payments to be submitted and received without a deep understanding payment file specification","archived":true,"fork":false,"pushed_at":"2021-12-09T01:02:00.000Z","size":25709,"stargazers_count":129,"open_issues_count":54,"forks_count":32,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-01-23T03:32:49.302Z","etag":null,"topics":["ach","golang","hacktoberfest","microservice","nacha","nacha-ach"],"latest_commit_sha":null,"homepage":"http://moov.io","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}},"created_at":"2018-02-14T22:52:29.000Z","updated_at":"2024-12-31T22:47:29.000Z","dependencies_parsed_at":"2022-09-13T02:32:03.467Z","dependency_job_id":null,"html_url":"https://github.com/moov-io/paygate","commit_stats":null,"previous_names":["moov-io/achsvc","wadearnold/paygate"],"tags_count":60,"template":false,"template_full_name":null,"purl":"pkg:github/moov-io/paygate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moov-io%2Fpaygate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moov-io%2Fpaygate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moov-io%2Fpaygate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moov-io%2Fpaygate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moov-io","download_url":"https://codeload.github.com/moov-io/paygate/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moov-io%2Fpaygate/sbom","scorecard":{"id":659613,"data":{"date":"2025-08-11","repo":{"name":"github.com/moov-io/paygate","commit":"892046e468230dd897dea6fbf93c0b554e41e2f0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":2,"reason":"Found 5/19 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/codeql.yaml:1","Warn: no topLevel permission defined: .github/workflows/examples.yml:1","Warn: no topLevel permission defined: .github/workflows/go.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yaml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/codeql.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yaml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/codeql.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yaml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/codeql.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/examples.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/examples.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/examples.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/examples.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/go.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/go.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:66: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:88: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:99: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:110: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:125: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:131: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/moov-io/paygate/release.yml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1","Warn: containerImage not pinned by hash: Dockerfile:7: pin your Docker image by updating debian:stable-slim to debian:stable-slim@sha256:8810492a2dd16b7f59239c1e0cc1e56c1a1a5957d11f639776bd6798e795608b","Warn: containerImage not pinned by hash: Dockerfile-openshift:1","Warn: containerImage not pinned by hash: Dockerfile-openshift:7: pin your Docker image by updating registry.access.redhat.com/ubi8/ubi-minimal to registry.access.redhat.com/ubi8/ubi-minimal@sha256:395dec18e7ba913157b1ecf2fd696d701ef834fd77054fffdb7eb678f864eb9e","Warn: downloadThenRun not pinned by hash: .github/workflows/go.yml:38","Info:   0 out of  19 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 containerImage dependencies pinned","Info:   0 out of   1 downloadThenRun dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.10.4 not signed: https://api.github.com/repos/moov-io/paygate/releases/46558596","Warn: release artifact v0.10.3 not signed: https://api.github.com/repos/moov-io/paygate/releases/45527877","Warn: release artifact v0.10.2 not signed: https://api.github.com/repos/moov-io/paygate/releases/42167094","Warn: release artifact v0.10.1 not signed: https://api.github.com/repos/moov-io/paygate/releases/41795364","Warn: release artifact v0.10.0 not signed: https://api.github.com/repos/moov-io/paygate/releases/41448369","Warn: release artifact v0.10.4 does not have provenance: https://api.github.com/repos/moov-io/paygate/releases/46558596","Warn: release artifact v0.10.3 does not have provenance: https://api.github.com/repos/moov-io/paygate/releases/45527877","Warn: release artifact v0.10.2 does not have provenance: https://api.github.com/repos/moov-io/paygate/releases/42167094","Warn: release artifact v0.10.1 does not have provenance: https://api.github.com/repos/moov-io/paygate/releases/41795364","Warn: release artifact v0.10.0 does not have provenance: https://api.github.com/repos/moov-io/paygate/releases/41448369"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/moov-io/.github/.github/SECURITY.md:1","Info: Found linked content: github.com/moov-io/.github/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/moov-io/.github/.github/SECURITY.md:1","Info: Found text in security policy: github.com/moov-io/.github/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":7,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 0 commits out of 19 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"13 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-g636-q5fc-4pr7","Warn: Project is vulnerable to: GO-2022-0322 / GHSA-cg3q-j54f-5p7p","Warn: Project is vulnerable to: GO-2021-0227 / GHSA-3vm4-22fp-5rfm","Warn: Project is vulnerable to: GO-2022-0968 / GHSA-gwc9-m7rh-j2ww","Warn: Project is vulnerable to: GO-2021-0356 / GHSA-8c26-wmh5-6g9v","Warn: Project is vulnerable to: GO-2024-2961","Warn: Project is vulnerable to: GO-2023-2402 / GHSA-45x7-px36-x8w8","Warn: Project is vulnerable to: GO-2024-3321 / GHSA-v778-237x-gjrc","Warn: Project is vulnerable to: GO-2025-3487 / GHSA-hcg3-q754-cr77","Warn: Project is vulnerable to: GO-2025-3488 / GHSA-6v2p-p543-phr9","Warn: Project is vulnerable to: GO-2021-0113 / GHSA-ppp9-7jff-5vj2","Warn: Project is vulnerable to: GO-2022-1059 / GHSA-69ch-w2m2-3vjp","Warn: Project is vulnerable to: GO-2024-2631 / GHSA-c5q2-7r4c-mv6g"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-21T15:42:08.701Z","repository_id":48477125,"created_at":"2025-08-21T15:42:08.701Z","updated_at":"2025-08-21T15:42:08.701Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278267408,"owners_count":25958849,"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-10-04T02:00:05.491Z","response_time":63,"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":["ach","golang","hacktoberfest","microservice","nacha","nacha-ach"],"created_at":"2024-09-24T20:28:27.876Z","updated_at":"2025-10-04T05:30:44.542Z","avatar_url":"https://github.com/moov-io.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"moov-io/paygate\n===\n\n## Project Status\n\n**We have designed and released [achgateway for orchestrating ACH uploads](https://github.com/moov-io/achgateway) in real production scenarios. Please read [over our guide to achgateway](https://moov.io/blog/education/ach-gateway-guide/) and give us feedback on the design or your experience! We have also realized that KYC/KYB, data modeling, workflows, and risk analysis are difficult to open-source. We are interested in hearing how you have solved these problems internally and want to develop something in the open. Thank you to everyone who has contributed and helped us grow.**\n\n\u003chr /\u003e\n\n[![GoDoc](https://godoc.org/github.com/moov-io/paygate?status.svg)](https://godoc.org/github.com/moov-io/paygate)\n[![Build Status](https://github.com/moov-io/paygate/workflows/Go/badge.svg)](https://github.com/moov-io/paygate/actions)\n[![Coverage Status](https://codecov.io/gh/moov-io/paygate/branch/master/graph/badge.svg)](https://codecov.io/gh/moov-io/paygate)\n[![Go Report Card](https://goreportcard.com/badge/github.com/moov-io/paygate)](https://goreportcard.com/report/github.com/moov-io/paygate)\n[![Apache 2 licensed](https://img.shields.io/badge/license-Apache2-blue.svg)](https://raw.githubusercontent.com/moov-io/paygate/master/LICENSE)\n\nMoov Paygate is a RESTful HTTP API enabling Automated Clearing House ([ACH](https://en.wikipedia.org/wiki/Automated_Clearing_House)) transactions and returns to be processed with an Originating Depository Financial Institution (ODFI) without a deep understanding of a full NACHA file specification.\n\nIf you believe you have identified a security vulnerability please responsibly report the issue as via email to security@moov.io. Please do not post it to a public issue tracker.\n\nDocs: [Project](https://moov-io.github.io/paygate/) | [API Endpoints](https://moov-io.github.io/paygate/api/) | [Admin API Endpoints](https://moov-io.github.io/paygate/admin/)\n\nThis project is sponsored by Moov Financial, Inc which offers commercial support, hosting, and additional features. Refer to our [Moov's payout documentation](https://moov.io/payouts/) for more information.\n\n## Getting Started\n\nWe publish a [public Docker image `moov/paygate`](https://hub.docker.com/r/moov/paygate/) from Docker Hub or use this repository. No configuration is required to serve on `:8083` and metrics at `:9093/metrics` in Prometheus format. We also have docker images for [OpenShift](https://quay.io/repository/moov/paygate?tab=tags).\n\nStart PayGate and its dependencies:\n```\ndocker-compose up\n```\n\nCreate an example Transfer\n```\ngo run examples/getting-started/main.go\n```\n```\nCreated source customer 1b1747b770bc471a478a9ae22d99973e956199aa\nCustomer status is verified\nCreated source customer account 164213fa5901431dffa324fbf16e10210fe3f6da\nApproved source account\n===========\nCreated destination customer 81393acbf9b45abc164c51689aa095528affc8e1\nCustomer status is verified\nCreated destination customer account 2a1969745050c7ccd9b2d9ba4abaf49c07c4d42e\nApproved destination account\n===========\n{\n  \"transferID\": \"dd4dfea8ea5fe52d46d9749fc84ad6695d3d2a05\",\n  \"amount\": {\n    \"currency\": \"USD\",\n    \"value\": 125,\n  },\n  \"source\": {\n    \"customerID\": \"1b1747b770bc471a478a9ae22d99973e956199aa\",\n    \"accountID\": \"164213fa5901431dffa324fbf16e10210fe3f6da\"\n  },\n  \"destination\": {\n    \"customerID\": \"81393acbf9b45abc164c51689aa095528affc8e1\",\n    \"accountID\": \"2a1969745050c7ccd9b2d9ba4abaf49c07c4d42e\"\n  },\n  \"description\": \"test transfer\",\n  \"status\": \"processed\",\n  \"sameDay\": false,\n  \"returnCode\": {\n    \"code\": \"\",\n    \"reason\": \"\",\n    \"description\": \"\"\n  },\n  \"created\": \"2020-07-10T16:59:19.6422361Z\"\n}\nSuccess! A Transfer was created.\n\nAn ACH file was uploaded to a test FTP server at ./testdata/ftp-server/outbound/\ntotal 8\n-rw-r--r--  1 adam  staff  950 Jul 10 09:59 20200710-071000301.ach\n\n```\n\nView all uploaded files with [`achcli`](https://github.com/moov-io/ach#command-line) from [moov-io/ach](https://github.com/moov-io/ach).\n\n```\nachcli ./testdata/ftp-server/outbound/*.ach\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eUploaded ACH file\u003c/summary\u003e\n\n```\nDescribing ACH file './testdata/ftp-server/outbound/20200710-071000301.ach'\n\n  Origin     OriginName    Destination  DestinationName  FileCreationDate  FileCreationTime\n  221475786  Teachers FCU  071000301    FRBATLANTA       200710            1259\n\n  BatchNumber  SECCode  ServiceClassCode  CompanyName  DiscretionaryData  Identification  EntryDescription  DescriptiveDate\n  1            PPD      200               John Doe                        MOOVO3S6TA      test trans        200710\n\n    TransactionCode  RDFIIdentification  AccountNumber      Amount  Name                    TraceNumber      Category\n    32               10200101            654321             125     Jane Doe                221475784797987\n\n    TransactionCode  RDFIIdentification  AccountNumber      Amount  Name                    TraceNumber      Category\n    27               22147578            123456             125     John Doe                221475784797988\n\n  BatchCount  BlockCount  EntryAddendaCount  TotalDebitAmount  TotalCreditAmount\n  1           1           2                  125               125\n```\n\n\u003c/details\u003e\n\n## Micro-Deposits\n\nMicro Deposits are used to validate a customer can access an account at another Financial Institution. Typically they are two deposits under $0.50 and a balancing withdraw. The customer supplies both deposited amounts as verification.\n\nStart PayGate and its dependencies:\n```\ndocker-compose up\n```\n\nSetup the micro-deposit account to originate from.\n```\ngo run examples/micro-deposits-setup/main.go\n```\n```\nCreated micro-deposit source customer df7a3f35038be2b3e332625e94b58b66fed703b8\nCustomer status is verified\nCreated customer account 460026b50830443a77253a0e6c7ca1bebae8a731\nApproved micro-deposit source account\n===========\nIn ./examples/config.yaml replace the 'validation:' YAML block with:\nvalidation:\n  microDeposits:\n    source:\n      customerID: \"df7a3f35038be2b3e332625e94b58b66fed703b8\"\n      accountID: \"460026b50830443a77253a0e6c7ca1bebae8a731\"\n===========\n\nRestart PayGate with 'docker-compose up' and run go run /examples/micro-deposits/main.go\n```\n\nAfter updating PayGate's config and restarting (`docker-compose restart`)\n\n```\ngo run examples/micro-deposits/main.go\n```\n```\nCreated customer 2774a3f7a5eef61dd6e2a18ac5d939dd35099161 to approve\nCustomer status is verified\nCreated destination customer account bd2b81017ecf791cdb3e722eebbe675ae67357d9\nInitiating micro-deposits...\nInitiated micro-deposits for destination account\nFound micro-deposits: [\n  {\n    \"currency\": \"USD\",\n    \"value\": 21\n  },\n  {\n    \"currency\": \"USD\",\n    \"value\": 2\n  },\n]\nCustomer accounts: [\n  {\n    \"accountID\": \"bd2b81017ecf791cdb3e722eebbe675ae67357d9\",\n    \"maskedAccountNumber\": \"**4321\",\n    \"routingNumber\": \"102001017\",\n    \"status\": \"validated\",\n    \"type\": \"Checking\"\n  }\n]\nSuccess! The account was validated with micro-deposits\n\nAn ACH file was uploaded to a test FTP server at ./testdata/ftp-server/outbound/\ntotal 8\n-rw-r--r--  1 adam  staff  1900 Jul 10 10:17 20200710-071000301.ach\n```\n\nView all uploaded files with [`achcli`](https://github.com/moov-io/ach#command-line) from [moov-io/ach](https://github.com/moov-io/ach).\n\n```\nachcli ./testdata/ftp-server/outbound/*.ach\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eUploaded ACH file\u003c/summary\u003e\n\n```\nDescribing ACH file './testdata/ftp-server/outbound/20200710-071000301.ach'\n\n  Origin     OriginName    Destination  DestinationName  FileCreationDate  FileCreationTime\n  221475786  Teachers FCU  071000301    FRBATLANTA       200710            1315\n\n  BatchNumber  SECCode  ServiceClassCode  CompanyName     DiscretionaryData  Identification  EntryDescription  DescriptiveDate\n  1            PPD      220               Micro Deposits                     MOOVO3S6TA      validation        200710\n\n    TransactionCode  RDFIIdentification  AccountNumber      Amount  Name                    TraceNumber      Category\n    22               10200101            654321             15      Jane Doe                221475787457191\n\n  BatchNumber  SECCode  ServiceClassCode  CompanyName     DiscretionaryData  Identification  EntryDescription  DescriptiveDate\n  2            PPD      220               Micro Deposits                     MOOVO3S6TA      validation        200710\n\n    TransactionCode  RDFIIdentification  AccountNumber      Amount  Name                    TraceNumber      Category\n    22               10200101            654321             25      Jane Doe                221475783240158\n\n  BatchNumber  SECCode  ServiceClassCode  CompanyName  DiscretionaryData  Identification  EntryDescription  DescriptiveDate\n  3            PPD      225               Jane Doe                        MOOVO3S6TA      validation        200710\n\n    TransactionCode  RDFIIdentification  AccountNumber      Amount  Name                    TraceNumber      Category\n    27               10200101            654321             40      Jane Doe                221475781875397\n\n  BatchCount  BlockCount  EntryAddendaCount  TotalDebitAmount  TotalCreditAmount\n  3           2           3                  40                40\n```\n\n\u003c/details\u003e\n\n## Next Steps\n\nRead over our [PayGate documentation](https://moov-io.github.io/paygate/) for [configuration files](https://moov-io.github.io/paygate/config.md), api and admin endpoints, [ACH details](https://moov-io.github.io/paygate/ach) and more information.\n\n## Getting Help\n\n channel | info\n ------- | -------\n [Project Documentation](https://moov-io.github.io/paygate/) | Our project documentation available online.\n Twitter [@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) | 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 (`#paygate`) 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\n## Contributing\n\nYes 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/paygate/contribute) for something to help out with.\n\nPaygate includes several \"long\" tests which spawn Docker containers, make requests over the internet, and perform more complicated tests. To skip these long tests add the `-short` flag to `go test`.\n\nThis 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/paygate/releases/latest) as well. We highly recommend you use a tagged release for production.\n\n### Further Reading\n\n- [The default banking-as-a-service platform will be developer-first](https://www.kunle.app/feb-2020-permissionless-issuing.html)\n\n### Test Coverage\n\nImproving 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)).\n\nTests can run processes (like sqlite databases), but should only do so locally.\n\nEach PR should increase the overall coverage, if possible. You can run `make cover-test` to save a coverage profile and `make cover-web` to open the HTML view in your default browser.\n\n## License\n\nApache License 2.0 See [LICENSE](LICENSE) for details.\n\n## Google Cloud Run Button\n[![Run on Google Cloud](https://deploy.cloud.run/button.svg)](https://deploy.cloud.run)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoov-io%2Fpaygate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoov-io%2Fpaygate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoov-io%2Fpaygate/lists"}