Check Account
The Check Account API validates a non-card payment method before initiating a transaction. It works similarly to Check Card Account (ANI) but is designed for bank accounts and alternative payment methods.
Use this endpoint to:
- Verify account ownership before submitting a push or pull payment
- Reduce failed transactions by catching invalid account details early
- Streamline KYC by confirming account information matches the sender
Endpoint
POST https://{FQDN}/check-account
Headers:
| Header | Value |
|---|
Authorization | Bearer {accessToken} |
Content-Type | application/json |
Request
Root Object
| Field | Type | Required | Description |
|---|
externalPaymentId | string | ✅ | Your unique identifier for this validation request |
ipAddress | string | ✅ | Originator's IPv4 or IPv6 address |
sender | object | ✅ | Sender details including personal info, address, and payment method |
sender Object
| Field | Type | Required | Description |
|---|
firstName | string | ✅ | Account holder's first name |
lastName | string | ✅ | Account holder's last name |
email | string | ✅ | Email address |
phoneNumber | string | ✅ | Phone number (7–15 digits) |
documents | array | ✅ | Array of identification documents |
address | object | ✅ | Account holder's address |
paymentMethod | object | ✅ | Payment method to validate |
sender.documents[]
| Field | Type | Required | Description |
|---|
document | string | ✅ | Document number |
type | string | ✅ | Document type (e.g., "NATIONAL_ID", "PASSPORT", "DRIVER_LICENSE") |
countryCode | string | ✅ | Issuing country (ISO Alpha-3) |
sender.paymentMethod
| Field | Type | Required | Description |
|---|
type | string | ✅ | Payment method type (e.g., "BANK_ACCOUNT", "ACH") |
accountType | string | ✅ | Account type: SAVINGS, CHECKING, BUSINESS_CHECKING, or BUSINESS_SAVING |
routingNumber | string | ✅ | Bank routing number (ABA for US banks) |
accountNumber | string | ✅ | Bank account number |
bankCode | string | ❌ | Bank institution code |
countryCode | string | ❌ | Country of the bank (ISO Alpha-2) |
Example Request
curl -X POST https://{FQDN}/check-account \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIs...' \
-H 'Content-Type: application/json' \
-d '{
"externalPaymentId": "check-acct-001",
"ipAddress": "203.0.113.42",
"sender": {
"firstName": "John",
"lastName": "Smith",
"email": "[email protected]",
"phoneNumber": "5551234567",
"documents": [
{
"document": "050482156",
"type": "NATIONAL_ID",
"countryCode": "USA"
}
],
"address": {
"countryCode": "US",
"stateCode": "CA",
"city": "Los Angeles",
"line1": "4429 Candlewood St",
"zipCode": "90712"
},
"paymentMethod": {
"type": "BANK_ACCOUNT",
"accountType": "CHECKING",
"routingNumber": "021000021",
"accountNumber": "123456789"
}
}
}'
Response — Valid Account (200)
{
"paymentId": "dce568c6-a7b2-4e3f-9c1d-abc123def456",
"externalPaymentId": "check-acct-001",
"status": "APPROVED",
"accountVerification": {
"accountStatus": "VALID",
"accountType": "CHECKING"
}
}
Response — Invalid Account (200)
{
"paymentId": "dce568c6-a7b2-4e3f-9c1d-abc123def789",
"externalPaymentId": "check-acct-001",
"status": "DECLINED",
"accountVerification": {
"accountStatus": "INVALID",
"message": "Account number does not match routing number"
}
}
What's Next