# Digital banking

Moov is your single vendor for digital banking with easy payments, real-time insights, and tools to grow deposits.

This guide focuses on the quickest and easiest way to get started with the features of Moov we think you'll find most useful for the digital banking industry. Quickly onboard and fund accounts, configure interchange incentives, and facilitate simple loan repayments with payment links.

Moov offers a variety of integration options to get started. Use [Drops](/moovjs/drops/) or the [Dashboard](https://dashboard.moov.io/signin) UIs for a low to no-code solution, or choose the [API](/api/) or one of many [SDKs](/sdks/) for more complex integrations.

For the purposes of this guide, we'll provide Dashboard and API examples.

## [Onboard accounts](#onboard-accounts)

As you move through the onboarding process to create Moov accounts, some data is required while other data is optional. To view our full onboarding guides, visit the [Dashboard](/guides/dashboard/accounts/onboarding-links/) or main [onboarding](/guides/accounts/hosted-onboarding/) guides.

| Onboarding data      | Required |
|----------------------|----------|
| Capabilities         | **✓**    |
| Fee plan             | **✓**    |
| Scopes               | **✓**    |
| Return URL           | **×**    |
| Terms of service URL | **×**    |
| Prefilled data       | **×**    |

**Capabilities** determine what each Moov account can do, such as receiving transfers, or sending money to others. For risk and fraud protection purposes, we require detailed information when requesting capabilities. For example, we'll request more details if an account wants to collect funds than we would for an account receiving funds.

- [Transfers](/guides/accounts/capabilities/enablement/#transfers): Authorize debit transfers
- [Wallet](/guides/accounts/capabilities/enablement/#wallet): Store funds with Moov
- [Send funds](/guides/accounts/capabilities/enablement/#send-funds): Send funds to another account
- [Collect funds](/guides/accounts/capabilities/enablement/#collect-funds) (Business accounts only): Collect funds from another account

**Pricing &amp; fee plans** can be assigned to one merchant or reused for many merchants. Merchants must agree to and accept the fee plan before it can go into effect. Moov offers two types of plans:

- **Cost plus:** With a cost plus plan, card networks’ interchange fees and Moov’s processing markup are passed along to the merchant. Cost plus plans are beneficial for merchants with a high and varied transaction volume that prefer to have more control over fees. Fees are broken down into a more digestible and transparent format.
- **Flat rate:** With a flat rate plan, you can lump all the processing fees together with a flat rate customized for each merchant. Flat plans are beneficial for merchants with a low transaction volume that prefer a predictable solution over lowering cost as much as possible.

**Scopes** are used to determine what can be done with the account once it's onboarded. For example, the `/accounts.read` scope provides access to view all connected user accounts and the `/accounts/{accountID}/files.read` scope provides access to view or upload files associated with a Moov account.

Read more on required data in our documentation:

[Capabilities](/guides/accounts/capabilities/) [Fee plans](/guides/fee-plans/) [Scopes](/api/authentication/scopes/)

[Dashboard](#tab-421837956-1-0) [cURL](#tab-421837956-1-1)

Moov will send the [terms of service platform agreement](/guides/accounts/requirements/platform-agreement/) as part of the onboarding process through the Dashboard. Everyone with a Moov account must agree to and accept the terms of service before using Moov.

The following clip demonstrates how to create a new onboarding link in the Dashboard:

You'll need to generate and send a terms of service platform agreement as part of the onboarding process. Everyone with a Moov account must agree to and accept the terms of service before using Moov. If you're using the API, an SDK, or Moov Drops to onboard, see the [terms of service platform agreement](/guides/accounts/requirements/platform-agreement/) guide for more information and instructions.

The following is a sample request to [create an account](/api/moov-accounts/accounts/create/) with all available data:

```zsh
curl --X POST "https://api.moov.io/onboarding-invites" \
  -H "Authorization: Bearer {token}" \
  -H "x-moov-version: v2024.01.00" \
  --data-raw '{
    "returnURL": "https://mycompany.com/account",
    "termsOfServiceURL": "https://mycompany.com/terms-of-service",
    "capabilities": [
      "transfers",
      "wallet"
    ],
    "feePlanCodes": [
      "merchant-direct"
    ],
    "scopes": [
     "accounts.read"
    ],
    "prefill": {
      "mode": "production",
      "accountType": "individual",
      "profile": {
        "individual": {
          "email": "julesjacksonyoga@classbooker.dev",
          "name": {
            "firstName": "Jules",
            "lastName": "Jackson"
          }
        }
      },
      "metadata": {
        "property1": "string",
        "property2": "string"
      },
      "termsOfService": {
        "token": "kgT1uxoMAk7QKuyJcmQE8nqW_HjpyuXBabiXPi6T83fUKRJkA3dsFID6fzitMpm2qrOh4"
      },
      "foreignID": "4528aba-b9a1-11eb-8529-0242ac13003",
      "settings": {
        "cardPayment": {
          "statementDescriptor": "Jules Jackson payment"
        },
        "achPayment": {
          "companyName": "Jules Jackson payment"
        }
      }
    }
  }'\
```

Read more about accounts and onboarding in our documentation:

[Accounts](/guides/accounts/) [Onboarding links](/guides/dashboard/accounts/onboarding-links/)

## [Use form shortening](#use-form-shortening)

Use the [enrichment API](/api/enrichment/form-shortening/) to find publicly available information to autofill form fields based on an email address. With the enrichment API you can:

- Autocomplete addresses
- Get avatars
- Look up bank by routing number
- List industries
- Enrich business profile

If you're using a Moov.js integration, you can use Moov's pre-built Drops UI for form shortening. Read more in the Moov.js documentation:

[Moov.js](/moovjs/) [Composable Drops](/moovjs/drops/composable-drops/)

## [Set up payment methods](#set-up-payment-methods)

Moov enables customers to instantly send money from a Moov wallet. After an account is linked to Moov, we'll check its eligibility to send and receive payments on the RTP, ACH and card networks and we'll automatically create the payment methods for the account.

Every account that meets the wallet capability [requirements](/guides/accounts/capabilities/reference/#account-requirements) will automatically have the wallet enabled.

| Source Payment method | Details                                                                                                                                      | Destination                | Required capabilities                  |
|-----------------------|----------------------------------------------------------------------------------------------------------------------------------------------|----------------------------|----------------------------------------|
| `card-payment`        | Initiate a [payment](/guides/money-movement/accept-payments/card-acceptance/) from a linked credit or debit card                             | Wallet                     | `transfers`, `wallet`                  |
| `pull-from-card`      | Instantly [pull funds](/guides/money-movement/accept-payments/pull-from-card/) from a supported debit or prepaid card to an external account | Wallet                     | `transfers`, `wallet`, `collect-funds` |
| `ach-debit-fund`      | Fund [payouts](/guides/money-movement/send-payments/send-funds/) or add funds from a linked bank account                                     | Wallet                     | `transfers`, `wallet`, `send-funds`    |
| `ach-debit-collect`   | [Pull funds](/guides/money-movement/accept-payments/ach/) for bill payment, direct debit, or e-check type use-cases                          | Bank account               | `transfers`, `collect-funds`           |
| `moov-wallet`         | Fund [payouts](/guides/money-movement/send-payments/send-funds/) or withdraw funds from the Moov platform                                    | Wallet, Bank account, Card | `transfers`, `wallet`                  |

| Destination Payment method | Details                                                                                                                                                            | Source                     | Required capabilities                                    |
|----------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------|----------------------------------------------------------|
| `instant-bank-credit`      | [Disburse funds](/guides/money-movement/send-payments/instant-payments/) to a linked bank account in near real time with the RTP rail (FedNow support coming soon) | Wallet                     | `send-funds.instant-bank`, `wallet.balance`              |
| `rtp-credit`               | [Disburse funds](/guides/money-movement/send-payments/instant-payments/) to a linked bank account in near real time                                                | Wallet                     | `send-funds.instant-bank`, `wallet.balance`              |
| `push-to-card`             | Instantly [push funds](/guides/money-movement/send-payments/push-to-card/) to a supported debit or prepaid card                                                    | Card                       | `transfers`, `wallet.balance`, `send-funds.push-to-card` |
| `ach-credit-standard`      | Disburse funds to a linked bank account                                                                                                                            | Bank account               | `transfers`, `collect-funds.ach`                         |
| `ach-credit-same-day`      | Disburse funds to a linked bank account using same-day processing                                                                                                  | Bank account               | `transfers`, `collect-funds.ach`                         |
| `moov-wallet`              | Fund [payouts](/guides/money-movement/send-payments/send-funds/) or withdraw funds from the Moov platform                                                          | Wallet, Bank account, Card | `transfers`, `wallet.balance`                            |

While `instant-bank-credit` and `rtp-credit` both provide instant payments on the RTP rail, Moov strongly suggests using `instant-bank-credit`, which supports the RTP rail (FedNow support coming soon).

### [Bank accounts](#bank-accounts)

Link a bank account through the Dashboard or API for access to instant [RTP](/guides/money-movement/send-payments/instant-payments/) and fast [ACH](/guides/money-movement/accept-payments/ach/) payment methods.

[Dashboard](#tab-985634172-1-0) [cURL](#tab-985634172-1-1)

[Link a bank account](/api/sources/bank-accounts/create/) through the API.

```zsh
curl -X POST "https://api.moov.io/accounts/{accountID}/bank-accounts" \
  -H "Authorization: Bearer {token}" \
  -H "x-moov-version: v2024.01.00" \
  --data-raw '{
    "account": {
      "accountNumber": "0004321567000",
      "bankAccountType": "checking",
      "holderName": "Jules Jackson",
      "holderType": "individual",
      "routingNumber": "123456789"
    }
  }'\
```

### [Cards](#cards)

[Link a card](/api/sources/cards/create/) through the API for access to the instant [pull](/guides/money-movement/accept-payments/pull-from-card/) and [push](/guides/money-movement/send-payments/push-to-card/) card payment methods.

[Cards](#tab-729831645-2-0)

```zsh
curl -X POST "https://api.moov.io/accounts/{accountID}/cards" \
  -H "Authorization: Bearer {token}" \
  -H "X-Wait-For: payment-method" \
  -H "x-moov-version: v2024.01.00" \
  --data-raw '{
    "billingAddress": {
      "addressLine1": "123 Main Street",
      "city": "Denver",
      "stateOrProvince": "CO",
      "postalCode": "80301",
      "country": "US"
    },
    "cardCvv": "123",
    "cardNumber": "4111111111111111",
    "expiration": {
      "month": "01",
      "year": "28"
    },
    "holderName": "Jules Jackson"
  }'\
```

Read more about payment methods in our documentation:

[Payment methods](/guides/money-movement/payment-methods/) [Funding sources](/guides/sources/)

## [Fund accounts](#fund-accounts)

Customers can fund a new account with an existing external account.

[Fund an account](#tab-713592648-1-0)

Create a basic transfer to fund an account (as shown in the example below). Customers can send funds from an external account to fund their new bank account. The source will be the external account, and the destination will be the new account.

The source `paymentMethodID` is taken from the payment method type, such as `pull-from-card` or `ach-debit-fund`. The destination `paymentMethodID` is taken from the payment method type, such as `moov-wallet` or `ach-credit-same-day`.

To find what payment method types are available to an account and retrieve the associated `paymentMethodID`, use the payment method `GET` [endpoint](/api/sources/payment-methods/list/).

```zsh
curl -X POST "https://api.moov.io/accounts/{accountID}/transfers" \
  -H "Authorization: Bearer {token}" \
  -H "X-Idempotency-Key: UUID" \
  -H "X-Wait-For: rail-response" \
  -H "x-moov-version: v2024.01.00" \
  --data-raw '{
    "source": {
      "paymentMethodID": "string"
    },
    "destination": {
      "paymentMethodID": "string"
    },
    "amount": {
      "value": 300000, // $3000.00
      "currency": "USD"
    },
    "description": "New account initial funding deposit"
  }'\
```

[]()[]()

## [Configure interchange incentives](#configure-interchange-incentives)

To have card payments qualify for debt repayment interchange incentives, business accounts must be configured with Moov and registered with Visa, Mastercard, and Discover. After configuration and registration, eligible merchants can receive lower interchange fees for qualified loan repayment transactions.

When you link a card, you can check the response object to see if it qualifies. Qualifying cards will have card type `debit` or `prepaid`.

```zsh
{
  "cardType": "debit"
}
```

Payments made with a debit or prepaid card will automatically be marked as debt repayment in the request to the card network. To see what debt repayment program a transaction qualifies for, use the retrieve transfer `GET` [endpoint](/api/money-movement/transfers/get/) and check the fee program.

```zsh
{
  "source": {
    "cardDetails": {
      "feeProgram": "Debt Repayment 2"
    }
  }
}
```

Read more about interchange incentives in our debt repayment documentation:

[Debt repayment](/guides/money-movement/accept-payments/card-acceptance/debt-repayment/)

## [Send payment links](#send-payment-links)

Create and send customers payment links and make paying back loans simple. Create a payment link and share it with your customers via email, SMS, or social media. When customers click on a link, they can pay using a credit card, debit card, or bank account.

A payment link can be sent as a URL or QR code.

[Dashboard](#tab-295871463-0-0) [cURL](#tab-295871463-0-1)

```zsh
curl -X POST "https://api.moov.io/accounts/{accountID}/payment-links" \
  -H "Authorization: Bearer {token}" \
  -H "x-moov-version: v2024.01.00" \
  --data-raw '{
    "accountID": "c197cd40-7745-4413-8f3b-ec962d1b5225",
    "merchantPaymentMethodID": "3afc7533-7095-43bb-b21a-5c4dc5568451",
    "amount": {
      "currency": "USD",
      "value": 1000
    },
    "maxUses": 0,
    "expiresOn": "2025-08-24T14:15:22Z",
    "display": {
      "title": "string",
      "description": "string",
      "callToAction": "pay"
    },
    "customer": {
      "requireAddress": true,
      "requirePhone": true,
      "metadata": {
        "property1": "string",
        "property2": "string"
      }
    },
    "payment": {
      "allowedMethods": [
        "apple-pay",
        "card-payment",
        "ach-debit-collect"
      ],
      "cardDetails": {
        "dynamicDescriptor": "Customer payment 11-12"
      },
      "achDetails": {
        "companyEntryDescription": "Monthly loan repayment",
        "originatingCompanyName": "Jules Jackson LLC"
      }
    }
  }'\
```

Once a payment link has been created in the Dashboard, you'll be presented with a URL and QR code to copy and send. If you're using the API, the payment link `code` will be in the response. You can append the code to the payment link URL `https://moov.link/` and send it to customers. You can also use the payment link `GET` [endpoint](/api/money-movement/payment-links/get-qrcode/) to retrieve the QR code.

[Dashboard](#tab-479582613-1-0) [cURL](#tab-479582613-1-1)

![Sharable link and QR code](../../guides/shared-images/payment-link-qr.png)

The following is an example response when creating a payment link. The payment link URL with the code would be `https://moov.link/3QLHtONjd5`.

```zsh
{
  "amount": {
    "currency": "USD",
    "value": 100000
  },
  "code": "3QLHtONjd5",
  "createdOn": "2025-01-09T17:09:13.33Z",
  "customer": {
    "requirePhone": true
  },
  "display": {
    "callToAction": "pay",
    "description": "This is an example payment link.",
    "title": "Example Payment Link"
  },
  "link": "https://moov.link/3QLHtONjd5",
  "merchantAccountID": "34233b72-780c-4e0e-8b08-cbbe1bc878f8",
  "merchantPaymentMethodID": "4c4e7f8e-81f4-4f3d-8f6f-6f6e7f8e4c4e",
  "mode": "sandbox",
  "partnerAccountID": "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "payment": {
    "allowedMethods": [
      "card-payment",
      "ach-debit-collect"
    ]
  },
  "status": "active",
  "updatedOn": "2025-01-09T17:09:13.33Z",
  "uses": 0
}
```

Read more about payments links in our documentation:

[Dashboard payment links](/guides/dashboard/transfers/payment-links/) [Payment links](/guides/money-movement/payment-links/) [Payment link API](/api/money-movement/payment-links/)

## [Manage accounts](#manage-accounts)

The easiest way to manage accounts is in the Dashboard. Within the Dashboard you can view all accounts, create new accounts, upload documents, update fee plans, view transfers, and more.

[Accounts in the Dashboard](#tab-971634258-0-0)

Read more about managing accounts in the Dashboard and API:

[Accounts](/guides/dashboard/accounts/) [Accounts API](/api/moov-accounts/accounts/)

## [Other resources](#other-resources)

[Test mode](/guides/get-started/test-mode/) [Dashboard](/guides/dashboard/) [Webhooks](/guides/webhooks/) [API](/api/) [SDKs](/sdks/)
