customers

Customers

Home | Configuration | Running | Client


Project status

Moov Customers has been deprecated in favor of a more direct service for uploading ACH files. We’ve 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.

Purpose

This project focuses on verifying the identity of people who are legally able to hold and transfer currency in the United States. It provides services related to:

The goal of this project is to provide objective, detailed due diligence on individuals and companies in the financial sector — in a modernized and extensible way.

Dependencies

  1. Fed
  2. PayGate
  3. Watchman

Models

This project contains several models used in the HTTP endpoints. These are generated from the OpenAPI specification in the /pkg/client Go package. The primary models used in this project are:

Customer

Customer represents an individual or business (sole proprietorship or corporation). For creating a Customer, see the API documentation.

Customer Status and Approval

Approval is represented by the status field of a Customer and can have the following values: Deceased, Rejected, ReceiveOnly, Verified, Frozen, Unknown (default) Approvals can only be done manually, but we are aiming for automated approval. In order for a Customer to be approved into:

Account

Account represents a demand-deposit account at a financial institution. The account number is encrypted. For creating an Account, see the API documentation.

Account Validation

In order to use an account for ACH transactions, it will need to be validated. This ensures access and authorization to the financial instrument. This project supports the following strategies that can be used for account validation:

See more information on how account validation strategies work.

Document

Document represents a customer’s document uploaded to persistent storage. All documents are encrypted. For uploading a Document, see the API documentation.

Database Migrations

Migrations allow the application’s database schema to evolve over time. When an application starts, it automatically checks for database migrations and runs them if needed to keep the database schema up to date. Information about the current schema version (the latest applied migration) is stored in the schema_migrations table.

Creating a Migration

Migrations are stored as files in the /migrations directory. Contents of each file are executed by the database driver. The migration files should consist of valid SQL queries. The file names must adhere to the format: {version}_{title}.up.sql

Embedding Migrations

We use pkger to embed migration files into our application. Please install it before you proceed.

Running make embed-migrations will generate a cmd/server/pkged.go file with the encoded contents from the /migrations directory which will be included into application build. Make sure to commit the generated file to the git repository.

Getting Help

channel info
Documentation Project documentation for our community.
GitHub Issues Public tracker of issues with our community. Please open a GitHub Issue if you’re able to reproduce problems or to request features.
Twitter @moov You can follow Moov’s Twitter feed to get updates on our projects. You can also tweet us to ask questions or share comments.
Slack #moov-io Join the slack channel to discuss with other contributors about the development of Moov’s open source projects.

Next - Configuration