Sorteercode en bankrekeningnummer Validatie API V4 Documentatie

Deze API is onderdeel van onze SortWare service

1. Wat is deV4 SortWare API?

De SortWare API biedt automatisering voor het valideren van de sorteercode en -accountnummers in het Verenigd Koninkrijk.

De API biedt twee hoofdfuncties 'zoeken' en 'valideren'. De 'validate'-functie voert modulusvalidatie uit, gegeven een sorteercode en een rekeningnummercombinatie.
Als u een sorteercode in de bankdirectorie wilt opzoeken, kunt u de functie 'Zoeken' gebruiken en de bank- en filiaalinformatie voor die specifieke sorteercode ophalen.

Changelog ( from v3 to v4 ):


Nieuwe responsstructuur
De nieuwe versie van de SortWare API biedt nu een verbeterde responsstructuur in zowel XML- als JSON-opmaak.
We hebben de resultaten gescheiden in vijf elementen (accountgegevens, bankgegevens, betalingsschema's, validaties en fouten)
De structuur lijkt sterk op onze IBAN Validatie API, waardoor het eenvoudiger is om te integreren bij het gebruik van onze beide oplossingen. U kunt een gedetailleerde beschrijving van de responsstructuur hieronder vinden (zie sectie 4. API-antwoordstructuur)

Foutcodes
Foutcodes zijn geïmplementeerd in het antwoord van de SortWare V4 om eenvoudig parsering van validatieresultaten en API-antwoorden mogelijk te maken.
Net als bij onze andere API's retourneren foutcodes engine-leesbare opmaak voor alle fouten die de V4 API kan tegenkomen.
Zie hoofdstuk 5. (Foutcodes) voor een gedetailleerde beschrijving van de foutcodes die door het systeem worden geretourneerd.

Verbeterde IBAN berekeningfunctionaliteit
We hebben een nieuw en verbeterd algoritme geïntroduceerd voor het berekenen van IBAN uit gegevens over sorteer- en accountnummers voor zowel het Verenigd Koninkrijk als Ierland.
De nieuwe functionaliteit maakt gebruik van onze nauwkeurige bankcodemap om IBAN's met een hogere nauwkeurigheid te berekenen en de kans op fouten tijdens de berekening te verkleinen.



2. Eigenschappen

SoftWare API biedt enkele van de volgende belangrijke functies:

  • Informatie ophalen over de bank en vertakking op basis van de sorteercode.
  • Genereert automatisch een geldige IBAN voor de geleverde sorteercode en rekeningnummer
  • Identificeert de ondersteuning van FPS-betalingen / CHAPS en automatische incasso voor de van de bank en filiaal verbonden aan de geleverde sorteercode.
  • Meerdere resultaten weergegeven in een codevriendelijke XML en gestructureerde reactie van JSON

3. API Gebruik

Met deze API kunt u Sorteercode- en accountnummervalidatie automatiseren via een enkel HTTP GET- of POST-verzoek.

De geaccepteerde parameters staan in de onderstaande tabel:

Veldnaam Lengte Type Omschrijving
format 4 String Deze parameter kan een van de twee ondersteunde formaten 'xml' of 'json' zijn. Specificeert de indeling van het antwoord.
search 6 String Deze parameter kan worden gebruikt om een sorteercode in onze bankdirectory.
sortcode 6 String De sorteercode nodig voor in validatie in combinatie met de parameter 'account'.
account 8 String Bankrekeningnummer verstrekt voor validatie in combinatie met de parameter 'sorteercode'.
api_key 128 String Uw persoonlijke API-key die wordt gebruikt om toegang tot het systeem te beveiligen.
In uw Client Area -> API Access-gedeelte vindt u uw API-key, die wordt gebruikt om uw account te identificeren tijdens API-aanvragen.

We hebben voorbeelden voorbereid van het indienen van een op POST gebaseerd verzoek voor onze API in de meest gebruikelijke talen:

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 Respons Structuur

Het antwoord van de SortWare V4 API bevat enkele gegevensobjecten om de verschillende functies van de geretourneerde gegevens duidelijk te scheiden.
Voel u vrij om te verwijzen naar het XSD-schema voor het antwoord in de XML-indeling hieronder:

  
    
      
        
          
            
              
              
              
            
          
        
        
          
            
              
              
              
              
              
              
              
              
            
          
        
        
          
            
              
              
              
              
              
            
          
        
        
          
            
              
                
                  
                    
                    
                  
                
              
            
          
        
        
      
    
  

Hieronder vindt u gedetailleerde beschrijvingen van de typen gegevenselementen die in elk afzonderlijk gegevensobject worden geretourneerd:

Description of the 'account_data' object
Veldnaam Lengte Type Omschrijving
SORTCODE 6 Integer Retourneert de sorteercode die de client heeft ingediend voor back-reference.
ACCOUNT 8 Integer Bevat het ingediende rekeningnummer van de klant.
IBAN 125 String Bevat het berekende internationale bankrekeningnummer (IBAN) van de gegeven geldige sorteercode en rekeningnummer


Beschrijving van het 'bank_data'-object met informatie over de uitgevende bank en tak van de ingediende sorteercode
Veldnaam Lengte Type Omschrijving
BIC 8 or 11 String Tde BIC-code van de betreffende bank en filiaal.
BANK 256 String De naam van de bank die eigenaar is van de ingediende sorteercode.
BRANCH 256 String Naam van het specifieke bankkantoor waaraan de sorteercode is toegewezen.
ADDRESS 256 String Adres van het corresponderende bankkantoor waartoe de sorteercode behoort.
CITY 11 String Naam van de stad waarin het betreffende filiaal zich bevindt.
ZIP 11 String Het postcodegedeelte van het adres van het bankfiliaal.
PHONE 20 String Telefoonnummer van de betreffende bank en filiaal.
COUNTRY 2 String De ISO-code van twee letters van het land waar de bank en het filiaal zich bevinden.


Beschrijving van het 'payment_schemes'-object met informatie over ondersteunde betalingsschema's
Veldnaam Lengte Type Omschrijving
DD 3 String Indicator voor automatische incasso-ondersteuning van het betreffende filiaal. Waarden kunnen 'JA' of 'NEE' zijn
FPS_PAYMENT 3 String Indicator voor Snellere Betaaldienst (FPS) -ondersteuning van het betreffende filiaal. Waarden kunnen 'JA' of 'NEE' zijn
CHAPS 3 String Indicator voor ondersteuning CHAPS-betalingen van het betreffende filiaal. Waarden kunnen 'JA' of 'NEE' zijn
BACS 3 String Indicator voor BACS-betalingsondersteuning van het betreffende filiaal. Waarden kunnen 'JA' of 'NEE' zijn
CCC_PAYMENTS 3 String Indicator voor cheque en Credit Clearing Company (C & CCC) betalingen ondersteuning van het betreffende filiaal. Waarden kunnen 'JA' of 'NEE' zijn


Omschrijving van het 'validaties' object
Veldnaam Lengte Type Omschrijving
CODE 3 Integer Retourneert de statuscode van de modulusvalidatie die is uitgevoerd op de combinatie van bankcode en rekeningnummer. zie sectie 5 (Statuscodes) voor een beschrijving van de waarden.
MESSAGE 256 String Bevat tekstbeschrijving van de validatieresultaten. Zie sectie 5 (statuscodes) voor alle mogelijke resultaten.


Omschrijving van het 'fouten' object
Veldnaam Lengte Type Omschrijving
CODE 3 Integer Retourneert de statuscode van de fout als dit is gebeurd. zie sectie 5 (Statuscodes) voor een beschrijving van de waarden.
MESSAGE 256 String Bevat tekstbeschrijving van de huidige fout als dit is gebeurd. Zie sectie 5 (statuscodes) voor alle mogelijke resultaten.


5. SortWare API V4 Status Codes

Er zijn twee soorten statuscodes die door de API worden geretourneerd.
Validatiesucces of falen worden geretourneerd in het data-object 'validaties'.
Rekeningfouten worden geretourneerd in het object 'fouten'.

Status Code Type Omschrijving
301 Rekeningfout API Key is ongeldig
302 Rekeningfout Lidmaatschap verlopen
303 Rekeningfout Geen queries beschikbaar
304 Rekeningfout U heeft geen toegang tot deze API
201 Validatie niet gelukt Rekeningfout controlenummer niet correct
202 Validatie niet gelukt Sorteercode niet in bankdirectory gevonden
001 Validati gelukt Rekeningnummer controlenummer is geldig