Sortiercode und Bankkontoüberprüfung API V4 Dokumentation

Diese API ist Teil unseres SortWare Dienstes

1. Was ist die V4 SortWare API?

Die SortWare API bietet eine Automatisierung für die Validierung von United Kingdom Sort Code und Kontonummern.

Die API bietet zwei Hauptfunktionen `Suchen' und `Validieren'. Die Funktion 'validieren' führt eine Modulvalidierung mit einer Kombination aus Bankleitzahl und Kontonummer durch.
Falls Sie eine Bankleitzahl im Bankenverzeichnis suchen müssen, können Sie die Funktion 'Suchen' verwenden und die Bank- und Filialinformationen für diese spezielle Bankleitzahl abrufen.

Änderungsprotokoll ( von v3 nach v4):


Neue Antwortstruktur
Die neue Version der SortWare-API bietet nun eine verbesserte Antwortstruktur sowohl im XML- als auch im JSON-Format.
Wir haben die Ergebnisse in fünf Elemente aufgeteilt (account_data, bank_data, payment_schemas, validations und errors )
Die Struktur ist unserer IBAN Validation API sehr ähnlich, was die Integration bei der Verwendung unserer beiden Lösungen erleichtert. Eine detaillierte Beschreibung der Antwortstruktur finden Sie unten (siehe Abschnitt 4. API Antwortstruktur )

Fehlercodes
Fehlercodes wurden in der Antwort der SortWare V4 implementiert, um das Parsen von Validierungsergebnissen und API-Antworten zu vereinfachen.
Wie bei unseren anderen APIs geben Fehlercodes maschinenlesbare Formatierungen für alle Fehler zurück, auf die die V4-API stoßen kann.
Siehe Abschnitt 5. (Fehlercodes) zur detaillierten Beschreibung der vom System zurückgegebenen Fehlercodes.

Verbesserte IBAN-Berechnungsfunktionalität
Wir haben einen neuen und verbesserten Algorithmus zur Berechnung der IBAN aus den Daten von Sort Code und Kontonummer für Großbritannien und Irland eingeführt.
Die neue Funktionalität nutzt unser genaues Bankleitzahlenverzeichnis, um IBANs mit höherer Genauigkeit und geringerer Fehlerwahrscheinlichkeit bei der Berechnung zu berechnen.



2. Features

SortWare API bietet einige der folgenden Hauptfunktionen:

  • Informationen über die Bank und Filiale anhand der Bankleitzahl abrufen.
  • Generiert automatisch eine gültige IBAN für die angegebene Bankleitzahl und Kontonummer.
  • Identifizieren Sie die Unterstützung von FPS-Zahlungen/CHAPS und Direct Debit für die Bank und Filiale, die mit der gelieferten Bankleitzahl verbunden sind.
  • Mehrere Ergebnisse werden in einer codefreundlichen XML- und JSON-strukturierten Antwort angezeigt

3. API-Nutzung

Mit dieser API können Sie die Überprüfung von Sortiercode und Kontonummer über eine einzige HTTP GET- oder POST-Anfrage automatisieren.

Die akzeptierten Parameter sind in der folgenden Tabelle aufgeführt:

Feldname Länge Typ Beschreibung
format 4 String Dieser Parameter kann eines der beiden unterstützten Formate'xml' oder'json' sein. Gibt das Format der Antwort an.
search 6 String Mit diesem Parameter kann eine Bankleitzahl in unserem Bankenverzeichnis gesucht werden.
sortcode 6 String Der für die Validierung vorgesehene Sortiercode in Kombination mit dem Parameter "Konto".
account 8 String Bankkontonummer, die in Kombination mit dem Parameter'Sortcode' zur Validierung bereitgestellt wird.
api_key 128 String Ihr persönlicher API-Schlüssel für den sicheren Zugriff auf das System.
In Ihrem Kundenbereich -> API-Zugang finden Sie Ihren API-Schlüssel, mit dem Sie Ihr Konto bei API-Anfragen identifizieren können.

Wir haben Beispiele für die Übermittlung einer POST-basierten Anfrage an unsere API in den meisten gängigen Sprachen vorbereitet:

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

$post = [
    'format' => 'json',
    'api_key' => '[YOUR_API_KEY]',
    'sortcode'   => '200415',
	'account' => '38290008',
];

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://api.iban.com/clients/api/v4/sort/',
	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/sort/')

res = Net::HTTP.post_form(uri, "format" => "json", "api_key" => "[YOUR_API_KEY]","sortcode" => "200415","account" => "38290008")

puts res.body
import requests

post_data = {'format':'json', 'api_key':'[YOUR_API_KEY]','sortcode':'200415','account':'38290008'}

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

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

my $format = 'json';
my $api_key = '[YOUR_API_KEY]';
my $sortcode = '200415';
my $account = '38290008';


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 . '&sortcode=' . $sortcode . '&account=' . $account;

