Dokumentation för IBAN-valideringsAPI V4

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

1. Vad är nytt i V4 IBAN-valideringsAPI?


Vi arbetar konstant för att förbättra våra tjänster och för att tillhandahålla bättre betalningsvalideringslösningar.
Du kanske har sett att IBAN-svitens API har hoppat över en versionsiteration från V2 till V4.
Detta gjordes eftersom vi har förenat de andra APIerna såsom SortWare v3 till en enkel versionsiteration t.ex. v4.

Changelog ( från v2 till v4 ):


Ny validering adderad ( fel 206 ) - V4 API kollar nu även efter otillåtna tecken på IBAN som matas in.
Den nya felkoden - 206 (Validering misslyckades) med meddelandet: IBAN innehåller otillåtna tecken.
Denna felkod kommer att ge dig mer information om du skulle överföra en IBAN med icke-alfanumeriska tecken till vårt system.
Föregående agerande var att strippa alla icke-alfanumeriska tecken och utföra valideringen

Ny validering adderad ( fel 207 ) - Land stöder inte IBAN
Detta valideringslager kommer att rapportera om landskoden på överförd IBAN inte är en del av de länder som officiellt stöder IBAN-betalningar.
Till exempel kan en person generera ett IBAN för USA genom att använda opålitlig tredjepartsmjukvara
Sådan IBAN kan komma att se ut så här US64SVBKUS6S3300958879
Du kan se att kontrollsiffran är korrekt och att den kommer att passera modulus-valideringarna, men den är inte en giltig IBAN eftersom USA använder inte IBAN för bankbetalningar.


2. Funktioner


IBAN-valideringsAPI V4 gör det möjligt för dig att göra följande:

  • Validera om en IBAN är giltig genom att använda dess kontrollsiffror
  • Validera om en IBAN har giltiga inhemska bankkod och kontonummerskontrollsiffror *
  • Validera IBAN-längd för specifikt land
  • Validera IBAN-struktur/format för specifikt land
  • Validera IBAN-tecken ( kolla efter icke-alfanumeriska tecken )
  • Validera om landskod stöder IBAN-standarden

  • Identifiera bank som utgivit IBAN
  • Identifiera lad och landskod för ett IBAN
  • Identifiera adressen till en bank som utgivit IBAN
  • Identifiera banks BIC-kod
  • Identifiera banks SEPA-stöd: B2B,COR1,SCC,SCT,SDD

* Bankkod och kontonummervalideringar utförs bara för vissa banker och länder.

3. API V2-begäran



API-systemet gör det möjligt för dig att automatisera IBAN-validering via en enkel HTTP GET eller POST-begäran.
Accepterade parametrar är listade i tabellen nedan:

Fältnamn Längd Typ Beskrivning
IBAN Max 100 Sträng Den IBAN du vill validera.
api_key 128 Sträng Din personliga API-nyckel.
format 5 Sträng Format på svar XML och JSON stöds.

*För att få en API-nyckel vänligen kontakta oss på contact@iban.com eller köp ett abonnemang på vår ordersida

EXEMPEL – Validera ett IBAN
Känn dig fri att använda exempelkoden nedan för att testa APIet i de flesta vanliga programmeringsspråk.

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


En exemepelanvändning av IBAN-valideringsAPIet med en GET-begäran kan hittas nedan:

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

Där:
  • key är din API-nyckel
  • IBAN överförd för validering genom API-modulen.
  • xml är svarsformatet. Ett json-nyckelord kan även specificeras för json-formatterat svar.

När en HTTP GET eller POST-begäran görs med korrekt API-nyckel kommer systemet att returnera resultatet i det specifierade formatet. Du kan finna ett exempelsvar i nästa sektion “API-svarsstruktur”

4. API V2 Svar

Ett XSD-system för APIets svar kan hittas nedan:


  
    
      
        
          
            
              
              
              
              
              
              
              
              
              
              
              
              
              
              
            
          
        
        
          
            
              
              
              
              
              
            
          
        
        
          
            
              
                
                  
                    
                    
                  
                
              
            
          
        
        
      
    
  

En detaljerad beskrivning av bank_data-objektfälten som returneras kan ses i tabellen nedan:

Fältnamn Längd Typ Beskrivning
BIC Max 11 Sträng BIC-koden för utgivande bank/filial eller institut.
BANK Max 256 Sträng Namnet på bank/institut som utgav IBAN
BRANCH Max 256 Sträng Namnet på den specifika bankfilialen om tillgänglig
COUNTRY Max 32 Sträng Fullt namn på ursprungsland t.ex. “United States”
COUNTRY_ISO 2 Sträng Förkortning på två bokstäver för landskoden t.ex. US, UK, AU, FR … osv.
CITY Max 128 Sträng Staden där utgivande bank är lokaliserad.
STATE Max 128 Sträng Staten där utgivande bank/filial är lokaliserad.
ZIP Max 11 Sträng Postnummer eller postkod för staden.
ADDRESS Max 128 Sträng Utgivande banks adress.
ACCOUNT Max 128 Sträng Inhemsk kontonummer extraherat från IBAN.
En detaljerad beskrivning av sepa_data-objektfälten som returneras kan ses i tabellen nedan:

Fältnamn Längd Typ Beskrivning
SCT Max 3 Sträng Huruvida denna bank stöder SEPA-kreditöverföringar.
SDD Max 3 Sträng Huruvida denna bank stöder SEPA autogiro.
COR1 Max 3 Sträng Huruvida denna bank stöder SEPA COR1.
B2B Max 3 Sträng Huruvida denna bank stöder SEPA Business to Business.
SCC Max 3 Sträng Huruvida denna bank stöder SEPA Card Clearing.


Ett exempel på XML-svar från APIet för en IBAN-valideringssökning skulle vara:

	
		BARCGB22
		CHELTENHAM
		BARCLAYS BANK PLC
		
Leicester LE87 2BB 0345 7345345 United Kingdom GB 30093459
YES YES YES YES NO 002 Account Number check digit is correct 001 IBAN Check digit is correct 005 IBAN structure is correct 003 IBAN Length is correct

5. API V2-statuskoder

Matematisk kontrollsiffervalidering returnernas i "validations"-objektet

Statuskod Typ Beskrivning
301 Kontofel API-nyckel är ogiltig
302 Kontofel Abonnemang upphört
303 Kontofel Inga sökningar tillgängliga
304 Kontofel Du har ingen åtkomst av detta API
201 Validering misslyckades Kontrollsiffra för kontonummer inte korrekt
202 Validering misslyckades Kontrollsiffra för IBAN inte korrekt
203 Validering misslyckades IBAN-längd inte korrekt
205 Validering misslyckades IBAN-struktur inte korrekt
206 Validering misslyckades IBAN innehåller otillåtna tecken
207 Validering misslyckades Land stöder inte IBAN
001 Validering lyckades Kontrollsiffra för IBAN korrekt
002 Validering lyckades Kontrollsiffra för kontonummer är korrekt
003 Validering lyckades IBAN-längd är korrekt
004 Validering lyckades Kontonummer stöder inte kontrollsiffror
005 Validering lyckades IBAN-struktur är korrekt

Om du letar efter dokumentation för vårt gamla IBAN Validation API V2, kan du hitta detta på Dokumentation för gammalt API V2