IBAN Hitelesítő API V4 Dokumentáció

Ez az API az IBAN Suite szolgáltatásunk része

1. Mi új az IBAN Hitelesítő API V4-ben?


Folyamatosan dolgozunk azon, hogy javítsuk szolgáltatásainkat és jobb fizetési validációs megoldásokat nyújtsunk.
Lehet, hogy észrevette, hogy az IBAN Suite API kihagyott egy verziót és a V2-ről V4-re váltott rögtön. Ez azért történt, mert egyesítettük a többi API-t, például a SortWare v3-t egyetlen verziójú iterációra, pl. v4.

Változtatások ( v2-ről v4-re ):


Új hitelesítés hozzáadva (206-os hiba és 006-os siker) - Az API 4-es verziója most ellenőrizheti, hogy van-e hiba a bevitt IBAN-karakterekben.
Az új 206-os hibaüzenet (Hitelesítés Sikertelen): az IBAN illegális karaktereket tartalmaz.
Az ehhez tartozó sikerkód - 006 ( Hitelesítés Sikeres ) : az IBAN illegális karaktereket nem tartalmaz.
Ez a hibakód további tájékoztatást nyújt abban az esetben, ha olyan IBAN-t küld be, amely nem alfanumerikus karaktereket tartalmaz.

Új hitelesítés hozzáadva ( 207-es hiba és 007-es siker ) - Az ország nem támogatja az IBAN-t
Ez a hitelesítési réteg azonosítja, hogy az IBAN országkódja egy hivatalos IBAN fizetési támogató országhoz kapcsolódik-e.
Például egy IBAN-t lehet létrehozni az Egyesült Államok számára megbízhatatlan harmadik fél által készített szoftverrel.
Az ilyen IBAN például így nézhet ki: US64SVBKUS6S3300958879
Észrevehetjük, hogy az ellenőrző szám helyes, és átmegy a modulus érvényesítésén, de nem érvényes IBAN, mivel az Egyesült Államok nem használja az IBAN-t banki fizetésekhez.


2. Jellemzők


Az IBAN Hitelesítő API V4 lehetővé teszi a következő műveletek végrehajtását:

  • Ellenőrzi az IBAN-t annak ellenőrző számjegyeivel
  • Hitelesít, ha az IBAN-nak érvényes belföldi bankszámla és számlaszám ellenőrző számjegyei vannak *
  • Ellenőrzi az adott ország IBAN-hosszát
  • Ellenőrzi az adott ország IBAN struktúráját / formázását
  • Ellenőrzi az IBAN-karaktereket (ellenőrzi a nem alfanumerikus karaktereket)
  • Ellenőrzi, hogy az országkód támogatja-e az IBAN szabványt

  • Az IBAN-t kibocsátó bank azonosítása
  • Az IBAN-t kibocsátó ország azonosítása
  • Az IBAN-t kibocsátó bank címének azonosítása
  • Az IBAN-t kibocsátó bank BIC kódjának azonosítása
  • Azonosítja a bank SEPA támogatását: B2B, COR1, SCC, SCT, SDD

* A banki kód és a számlaszám érvényesítése csak bizonyos bankok és országok esetében történik.

3. API V4 Lekérdezések



Az API-rendszer lehetővé teszi az IBAN-hitelesítés automatizálását egyszerű HTTP GET- vagy POST-kéréssel
Az elfogadott paraméterek az alábbi táblázatban találhatók:

Mező neve Hossz Típus Leírás
IBAN Max 100 String A hitelesítendő IBAN.
api_key 128 String Saját egyedi API-kulcs.
format 5 String JSON és az XML válaszformátumok.

* API-kulcs megszerzéséhez kérjük, lépjen kapcsolatba velünk a következő email címen contact@iban.com vagy vásároljon előfizetést a rendelési oldalunkon.

PÉLDA – IBAN HITELESÍTÉSE
Használja az alábbi mintakódot az API teszteléséhez a leggyakoribb programozási nyelveken.

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("Bank Name: " + data.bank_data.bank);
		console.log("Bank BIC: " + data.bank_data.bic);
		console.log("Bank City: " + data.bank_data.city);
		console.log("Bank Address: " + data.bank_data.address);
		console.log("Bank Zip: " + data.bank_data.zip);
		console.log("Bank Phone: " + data.bank_data.phone);
		console.log("Bank FAX: " + data.bank_data.fax);
		console.log("Bank www: " + data.bank_data.www);
		console.log("Bank email: " + data.bank_data.email);
		console.log("Bank Country Name: " + data.bank_data.country);
		console.log("Bank Country Code: " + data.bank_data.country_iso);
		console.log("Domestic Account Number: " + data.bank_data.account);
		
    }
})


Példe az IBAN-hitelesítési API egy GET-kéréssel történő használatára:

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