$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/sort/";
		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&sortcode=200415&account=38290002";

		// 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/sort/");
 
			var postData = "api_key=[YOUR_API_KEY]";
			 postData += "&format=json";
			 postData += "&sortcode=200415";
			 postData += "&account=38290002";
			 
			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/sort/',
    method: 'POST',
    headers: headers,
    form: {'api_key': '[YOUR_API_KEY]', 'format': 'json', 'sortcode': '200415', 'account': '38290002'}
}


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 Country Name: " + data.bank_data.country);
		console.log("IBAN: " + data.account_data.iban);
		
    }
})



4. API-Antwortstruktur

Die Antwort der SortWare V4 API enthält einige Datenobjekte, um die verschiedenen Eigenschaften der zurückgegebenen Daten klar zu trennen.
Bitte zögern Sie nicht, das XSD-Schema für die Antwort im XML-Format unten zu referenzieren:

  
    
      
        
          
            
              
              
              
            
          
        
        
          
            
              
              
              
              
              
              
              
              
            
          
        
        
          
            
              
              
              
              
              
            
          
        
        
          
            
              
                
                  
                    
                    
                  
                
              
            
          
        
        
      
    
  

Nachfolgend finden Sie detaillierte Beschreibungen der Typen von Datenelementen, die in jedem einzelnen Datenobjekt zurückgegeben werden:

Beschreibung des 'account_data'-Objektes
Feldname Länge Typ Beschreibung
SORTCODE 6 Integer Gibt den Sortiercode zurück, den der Client zur Rückreferenz eingereicht hat.
ACCOUNT 8 Integer Enthält die vom Kunden übermittelte Kontonummer.
IBAN 125 String Enthält die berechnete Internationale Bankkontonummer (IBAN) aus der angegebenen gültigen Bankleitzahl und Kontonummer


Beschreibung des Objekts 'bank_data', das Informationen über die ausgebende Bank und die Filiale der eingereichten Bankleitzahl enthält
Feldname Länge Typ Beschreibung
BIC 8 or 11 String Der BIC-Code der entsprechenden Bank und Filiale.
BANK 256 String Der Name der Bank, die die eingegebene Bankleitzahl besitzt.
BRANCH 256 String Name der Bankfiliale, der die Bankleitzahl zugeordnet ist.
ADDRESS 256 String Adresse der entsprechenden Bankfiliale, zu der die Bankleitzahl gehört.
CITY 11 String Name der Stadt, in der sich die jeweilige Niederlassung befindet.
ZIP 11 String Der Postleitzahlenteil der Adresse der Bankfiliale.
PHONE 20 String Kontakt-Telefonnummer der jeweiligen Bank und Filiale.
COUNTRY 2 String Der zweibuchstabige ISO-Code des Landes, in dem sich die Bank und die Filiale befinden.


Beschreibung des Objekts 'payment_schemes' mit Informationen über unterstützte Zahlungssysteme
Feldname Länge Typ Beschreibung
DD 3 String Indikator für die Lastschriftunterstützung der jeweiligen Filiale. Werte können 'JA' oder 'NEIN' sein
FPS_PAYMENTS 3 String Kennzeichen für die Unterstützung von Faster Payments Service (FPS) der jeweiligen Filiale. Werte können 'JA' oder 'NEIN' sein
CHAPS 3 String Indikator für die CHAPS-Zahlungsunterstützung der jeweiligen Filiale. Werte können 'JA' oder 'NEIN' sein.
BACS 3 String Indikator für die BACS-Zahlungsunterstützung der jeweiligen Filiale. Werte können 'JA' oder 'NEIN' sein
CCC_PAYMENTS 3 String Kennzeichen für die Unterstützung der Scheck- und Kreditverrechnungsgesellschaft (C&CCC) der jeweiligen Filiale. Werte können 'JA' oder 'NEIN' sein


Beschreibung des Objekts'Validierungen'.
Feldname Länge Typ Beschreibung
CODE 3 Integer Liefert den Statuscode der Modulvalidierung für die Kombination aus Bankleitzahl und Kontonummer. Beschreibung der Werte siehe Abschnitt 5 ("Statuscodes").
MESSAGE 256 String Enthält eine Textbeschreibung der Validierungsergebnisse. Siehe Abschnitt 5 ("Statuscodes") für alle möglichen Ergebnisse.


Beschreibung des 'errors' Objekts (Fehler)
Feldname Länge Typ Beschreibung
CODE 3 Integer Gibt den Statuscode des Fehlers zurück, falls dieser aufgetreten ist. Beschreibung der Werte siehe Abschnitt 5 ("Statuscodes").
MESSAGE 256 String Enthält eine Textbeschreibung des aktuellen Fehlers, falls dieser aufgetreten ist. Siehe Abschnitt 5 ("Statuscodes") für alle möglichen Ergebnisse.


5. SortWare API V4 Status Codes

Es gibt zwei Arten von Statuscodes, die von der API zurückgegeben werden.
Der Erfolg oder Misserfolg der Validierung wird im Datenobjekt'validations' zurückgegeben.
Kontenfehler werden im 'errors' Objekt 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 YSie haben keinen Zugriff auf diese API
201 Validierung fehlgeschlagen Kontonummer Prüfziffer nicht korrekt
202 Validierung fehlgeschlagen Sortcode nicht im Bankenverzeichnis gefunden
001 Validierungserfolg Kontonummer Prüfziffer ist gültig