Payment methods

Learn about payment methods and every way an account can move funds to another Moov account.

The payment methods available for a given Moov account depend on the linked funding source as well as the capabilities on that account. For example, if your account isn’t linked to a verified bank account, you won’t have the ability to send funds with the ach-debit-fund payment method.

Once you’ve added a bank account or card and it’s been verified, your account will automatically be updated with the payment methods available to you.

A source represents the first stage of a transfer, and is where funds originate. A source can be an externally linked bank account, payment card, or a Moov wallet balance. A destination represents the final stage of a transfer and the ultimate recipient of the funds. Below are the payment method types and what they can be used for.

Go SDK transfer example:

 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.",
})

Get payment methods

To retrieve payment methods for an account, use the list payment methods or retrieve payment method endpoints.

List payment methods

1
2
curl -X GET "https://api.moov.io/accounts/{accountID}/payment-methods" \
  -H "Authorization: Bearer {token}" \
1
2
3
4
5
mc, _ := moov.NewClient()

var accountID string

mc.ListPaymentMethods(ctx, accountID)
1
2
3
const moov = new Moov(credentialsObject);

moov.paymentMethods.list(accountID);
1
2
3
const moov = Moov(token);

moov.paymentMethods.list(accountID);

Retrieve payment method

1
2
curl -X GET "https://api.moov.io/accounts/{accountID}/payment-methods/{paymentMethodID}" \
  -H "Authorization: Bearer {token}" \
1
2
3
4
5
6
mc, _ := moov.NewClient()

var accountID string
var paymentMethodID string

mc.GetPaymentMethod(ctx, accountID, paymentMethodID)
1
2
3
const moov = new Moov(credentialsObject);

moov.paymentmethods.get(accountID, paymentMethodID)

Requirements

If a source or destination is a card, a card will need to be linked. If a source or destination is a bank account, a bank account will need to be linked. You will also need to set up various capabilities depending on your use case and desired flow. Moov’s capabilities are:

  • wallet: Store funds with Moov
  • transfer: Authorize debit transfers
  • send-funds: Send funds
  • collect-funds: Collect funds
  • card-issuing: Provide a virtual card to a merchant (beta)

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
Summary Beta