Dokumentation för sorteringskod och bankkontovalideringsAPI V4

Detta API är en del av vår SortWare-tjänst

1. Vad är V4 SortWare API?

SortWare-APIet tillhandahåller automatisering för validering av sorteringskod och bankkontonummer för Storbritannien.

APIet tillhandahåller två huvudfunktioner 'sök' och 'validera'. 'Validera'-funktionen utför modulus-validering på en kombination av sorteringskod och kontonummer.
Om du behöver söka efter en sorteringskod i bankkatalogen kan du använda 'sök'-funktionen och hämta bank och filialinformationen för den specifika sorteringskoden.

Changelog ( från v3 till v4 ):


Ny svarsstruktur
Den nya versionen av SortWare API ger nu en förbättrad svarsstruktur i både XML och JSON-format.
Vi har separerat resultaten i fem element ( account_data, bank_data, payment_schemas, validations and errors )
Strukturen är mycket lik vår IBAN-valideringsAPI vilket gör det enklare att integrera när båda våra lösningar används. Du kan hitta en detaljerad beskrivning på svarsstrukturen nedan ( se sektion 4. API-svarsstruktur )

Felkoder
Felkoder har implementerats i svaret från SortWare V4 för att göra det enklare att gå igenom valideringsresultat och API-svar.
Som med våra andra APIer returnerar felkoder maskinläsbart format för alla fel V4 API kan komma att träffa på.
Se sektion 5. (Felkoder) för detaljerad beskrivning av felkoderna som returneras av systemet.

Förbättrad IBAN-beräkningsfunktionalitet
Vi har introducerat en ny och förbättrad algoritm för att beräkna IBAN från sorteringskod och kontonummersdata för både Storbritannien och Irland.
Den nya funktionaliteten använder vår noggranna bankkodskatalog för att beräkna IBAN med högre precision och minskad risk för fel vid beräkningen.
För att öka tillförlitligheten på denna funktionalitet


2. Funktioner

SortWare API tillhandahåller några av förljade viktiga funktioner:

  • Hämta information avseende bank och filial baserat på sorteringskoden.
  • Genererar automatiskt en giltig IBAN för den sorteringskod och kontonummer som anges
  • Identifiera stöd för FPS-betalningar/CHAPS och Autogiro för banken och filialen som är associerad med den angivna sorteringskoden.
  • Flera resultat visade i ett kod-vänligt XML och JSON-sktrukturerat svar

3. API-användning

Detta API gör det möjligt för dig att automatisera sorteingskod och kontonummersvalidering via en enkel HTTP GET eller POST-begäran.

Accepterade parametrar listas i tabellen nedan:

Fältnamn Längd Typ Beskrivning
format 4 Sträng Denna parameter kan vara en av två stödda format 'xml' eller 'json'. Specifierar svarsformat.
search 6 Sträng Denna parameter kan användas för att söka en sorteringskod i vår bankkatalog.
sortcode 6 Sträng Sorteringskoden angiven för validering i kombination med 'account'-parametern.
account 8 Sträng Bankkontonummer som anges för validering i kombination med 'sortcode'-parametern.
api_key 128 Sträng Din personliga API-nyckel som används för att säkerställa åtkomst av systemet.
Inuti din Klientarea -> API-åtkomst-sektionen kan du hitta din API-nyckel, vilken används för att identifiera ditt konto vid API-begäran.

Vi har förberett exempel på hur man skickar en POST-baserad begäran till vårt API i de flesta vanliga språk:

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-svarsstruktur

Svaret från SortWare V4 API innehåller någr afå dataobjekt för att hjälpa till att klart separera de olika funktionerna på svarsdatan.
Vänligen känn dig fri att referera till XSD-systemet för svaret i XML-format nedan:

  
    
      
        
          
            
              
              
              
            
          
        
        
          
            
              
              
              
              
              
              
              
              
            
          
        
        
          
            
              
              
              
              
              
            
          
        
        
          
            
              
                
                  
                    
                    
                  
                
              
            
          
        
        
      
    
  

