Fund a wallet

Follow this step by step guide to add funds to a Moov wallet with our API, SDKs, or Moov.js.

This guide covers how to fund a Moov wallet with a transfer. If you’re looking to use a bank-to-wallet transfer to fund wallets and haven’t yet added a bank account for the Moov account, see our step by step guide on adding bank accounts. Once you’ve funded a Moov wallet, its balance can be spent by issued cards.

Fund a wallet

You will be creating a funding transfer from a source (such as a bank account, card, or another wallet) to a Moov account’s wallet.

Get accountID

The first step is identifying theaccountID for the Moov account with the wallet you would like to fund. If you don’t already have it, you can use the list accounts GET endpoint as shown below.

List account reference

1
2
curl -X GET "https://api.moov.io/accounts/" \
  -H "Authorization: Bearer {token}" \

List account reference

1
2
3
mc := moov.NewClient()

mc.ListAccounts(ctx)

List account reference

1
2
3
const moov = new Moov(credentialsObject);

moov.accounts.list();

Select the payment methods for the transfer

Get the paymentMethodIDs to use as the source and destination when creating a transfer in the next step.

List payment methods reference

1
2
3
4
5
curl -X GET "https://api.moov.io/accounts/{accountID}/payment-methods \
  -H "Authorization: Bearer {token}" \
  --data-raw '{
    "accountID"
  }'\

List payment methods reference

1
2
3
mc := moov.NewClient()

mc.ListPaymentMethods(ctx, account.AccountID)

List payment methods reference

1
2
3
const moov = new Moov(credentialsObject);
const accountID = "accountID";
moov.accounts.paymentMethods.list({accountID});

List payment methods reference

1
2
3
const moov = Moov(token);
const accountID = "accountID";
moov.accounts.paymentMethods.list({accountID});

A successful response will return an array of payment methods of different types. For the transfer source, you’ll select the payment method ID associated with the payment method type you’d like to use (such as ach-debit-fund).

For the transfer destination, choose the payment method ID associated with the moov-wallet payment method type.

Create the transfer

Using the payment method IDs you got from step 2, you can now initiate a transfer. Once the transfer has completed, the funds will settle in the destination wallet.

Create transfer reference

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
curl -X POST "https://api.moov.io/transfers" \
  -H "Authorization: Bearer {token}" \
  -H "X-Idempotency-Key: UUID" \
  -H "X-Wait-For: rail-response" \
  --data-raw '{
    "amount": {
      "value": 100,
      "currency": "USD"
    },
    "destination": {
      "paymentMethodID": "UUID"
    },
    "source": {
      "paymentMethodID": "UUID"
    },
    "description": "Optional transaction description."
  }'\

Create transfer reference

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
mc := moov.NewClient()

mc.CreateTransfer(ctx, moov.CreateTransfer{
  Amount: moov.Amount{
    Currency: "usd",
    Value:    100, // $1.00
  },
  Destination: moov.CreateTransfer_Destination{
    PaymentMethodID: "UUID",
  },
  Source: moov.CreateTransfer_Source{
    PaymentMethodID: "UUID", 
  },
  Description: "Optional transaction description.",
})

Create transfer reference

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
const moov = new Moov(credentialsObject);

const transfer = await moov.transfers.create({
  amount: {
    value: 100,
    currency: "USD"
  },
  destination: {
    paymentMethodID: "UUID"
  },
  source: {
    paymentMethodID: "UUID"
  },
  description: "Optional transaction description."
});

Next steps

After you’ve successfully funded a wallet, you can spend these funds using issued cards. As funds flow in and out of Moov wallets, you’ll also want to know how to manage a wallet balance.

Summary Beta