Validating an account using Real-Time Payments
Include a random code in a one-cent Real-Time Payments transfer to verify reachability and authenticate access to the account.
Performing validation
The Routing Number endpoint shows if a routing number has any support for Real-Time Payments, but there can still be mixed enablement per account. Including a random code in the validation transfer also allows you to verify someone has access to the account. The steps:
-
Generate a code and don’t share it with your user. The Clearing House (the network behind Real-Time Payments) requires that the code be at most 8 characters long. We recommend using uppercase letters and numbers and avoiding visually ambiguous characters (like
0
,O
,I
, and1
). -
Send the Real-Time Payments transfer for $0.01 using our guide. Include the code in the
remittance_information
parameter. Starting July 1, 2026, all banks will be required to show this field to users. Until then, The Clearing House also suggests putting the code in thedebtor_name
parameter (along with the name of the entity performing validation.) The Clearing House specifies that the code should be at the beginning of the field and separated from the rest of it by a pipe (|
). -
If the transfer is accepted by the other bank, then the account can receive Real-Time Payments transfers. If it’s rejected, then the account likely cannot. The
reject_reason_code
will provide more information. -
Finally, ask your user to access their bank and provide the random code. By doing this, they’re demonstrating they’re able to access the bank account to which the transfer was sent.