Link a bank account | Moov Documentation

Link a bank account

Link a bank account to an existing Moov account. Read our bank accounts guide to learn more.

It is strongly recommended that callers include the X-Wait-For header, set to payment-method, if the newly linked bank account is intended to be used right away. If this header is not included, the caller will need to poll the List Payment Methods endpoint to wait for the new payment methods to be available for use.

To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/bank-accounts.write scope.

POST

/accounts/{accountID}/bank-accounts

Ask

curl -X POST "https://api.moov.io/accounts/{accountID}/bank-accounts" \
  -H "Authorization: Bearer {token}" \
  -H "X-Moov-Version: v2026.07.00" \
  -d '{
  "account": {
    "holderName": "string",
    "holderType": "individual",
    "accountNumber": "string",
    "bankAccountType": "checking",
    "routingNumber": "string"
  }
}'

Ask

mc, _ := moov.NewClient()

var accountID string

mc.CreateBankAccount(ctx, accountID, moov.WithBankAccount(moov.BankAccountRequest{
  AccountNumber: "0004321567000",
  AccountType:   moov.BankAccountType_Checking,
  HolderName:    "Jules Jackson",
  HolderType:    moov.HolderType_Individual,
  RoutingNumber: "123456789",
}), moov.WaitForPaymentMethod())

Ask

import { Moov } from "@moovio/sdk";

const moov = new Moov({
  security: {
    username: "",
    password: "",
  },
});

async function run() {
  const result = await moov.bankAccounts.link({
    accountID: "b326319d-6118-4921-8d82-d5810d562eef",
    linkBankAccount: {
      plaidLink: {
        publicToken: "<value>",
      },
    },
  });

console.log(result);
}

run();

Ask

declare(strict_types=1);

require 'vendor/autoload.php';

use Moov\