IBAN Validierung API V4 Dokumentation

Diese API ist Teil unseres IBAN Suite Dienstes

1. Was ist neu in der V4 IBAN Validation API?


Wir arbeiten ständig daran, unsere Dienstleistungen zu verbessern und bessere Lösungen zur Zahlungsvalidierung anzubieten.
Sie werden feststellen, dass die IBAN Suite API eine Versionsiteration von V2 nach V4 übersprungen hat.
Dies geschah, weil wir die anderen APIs wie SortWare v3 in einer einzigen Versionierungsiteration, z.B. v4, zusammengefasst haben.

Änderungsprotokoll ( von v2 nach v4):


Neue Validierung hinzugefügt ( Fehler 206) - V4-API prüft jetzt auf ungültige Zeichen in der Eingabe IBAN.
Der neue Fehlercode - 206 (Validierung fehlgeschlagen) mit Meldung: IBAN enthält ungültige Zeichen.
Dieser Fehlercode gibt Ihnen weitere Informationen für den Fall, dass Sie eine IBAN mit nicht alphanumerischen Zeichen an unser System senden.
Bisheriges Verhalten war es, alle nicht-alphanumerischen Zeichen zu entfernen und die Validierung durchzuführen

Neue Validierung hinzugefügt ( Fehler 207) - Land unterstützt keine IBAN
Diese Validierungsschicht meldet, wenn der Ländercode der eingereichten IBAN nicht zu den offiziellen Ländern gehört, die IBAN-Zahlungen unterstützen.
Beispielsweise kann eine Person eine IBAN für die Vereinigten Staaten generieren, indem sie eine unzuverlässige Software von Drittanbietern verwendet.
Diese IBAN kann wie US64SVBKUS6S3300958879 aussehen
Sie werden feststellen, dass die Prüfziffer korrekt ist und die Modulvalidierung besteht, jedoch keine gültige IBAN, da die Vereinigten Staaten keine IBAN für Bankzahlungen verwenden.


2. Features


Mit der IBAN Validation API V4 können Sie Folgendes tun:

  • Überprüfen Sie, ob eine IBAN gültig ist, indem Sie die Prüfziffern verwenden
  • Validieren, wenn eine IBAN eine gültige inländische Bankleitzahl und Kontonummer aufweist *
  • IBAN-Länge länderspezifisch validieren
  • IBAN-Struktur/Formatierung länderabhängig validieren
  • IBAN-Zeichen validieren (Prüfung auf nicht-alphanumerische Zeichen )
  • Validieren, wenn der Ländercode den IBAN-Standard unterstützt.

  • Identifizieren Sie die Bank, die die IBAN ausgegeben hat
  • Identifizieren Sie das Land und den Ländercode einer IBAN
  • Identifizieren Sie die Adresse der Bank, die die IBAN ausgestellt hat
  • Identifizieren Sie den BIC-Code der Bank
  • Identifizieren Sie die SEPA-Unterstützung der Bank: B2B,COR1,SCC,SCT,SDD

* Bankleitzahl und Kontonummer werden nur für bestimmte Banken und Länder geprüft.

3. API V2 Anfragen



Das API-System ermöglicht die Automatisierung der IBAN-Validierung über einen einfachen HTTP-GET- oder POST-Request.
Die akzeptierten Parameter sind in der folgenden Tabelle aufgeführt:

Feldname Länge Typ Beschreibung
IBAN Max 100 String Die IBAN, die Sie validieren möchten.
api_key 128 String Ihr persönlicher API-Schlüssel.
format 5 String Format der Antwort XML und JSON unterstützt.

*Um einen API-Schlüssel zu erhalten, kontaktieren Sie uns bitte unter contact@iban.com oder kaufen Sie ein Abonnement auf unserer Bestellseite

BEISPIEL - IBAN validieren
Sie können den folgenden Beispielcode verwenden, um die API in den gängigsten Programmiersprachen zu testen.

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);
		
    }
})


Ein Beispiel für die Verwendung der IBAN Validation API mit einer GET-Anforderung finden Sie weiter unten:

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

Wo::
  • Key ist Ihr API-Key
  • IBAN zur Validierung durch das API-Modul gesendet.
  • Xml ist das Antwortformat. Auch ein Json-Schlüsselwort kann für json-formatierte Antworten angegeben werden.

