IBAN Doğrulama API V4 Dokümantasyonu

Bu API bizim IBAN Suite hizmetimizin
bir parçasıdır.

1. V4 IBAN Validasyon API'sindeki yenilikler nelerdir?


Hizmetlerimizi geliştirmek ve daha iyi ödeme doğrulama çözümleri sunmak için sürekli çalışıyoruz.
IBAN Suite API’nin V2’den V4’e bir sürüm yinelemesini atladığını fark etmiş olabilirsiniz.
Bu, SortWare v3 gibi diğer API'leri tek bir sürüme yineledeğimiz içindir örneğin v4.

Değişiklik Günlüğü ( v2'den v4'e ):


Yeni doğrulama eklendi (hata 206 ve başarı 006) - V4 API artık IBAN girişindeki geçersiz karakterleri kontrol ediyor.
Yeni hata kodu - 206 (Doğrulama Başarısız) mesajı: IBAN geçersiz karakterler içeriyor.
Bu kontrolün başarı kodu mesajı olan 006 (Doğrulama Başarısı) şu şekildedir: IBAN geçersiz karakterler içermiyor
Bu hata kodu, sistemimize alfanümerik olmayan karakterlerle bir IBAN göndermeniz durumunda size daha fazla bilgi verecektir.
Önceki davranış, tüm alfanümerik olmayan karakterleri çıkarmak ve doğrulama işlemini gerçekleştirmekti.

Yeni doğrulama eklendi (hata 207 ve başarı 007) - Ülke IBAN'ı desteklemiyor
Bu doğrulama katmanı, sunulan IBAN'ın ülke kodunun IBAN ödemelerini destekleyen resmi ülkelerin bir parçası olup olmadığını rapor edecektir.
Örneğin, bir kişi güvenilmez bir üçüncü tarafın yazılımını kullanarak Amerika Birleşik Devletleri için bir IBAN üretebilir.
Böyle bir IBAN şöyle görünebilir US64SVBKUS6S3300958879
Basamak kontrolünün doğru olduğunu ve modül doğrulamalarını geçeceğini fark edeceksiniz, ancak ABD banka ödemelerinde IBAN kullanmıyor çünkü geçerli bir IBAN değil.


2. Özellikler


IBAN Doğrulama API V4 aşağıdakileri yapmanızı sağlar:

  • Bir IBAN'ın kontrol basamaklarını kullanarak geçerli olup olmadığının doğrulanması
  • Bir IBAN'ın geçerli bir yerel banka kodu ve hesap numarası kontrol basamağı olup olmadığının kontrol edilmesi. *
  • Belirli bir ülke için IBAN uzunluğunun doğrulanması
  • Belirli bir ülke için IBAN yapısının / formatının doğrulanması
  • IBAN karakterlerini doğrulama (alfanümerik olmayan karakterleri kontrol etme)
  • Ülke kodunun IBAN standardını destekleyip desteklemediğini doğrulama

  • IBAN’ı veren bankanın belirlenmesi
  • IBAN'ın ülke ve ülke kodunu belirlemek
  • IBAN’ı veren bankanın adresinin belirlenmesi
  • Bankanın BIC kodunun tanımlanması
  • Bankanın SEPA desteğinin belirlenmesi: B2B, COR1, SCC, SCT, SDD

* Banka Kodu ve Hesap Numarası doğrulamaları, yalnızca belirli bankalar ve ülkeler için yapılır.

3. API V4 Talepleri



API sistemi, IBAN doğrulamasını basit bir HTTP GET veya POST talebi ile otomatikleştirmenize olanak sağlar.
Kabul edilen parametreler aşağıdaki tabloda listelenmiştir:

Alan adı Uzunluk Tip Açıklama
IBAN Maksimum 100 Dizi Doğrulamak istediğiniz IBAN.
api_anahtarı 128 Dizi Kişisel API anahtarınız.
format 5 Dizi XML ve JSON yanıt formatı desteklenir.

*Bir API anahtarı edinmek için lütfen contact@iban.com adresinden bize ulaşın veya sipariş sayfamızdan bir abonelik satın alın

ÖRNEK - Bir IBAN'ı doğrulayın
API'yi en yaygın programlama dillerinde test etmek için aşağıdaki örnek kodu kullanmaktan çekinmeyin.

curl "https://api.iban.com/clients/api/v4/iban/" \
    -X POST \
    -d format=json \
	-d api_key=[YOUR_API_KEY] \
	-d iban=DE46500700100927353010
<?php
$curl = curl_init();

$post = [
    'format' => 'json',
    'api_key' => '[YOUR_API_KEY]',
    'iban'   => 'DE46500700100927353010',
];

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://api.iban.com/clients/api/v4/iban/',
	CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => $post
));

$output = curl_exec($curl);
$result = json_decode($output);

print_r($result);

curl_close($curl);
?>
require 'net/http'

uri = URI('https://api.iban.com/clients/api/v4/iban/')

res = Net::HTTP.post_form(uri, "format" => "json", "api_key" => "[YOUR_API_KEY]","iban" => "DE46500700100927353010")

puts res.body
import requests

