This quick start guide brings you through the process of signing up for Moov, getting authorized for production, and creating user accounts with Moov's API and Moov.js Drops.

This guide focuses on the quickest and easiest way to get set up with a partner account and create your first connected account with Moov's API and Drops. With the API you can send secure onboarding links and create payment links to facilitate payments and payouts.

After setting up your own account, you can add and connect additional business and individual accounts to your Moov account.

## Sign up for Moov

Before you get started with the API or Drops, you'll use the [Moov Dashboard](https://dashboard.moov.io/signup) to create a Moov account. Once you're signed up, you can use test mode with no commitment.

If you want to move real money and onboard real business accounts, you'll need to go through verification, underwriting, and sign a contract with Moov before you'll be approved for production access. See the [account requirements](https://docs.moov.io/guides/accounts/requirements/) section for more information.

An individual with administrator or developer permissions is required to take the actions laid out in this guide.

## Create API keys

To use Moov's API, you'll need to generate keys in the Dashboard. Navigate to **Developers** and click the **New API key** button. Test mode and production mode each require their own API keys. To create an API key:

1. Name the API key (we suggest giving it a name that relates to the purpose)
2. Make sure to copy the key and save it in a secure place
3. Add any domains you'll use for testing and production
4. Optional: Include a note to remind you where the key is stored

Read the [API keys](https://docs.moov.io/guides/get-started/api-keys/) documentation for more information. If you're ready to jump into production mode, make sure to take any [necessary precautions](https://docs.moov.io/guides/quick-start/api/#switch-to-production-mode) if you've previously been using test mode.

## Explore test mode

In [test mode](https://docs.moov.io/guides/get-started/test-mode/), test data is automatically enabled in the Dashboard and the API, which allows you to explore how the platform works. Make sure you're in test mode by using the account switcher on the top left of the Dashboard view.

In the [accounts API](https://docs.moov.io/api/moov-accounts/accounts/) and [payment links API](https://docs.moov.io/api/money-movement/payment-links/), you can set `"mode": "sandbox"` to test in sandbox mode with [test mode data](https://docs.moov.io/guides/get-started/test-mode/#test-mode-data).

Try out the following:

- Add a bank account
- Initiate verification
- Initiate a transfer
- Initiate a return

### Switch to production mode

When you're ready to switch to [production mode](https://docs.moov.io/guides/get-started/production-mode/), use the account switcher to change modes. Before you start using production mode, make sure to:

- Have your production API key
- Switch out the account ID anywhere it's hard coded
- Set up new webhook URLs if you used any in test mode

### Set brand colors

Select light and dark mode brand color settings with the `POST` create brand [endpoint](https://docs.moov.io/api/enrichment/branding/create/).

```zsh
curl -X POST "https://api.moov.io/accounts/{accountID}/branding" \
  -H "Authorization: Bearer {token}" \
  -H "X-Moov-Version: v2026.07.00" \
  -d '{
  "colors": {
    "dark": {
      "accent": "#DB8774"
    },
    "light": {
      "accent": "#9E432B"
    }
  }
}'
```

## Onboard with hosted onboarding

Moov's hosted onboarding allows you to select capabilities, scopes, pre-fill existing information, and select a fee plan before sending a link to a secure session to finish the sign up process. A new account can be redirected to your app upon completion.

Any account onboarded through Moov's hosted onboarding process will have access to their own Dashboard. You can send a [support guide](https://support.moov.io/articles/2845506014-merchant-onboarding) to the account owner so they'll know what information and documents to gather ahead of time.

All personally identifiable information (PII) goes straight to Moov, so you won’t be responsible for storing or handling sensitive user data.

### Select Capabilities

Capabilities indicate what an account is able to do. Before you begin the hosted onboarding process, decide what capabilities the account will need:

- Transfer: Authorize debit transfers
- Wallet: Store funds with Moov
- Send funds: Send funds to another account
- Collect funds: (business accounts only): Collect funds from another account
- Card issuing beta: (business accounts only): Provide a virtual card to an account

Each capability has different data and verification [requirements](https://docs.moov.io/guides/accounts/capabilities/reference/) depending on whether the account represents a business or individual. You should familiarize yourself with capability requirements before moving on to the next step.

Available capabilities:

| Capability | Description |
| --- | --- |
| `transfers` | Participation in any Moov transfer. Auto-enabled on all qualifying accounts. |
| `wallet.balance` | Hold funds in a Moov wallet; participate in wallet-to-wallet transfers. Auto-enabled when any collect/send/money-transfer/card-issuing capability is enabled |
| `collect-funds.card-payments` | Accept card and digital wallet payments |
| `collect-funds.ach` | Accept ACH debit payments |
| `send-funds.ach` | ACH credits (standard and same-day) |
| `send-funds.instant-bank` | Real-time payouts via RTP (FedNow support coming soon) |
| `send-funds.push-to-card` | Instant card payouts (Visa Direct & Mastercard Send) |
| `money-transfer.pull-from-card` | Pull funds from cards (Visa Direct & Mastercard Send) |
| `money-transfer.push-to-card` | Push funds to cards (Visa Direct & Mastercard Send) |
| `card-issuing` | Create and manage virtual prepaid cards |

See our [capabilities](https://docs.moov.io/guides/accounts/capabilities/) section for more information.

### Select scopes

Scopes specify what actions an account can take on Moov's platform. When you choose to enable certain scopes for an account, you create connections between your account, the business/merchant account, and the account's customers. You have the option to choose a set of scopes for your partner account (`scopes`) and a set of scopes for the account (`grantScopes`).

Available scopes:

- `accounts.read`
- `accounts.write`
- `analytics.read`
- `apple-pay-merchant.read`
- `apple-pay-merchant.write`
- `apple-pay.read`
- `apple-pay.write`
- `bank-accounts.read`
- `bank-accounts.write`
- `capabilities.read`
- `capabilities.write`
- `cards.read`
- `cards.write`
- `documents.read`
- `documents.write`
- `fed.read`
- `files.read`
- `files.write`
- `issued-cards.read`
- `issued-cards.write`
- `issued-cards.read-secure`
- `payment-methods.read`
- `ping.read`
- `profile-enrichment.read`
- `profile.read`
- `profile.write`
- `profile.disconnect`
- `representatives.read`
- `representatives.write`
- `transfers.read`
- `transfers.write`
- `wallets.read`

For general usage, Moov suggests to enable at least basic scopes for all accounts.

### Select pricing fee plan

During the onboarding process, you'll also choose a fee plan for the account, which they will agree to as part of their [terms of service](https://docs.moov.io/guides/accounts/requirements/platform-agreement/) platform agreement.

With a **cost plus** plan, card networks’ interchange fees and Moov’s processing markup are passed along to the account. With a **flat rate** plan, you can lump all the processing fees together with a flat rate customized for each account.

To see what fee plans are available for an account, send the new account's `accountID` to the `GET` list fee plans [endpoint](https://docs.moov.io/api/moov-accounts/billing/list-plans/).

### Create & send onboarding link

Create the link by filling in all required and any optional or pre-fill data fields you want. The response will include a link you can send to a business/merchant via email or SMS.

A new account will be asked to provide bank details to set up a funding source. Moov will send a small deposit with a verification code to verify the bank account instantly, if eligible. If the bank doesn't support [instant verification](https://docs.moov.io/guides/sources/bank-accounts/verification/instant-micro-deposit/), Moov will automatically use same-day ACH instead of RTP for verification. ACH verification may take 1-2 days.

You can track the status of an account's application a few ways.

### Onboarding Drop (alternative)

An alternative way to onboard an account is Moov's onboarding Drop. Drops are pre-built, customizable UI components that take care of the entire account creation workflow within your application.

The Drop interacts directly with Moov’s API using JWTs to securely send data between your end users browser and Moov. Drops provide a secure flow, and PII goes straight to Moov, so you won’t be responsible for storing or handling sensitive user data. The onboarding Drop has the Moov terms of service agreement built in to the process.

Moov Drops are defined in the [Moov.js](https://docs.moov.io/moovjs/) package. After [initializing](https://docs.moov.io/moovjs/installation/) Moov.js, you will have access to our full library of Drops.

The Drop is an HTML element with [properties](https://docs.moov.io/moovjs/drops/onboarding/#properties) accessed through JavaScript.

### Create a product

Products are optional, but allow you to create a catalog of items with the following:

- Name
- Description
- Base price
- Image
- Options group

Options allow you to create additional properties on each item, such as a minimum or maximum selection, or identifiers. Use the `POST` create new product [endpoint](https://docs.moov.io/api/tools/products/post/) to create a product.

### Move money with payment links

After successfully onboarding an account, you're ready to move money. First, you'll need to identify what payment methods can be used. Use the `GET` list payment methods [endpoint](https://docs.moov.io/api/sources/payment-methods/list/) to retrieve a list of payment methods associated with the account.

### Tip options

Tips are enabled per payment link and can include preset options or a free-form option. Once presets are created, you'll set `tippingEnabled: true` when creating the payment link and they'll be displayed in the payment link.

### Tax & surcharge fee

Tax and a surcharge fee can be added to `amountDetails` when creating a payment link.

### Send link

When you're ready, create and send a payment link via your chosen form of communication, such as email or SMS.

## Troubleshoot

Troubleshoot some common issues when integrating with and using Moov:

### Transfers or payment links not working

Transfers and payment links will not work before [capabilities](https://docs.moov.io/guides/accounts/capabilities/) are enabled. Ensure all involved accounts have the proper capabilities requested and enabled before attempting a transfer.

### Missing terms of service agreement

All Moov accounts requiring wallet, send funds, or collect funds capabilities must agree to Moov's [platform terms of service agreement](https://docs.moov.io/guides/accounts/requirements/platform-agreement/). If the agreement is missing on an account, the account will not be able to participate in any action on Moov's platform that requires a wallet, sending funds, or collecting funds.

## Next steps

You can manage wallet balances, send invoices, process refunds, and set up scheduled and recurring transfers all within the Dashboard. See our [Dashboard](https://docs.moov.io/guides/dashboard/) documentation for more information.
