Fund a wallet
Before you start
- The account has the
wallet.balancecapability - To fund from a bank account: a verified bank account, which gives you the
ach-debit-fundpayment method - To fund from a card: the destination account has
collect-funds.card-paymentsand a linked card
When funds are available
| Source | Source payment method | Funds available in the wallet |
|---|---|---|
| Bank account | ach-debit-fund |
2-3 banking days with standard processing; same day with faster ACH |
| Another wallet | moov-wallet |
Immediately |
| Card | card-payment |
Next banking day (see card settlement timing) |
Fund a wallet
Get accountID
Identify the accountID 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.
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
curl -X GET "https://api.moov.io/accounts/{accountID}/payment-methods" \
-H "Authorization: Bearer {token}" \
-H "x-moov-version: v2026.07.00"
List payment methods reference
mc, _ := moov.NewClient()
var accountID string
mc.ListPaymentMethods(ctx, accountID)
List payment methods reference
const moov = Moov(token);
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
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: v2026.07.00" \
--data-raw '{
"amount": {
"value": 100,
"currency": "USD"
},
"destination": {
"paymentMethodID": "string"
},
"source": {
"paymentMethodID": "string"
},
"description": "Optional transaction description."
}'
Create transfer reference
mc, _ := moov.NewClient()
var accountID string // Partner account
mc.CreateTransfer(ctx, accountID, moov.CreateTransfer{
Amount: moov.Amount{
Currency: "USD",
Value: 100, // $1.00
},
Destination: moov.CreateTransfer_Destination{
PaymentMethodID: "string",
},
Source: moov.CreateTransfer_Source{
PaymentMethodID: "string",
},
Description: "Optional transaction description.",
})