Initiate bank account verification

Instant micro-deposit verification offers a quick and efficient way to verify bank account ownership. Send a $0.01 credit with a unique verification code via RTP or same-day ACH, depending on the receiving bank’s capabilities. This feature provides a faster alternative to traditional methods, allowing verification in a single session.

It is recommended to use the X-Wait-For: rail-response header to synchronously receive the outcome of the instant credit in the response payload.

Possible verification methods:

  • instant: Real-time verification credit sent via RTP
  • ach: Verification credit sent via same-day ACH

Possible statuses:

  • new: Verification initiated, credit pending
  • sent-credit: Credit sent, available for verification in the external bank account
  • failed: Verification failed due to credit rejection/return, details in exceptionDetails

To use this endpoint from the browser, you’ll need to specify the /accounts/{accountID}/bank-accounts.write scope when generating a token.

POST
/accounts/{accountID}/bank-accounts/{bankAccountID}/verify
cURL Go
1
2
curl -X POST "https://api.moov.io/accounts/{accountID}/bank-accounts/{bankAccountID}/verify" \
  -H "Authorization: Bearer {token}" \
1
2
3
4
5
6
mc, _ := moov.NewClient()

var accountID string
var bankAccountID string

mc.InstantVerificationInitiate(ctx, accountID, bankAccountID)
200 404 429
Bank Account Verification has been initiated.
{
  "status": "new",
  "verificationMethod": "instant"
}
No account with the specified accountID was found or verification code has not been sent for the source.
Request was refused due to rate limiting.

Retry-After

number

Headers

X-Wait-For

string

Optional header to wait for certain events, such as the rail response, to occur before returning a response.

When this header is set to rail-response, the endpoint will wait for a sent-credit or failed status from the payment rail.

Possible values: payment-method, rail-response

Path parameters

accountID

string <uuid> required
ID of the account.

bankAccountID

string <uuid> required
ID of the bank account

Response

application/json

status

string<enum>
Possible values: new, sent-credit, max-attempts-exceeded, failed, expired, successful

verificationMethod

string<enum>
Possible values: instant, ach