Retrieve a bank account | Moov Documentation
Retrieve a bank account
Retrieve bank account details (i.e. routing number or account type) associated with a specific Moov account.
Read our bank accounts guide to learn more.
To access this endpoint using an access token
you'll need to specify the /accounts/{accountID}/bank-accounts.read scope.
GET
/accounts/{accountID}/bank-accounts/{bankAccountID}
Ask
curl -X GET "https://api.moov.io/accounts/{accountID}/bank-accounts/{bankAccountID}" \
-H "Authorization: Bearer {token}" \
-H "X-Moov-Version: v2026.04.00"
Ask
mc, _ := moov.NewClient()
var accountID string
var BankAccountID string
mc.GetBankAccount(ctx, accountID, BankAccountID)
Ask
import { Moov } from "@moovio/sdk";
const moov = new Moov({
security: {
username: "",
password: "",
},
});
async function run() {
const result = await moov.bankAccounts.get({
accountID: "32ac681d-3244-4673-8541-362e40b7677a",
bankAccountID: "dd241177-be83-4aad-80f8-31aded5f3616",
});
console.log(result);
}
run();
Ask
declare(strict_types=1);
require 'vendor/autoload.php';
use Moov\,MoovPhp;
use Moov\,MoovPhp\Models\Components;
$sdk = MoovPhp\Moov::builder()
->setSecurity(
new Components\Security(
username: '',
password: '',
)
)
->build();
$response = $sdk->bankAccounts->get(
accountID: '32ac681d-3244-4673-8541-362e40b7677a',
bankAccountID: 'dd241177-be83-4aad-80f8-31aded5f3616'
);
if ($response->bankAccount !== null) {
// handle response
}
Ask
package hello.world;
import io.moov.sdk.Moov;
import io.moov.sdk.models.components.Security;
import io.moov.sdk.models.operations.GetBankAccountResponse;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws Exception {
Moov sdk = Moov.builder()
.security(Security.builder()
.username("")
.password("")
.build())
.build();
GetBankAccountResponse res = sdk.bankAccounts().get()
.accountID("32ac681d-3244-4673-8541-362e40b7677a")
.bankAccountID("dd241177-be83-4aad-80f8-31aded5f3616")
.call();
if (res.bankAccount().isPresent()) {
System.out.println(res.bankAccount().get());
}
}
}
Ask
from moovio_sdk import Moov
from moovio_sdk.models import components
with Moov(
security=components.Security(
username="",
password="",
),
) as moov:
res = moov.bank_accounts.get(account_id="32ac681d-3244-4673-8541-362e40b7677a", bank_account_id="dd241177-be83-4aad-80f8-31aded5f3616")
# Handle response
print(res)
Ask
require 'moov_ruby'
Models = ::Moov::Models
s = ::Moov::Client.new(
security: Models::Components::Security.new(
username: '',
password: ''
)
)
res = s.bank_accounts.get(account_id: '32ac681d-3244-4673-8541-362e40b7677a', bank_account_id: 'dd241177-be83-4aad-80f8-31aded5f3616')
unless res.bank_account.nil?
# handle response
end
Ask
using Moov.Sdk;
using Moov.Sdk.Models.Components;
var sdk = new MoovClient(security: new Security() {
Username = "",
Password = "",
});
var res = await sdk.BankAccounts.GetAsync(
accountID: "32ac681d-3244-4673-8541-362e40b7677a",
bankAccountID: "dd241177-be83-4aad-80f8-31aded5f3616"
);
// handle response
The request completed successfully.
Example
{
"bankAccountID": "833fa3ef-14d3-4c97-ba45-6af66f739832",
"bankAccountType": "checking",
"bankName": "Gringotts Bank",
"fingerprint": "dd4cbfe5fbaf47b392770b5b595bec604fd99394749b7d017153e2b9cfbea40e",
"holderName": "John Doe",
"holderType": "individual",
"lastFourAccountNumber": "6789",
"routingNumber": "123456780",
"status": "new",
"statusReason": "bank-account-created",
"updatedOn": "2024-11-26T22:37:06Z"
}
Response headers
A unique identifier used to trace requests.
Possible values:
v2026.04.00
Describes a bank account linked to a Moov account.
The bank account type.
Possible values:
checking,savings,general-ledger,loan
Once the bank account is linked, we don't reveal the full bank account number.
The fingerprint acts as a way to identify whether two linked bank accounts are the same.
The type of holder on a funding source.
Possible values:
individual,business,guest
Possible values:
new,verified,verificationFailed,pending,errored
Reasons related to an errored or verificationFailed bank account status.
The return code of an ACH transaction that caused the bank account status to change.
Possible values:
R02,R03,R04,R05,R07,R08,R10,R11,R12,R13,R14,R15,R16,R17,R20,R23,R29,R34,R38,R39
The rejection code of a FedNow transaction that caused the bank account status to change.
Possible values:
AC02,AC03,AC04,AC06,AC07,AC10,AC11,AC13,AC14,AG01,AG03,BE06,DUPL,MD07,NOAT,RC02,RC03,RC04
The rejection code of an RTP transaction that caused the bank account status to change.
Possible values:
AC03,AC04,AC06,AC14,AG01,AG03,MD07
Includes any payment methods generated for a newly created bank account, removing the need to
call the List Payment Methods endpoint following a successful Create BankAccount request.
NOTE: This field is only populated for Create BankAccount requests made with the X-Wait-For header.
Show child attributes
ID of the payment method.
The payment method type that represents a payment rail and directionality
Possible values:
moov-wallet,ach-debit-fund,ach-debit-collect,ach-credit-standard,ach-credit-same-day,rtp-credit,card-payment,push-to-card,pull-from-card,apple-pay,card-present-payment,instant-bank-credit,push-to-apple-pay,pull-from-apple-pay,google-pay,push-to-google-pay,pull-from-google-pay
The reason the bank account status changed to the current value.
Possible values:
bank-account-created,verification-initiated,micro-deposit-attempts-exceeded,micro-deposit-expired,max-verification-failures,verification-attempts-exceeded,verification-expired,verification-successful,ach-debit-return,ach-credit-return,rtp-credit-failure,fednow-credit-failure,micro-deposit-return,admin-action,other