> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.runpayments.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.runpayments.io/_mcp/server.

# ACH Account Validation- iStream

## Overview

When using `runner.js` to tokenize ACH payment information, you may validate the Routing Number (ABA) and Demand Deposit Account (DDA) number before processing an ACH transaction. This validation helps reduce the risk of failed transactions due to invalid or fraudulent banking information. Please inquire with [integrations@runpayments.io](mailto:integrations@runpayments.io) to have this enabled for your merchant account.

## Validation Process

### Request Account Validation

When submitting an ACH tokenization request with validation enabled, the system performs real-time verification of the provided banking details against multiple risk factors including:

* Routing number validity
* Account number format
* Known fraud patterns
* Historical transaction data

### Response Format

The validation response includes a **Risk Information** object containing two critical fields:

```
    },
    "risk_info": {
        "decision": " ",
        "reason": " "
    },
```

## Decision Codes

The `decision` field will return one of three possible values:

| Code | Meaning | Description                                                                     | Recommended Action                                                                              |
| ---- | ------- | ------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `A`  | Accept  | The account information passed all validation checks and is considered low risk | Proceed with tokenization and transaction processing                                            |
| `W`  | Warning | The account information passed basic validation but has some risk indicators    | Review additional risk factors before proceeding; consider additional verification steps        |
| `D`  | Decline | The account information failed validation or is considered high risk            | Do not proceed with tokenization; reject the transaction and request alternative payment method |

## Example Response

### Successful Validation Response:

```jsx
{
    "token_info": {
        "token": "22455816"
    },
    "risk_info": {
        "decision": "Accepted",
        "reason": ""
    },
    "bank_info": {
        "routingNumber": "074912319",
        "paymentType": "ach",
        "name": "Creek City Bank",
        "addressFull": "113 W Market St, Warsaw, IN 46580",
        "street": "113 W Market St",
        "city": "Warsaw",
        "state": "IN",
        "zip": "46580",
        "phone": "574-267-7855",
        "active": "Active",
        "lastUpdated": "Mar 25, 2024"
    }
}
```