Sobald ein HTTP-GET- oder POST-Request mit dem richtigen API-Schlüssel durchgeführt wird, gibt das System die Ergebnisse im angegebenen Format zurück. Eine Beispielantwort finden Sie im nächsten Abschnitt “API-Antwortstruktur”

4. API V2 Antwort

Ein XSD-Schema der API-Antwort finden Sie weiter unten:


  
    
      
        
          
            
              
              
              
              
              
              
              
              
              
              
              
              
              
              
            
          
        
        
          
            
              
              
              
              
              
            
          
        
        
          
            
              
                
                  
                    
                    
                  
                
              
              
                
                  
                    
                    
                  
                
              
              
                
                  
                    
                    
                  
                
              
              
                
                  
                    
                    
                  
                
              
              
                
                  
                    
                    
                  
                
              
              
                
                  
                    
                    
                  
                
              
            
          
        
        
      
    
  

Eine detaillierte Beschreibung der zurückgegebenen Felder des bank_data-Objekts finden Sie in der folgenden Tabelle:

Feldname Länge Typ Beschreibung
BIC Max 11 String Der BIC-Code der ausstellenden Bank/Filiale oder Institution.
BANK Max 256 String Der Name der Bank/Institution, die die IBAN ausgestellt hat.
BRANCH Max 256 String Name der jeweiligen Bankfiliale, falls vorhanden
COUNTRY Max 32 String Vollständiger Name des Herkunftslandes z.B. “Vereinigte Staaten”
COUNTRY_ISO 2 String Zweibuchstabige Abkürzung des Ländercodes z.B. US, UK, AU, FR ... etc.Vereinigte Staaten
CITY Max 128 String Der Name der Stadt, in der sich die emittierende Bank befindet.
STATE Max 128 String Der Name des Staates, in dem sich die Bank/Filiale befindet.
ZIP Max 11 String Postleitzahl der Stadt.
ADDRESS Max 128 String Die Adresse der ausstellenden Bank.
ACCOUNT Max 128 String The domestic bank account number extracted from the IBAN.
Eine detaillierte Beschreibung der zurückgegebenen sepa_data-Objektfelder finden Sie in der folgenden Tabelle:

Feldname Länge Typ Beschreibung
SCT Max 3 String Ob diese Bank die SEPA-Überweisung unterstützt.
SDD Max 3 String Ob diese Bank SEPA Direct Debit unterstützt.
COR1 Max 3 String Ob diese Bank SEPA COR1 unterstützt.
B2B Max 3 String Ob diese Bank SEPA Business to Business unterstützt.
SCC Max 3 String Ob diese Bank das SEPA Card Clearing unterstützt.


Eine XML-Beispielantwort der API für eine IBAN-Validierungsanfrage wäre:

	
		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 V2 Status Codes

Mathematische Prüfziffernvalidierungen werden im Objekt "validations" zurückgegeben.

Status-Code Typ Beschreibung
301 Account Fehler API-Key ist ungültig
302 Account Fehler Abonnement abgelaufen
303 Account Fehler Keine Anfragen vorhanden
304 Account Fehler Sie haben keinen Zugriff auf diese API
201 Validierung fehlgeschlagen Kontonummer Prüfziffer nicht korrekt
202 Validierung fehlgeschlagen IBAN Prüfziffer nicht korrekt
203 Validierung fehlgeschlagen IBAN Länge ist nicht korrekt
205 Validierung fehlgeschlagen IBAN-Struktur ist nicht korrekt
206 Validierung fehlgeschlagen IBAN enthält unzulässige Zeichen
207 Validierung fehlgeschlagen Das Land unterstützt den IBAN-Standard nicht
001 Validierungserfolg IBAN Prüfziffer ist korrekt
002 Validierungserfolg Kontonummer Prüfziffer ist korrekt
003 Validierungserfolg IBAN Länge stimmt
004 Validierungserfolg Kontonummer unterstützt keine Prüfziffer
005 Validierungserfolg IBAN-Struktur ist korrekt
006 Validierungserfolg IBAN enthält keine unzulässigen Zeichen
007 Validierungserfolg Das Land unterstützt den IBAN-Standard