post_data = {'format':'json', 'api_key':'[YOUR_API_KEY]','iban':'DE46500700100927353010'}

response = requests.post('https://api.iban.com/clients/api/v4/iban/',post_data)
print(response.text)
use LWP::UserAgent;

my $ua = LWP::UserAgent->new;
my $server_endpoint = "https://api.iban.com/clients/api/v4/iban/";

my $format = 'json';
my $api_key = '[YOUR_API_KEY]';
my $iban = 'DE02100500000024290661';


my $req = HTTP::Request->new( POST => $server_endpoint );
$req->content_type('application/x-www-form-urlencoded');

my $post_data = 'format=' . $format . '&api_key=' . $api_key . '&iban=' . $iban;

$req->content($post_data);

my $resp = $ua->request($req);

if ( $resp->is_success ) {
    my $message = $resp->decoded_content;
	print $message;
}

JAVA

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;
import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
import org.json.simple.parser.ParseException;
import org.json.simple.parser.JSONParser;


public class ibanapi {

	private final String USER_AGENT = "API Client/1.0";

	public static void main(String[] args) throws Exception {

		ibanapi http = new ibanapi();

		
		System.out.println("\nTesting API - Send API POST request");
		http.sendPost();

	}

	// HTTP POST request
	private void sendPost() throws Exception {

		String url = "https://api.iban.com/clients/api/v4/iban/";
		URL obj = new URL(url);
		HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();

		//add reuqest header
		con.setRequestMethod("POST");
		con.setRequestProperty("User-Agent", USER_AGENT);
		con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");

		String urlParameters = "api_key=[YOUR_API_KEY]&format=json&iban=DE02100500000024290661";

		// Send post request
		con.setDoOutput(true);
		DataOutputStream wr = new DataOutputStream(con.getOutputStream());
		wr.writeBytes(urlParameters);
		wr.flush();
		wr.close();

		int responseCode = con.getResponseCode();
		System.out.println("\nSending 'POST' request to URL : " + url);
		System.out.println("Post parameters : " + urlParameters);
		System.out.println("Response Code : " + responseCode);

		BufferedReader in = new BufferedReader(
		new InputStreamReader(con.getInputStream()));
		String inputLine;
		StringBuffer response = new StringBuffer();

		while ((inputLine = in.readLine()) != null) {
			response.append(inputLine);
		}
		in.close();

		//print result
		System.out.println(response.toString());

	}

}

.NET

public static void Main(string[] args)
		{						
			var request = (HttpWebRequest)WebRequest.Create("https://api.iban.com/clients/api/v4/iban/");
 
			var postData = "api_key=[YOUR_API_KEY]";
			 postData += "&format=json";
			 postData += "&iban=DE02100500000024290661";
			 
			var data = Encoding.ASCII.GetBytes(postData);
			 
			request.Method = "POST";
			request.ContentType = "application/x-www-form-urlencoded";
			request.ContentLength = data.Length;
			 
			using (var stream = request.GetRequestStream())
			{
			 stream.Write(data, 0, data.Length);
			}
			 
			var response = (HttpWebResponse)request.GetResponse();
			 
			var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
			
			Console.WriteLine(responseString);
			
			Console.Write("Press any key to continue . . . ");
			Console.ReadKey(true);
		}

NODE

var request = require('request');

var headers = {
    'User-Agent':       'IBAN API Client/0.0.1',
    'Content-Type':     'application/x-www-form-urlencoded'
}

var options = {
    url: 'https://api.iban.com/clients/api/v4/iban/',
    method: 'POST',
    headers: headers,
    form: {'api_key': '[YOUR_API_KEY]', 'format': 'json', 'iban': 'GB04BARC20474473160944'}
}

request(options, function (error, response, body) {
    if (!error && response.statusCode == 200) {
     
		var data = JSON.parse(body);

		console.log(data.errors);
		
		console.log("Banka Adı: " + data.bank_data.bank);
		console.log("Banka BIC: " + data.bank_data.bic);
		console.log("Banka Şehir: " + data.bank_data.city);
		console.log("Banka Adres: " + data.bank_data.address);
		console.log("Banka Posta Kodu: " + data.bank_data.zip);
		console.log("Banka Telefon: " + data.bank_data.phone);
		console.log("Banka FAKS: " + data.bank_data.fax);
		console.log("Banka www: " + data.bank_data.www);
		console.log("Banka e-posta: " + data.bank_data.email);
		console.log("Banka Ülke Adı: " + data.bank_data.country);
		console.log("Banka Ülke Kodu: " + data.bank_data.country_iso);
		console.log("Yerel Hesap Numarası: " + data.bank_data.account);
		
    }
})


IBAN Doğrulama API'sinin bir GET talebiyle kullanımına örnek aşağıda verilmiştir:

https://api.iban.com/clients/api/v4/iban/?api_key=key&format=xml&iban=IBAN

Şunlar geçerlidir:
  • anahtar, API anahtarınızdır
  • IBAN, API modülü tarafından doğrulama için gönderilmiştir.
  • xml yanıt biçimidir. Ayrıca, json formatlı yanıt için bir json anahtar sözcüğü belirtilebilir.

