# bank-validate

> bank-validate is a paid API for AI agents from payai.agentstools.dev, paid per call via x402, $0.003/call, status unknown (last checked 2026-09-15).

Validates an IBAN structurally offline using ISO 13616 checksum and per-country format rules, returning validity status and granular error details on failure

## Facts

- Endpoint: GET https://payai.agentstools.dev/bank/validate
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/bank-validate-416c3474
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ENbdrEljdruuCt6AL7ifM

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability bank-validate-416c3474
```

Example prompt: Can you check whether this IBAN is structurally valid: DE89370400440532013000? If it's not valid, tell me what specifically is wrong with it.

## When to prefer this

Choose this endpoint when you need a fast, cheap, offline first-pass IBAN check before committing to a more expensive live bank verification call. It costs $0.003 USDC with no API keys or network dependencies, making it ideal as a pre-flight step in payment pipelines, form validation, or data quality checks. Prefer this over /bank/verify when you only need structural validity and don't need to confirm the account actually exists at a bank.

## Known failure modes

- Malformed or empty IBAN input may return invalid_structure
- Unknown or unsupported country code yields invalid_country error
- IBAN with correct structure but wrong checksum returns invalid_checksum
- IBAN with wrong length for its country returns invalid_length
- Spaces and case variations are normalized — passing raw user input is safe
- This endpoint does NOT verify account existence or bank reachability — use /bank/verify for that

## How this service works

Cheap structural IBAN validation: ISO 13616 checksum + per-country structure/length. Returns valid plus, on rejection, a granular error_type (invalid_checksum, invalid_length, invalid_structure, invalid_country), the country and the format spec. Offline (schwifty, MIT); no network or keys. A cheap-first entry before the fuller /bank/verify fusion route.

## Output

Returns a JSON object containing a boolean 'valid' field. On failure, includes a granular 'error_type' (one of: invalid_checksum, invalid_length, invalid_structure, invalid_country), the detected country code, and the expected format specification for that country. On success, may include country and format info as well. The check is entirely offline with no network calls.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "iban"
     ],
     "properties": {
      "iban": {
       "type": "string",
       "description": "IBAN to validate (spaces optional, any case)."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/bank-validate-416c3474/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from payai.agentstools.dev](https://www.zero.xyz/host/payai.agentstools.dev/llms.txt)
