Account Intelligence Setup Guide
Learn how to use our Account Intelligence tool to validate bank accounts before allowing them to transact for the first time—de-risking to speed up ACH payments.
If you’re setting up your full ACH payments system with us, please refer to our comprehensive ACH Setup Guide. This documentation is intended for standalone adoption of our Account Intelligence tool into an existing ACH payments system.
Account Intelligence Overview
Our ACH API provides this tool for customers to validate the legitimacy of a bank account and assess its operability for successful ACH payments before processing transactions.
Benefits of this API
- Prevention of Failed Transactions – Avoid processing payments to invalid accounts.
- Reduction of Operational Risk – Minimize issues such as failed payouts and ACH returns.
- Improved Onboarding Decisions – Use risk scoring to evaluate new bank accounts.
Risk Factors in ACH Payments
ACH payments can fail for many reasons—from user error and unknown account holds to intentional fraud.
Failed Payments and Return Codes
Account Intelligence is designed to minimize failed payments caused by these common NACHA return codes:
Return Code | Title | ACH Type | Time Frame | Description & Suggested Message |
---|---|---|---|---|
R02 | Account Closed | WEB or CCD | 2 Banking Days | This transaction has failed due to NACHA code R02, indicating a closed account. Please replace the information with an open account and try again. |
R03 | No Account / Unable to Locate | WEB or CCD | 2 Banking Days | This transaction has failed due to NACHA code R03. Please resubmit correct bank account information and try again. |
R04 | Invalid Account Number Structure | WEB or CCD | 2 Banking Days | This transaction has failed due to NACHA code R04. Please re-enter the account number correctly and try again. |
Initial Setup
To begin using Account Intelligence, you’ll need:
- Sandbox API keys
- Test account information
- issued certs (if required)
Integration
Our Account Intelligence only requires two input parameters:
account_number
routing_number
In return, you receive:
risk_score
– A generated numeric risk assessmentconfidence_level
– Our assessment of the validity of the account data
The confidence level is not a measure of the risk score’s accuracy. It is a standalone value that reflects our confidence in the bank account data itself.
Risk Score vs Confidence Level
Risk Score Range | Confidence Level | Description |
---|---|---|
0.00 - 0.20 | Very Low | Minimal confidence the account is valid. Could be due to structural inconsistencies, inactive routing, or a closed account. |
0.21 - 0.40 | Low | Low confidence. Format and routing might be valid, but risk remains. |
0.41 - 0.60 | Medium | Better than 50% chance the account is valid. Some positive indicators exist. |
0.61 - 0.80 | High | Strong signs that the account is active and structurally valid. |
0.81 - 0.95 | Very High | Highest confidence. The account is likely active and previously seen in our network. |
Monitor Statuses (Relevant Webhooks)
(Coming soon — include webhook names, payloads, and sample logic for response handling)
Testing
(Coming soon — include sandbox examples and test values to simulate various confidence/risk responses)