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

Example Requests

Shell Request

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

Go Request

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())

TypeScript Request

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();

PHP Request

declare(strict_types=1);

require 'vendor/autoload.php';

use Moov\