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 access this endpoint using an access token you’ll need to specify the /accounts/{accountID}/bank-accounts.write scope.

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 400 401 403 404 409 429 500 504
The request completed successfully.
{
  "status": "new",
  "verificationMethod": "instant"
}

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The server could not understand the request due to invalid syntax.
{
  "error": "string"
}

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The request contained missing or expired authentication.

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The user is not authorized to make the request.

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The requested resource was not found.

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The request conflicted with the current state of the target resource.
{
  "error": "string"
}

x-request-id

string <uuid> required
A unique identifier used to trace requests.
Request was refused due to rate limiting.

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The request failed due to an unexpected error.

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The request failed because a downstream service failed to respond.

x-request-id

string <uuid> required
A unique identifier used to trace requests.

Headers

x-moov-version

string
API version

Specify an API version.

API versioning follows the format vYYYY.QQ.BB, where

  • YYYY is the year
  • QQ is the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10)
  • BB is the build number, starting at .01, for subsequent builds in the same quarter.
    • For example, v2024.01.00 is the initial release of the first quarter of 2024.

The latest version represents the most recent development state. It may include breaking changes and should be treated as a beta release.

Default: v2024.01.00

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

bankAccountID

string <uuid> required

Response

application/json

status

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

verificationMethod

string<enum> required
Possible values: instant, ach