API Documentation

e-IBAN API — Fast, Secure, Professional

Get Started

Quick Start

Start right away with the API Key sent to your email after registration. No complex setup required.

Simple Request (GET)

GET https://www.e-iban.com/api/v2/validate.php?iban=TR590006200027700000001863&api_key=YOUR_API_KEY

Sample JSON Response

{
  "success": true,
  "timestamp": "2026-03-15T10:00:00+03:00",
  "data": {
    "iban": "TR590006200027700000001863",
    "valid": true,
    "country": "TR",
    "country_name": "Türkiye",
    "bank_code": "0062",
    "bank_name": "GARANTİ BBVA",
    "swift": "TGBATRIS",
    "branch_code": "00277",
    "branch_name": "SAHRAYICEDİT ŞB.",
    "branch_address": "Göztepe Mah.",
    "branch_city": "İstanbul",
    "branch_phone": "0216 XXX XX XX",
    "account_number": "0000001863",
    "checksum_valid": true,
    "quota": {
      "remaining": 99,
      "expires": "2026-04-15"
    }
  }
}

API Endpoints

GET POST https://www.e-iban.com/api/v2/validate.php

IBAN validation — Returns bank, branch and account information

GET https://www.e-iban.com/api/v2/status.php

Account status — Returns quota and validity information

Parameters

Parameter Type Description
iban Required IBAN number to validate
api_key Required Your API key (or X-API-Key header)
timestamp Required Unix timestamp (5 min valid)
signature Required HMAC-SHA256 signature
format Optional json (default) or xml

HMAC Security Verification

e-IBAN API uses HMAC-SHA256 for secure authentication. Timestamp and signature parameters are required for every request.

Create a Timestamp
$timestamp = time(); // Unix timestamp (örn: 1709900000)
Create a String to Sign
// Sorgu parametrelerini normalize edin:
// - timestamp ve signature parametrelerini ÇIKARIN
// - Kalan parametreleri alfabetik SIRALAYIN
// - Key ve value'ları URL-ENCODE edin

// Örnek: iban=TR590006200027700000001863
$query = 'iban=TR590006200027700000001863';

// İmza metnini oluşturun
$stringToSign = $timestamp . "\n" .
                strtoupper($method) . "\n" .
                $path . "\n" .
                $query . "\n" .
                $body;

Bileşenler: timestamp, method (GET/POST), path (/api/v2/validate.php), query (normalize edilmiş), body (POST ise body, GET ise boş)

Calculate HMAC-SHA256 Signature
$signature = hash_hmac('sha256', $stringToSign, $api_secret);
Send the Request
// Yöntem 1: Tüm bilgileri header ile gönderin (önerilen)
curl "https://www.e-iban.com/api/v2/validate.php?iban=TR590006200027700000001863×tamp=1709900000&signature=HESAPLANAN_IMZA" \
  -H "X-API-Key: YOUR_API_KEY"

// Yöntem 2: Tüm bilgileri query string ile gönderin
curl "https://www.e-iban.com/api/v2/validate.php?iban=TR590006200027700000001863×tamp=1709900000&signature=HESAPLANAN_IMZA&api_key=YOUR_API_KEY"
Timestamps are only valid for 5 minutes (±300 seconds).

Code Examples

Usage — Secure Request with HMAC

// API Bilgileri
$api_key = 'YOUR_API_KEY';
$api_secret = 'YOUR_API_SECRET';
$iban = 'TR590006200027700000001863';

// 1. Timestamp oluştur
$timestamp = time();

// 2. String to Sign oluştur
$method = 'GET';
$path = '/api/v2/validate.php';
$query = 'iban=' . $iban;
$body = '';

$stringToSign = $timestamp . "\n" .
                $method . "\n" .
                $path . "\n" .
                $query . "\n" .
                $body;

// 3. İmza oluştur
$signature = hash_hmac('sha256', $stringToSign, $api_secret);

// 4. API isteği
$url = "https://www.e-iban.com/api/v2/validate.php?" . http_build_query([
    'iban' => $iban,
    'timestamp' => $timestamp,
    'signature' => $signature
]);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'X-API-Key: ' . $api_key,
    'X-Timestamp: ' . $timestamp,
    'X-Signature: ' . $signature
]);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
echo $result['data']['bank_name']; // GARANTİ BBVA
import hmac
import hashlib
import time
import requests

