Inyo

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:

HeaderValue
AuthorizationBearer {accessToken}
Content-Typeapplication/json

Request

Root Object

FieldTypeRequiredDescription
externalPaymentIdstringYour unique identifier for this validation request
ipAddressstringOriginator's IPv4 or IPv6 address
senderobjectSender details including personal info, address, and payment method

sender Object

FieldTypeRequiredDescription
firstNamestringAccount holder's first name
lastNamestringAccount holder's last name
emailstringEmail address
phoneNumberstringPhone number (7–15 digits)
documentsarrayArray of identification documents
addressobjectAccount holder's address
paymentMethodobjectPayment method to validate

sender.documents[]

FieldTypeRequiredDescription
documentstringDocument number
typestringDocument type (e.g., "NATIONAL_ID", "PASSPORT", "DRIVER_LICENSE")
countryCodestringIssuing country (ISO Alpha-3)

sender.paymentMethod

FieldTypeRequiredDescription
typestringPayment method type (e.g., "BANK_ACCOUNT", "ACH")
accountTypestringAccount type: SAVINGS, CHECKING, BUSINESS_CHECKING, or BUSINESS_SAVING
routingNumberstringBank routing number (ABA for US banks)
accountNumberstringBank account number
bankCodestringBank institution code
countryCodestringCountry 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