Validate personal ACH account
curl --request POST \
--url https://api-sandbox.revolv3.com/api/account-verification/ach/person \
--header 'Content-Type: application/json-patch+json' \
--header 'x-revolv3-token: <api-key>' \
--data '
{
"amount": null,
"firstName": "Joe",
"lastName": "Doe",
"companyName": null,
"address": {
"addressId": null,
"addressLine1": "26 River Street",
"addressLine2": "",
"city": "Cambridge",
"state": "MA",
"postalCode": "02125",
"phoneNumber": "123-456-789",
"email": null,
"country": "US"
},
"ach": {
"routingNumber": "123456789",
"accountNumber": "123456789",
"accountType": "Checking"
}
}
'import requests
url = "https://api-sandbox.revolv3.com/api/account-verification/ach/person"
payload = {
"amount": None,
"firstName": "Joe",
"lastName": "Doe",
"companyName": None,
"address": {
"addressId": None,
"addressLine1": "26 River Street",
"addressLine2": "",
"city": "Cambridge",
"state": "MA",
"postalCode": "02125",
"phoneNumber": "123-456-789",
"email": None,
"country": "US"
},
"ach": {
"routingNumber": "123456789",
"accountNumber": "123456789",
"accountType": "Checking"
}
}
headers = {
"x-revolv3-token": "<api-key>",
"Content-Type": "application/json-patch+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-revolv3-token': '<api-key>', 'Content-Type': 'application/json-patch+json'},
body: JSON.stringify({
amount: null,
firstName: 'Joe',
lastName: 'Doe',
companyName: null,
address: {
addressId: null,
addressLine1: '26 River Street',
addressLine2: '',
city: 'Cambridge',
state: 'MA',
postalCode: '02125',
phoneNumber: '123-456-789',
email: null,
country: 'US'
},
ach: {
routingNumber: '123456789',
accountNumber: '123456789',
accountType: 'Checking'
}
})
};
fetch('https://api-sandbox.revolv3.com/api/account-verification/ach/person', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-sandbox.revolv3.com/api/account-verification/ach/person",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'amount' => null,
'firstName' => 'Joe',
'lastName' => 'Doe',
'companyName' => null,
'address' => [
'addressId' => null,
'addressLine1' => '26 River Street',
'addressLine2' => '',
'city' => 'Cambridge',
'state' => 'MA',
'postalCode' => '02125',
'phoneNumber' => '123-456-789',
'email' => null,
'country' => 'US'
],
'ach' => [
'routingNumber' => '123456789',
'accountNumber' => '123456789',
'accountType' => 'Checking'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json-patch+json",
"x-revolv3-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.revolv3.com/api/account-verification/ach/person"
payload := strings.NewReader("{\n \"amount\": null,\n \"firstName\": \"Joe\",\n \"lastName\": \"Doe\",\n \"companyName\": null,\n \"address\": {\n \"addressId\": null,\n \"addressLine1\": \"26 River Street\",\n \"addressLine2\": \"\",\n \"city\": \"Cambridge\",\n \"state\": \"MA\",\n \"postalCode\": \"02125\",\n \"phoneNumber\": \"123-456-789\",\n \"email\": null,\n \"country\": \"US\"\n },\n \"ach\": {\n \"routingNumber\": \"123456789\",\n \"accountNumber\": \"123456789\",\n \"accountType\": \"Checking\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-revolv3-token", "<api-key>")
req.Header.Add("Content-Type", "application/json-patch+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-sandbox.revolv3.com/api/account-verification/ach/person")
.header("x-revolv3-token", "<api-key>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"amount\": null,\n \"firstName\": \"Joe\",\n \"lastName\": \"Doe\",\n \"companyName\": null,\n \"address\": {\n \"addressId\": null,\n \"addressLine1\": \"26 River Street\",\n \"addressLine2\": \"\",\n \"city\": \"Cambridge\",\n \"state\": \"MA\",\n \"postalCode\": \"02125\",\n \"phoneNumber\": \"123-456-789\",\n \"email\": null,\n \"country\": \"US\"\n },\n \"ach\": {\n \"routingNumber\": \"123456789\",\n \"accountNumber\": \"123456789\",\n \"accountType\": \"Checking\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.revolv3.com/api/account-verification/ach/person")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-revolv3-token"] = '<api-key>'
request["Content-Type"] = 'application/json-patch+json'
request.body = "{\n \"amount\": null,\n \"firstName\": \"Joe\",\n \"lastName\": \"Doe\",\n \"companyName\": null,\n \"address\": {\n \"addressId\": null,\n \"addressLine1\": \"26 River Street\",\n \"addressLine2\": \"\",\n \"city\": \"Cambridge\",\n \"state\": \"MA\",\n \"postalCode\": \"02125\",\n \"phoneNumber\": \"123-456-789\",\n \"email\": null,\n \"country\": \"US\"\n },\n \"ach\": {\n \"routingNumber\": \"123456789\",\n \"accountNumber\": \"123456789\",\n \"accountType\": \"Checking\"\n }\n}"
response = http.request(request)
puts response.read_body{
"isVerified": true,
"message": "Approved",
"responseCode": "000"
}{
"message": "Unable to perform the request action with provided data."
}{
"message": "Attempted to perform an unauthorized operation."
}{
"message": "Unable to process this operation."
}AccountVerification
Validate personal ACH account
Validates a personal ACH bank account to confirm that it can be used for electronic payments.
This endpoint is typically used during customer onboarding or before initiating the first ACH transaction to ensure the provided account number and routing number are correct and accepted by the system.
It returns a verification result and any relevant error information if the account fails validation.
POST
/
api
/
account-verification
/
ach
/
person
Validate personal ACH account
curl --request POST \
--url https://api-sandbox.revolv3.com/api/account-verification/ach/person \
--header 'Content-Type: application/json-patch+json' \
--header 'x-revolv3-token: <api-key>' \
--data '
{
"amount": null,
"firstName": "Joe",
"lastName": "Doe",
"companyName": null,
"address": {
"addressId": null,
"addressLine1": "26 River Street",
"addressLine2": "",
"city": "Cambridge",
"state": "MA",
"postalCode": "02125",
"phoneNumber": "123-456-789",
"email": null,
"country": "US"
},
"ach": {
"routingNumber": "123456789",
"accountNumber": "123456789",
"accountType": "Checking"
}
}
'import requests
url = "https://api-sandbox.revolv3.com/api/account-verification/ach/person"
payload = {
"amount": None,
"firstName": "Joe",
"lastName": "Doe",
"companyName": None,
"address": {
"addressId": None,
"addressLine1": "26 River Street",
"addressLine2": "",
"city": "Cambridge",
"state": "MA",
"postalCode": "02125",
"phoneNumber": "123-456-789",
"email": None,
"country": "US"
},
"ach": {
"routingNumber": "123456789",
"accountNumber": "123456789",
"accountType": "Checking"
}
}
headers = {
"x-revolv3-token": "<api-key>",
"Content-Type": "application/json-patch+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-revolv3-token': '<api-key>', 'Content-Type': 'application/json-patch+json'},
body: JSON.stringify({
amount: null,
firstName: 'Joe',
lastName: 'Doe',
companyName: null,
address: {
addressId: null,
addressLine1: '26 River Street',
addressLine2: '',
city: 'Cambridge',
state: 'MA',
postalCode: '02125',
phoneNumber: '123-456-789',
email: null,
country: 'US'
},
ach: {
routingNumber: '123456789',
accountNumber: '123456789',
accountType: 'Checking'
}
})
};
fetch('https://api-sandbox.revolv3.com/api/account-verification/ach/person', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-sandbox.revolv3.com/api/account-verification/ach/person",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'amount' => null,
'firstName' => 'Joe',
'lastName' => 'Doe',
'companyName' => null,
'address' => [
'addressId' => null,
'addressLine1' => '26 River Street',
'addressLine2' => '',
'city' => 'Cambridge',
'state' => 'MA',
'postalCode' => '02125',
'phoneNumber' => '123-456-789',
'email' => null,
'country' => 'US'
],
'ach' => [
'routingNumber' => '123456789',
'accountNumber' => '123456789',
'accountType' => 'Checking'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json-patch+json",
"x-revolv3-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.revolv3.com/api/account-verification/ach/person"
payload := strings.NewReader("{\n \"amount\": null,\n \"firstName\": \"Joe\",\n \"lastName\": \"Doe\",\n \"companyName\": null,\n \"address\": {\n \"addressId\": null,\n \"addressLine1\": \"26 River Street\",\n \"addressLine2\": \"\",\n \"city\": \"Cambridge\",\n \"state\": \"MA\",\n \"postalCode\": \"02125\",\n \"phoneNumber\": \"123-456-789\",\n \"email\": null,\n \"country\": \"US\"\n },\n \"ach\": {\n \"routingNumber\": \"123456789\",\n \"accountNumber\": \"123456789\",\n \"accountType\": \"Checking\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-revolv3-token", "<api-key>")
req.Header.Add("Content-Type", "application/json-patch+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-sandbox.revolv3.com/api/account-verification/ach/person")
.header("x-revolv3-token", "<api-key>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"amount\": null,\n \"firstName\": \"Joe\",\n \"lastName\": \"Doe\",\n \"companyName\": null,\n \"address\": {\n \"addressId\": null,\n \"addressLine1\": \"26 River Street\",\n \"addressLine2\": \"\",\n \"city\": \"Cambridge\",\n \"state\": \"MA\",\n \"postalCode\": \"02125\",\n \"phoneNumber\": \"123-456-789\",\n \"email\": null,\n \"country\": \"US\"\n },\n \"ach\": {\n \"routingNumber\": \"123456789\",\n \"accountNumber\": \"123456789\",\n \"accountType\": \"Checking\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.revolv3.com/api/account-verification/ach/person")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-revolv3-token"] = '<api-key>'
request["Content-Type"] = 'application/json-patch+json'
request.body = "{\n \"amount\": null,\n \"firstName\": \"Joe\",\n \"lastName\": \"Doe\",\n \"companyName\": null,\n \"address\": {\n \"addressId\": null,\n \"addressLine1\": \"26 River Street\",\n \"addressLine2\": \"\",\n \"city\": \"Cambridge\",\n \"state\": \"MA\",\n \"postalCode\": \"02125\",\n \"phoneNumber\": \"123-456-789\",\n \"email\": null,\n \"country\": \"US\"\n },\n \"ach\": {\n \"routingNumber\": \"123456789\",\n \"accountNumber\": \"123456789\",\n \"accountType\": \"Checking\"\n }\n}"
response = http.request(request)
puts response.read_body{
"isVerified": true,
"message": "Approved",
"responseCode": "000"
}{
"message": "Unable to perform the request action with provided data."
}{
"message": "Attempted to perform an unauthorized operation."
}{
"message": "Unable to process this operation."
}Authorizations
Body
application/json-patch+jsonapplication/jsontext/jsonapplication/*+json
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Required range:
0 <= x <= 10000000Required string length:
2 - 25Pattern:
[A-Za-z]Required string length:
2 - 25Pattern:
[A-Za-z]Maximum string length:
100⌘I

