> ## Documentation Index
> Fetch the complete documentation index at: https://docs.revolv3.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Test ACH for Account Verification

> Test data for ACH account verification in sandbox. Use these test values to verify bank accounts before processing ACH payments.

## What is ACH Account Verification?

**ACH account verification** (also called "validate person") checks if a bank account is valid and belongs to the person you think it does. This helps:

* **Reduce fraud**: Verify accounts before processing payments
* **Prevent failures**: Catch invalid accounts early
* **Improve success rates**: Only process payments for verified accounts

**When to use it**: Before processing an ACH payment, especially for recurring billing or large amounts.

## How Verification Works

1. **You send account details** to the verification API
2. **Verification provider checks** with the bank
3. **You get a response** telling you if the account is valid
4. **If valid**: Proceed with the ACH payment
5. **If invalid**: Don't process the payment, ask customer for correct information

## Test Data by Verification Provider

The test data you use depends on which verification provider is configured in your Revolv3 account. You can select the provider in the portal (Settings → Merchant Settings).

### WorldPay Verification

Use this test data when WorldPay is your verification provider:

<CodeGroup>
  ```bash bash theme={null}
  {
    "FirstName": "John",
    "LastName": "Doe",
    "Address": {
      "AddressLine1": "200 Main St",
      "City": "King City",
      "State": "CA",
      "PostalCode": "93930",
      "Country": "USA",
      "PhoneNumber": "408-555-1212"
    },
    "Ach": {
      "AccountNumber": "4099999992",
      "RoutingNumber": "011075123",
      "AccountType": "Checking"
    }
  }
  ```
</CodeGroup>

**What to expect**: This should return a successful verification response if WorldPay is configured.

### GIACT Verification

Use this test data when GIACT is your verification provider:

<CodeGroup>
  ```bash bash theme={null}
  {
    "FirstName": "Robert",
    "LastName": "Williams",
    "Address": {
      "AddressLine1": "100 Main St",
      "City": "Little Elm",
      "State": "TX",
      "PostalCode": "75068",
      "Country": "USA",
      "PhoneNumber": "18425551234"
    },
    "Ach": {
      "AccountNumber": "0000000018",
      "RoutingNumber": "122105123",
      "AccountType": "Checking"
    }
  }
  ```
</CodeGroup>

**What to expect**: This should return a successful verification response if GIACT is configured.

## Important Notes

### Provider Selection

* **Only one active**: Only one verification provider can be active at a time
* **Changeable**: You can switch providers in the portal if needed
* **Check your settings**: Verify which provider is active before testing

### Test Data Requirements

* **Use exact values**: Test data must match exactly (account numbers, routing numbers, addresses)
* **Provider-specific**: Each provider has different test data
* **Address matters**: The address values are important for verification

## Best Practices

1. **Verify before charging**: Always verify accounts before processing ACH payments
2. **Use correct test data**: Match the test data to your active verification provider
3. **Handle failures**: If verification fails, don't proceed with the payment
4. **Test both scenarios**: Test both successful and failed verifications

## Next Steps

* **[ACH Direct Debit](/docs/core-concepts/paymentmethod/ach-direct-debit)** — Learn about ACH payments
* **[Account Verification API](https://docs.revolv3.com/api-reference/)** — See the full verification API documentation
* **[Sandbox Test Cards](/docs/testing-sandbox/test-cards-for-sandbox)** — Test credit card payments

***