API_KEY = 'YOUR_API_KEY'
API_SECRET = 'YOUR_API_SECRET'

def validate_iban(iban):
    timestamp = int(time.time())
    method = 'GET'
    path = '/api/v2/validate.php'
    query = f'iban={iban}'
    body = ''

    string_to_sign = f"{timestamp}\n{method}\n{path}\n{query}\n{body}"
    signature = hmac.new(
        API_SECRET.encode(),
        string_to_sign.encode(),
        hashlib.sha256
    ).hexdigest()

    response = requests.get(
        'https://www.e-iban.com/api/v2/validate.php',
        params={
            'iban': iban,
            'timestamp': timestamp,
            'signature': signature
        },
        headers={
            'X-API-Key': API_KEY,
            'X-Timestamp': str(timestamp),
            'X-Signature': signature
        }
    )
    return response.json()

result = validate_iban('TR590006200027700000001863')
print(result['data']['bank_name']) # GARANTİ BBVA
# Timestamp ve signature oluştur (örnek)
TIMESTAMP=$(date +%s)
API_SECRET="YOUR_API_SECRET"

# String to Sign oluştur
STRING_TO_SIGN="${TIMESTAMP}
GET
/api/v2/validate.php
iban=TR590006200027700000001863
"

# Signature oluştur
SIGNATURE=$(echo -n "$STRING_TO_SIGN" | openssl dgst -sha256 -hmac "$API_SECRET" | awk '{print $2}')

# API isteği
curl "https://www.e-iban.com/api/v2/validate.php?iban=TR590006200027700000001863×tamp=${TIMESTAMP}&signature=${SIGNATURE}" \
    -H "X-API-Key: YOUR_API_KEY" \
    -H "X-Timestamp: ${TIMESTAMP}" \
    -H "X-Signature: ${SIGNATURE}"

Error Codes

Code Description Solution
API_KEY_REQUIRED API Key gönderilmemiş X-API-Key header'ı veya api_key parametresi ekleyin
API_KEY_GECERSIZ Geçersiz API anahtarı API Key'inizi kontrol edin
INVALID_SIGNATURE Signature verification failed Check your signature algorithm
SIGNATURE_REQUIRED Signature parametresi eksik X-Signature header'ı veya signature parametresi ekleyin
TIMESTAMP_REQUIRED Timestamp parametresi eksik X-Timestamp header'ı veya timestamp parametresi ekleyin
TIMESTAMP_EXPIRED Timestamp has expired Use a valid Unix timestamp
LIMIT_ASIMI Sorgu limitiniz dolmuş Paketinizi yükseltin veya yeni paket satın alın
DAILY_LIMIT_EXCEEDED Günlük API sorgu limitine ulaşıldı Yarın tekrar deneyin veya paketinizi yükseltin
RATE_LIMIT_EXCEEDED Çok fazla istek gönderildi (burst limit aşıldı) Biraz bekleyip tekrar deneyin (10 sorgu/dakika)
IP_LIMIT_EXCEEDED IP limit exceeded Check your registered IPs
IBAN_REQUIRED IBAN parameter is missing Add the iban parameter
UYELIK_PASIF Üyelik aktif değil Üyelik durumunuzu kontrol edin veya destek ile iletişime geçin
SURE_DOLDU Üyelik süresi dolmuş Paket yenileyin

Response Formats

Success Response

{
  "success": true,
  "timestamp": "2026-03-15T10:00:00+03:00",
  "data": {
    "iban": "TR590006200027700000001863",
    "valid": true,
    "country": "TR",
    "country_name": "Türkiye",
    "bank_code": "0062",
    "bank_name": "GARANTİ BBVA",
    "swift": "TGBATRIS",
    "branch_code": "00277",
    "branch_name": "SAHRAYICEDİT ŞB.",
    "branch_address": "Göztepe Mah.",
    "branch_city": "İstanbul",
    "branch_phone": "0216 XXX XX XX",
    "account_number": "0000001863",
    "checksum_valid": true,
    "quota": {
      "remaining": 99,
      "expires": "2026-04-15"
    }
  }
}

Error Response

{
  "success": false,
  "error": "IBAN_REQUIRED",
  "message": "IBAN parametresi eksik"
}
format=xml parameter to receive XML format response. Default format is JSON.

Get Started with Professional API Now

Choose your plan, make the payment, and start integrating with your API Key right away.

Choose a Plan & Get Started