After you’ve gotten started with PayGate and are ready to deploy it in an environment there are a few considerations you need to make. The first consideration will be to ensure you have an agreement setup with a Financial Institution to act as your Originating Depository Financial Institution (ODFI) where files are uploaded to and processed with the Federal Reserve. After you’re setup with an ODFI there will be some configuration needed along with deployment of PayGate.
PayGate operates as a first-pary ACH originator, which means it assumes you’re operating from the perspective of an ODFI and are debiting or crediting accounts between your FI and another financial institution (FI). If you need to move funds between two FI’s which are not your ODFI Moov’s commercial solution may better fit your needs. You are responsible to ensure all fund transfers comply with United States, state and local laws, relevant financial requirements and any agreements you have entered into. Moov accepts no responsibility for funds that are transfered by other parties using PayGate.
Moov offers commercial support, and hosting with an ODFI to offer payments for your needs. For more information refer to our product documentation for more information.
Prior to running PayGate in a production environment consider how data replication, process monitoring, networking, and general availability factor into your infrastructure. We have makde some explicit decisions around high availability that currently drive PayGate’s archecture, but your data has requirements to consider.
We recommend you run MySQL as the datastore along with running Kafak as the pipeline stream and inbound stream. The ODFI storage (odfi.storage.local.directory
) should be a persistent volume PayGate can rely on for consistent and durable storage.
Bringing your own FI typically requires an Origination agreement with them and brings some Gateway (FileHeader
) configuration, SFTP credentials, and audit trail setup. Consult your financial institution for more details. We are available to assist in setting configuration options according to your requirements.
Please consult the entire configuration guide for details on all of PayGate’s options.
The following are suggestions we recommend changing from their default for a production deployment.
database
: Deploy and configure a MySQL clusterodfi
gateway
configuration according to your ODFI’s requirementscutoffs
to accomidate your ODFI’s policies around ACH originationinboundPath
, outboundPath
, and returnPath
according to your ODFI’s remote serverftp
or sftp
credentials with industry standard authenticationtransfers
pipeline
audittrail
recording to persist uploaded ACH filesstream.kafka
with a replicated Kafka clusternotifications
for your teams and ODFI.
email
, pagerduty
, and/or slack
for each ACH file uploaded
validation
microDeposits
source account to fund micro-deposit account validationcustomers
We recommend PayGate is deployed with Terraform modules or Helm Charts. To deploy with either make sure that tool is installed to the latest version and you follow the steps below:
Terraform Modules Hosted in our moov-io/infra repository we have a Terraform module for PayGate. Please see the variables for required values.
PayGate emits Prometheus metrics on the admin HTTP server at /metrics
. These should be scraped and monitored. See our metrics documentation for more information. We advise you setup alerting (typically with Alertmanager) for your teams.
A common architecture when deploying PayGate is to have it upload files to an internal FTP/SFTP server where additional services can process the files prior to their final upload at the ODFI. Typically these are fraud monitoring, ACH/payment analytics, or file transforms outside of what PayGate currently supports.
channel | info |
---|---|
Project Documentation | Our project documentation available online. |
Twitter @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 | 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 (#paygate ) to have an interactive discussion about the development of the project. |