Payment-method icon

Account validation with giact

Use giact gVERIFY for account validation of ACH Direct Debit payments.

When accepting ACH Direct Debit payments, Nacha requires you to validate that the shopper's bank account details are correct, if it is a consumer account. To make this validation easier for you, we have partnered with giact gVERIFY.

When you use giact gVERIFY, you can validate account details in real time. This reduces the chance that transactions are reversed because it turns out, for example, that the routing number is incorrect or the account has been closed.

Current limitations

  • Account validation with giact gVERIFY is supported for the following online payments integrations:

    • API-only integration.

    You can't use validation with giact if you use Web Drop-in or Web Components.

  • Account validation with giact gVERIFY works only in the live environment.

  • For cost reasons, we recommend using giact validation only on the shopper's initial transaction, and when the shopper changes their account.

How it works

  1. The shopper selects ACH Direct Debit on your payment form.

  2. You collect the required details from the shopper:

    • Bank account number
    • ACH routing number

      Alert your shoppers that some banks have different routing numbers for different transfers. Shoppers should not provide their wire transfer routing number.

    • Bank account type: checking or savings.

      The account type is not verified by giact. But you need to specify it when you make a payment request for the actual amount. This avoids unnecessary chargebacks due to account type mismatches.

    • Account owner's name
    • Account owner's address
  3. You send a zero-value authorization request with the details that the shopper provided.

  4. We send the details to giact gVERIFY and return the outcome in the zero-value authorization response.

  5. Based on the the zero-value authorization response, you decide on your next step: make a payment request for the actual amount, or ask the shopper to provide correct details or use a different payment method.

Before you begin

  1. Get in touch with your Adyen contact and sign the contract addendum that specifies the terms and conditions for the use of account validation through giact.
  2. Ask our Support Team to enable giact verification and zero-value authorization for your Adyen account.
  3. Make sure that you have set up your back end implementation.
  4. Add ACH Direct Debit in your Customer Area.

Validate using zero-value authorization

After you have gathered the shopper's account details, verify those details as follows:

  1. From your server, make a /payments request, specifying:

    • paymentMethod.type: ach
    • paymentMethod.bankAccountNumber: the bank account number.
    • paymentMethod.bankAccountType: the type of bank account. Allowed values: checking, savings.
    • paymentMethod.bankLocationId: the ACH routing number of the account.
    • paymentMethod.ownerName: the name on the bank account.
    • billingAddress (Optional): the account owner's address information.
    • amount.currency: USD
    • amount.value: 0
  2. In the zero-value authorization response, check the following parameters:

    • additionalData.bankVerificationResultRaw: the details of the validation as reported by giact. See the table with validation result values.
    • additionalData.bankVerificationResult: indicates if the account passed the validation. Possible values: Passed or Failed.
  3. Based on the response, determine your next step.

    • If the account passed validation, make a payment request for the actual amount with the same account details that you provided in the zero-value request.
    • If the account didn't pass validation, ask the shopper for the correct account details or for a different payment method.

Validation result values

In the zero-value authorization response, the additionalData.bankVerificationResultRaw parameter can include the following information.

Code Description
1111 Account Verified - The checking account was found to be an open and valid account.
2222 AMEX Cheque - The checking account was found to be an open and valid American Express account.
3333 Non-Participant Provider - This account was reported with acceptable, positive data found in recent or current transactions.
5555 Savings Account Verified - The savings account was found to be an open and valid account.
7777 Account Verified - The checking account was found to be open and have a positive history.
8888 Savings Account Verified - The savings account was found to be open and have a positive history.
9999 This account was reported with acceptable, positive data found in recent transactions. Positive history exists for multiple transactions.
GN01 Negative information was found.
GN05 The routing number supplied is reported as not assigned to a financial institution.
GP01 The value for Details will vary depending on the Value for CheckReject reason in the Private Bad Checks List.
GS01 The routing number supplied did not match the format of a valid routing number.
GS02 The account number supplied did not match the format of a valid account number.
GS03 The check number supplied did not match the format of a valid check number.
GS04 The amount supplied did not match the format of a valid amount.
ND00 No positive or negative information has been reported on the account. This could be a small or regional bank that does not report.
ND01 No positive or negative information has been reported on the account. This routing number can only be valid for US Government financial institutions. Please verify this item with its issuing authority.
RT00 The routing number appears to be accurate however no positive or negative information has been reported on the account. Please contact customer to ensure that the correct account information was entered.
RT01 This account should be returned based on the risk factor being reported.
RT02 This account should be returned based on the risk factor being reported.
RT03 Current negative data exists on this account. Accept transaction with risk. (Example: Checking or Savings account in NSF status, recent returns, or outstanding items)
RT04 This is a Non Demand Deposit Account (post no debits), Credit Card Cheque, Line of Credit, Home Equity, or a Brokerage check.
RT05 Current negative data exists on this account. Accept transaction with risk. (Example: Checking or Savings account in NSF status, recent returns, or outstanding items)

Test and go live

giact gVERIFY is only available in the live environment.

Testing:

  • To test a successful validation, make a zero-value authorization request with a valid bank account and routing number. The account will not be charged because the payment amount is USD 0.00.
  • To test a failed validation, make a zero-value authorization request with an invalid bank account and routing number.

See also