Nedan kan du hitta en detaljerad beskrivning av de typer av dataelemnt som returneras för varje individuellts dataobjekt:

Beskrivning av 'account_data'-objektet
Fältnamn Längd Typ Beskrivning
SORTCODE 6 Integer Returnerar sorteringskoden vilken klienten överfört för återereferens.
ACCOUNT 8 Integer Innehåller överfört kontonummer från klienten.
IBAN 125 Sträng Innehåller det beräknade internationella bankkontonumret ( IBAN ) från en given giltig sorteringskod och kontonummer


Beskrivning av 'bank_data'-objektet innehållande information avseende utgivande bank och filial för överförs sorteringskod
Fältnamn Längd Typ Beskrivning
BIC 8 eller 11 Sträng BIC-koden för motsvarande bank och filial.
BANK 256 Sträng Namnet på banken vilken äger överförd sorteringskod.
BRANCH 256 Sträng Namnet på den specifika bankfilial till vilken sorteringskoden har tilldelats.
ADDRESS 256 Sträng Adress för motsvarande bankfilial till vilken sorteringskoden tillhör.
CITY 11 Sträng Stad i vilken filialen är lokaliserad.
ZIP 11 Sträng Postkodsdelen av adressen till bankfilialen.
PHONE 20 Sträng Kontakttelefonnummer för bank respektive filial.
COUNTRY 2 Sträng ISO-koden på två bokstäver för landet där bank och filial är lokaliserad.


Beskrivning av 'payment_schemes'-objektet vilket anger informtion avseende stödda betalningssytem
Fältnamn Längd Typ Beskrivning
DD 3 Sträng Indikator för autogirostöd för respektive filial. Värden kan vara 'YES' eller 'NO'
FPS_PAYMENTS 3 Sträng Indikator för Faster Payments Service (FPS)-stöd hos respektive filial. Värden kan vara 'YES' eller 'NO'
CHAPS 3 Sträng Indikator för CHAPS-betalningsstöd hos respektive filial. Värden kan vara 'YES' eller 'NO'
BACS 3 Sträng Indikator för BACS-betalningsstöd hos respektive filial. Värden kan vara 'YES' eller 'NO'
CCC_PAYMENTS 3 Sträng Indikator för Cheque and Credit Clearing Company (C&CCC)-betalningsstöd hos respektive filial. Värden kan vara 'YES' eller 'NO'


Beskrivning av 'validations'-objektet
Fältnamn Längd Typ Beskrivning
CODE 3 Integer Returnerar statuskoden på modulusvalideringen som gjorts på bankkod och kontonummerkombinationen. Se sektion 5 ( Statuskoder ) för beskrivning av värdena.
MESSAGE 256 Sträng Innehåller textbeskrivning av valideringsresultaten. Se sektion 5 ( statuskoder ) för alla möjliga resultat.


Beskrivning av 'errors'-objektet
Fältnamn Längd Typ Beskrivning
CODE 3 Integer Returnerar statuskoden på felet om sådan har dykt upp. se sektion 5 ( Statuskoder ) för beskrivning av värdena.
MESSAGE 256 Sträng Innehåller en textbeskrivning av nuvarande fel om sådant dykt upp. Se sektion 5 ( statuskoder ) för alla möjliga resultat.


5. SortWare API V4 Statuskoder

Det finns två typer av statuskoder som returneras av APIet.
Lyckad eller misslyckad validering returneras i 'validations'-dataobjektet.
Kontofel returneras i 'errors'-objektet.

Statuskod Typ Beskrivning
301 Kontofel API-nyckel är inte giltig
302 Kontofel Abonnemang upphört
303 Kontofel Inga sökningar tillgängliga
304 Kontofel Du har ingen åtkomst av denna API
201 Validering misslyckades Kontrollsiffra för kontonummer inte korrekt
202 Validering misslyckades Sorteringskod inte hittad i bankkatalog
001 Validering lyckades Kontrollsiffra för kontonummer giltig

Om du letar efter dokumentationen för vår gamla SortWare API V3 kan du finna den på Dokumentation för gamla SortWare API V3