Ahol:
  • kulcs az API kulcs
  • Az API modul az IBAN-t érvényesítette.
  • a válasz formátuma xml. Továbbá, ha json formázott válasz szükséges, akkor egy json kulcsszó használható.

Abban a pontban, amikor egy POST vagy HTTP GET kérés érvényes API kulccsal érkezik, az eredményeket a rendszer a megfelelő formátumban adja vissza. A következő rész egy példát tartalmaz az API-válasz felépítésére Once an HTTP GET or POST request is made with the correct API key, the system will return the results in the specified format.

4. API V4 Válasz

Alább található az API XSD Schema-ja:




	 
		   
				 
					   
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
					   
				 
		   
		   
				 
					   
							 
							 
							 
							 
							 
					   
				 
		   
		   
				 
					   
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
					   
				 
		   
		   
	 



A visszaadott bank_data objektum mezők részletes leírása az alábbi táblázatban látható:

Mező neve Hossz Típus Leírás
BIC Max 11 String A kibocsátó intézmény, bank/fiók BIC kódja.
BANK Max 256 String Az IBAN-kibocsátó intézmény / bank neve.
BRANCH Max 256 String Az adott bankfiók neve, ha van
COUNTRY Max 32 String Kibocsátó ország teljes neve
COUNTRY_ISO 2 String Két betűs rövidített országkód, pl. FR, AU, UK, US… stb.
CITY Max 128 String A kibocsátó bank városának neve.
STATE Max 128 String A megye, amelyben a fióktelep/bank található.
ZIP Max 11 String A város postai irányítószáma.
ADDRESS Max 128 String A kibocsátó bank címe.
ACCOUNT Max 128 String Az IBAN-ból kivont hazai bankszámlaszám.
Az alábbi táblázat tartalmazza a visszaadott sepa_data objektum mezők részletes leírását:

Mező neve Hossz Típus Leírás
SCT Max 3 String A bank támogatja-e a SEPA-átutalást.
SDD Max 3 String A bank támogatja-e a SEPA Direct Debitet.
COR1 Max 3 String A bank támogatja-e a SEPA COR1-et.
B2B Max 3 String A bank támogatja-e a SEPA Business to Business-t.
SCC Max 3 String A bank támogatja-e a SEPA Card Clearing-et.


Az API-ból származó XML-válasz egy IBAN-hitelesítési lekérdezéshez:

	
		BARCGB22
		INTERNATIONAL BANKING 2
		BARCLAYS BANK UK PLC
		
PO Box 69999 1 Churchill Place Canary Wharf
London E14 1QE 020 71147000 GB 73160944
YES YES YES YES NO 006 IBAN does not contain illegal characters 001 IBAN Check digit is correct 002 Account Number check digit is correct 005 IBAN structure is correct 003 IBAN Length is correct 007 Country supports IBAN standard

5. API V4 Státusz Kódok

A matematikai ellenőrző számjegyeket és a formázási ellenőrzéseket a "validációk" objektumban visszaküldi
Az API v4-es verziójában minden egyes érvényesítést elválasztottunk saját objektumára, hogy megkönnyítsük a hozzáférést a kód minden egyes érvényesítéséhez.
Ez lényegében azt jelenti, hogy a „validációk” objektumon keresztüli áthidalás helyett egyszerűen megadhatja az adott érvényesítési objektum nevét, például $validations->structure;

Státusz Kód Típus Leírás
301 Fiókhiba Érvénytelen API Kulcs
302 Fiókhiba Az előfizetés lejárt
303 Fiókhiba Nincs elérhető lekérdezés
304 Fiókhiba Nincs hozzáférése az API-hoz
305 Fiókhiba Nem engedélyezett IP-cím
201 Sikertelen Hitelesítés Helytelen számlaszám ellenőrző számjegy
202 Sikertelen Hitelesítés Helytelen IBAN ellenőrző számjegy
203 Sikertelen Hitelesítés Helytelen IBAN hossz
205 Sikertelen Hitelesítés Helytelen IBAN-struktúra
206 Sikertelen Hitelesítés Az IBAN nem megengedett karaktereket tartalmaz
207 Sikertelen Hitelesítés Nem IBAN szabványt támogató ország
001 Sikeres Hitelesítés Helyes IBAN ellenőrző számjegy
002 Sikeres Hitelesítés Helyes számlaszám ellenőrző számjegy
003 Sikeres Hitelesítés Helyes IBAN hossz
004 Sikeres Hitelesítés A fiókszám-ellenőrző számjegyek nem szükségesek erre a fiókra vagy bankra
005 Sikeres Hitelesítés Helyes IBAN struktúra
006 Sikeres Hitelesítés Az IBAN nem tartalmaz illegális karaktereket
007 Sikeres Hitelesítés Az ország támogatja az IBAN szabványt