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 or the Dashboard UIs for a low to no-code solution, or choose the API or one of many SDKs for more complex integrations.

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

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 or main onboarding guides.

Onboarding data Required
Capabilities
Fee plan
Scopes
Return URL X
Terms of service URL X
Prefilled data X

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.

Pricing & 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:

Moov will send the terms of service 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 guide for more information and instructions.

The following is a sample request to create an account with all available data:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
curl --X POST "https://api.moov.io/onboarding-invites" \
  -H "Authorization: Bearer {token}" \
  --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:

Use form shortening

Use the enrichment API 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:

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 will automatically have the wallet enabled.

Source Payment method Details Destination Required capabilities
card-payment Initiate a payment from a linked credit or debit card Wallet transfers, wallet
pull-from-card Instantly pull funds from a supported debit or prepaid card to an external account Wallet transfers, wallet, collect-funds
ach-debit-fund Fund payouts or add funds from a linked bank account Wallet transfers, wallet, send-funds
ach-debit-collect Pull funds for bill payment, direct debit, or e-check type use-cases Bank account transfers, collect-funds
moov-wallet Fund payouts or withdraw funds from the Moov platform Wallet, Bank account, Card transfers, wallet
Destination Payment method Details Source Required capabilities
rtp-credit Disburse funds to a linked bank account in near real time Wallet send-funds, wallet
push-to-card Instantly push funds to a supported debit or prepaid card Card transfers, wallet, send-funds
ach-credit-standard Disburse funds to a linked bank account Bank account transfers, collect-funds
ach-credit-same-day Disburse funds to a linked bank account using same-day processing Bank account transfers, collect-funds
moov-wallet Fund payouts or withdraw funds from the Moov platform Wallet, Bank account, Card transfers, wallet

Bank accounts

Link a bank account through the Dashboard or API for access to instant RTP and fast ACH payment methods.

Link a bank account through the API.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
curl -X POST "https://api.moov.io/accounts/{accountID}/bank-accounts" \
  -H "Authorization: Bearer {token}" \
  --data-raw '{
    "account": {
      "accountNumber": "0004321567000",
      "bankAccountType": "checking",
      "holderName": "Jules Jackson",
      "holderType": "individual",
      "routingNumber": "123456789"
    }
  }'\

Cards

Link a card through the API for access to the instant pull and push card payment methods.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
curl -X POST "https://api.moov.io/accounts/{accountID}/cards" \
  -H "Authorization: Bearer {token}" \
  -H "X-Wait-For: payment-method" \
  --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:

Fund accounts

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

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.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
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" \
  --data-raw '{
    "source": {
      "paymentMethodID": "UUID"
    },
    "destination": {
      "paymentMethodID": "UUID"
    },
    "amount": {
      "value": 300000, // $3000.00
      "currency": "USD"
    },
    "description": "New account initial funding deposit"
  }'\

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.

1
2
3
{
  "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 and check the fee program.

1
2
3
4
5
6
7
{
  "source": {
    "cardDetails": {
      "feeProgram": "Debt Repayment 2"
    }
  }
}

Read more about interchange incentives in our debt repayment documentation:

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.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
curl -X POST "https://api.moov.io/accounts/{accountID}/payment-links" \
  -H "Authorization: Bearer {token}" \
  --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.money/ and send it to customers. You can also use the payment link GET endpoint to retrieve the QR code.

Sharable link and QR code

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
  "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.money/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:

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.

Read more about managing accounts in the Dashboard and API:

Other resources

Summary Beta