Doğru API anahtarıyla bir HTTP GET veya POST talebi yapıldığında, sistem sonuçları belirtilen biçimde döndürür. Örnek bir yanıtı bir sonraki bölümde ve API Yanıt Yapısı bölümünde bulabilirsiniz;

4. API V4 Yanıtı

API yanıtının bir XSD Şeması aşağıda görülebilir:




	 
		   
				 
					   
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
					   
				 
		   
		   
				 
					   
							 
							 
							 
							 
							 
					   
				 
		   
		   
				 
					   
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
					   
				 
		   
		   
	 



Döndürülen banka veri nesnesi alanlarının ayrıntılı bir açıklaması aşağıdaki tabloda görülebilir:

Alan Adı Uzunluk Tip Açıklama
BIC Maksimum 11 Dizi Veren banka / şube veya kurumun BIC kodu.
BANKA Maksimum 256 Dizi IBAN’ı veren bankanın / kurumun adı
ŞUBE Maksimum 256 Dizi Varsa, belirli banka şubesinin adı
ÜLKE Maksimum 32 Dizi Menşe ülkesinin tam adı örn. Amerika Birleşik Devletleri;
ÜLKE_ISO 2 Dizi Ülke kodunun iki harfli kısaltması, ör. US, UK, AU, FR… vb.
ŞEHİR Maksimum 128 Dizi Veren bankanın bulunduğu yerin şehri.
EYALET Maksimum 128 Dizi Bankanın / şubenin bulunduğu eyaletin adı.
Posta Kodu Maksimum 11 Dizi Şehrin posta kodu.
ADRES Maksimum 128 Dizi Veren bankanın adresi.
HESAP Maksimum 128 Dizi IBAN'dan çıkarılan yerel banka hesap numarası.
Döndürülen sepa veri nesnesi alanlarının ayrıntılı açıklaması aşağıdaki tabloda görülebilir:

Alan Adı Uzunluk Tip Açıklama
SCT Maksimum 3 Dizi Bu bankanın SEPA Kredi Transferini destekleyip desteklemediği.
SDD Maksimum 3 Dizi Bu bankanın SEPA Doğrudan Borçlanmayı destekleyip desteklemediği.
COR1 Maksimum 3 Dizi Bu bankanın SEPA COR1'i destekleyip desteklemediği.
B2B Maksimum 3 Dizi Bu bankanın SEPA İşletmeler Arasını destekleyip desteklemediği.
SCC Maksimum 3 Dizi Bu bankanın SEPA Kart Takasını destekleyip desteklemediği.


IBAN doğrulama sorgusu için API’dan alınan örnek bir XML yanıtı şöyledir:

	
		BARCGB22
		INTERNATIONAL BANKING 2
		BARCLAYS BANK UK PLC
		
PO Box 69999 1 Churchill Place Canary Wharf
Londra E14 1QE 020 71147000 GB 73160944
EVET EVET EVET EVET HAYIR 006 IBAN geçersiz karakterler içermiyor 001 IBAN Basamak Kontrolü doğru 002 Hesap Numarası basamak kontrolü doğru 005 IBAN yapısı doğru 003 IBAN Uzunluğu doğru 007 Ülke IBAN standardını destekliyor

5. API V4 Durum Kodları

Matematiksel basamak kontrolü ve format doğrulamaları "doğrulamalar" nesnesine döndürülür
API'nin v4 sürümünde, her bir doğrulamayı kodunuzdaki her bir doğrulamaya daha kolay erişilmesini sağlamak için kendi nesnesine ayırdık.
Bu, temel olarak, 'doğrulamalar' nesnesine döngü yapmak yerine, belirli bir doğrulama nesnesine yalnızca $doğrulamalar->yapı gibi bir adla başvurabileceğiniz anlamına gelir;

Durum Kodu Tip Açıklama
301 Hesap Hatası API Anahtarı geçersiz
302 Hesap Hatası Abonelik süresi doldu
303 Hesap Hatası Sorgulama hakkı kalmadı
304 Hesap Hatası Bu API’ye erişiminiz yok
305 Hesap Hatası IP Adresine izin verilmiyor
201 Doğrulama başarısız Hesap Numarası basamak kontrolü doğru değil
202 Doğrulama başarısız IBAN Kontrol basamağı doğru değil
203 Doğrulama başarısız IBAN Uzunluğu doğru değil
205 Doğrulama başarısız IBAN yapısı doğru değil
206 Doğrulama başarısız IBAN geçersiz karakterler içeriyor
207 Doğrulama başarısız Ülke IBAN standardını desteklemiyor
001 Doğrulama başarılı IBAN Basamak kontrolü doğru
002 Doğrulama başarılı Hesap Numarası basamak kontrolü doğru
003 Doğrulama başarılı IBAN Uzunluğu doğru
004 Doğrulama başarılı Bu banka veya şube için Hesap Numarası kontrol basamağı gerçekleştirilmez
005 Doğrulama başarılı IBAN yapısı doğru
006 Doğrulama başarılı IBAN geçersiz karakterler içermiyor
007 Doğrulama başarılı Ülke IBAN standardını destekliyor