Verifying External Bank Accounts
How do I create a bank account identity verification?
Overview
Verify external bank account ownership against a customer's KYC information. For general identity verification concepts, states, and return codes, see Identity Verification.
What is a bank account identity verification?
To process transfers on the Cybrid Platform, the customer connecting the external bank account must own that account and have completed KYC. The bank account identity verification confirms that the name on the external bank account matches the name provided during KYC.
RequiredBank account identity verifications are required before creating transfers on the Cybrid Platform.
ScopeBank account verifications are currently only required for individual customers, not business customers.
Creating a bank account identity verification
Prerequisites:
- The individual customer
stateisverified(the customer has completed KYC) - The external bank account
stateisunverified(created but not yet verified)
With these prerequisites met, create a bank account identity verification via
POST /api/identity_verifications
(API reference).
Cybrid Plaid
If you use Cybrid's Plaid services, create an identity verification with type set to
bank_account and method set to account_ownership.
The account_ownership method does not require additional customer details because the information
is verified against the Plaid-connected bank account.
Example POST /api/identity_verifications request body for account_ownership:
{
"type": "bank_account",
"method": "account_ownership",
"customer_guid": "<insert customer_guid>",
"external_bank_account_guid": "<insert external_bank_account_guid>"
}Partner Plaid
If you use your own Plaid services (via plaid_processor_token), create an identity verification
with type set to bank_account and method set to attested_ownership.
The attested_ownership method requires you to provide customer details. You can retrieve these
from the
Plaid Identity API.
Example POST /api/identity_verifications request body for attested_ownership:
{
"type": "bank_account",
"method": "attested_ownership",
"name": {
"first": "<insert first>",
"last": "<insert last>",
"full": "<insert full>"
},
"address": {
"street": "<insert street>",
"city": "<insert city>",
"subdivision": "<insert state/province>",
"postal_code": "<insert zip/postal code>",
"country_code": "<insert country code>"
},
"customer_guid": "<insert customer_guid>",
"country_code": "<insert country code>",
"date_of_birth": "<insert dob>",
"phone_number": "<insert phone>",
"email_address": "<insert email>",
"identification_numbers": [
{
"type": "<insert ID type>",
"issuing_country_code": "<insert country code>",
"identification_number": "<insert ID number>"
}
],
"external_bank_account_guid": "<insert external_bank_account_guid>"
}Checking verification state
After creating a bank account identity verification, check the state and outcome using
GET /api/identity_verifications/{identity_verification_guid}
(API reference).
Waiting state
All bank account identity verifications progress immediately from storing to waiting.
When auto-approved or auto-rejected:
- The verification progresses from
waitingtocompleted(see Completed state below).
When neither auto-approved nor auto-rejected:
- The verification remains in
waiting. - A Persona document submission inquiry is automatically created for the customer to provide a supplementary document.
- Use
GET /api/identity_verifications/{identity_verification_guid}(API reference) to retrieve thepersona_inquiry_id. - Share the Persona URL with the
persona_inquiry_iddirectly with the customer (e.g.,https://withpersona.com/verify?inquiry-id=<persona_inquiry_id>).- Alternatively, use the
persona_inquiry_idand the Persona SDK to integrate the supplementary document upload into your application. See Verify with Persona SDK. - The Cybrid web SDK does not support bank account identity verifications.
- Alternatively, use the
- The customer must upload a bank statement with the following information:
- Date of the statement (must be within the last 90 days)
- Customer name
- Customer address
- Bank account number
- Bank name and logo
- If the customer takes no action, the verification remains in
waitingfor up to 24 hours before expiring.
Bank statement requirementsOnly the first page of the bank statement is required. Transactional data may be redacted or blurred.
Pending state
When the customer browses to the Persona URL:
- The verification progresses from
waitingtopending. - If the customer takes no further action, the verification remains in
pendingfor up to 24 hours before expiring.
Reviewing state
When the customer uploads the supplementary document via the Persona URL:
- The verification progresses from
pendingtoreviewing. - The Cybrid team is notified that the document has been uploaded.
- The verification remains in
reviewinguntil the Cybrid team determines the outcome (passedorfailed).
Completed state
When auto-approved or auto-rejected, the verification progresses immediately from waiting to
completed.
Passed outcome
When auto-approved, or approved by the Cybrid team while in reviewing:
- The verification progresses to
completedwith apassedoutcome.
SuccessWhen
outcomeispassed, the verification is complete and the external bank account progresses tostate:verified.
Failed outcome
When auto-rejected, or rejected by the Cybrid team while in reviewing, the verification
progresses to completed with a failed outcome. The failure_codes array returns one of:
name_check_failure-- The KYC name does not match the name on the bank account.address_check_failure-- The KYC address does not match the address on the bank account.phone_number_check_failure-- The KYC phone number does not match. This does not prevent passing.email_address_check_failure-- The KYC email address does not match. This does not prevent passing.decision_timeout-- The verification timed out.
The external bank account remains unverified until a successful verification completes.
FailureWhen
outcomeisfailed, create a new bank account identity verification to retry.
Expired state
When the verification remains in waiting for 24 hours:
- The Persona document submission inquiry link expires and can no longer accept uploads.
- The verification progresses to
expired.
The external bank account remains unverified until a successful verification completes.
ExpirationWhen
stateisexpired, the verification did not complete. Create a new bank account identity verification to retry.
Updated 11 days ago
