# Loan servicing

Moov is your single vendor for loan disbursement, payment management, automated compliance, and real-time insights.

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 loan servicing industry. Quickly onboard accounts, configure interchange incentives, set up recurring payments, and manage borrowers.

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 borrowers](#onboard-borrowers)

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-572986134-1-0) [cURL](#tab-572986134-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 [onboarding invite](/api/moov-accounts/onboarding/post/) 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",
    "scopes": [
      "accounts.read",
      "bank-accounts.read",
      "bank-accounts.write",
      "capabilities.read",
      "capabilities.write",
      "profile.read",
      "profile.write",
      "payment-methods.read",
      "transfers.read",
      "transfers.write",
      "wallets.read"
    ],
    "grantScopes": [
      "accounts.read",
      "bank-accounts.read",
      "bank-accounts.write",
      "capabilities.read",
      "capabilities.write",
      "profile.read",
      "profile.write",
      "payment-methods.read",
      "transfers.read",
      "transfers.write",
      "wallets.read"
    ],
    "capabilities": [
      "transfers",
      "wallet.balance"
    ],
    "feePlanCodes": [
      "b6134307-8922-4a72-bf3c-d0297bbe8a35"
    ],
    "prefill": {
      "mode": "production",
      "accountType": "business",
      "profile": {
        "business": {
          "legalBusinessName": "LBM Lenders LLC",
          "doingBusinessAs": "LBM Lenders",
          "businessType": "llc",
          "address": {
            "addressLine1": "123 Main Street",
            "addressLine2": "Apt 302",
            "city": "Boulder",
            "stateOrProvince": "CO",
            "postalCode": "80301",
            "country": "US"
          },
          "phone": {
            "number": "8185551212",
            "countryCode": "1"
          },
          "email": "amanda@classbooker.dev",
          "website": "www.lbmlenders.com",
          "description": "Financial institution for personal lending",
          "taxID": {
            "ein": {
              "number": "123-45-6789"
            }
          },
          "industryCodes": {
            "naics": "522291",
            "sic": "6141",
            "mcc": "6141"
          },
          "primaryRegulator": "FDIC"
        }
      },
      "metadata": {
        "property1": "string",
        "property2": "string"
      },
      "termsOfService": {
        "token": "kgT1uxoMAk7QKuyJcmQE8nqW_HjpyuXBabiXPi6T83fUKRJkA3dsFID6fzitMpm2qrOh4"
      },
      "foreignID": "4528aba-b9a1-11eb-8529-0242ac13003",
      "customerSupport": {
        "phone": {
          "number": "8185551212",
          "countryCode": "1"
        },
        "email": "amanda@classbooker.dev",
        "address": {
          "addressLine1": "123 Main Street",
          "addressLine2": "Apt 302",
          "city": "Boulder",
          "stateOrProvince": "CO",
          "postalCode": "80301",
          "country": "US"
        },
        "website": "www.lbmlenders.com"
      },
      "settings": {
        "cardPayment": {
          "statementDescriptor": "LBM Lenders"
        },
        "achPayment": {
          "companyName": "LBM Lenders"
        }
      }
    }
  }'\
```

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 lenders to instantly send money to borrowers 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).

### [RTP &amp; ACH](#rtp--ach)

Link an eligible 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-251498637-1-0) [cURL](#tab-251498637-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 (note, not all cards are eligible for instant payments).

[Cards](#tab-658297431-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"
  }'\
```

See our [settlement timing](/guides/money-movement/accept-payments/card-acceptance/timing/) guide for more information on card acceptance timing.

Read more about payment methods in our documentation:

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

## [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/)

## [Set up recurring payments](#set-up-recurring-payments)

Recurring payments will collect from borrowers on a regular basis, without the need for a borrower to initiate a new payment each time. An initial payment is required before establishing a recurring schedule. Unscheduled payments which occur outside the set schedule can also be processed.

Use the [transfers API](/api/money-movement/transfers/create/) to set up recurring payments.

[Initial payment](#tab-326894751-0-0) [Recurring payments](#tab-326894751-0-1)

Before setting up a recurring payment, an initial first recurring payment must be sent with a `first-recurring` transaction source.

```zsh
{
  "amount": {
    "value": 5000,
    "currency": "USD"
  },
  "source": {
    "paymentMethodID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
    "cardDetails": {
      "transactionSource": "first-recurring"
    },
    "destination": {}
  }
}
```

Once an initial recurring payment has been processed, a recurring payments schedule can be set using the `recurring` transaction source.

```zsh
{
  "amount": {
    "value": 5000,
    "currency": "USD"
  },
  "source": {
    "paymentMethodID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
    "cardDetails": {
      "transactionSource": "recurring"
    },
    "destination": {}
  }
}
```

Moov also provides a card account updater (CAU) service. CAU automatically updates payment information when a card has expired or been replaced, eliminating the need to contact cardholders to obtain new information.

Read more about recurring payments and CAU in our documentation:

[Recurring payments](/guides/money-movement/accept-payments/card-acceptance/recurring-payments/) [Card account updater](/guides/sources/cards/card-account-updater/)

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

The easiest way to manage borrowers 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-137865294-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/)
