Italy IBAN Validator & ABI/CAB Checker (Banca d'Italia)
A Italy (IT) IBAN is 27 characters long: the country code IT, two MOD-97 check digits, then a 1a10n12c BBAN. Example: IT60X0542811101000000123456. Transfers settle in EUR.
⚡ Live Italy IBAN Validator & ABI/CAB Checker (Banca d'Italia) Interactive Workbench
Test real-time validation and schema parsing for Italy IBAN Validator & ABI/CAB Checker (Banca d'Italia) directly in your browser. Runs in sub-5ms with zero setup.
{
"status": "Click RUN VALIDATION to execute on the Cloudflare edge..."
}
Quick Summary: Instant ISO 7064 MOD-97 validation for 27-character Italian IBANs with CIN control character, 5-digit ABI bank code, and 5-digit CAB branch code extraction. Validates strictly against ISO 13616 / ISO 7064 MOD-97-10 with sub-5ms in-memory response times.
Specification & Structural Breakdown
Technical Summary: Validates strictly against ISO 13616 / ISO 7064 MOD-97-10. Payloads are parsed in memory and return clean, typed JSON in milliseconds with zero data logged.
In Italy, the International Bank Account Number (IBAN) has a fixed length of 27 alphanumeric characters starting with the two-letter ISO 3166-1 alpha-2 country code 'IT', followed by two MOD-97 check digits.
The National Basic Bank Account Number (BBAN) follows the official pattern: 1a10n12c. The national bank code is located at BBAN character offset [1:6]. The branch identifier is at offset [6:11].
National IBAN transfers in Italy (IT) are settled in EUR.
Validation computes the ISO 7064 Modulo-97-10 checksum by transposing the first 4 characters to the end, converting letters to numeric digits (A=10, ..., Z=35), and calculating arithmetic integer modulo 97 (must equal 1).
An Italian IBAN is 27 characters: IT, two MOD-97 check digits, a 1-letter CIN control character, a 5-digit ABI bank code, a 5-digit CAB branch code, and a 12-character account number (structure IT2!n1!a5!n5!n12!c).
The CIN is a national control character computed from the ABI, CAB, and account number; it is separate from the two ISO 7064 MOD-97 check digits that follow the country code.
| Attribute | Value | Description |
|---|---|---|
| Country Code | IT | ISO 3166-1 alpha-2 |
| Total IBAN Length | 27 characters | Fixed standard length |
| BBAN Format | 1a10n12c | National structure (n=numeric, a=alpha, c=alphanumeric) |
| SEPA Zone | Yes (Single Euro Payments Area) | SEPA compliance status |
| Currency (ISO 4217) | EUR | National settlement currency |
| Bank Code Position | BBAN Offset 1 (5 chars) | National clearing code |
| Branch Code Position | BBAN Offset 6 (5 chars) | Branch identification |
| CIN Control Character | BBAN offset 0 (1 letter) | National control character over ABI + CAB + account |
| ABI Bank Code | BBAN offset 1 (5 digits) | Italian Bankers' Association (ABI) bank identifier |
| CAB Branch Code | BBAN offset 6 (5 digits) | Branch identifier within the bank |
Parsed JSON Response Model
The edge microservice transforms input payloads into strongly-typed hierarchical JSON envelopes with sub-5ms latency:
{
"valid": true,
"iban": "IT60X0542811101000000123456",
"countryCode": "IT",
"countryName": "Italy",
"length": 27,
"bban": "1a10n12c",
"sepa": true,
"checksumValid": true,
"bankCode": "XXXX"
}
Copy-Paste Integration Code (6 Languages)
Integrate Italy IBAN Validator & ABI/CAB Checker (Banca d'Italia) directly into your production application with native, zero-dependency code snippets in cURL, Node.js, Python, Go, C#, and a ready-to-paste Claude prompt. Get a free API key → (no credit card required):
curl --request POST \
--url "https://api.stanzaapi.com/iban-validator/api/v1/iban/validate" \
--header "Content-Type: application/json" \
--header "x-api-key: YOUR_API_KEY" \
--data '{
"iban": "DE89370400440532013000"
}'const response = await fetch("https://api.stanzaapi.com/iban-validator/api/v1/iban/validate", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": process.env.API_KEY || "YOUR_API_KEY"
},
body: JSON.stringify({
"iban": "DE89370400440532013000"
})
});
const data = await response.json();
console.log(data);import requests
import json
url = "https://api.stanzaapi.com/iban-validator/api/v1/iban/validate"
headers = {
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY"
}
payload = {
"iban": "DE89370400440532013000"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())package main
import (
"bytes"
"fmt"
"io"
"net/http"
"os"
)
func main() {
url := "https://api.stanzaapi.com/iban-validator/api/v1/iban/validate"
payload := []byte(`{"iban":"DE89370400440532013000"}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(payload))
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-api-key", os.Getenv("API_KEY"))
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", Environment.GetEnvironmentVariable("API_KEY") ?? "YOUR_API_KEY");
var json = @"{""iban"":""DE89370400440532013000""}";
var payload = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://api.stanzaapi.com/iban-validator/api/v1/iban/validate", payload);
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
}Integrate the StanzaAPI iban-validator micro-API.
Endpoint: POST https://api.stanzaapi.com/iban-validator/api/v1/iban/validate
Auth header: x-api-key: YOUR_API_KEY
Content-Type: application/json
Request body:
{
"iban": "DE89370400440532013000"
}
Rules:
- Send the request with a 2-second timeout.
- Parse the standard envelope { success, data, meta: { latency_ms, version } }.
- On failure, read { success: false, error, code } and branch on the code.
- Do not retry 4xx responses; surface the error code to the caller.
- Treat invalid-but-well-formed payloads as HTTP 200 with data.valid === false.Frequently Asked Questions & Technical Notes
An official IBAN in Italy (IT) is exactly 27 characters in length. Any shorter or longer value fails ISO 13616 validation.
Italy is a member of the Single Euro Payments Area (SEPA), enabling low-cost euro bank transfers.
IBAN transfers for Italy (IT) settle in EUR, the national settlement currency. Cross-border SEPA transfers to Italy may still be denominated in EUR where both banks support the scheme.
The first 4 characters are moved to the end, letters are converted to numbers (A=10 to Z=35), and the resulting number is evaluated with modulo 97 arithmetic. A valid IBAN yields a remainder of exactly 1.
An Italian IBAN (27 characters) carries three national identifiers after IT and the two check digits: a 1-letter CIN control character, a 5-digit ABI bank code assigned by the Italian Bankers' Association, and a 5-digit CAB branch code. The remaining 12 characters are the account number.
Validation recomputes the ISO 7064 MOD-97 checksum over the whole IBAN; a valid Italian IBAN returns a remainder of 1. The CIN is an additional national control character and does not replace the MOD-97 check.
Related Global IBAN, BIC/SWIFT & Bank Routing Validator API Formats
Explore sibling specifications and standards in the same developer cluster:
Jordan (JO) IBAN & Bank Routing Validator
Instant sub-1ms ISO 13616 MOD-97 checksum validation, BBAN decomposition, and bank routing extraction for Jordan (JO) bank accounts.
View Format →Iceland (IS) IBAN & Bank Routing Validator
Instant sub-1ms ISO 13616 MOD-97 checksum validation, BBAN decomposition, and bank routing extraction for Iceland (IS) bank accounts.
View Format →Kuwait IBAN Validator & Bank Checker (CBK Mod-97)
Verify 30-character Kuwait IBAN accounts with Central Bank of Kuwait rules and 4-letter bank identifier resolution.
View Format →Iraq (IQ) IBAN & Bank Routing Validator
Instant sub-1ms ISO 13616 MOD-97 checksum validation, BBAN decomposition, and bank routing extraction for Iraq (IQ) bank accounts.
View Format →Kazakhstan (KZ) IBAN & Bank Routing Validator
Instant sub-1ms ISO 13616 MOD-97 checksum validation, BBAN decomposition, and bank routing extraction for Kazakhstan (KZ) bank accounts.
View Format →Israel (IL) IBAN & Bank Routing Validator
Instant sub-1ms ISO 13616 MOD-97 checksum validation, BBAN decomposition, and bank routing extraction for Israel (IL) bank accounts.
View Format →Lebanon (LB) IBAN & Bank Routing Validator
Instant sub-1ms ISO 13616 MOD-97 checksum validation, BBAN decomposition, and bank routing extraction for Lebanon (LB) bank accounts.
View Format →Ireland IBAN Validator & Sort Code Checker (BPFI)
Instant MOD-97 validation for 22-character Irish IBANs with 4-letter bank code, 6-digit sort code (NSC), and 8-digit account number extraction.
View Format →Complementary Enterprise APIs
Seamlessly orchestrate data pipelines across adjacent financial, regulatory, and supply-chain protocols:
ISO 20022 Financial Messaging →
Parse, validate, and convert pacs.008, camt.053, and pain.001 payment initiation files.
European VIES VAT Validator →
Verify cross-border VAT numbers and corporate tax registration with format and syntax checks.
GLEIF LEI Legal Entity Identifier →
Validate 20-character ISO 17442 corporate identifier checksums for global financial institutions.