Skip to content

Service

This section provides the Service endpoints required to manage and operate the full lifecycle of resources within the ViaBlocks platform. These endpoints are designed for secure, auditable, and scalable server-to-server integrations, and support core business operations and compliance workflows.

/service/routing/verify

Request

Verifies a bank routing number and optionally verifies an associated account.

Purpose

Validates a routing number structure (ABA checksum), retrieves bank details and supported payment networks (ACH, Wire, RTP, FedNow). Optionally verifies an account number in the same request.

When to use

  • Validate a routing number before creating a bank deposit transaction
  • Retrieve bank name and payment capabilities for a routing number
  • Verify both routing and account in a single call to reduce round trips

How it works

  1. Validates the routing number structure via ABA checksum
  2. If account fields are provided, verifies the account with the bank verification provider
  3. Checks the internal database for cached routing data
  4. If not cached, queries external providers (Lyon/Nabco) for routing details
  5. Caches the result asynchronously for future lookups
  6. Returns routing details with optional account verification results

Authentication

Requires either x-api-key header OR x-client-id + x-secret-key headers.

Notes

  • The routing number must be exactly 9 digits and pass ABA checksum.
  • When accountNumber is provided, accountType becomes required.
  • Account types accepted: C (Checking), S (Savings).
  • The countryISO parameter accepts ISO 3166-1 alpha-3 codes (e.g., USA, CAN).
  • Account verification results are included under the accountVerification key when requested.

Common errors

  • 400 Invalid routing number checksum or missing required fields
  • 401 Invalid API key
  • 404 Routing number not found in any provider
  • 500 External service unavailable
Headers
x-api-keystring, [ 16 .. 128 ] characters

API key for authentication. Use this OR x-client-id/x-secret-key pair.

Error codes: type=400002, minLength=400003, maxLength=400004

Example:string
x-client-idstring, [ 16 .. 64 ] characters

Partner client identifier. Must be sent together with x-secret-key.

Error codes: type=400002, minLength=400003, maxLength=400004

Example:string
x-secret-keystring, [ 32 .. 128 ] characters

Partner secret key. Must be sent together with x-client-id.

Error codes: type=400002, minLength=400003, maxLength=400004

Example:string
Bodyapplication/jsonrequired
routingNumberstring, = 9 characters^[0-9]{9}$required

The 9-digit ABA routing number to verify.

Error codes: required=400001, type=400002, minLength=400003, maxLength=400004, pattern=400009

countryISOstring, = 3 characters^[A-Z]{3}$required

ISO 3166-1 alpha-3 country code (e.g., USA, CAN).

Error codes: required=400001, type=400002, minLength=400003, maxLength=400004, pattern=400009

accountNumberstring, [ 4 .. 17 ] characters

Bank account number to verify alongside the routing number. When provided, accountType is required.

Error codes: type=400002, minLength=400003, maxLength=400004

accountTypestring, = 1 characters

Type of bank account. Required when accountNumber is provided. C = Checking, S = Savings.

Error codes: type=400002, minLength=400003, maxLength=400004, allowedValues=400010

Enum:"C""S"
POST
/service/routing/verify
curl -i -X POST \
  https://sandbox-viablocks.viamericas.io/service/routing/verify \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: string' \
  -H 'x-client-id: string' \
  -H 'x-secret-key: string' \
  -d '{
    "routingNumber": "021000021",
    "countryISO": "USA"
  }'

Responses

Routing number verified successfully

Bodyapplication/json
statusstring

Response status indicator.

messagestring

Human-readable description of the result.

dataobject

Routing verification result data.

Response
{ "status": "success", "message": "Routing number verified successfully", "data": { "routingNumber": "021000021", "bank": "JPMORGAN CHASE", "rtp": true, "fednow": true, "aba": true, "wire": true, "ach": true, "active": true } }