Dokumentation for IBAN validerings-API V4

Denne API er en del af vores IBAN Suite tjeneste

1. Hvad er nyt i vores V4 IBAN validerings-API?


Vi arbejder konstant på at forbedre vores tjenester og på at levere bedre løsninger for betalingsvalidering.
Du har måske bemærket, at IBAN Suite API har sprunget en versionsiteration over og er gået fra V2 til V4.
Vi gjorde dette, fordi vi sammensatte de andre APIer, såsom SortWare v3 til en enkelt versionsiteration, nemlig v4.

Ændringslog (fra v2 til v4):


Ny validering tilføjet (fejl 206 og succes 006 ) - V4 API tjekker nu for forbudte tegn i input af IBAN.
Den nye fejlkode - 206 (valideringsfejl) med meddelelsen: IBAN indeholder forbudte tegn.
Succeskoden for dette tjek er - 006 (validering lykkedes) med meddelelsen: IBAN indeholder ingen forbudte tegn
Denne fejlkode vil give dig flere oplysninger i tilfælde af, at du sender et IBAN med ikke-alfanumeriske tegn til vores system.
Tidligere handling bestod i at fjerne alle ikke-alfanumeriske tegn og foretage valideringen

Ny validering tilføjet (fejl 207 og succes 007 ) – Landet understøtter ikke IBAN
Dette valideringslag vil melde tilbage, hvis landekoden for det indsendte IBAN-nummer ikke hører under de officielle lande, der understøtter IBAN betalinger.
For eksempel kan en person generere et IBAN-nummer for USA vha. upålidelig software fra en tredjepart
Dette IBAN-nummer kan se således ud US64SVBKUS6S3300958879
Du vil bemærke, at kontroltallet er korrekt, og at det vil blive godkendt af modulo-valideringerne, men det er ikke et gyldigt IBAN-nummer, siden USA ikke bruger IBAN til bankbetalinger.


2. Funktioner


IBAN validerings API V4 giver dig mulighed for at gøre følgende:

  • Validere om et IBAN-nummer er gyldigt ved at bruge dets kontroltal
  • Validere om et IBAN-nummer har gyldige kontroltal for indenrigs bankkode og kontonummer *
  • Validere IBAN-nummerets længde for et specifikt land
  • Validere IBAN-nummerets struktur/format for et specifikt land
  • Validere IBAN-nummerets tegn (tjek for ikke-alfanumeriske tegn)
  • Validere, hvis landekoden understøtter IBAN standarden

  • Identificere den bank, der udstedte IBAN-nummeret
  • Identificere landet og landekoden for et IBAN-nummer
  • Identificere adressen for den bank, der udstedte IBAN-nummeret
  • Identificere bankens BIC-kode
  • Identificere bankens SEPA understøttelse: B2B,COR1,SCC,SCT,SDD

* Valideringer for bankkode og kontonummer foretages kun for visse banker og lande.

3. API V4 forespørgsler



API systemet giver dig mulighed for automatisk IBAN-validering med en simpel HTTP GET eller POST forespørgsel.
De accepterede parametre er angivet i skemaet herunder:

Feltnavne Længde Type Beskrivelse
IBAN Maks. 100 Streng Det IBAN-nummer du ønsker at validere.
api_key 128 Streng Din personlige API nøgle.
format 5 Streng Understøtter respons af formatet XML og JSON.

*For at få en API-nøgle, henvend dig venligst til os på contact@iban.com eller køb et abonnement på vores bestillingsside

EKSEMPEL: Valider et IBAN-nummer
Du er velkommen til at bruge kode eksemplet herunder for at teste API i de mest almindelige programmeringssprog.

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


Du kan se et eksempel på brug af IBAN-validerings API’en med en GET anmodning herunder:

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

Hvor:
  • Nøglen er din API nøgle
  • IBAN sendes til validering af API-modulet.
  • xml er responsformatet. Desuden kan et json nøgleord specificeres for en respons i json format.

Når en HTTP GET eller POST anmodning foretages med den korrekte API-nøgle, vil systemet sende resultaterne i det specifikke format. Du kan finde et eksempel på en respons i næste sektion “API respons struktur”

4. API V4 respons

Et XSD skema af en API respons kan ses herunder:




	 
		   
				 
					   
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
					   
				 
		   
		   
				 
					   
							 
							 
							 
							 
							 
					   
				 
		   
		   
				 
					   
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
					   
				 
		   
		   
	 



En detaljeret beskrivelse af de returnerede bank_data objekt felter kan ses i skemaet herunder:

Feltnavn Længde Type Beskrivelse
BIC Maks. 11 Streng BIC-koden for den udstedende bank/filial eller institution.
BANK Maks. 256 Streng Navnet på den bank/institution, der udstedte IBAN-nummeret
FILIAL Maks 256 Streng Navnet på den specifikke bank filial, hvis tilgængeligt
LAND Maks. 32 Streng Fulde navn på oprindelseslandet, fx “Amerikas Forenede Stater”
LAND_ISO 2 Streng Forkortelse på to bogstaver af landekoden fx US, UK, AU, FR osv.
BY Maks. 128 Streng Navnet på byen, hvor den udstedende bank ligger.
STAT Maks. 128 Streng Navnet på staten, hvor den udstedende bank ligger.
POSTNUMMER Maks. 11 Streng Postnummeret for byen.
ADRESSE Maks. 128 Streng Den udstedende banks adresse.
KONTO Maks. 128 Streng Det indenrigs bank kontonummer udledt af IBAN-nummeret.
En detaljeret beskrivelse af de returnerede sepa_data objekt felter kan ses i skemaet herunder:

Feltnavn Længde Type Beskrivelse
SCT Maks. 3 Streng Om denne bank understøtter SEPA kreditoverførsel.
SDD Maks. 3 Streng Om denne bank understøtter SEPA direkte debitering.
COR1 Maks. 3 Streng Om denne bank understøtter SEPA COR1.
B2B Maks. 3 Streng Om denne bank understøtter SEPA B2B.
SCC Maks. 3 Streng Om denne bank understøtter SEPA kort clearing.


Et eksempel på en XML respons fra API’en for en IBAN valideringsforespørgsel ville være:

	
		BARCGB22
		INTERNATIONAL BANKING 2
		BARCLAYS BANK UK PLC
		
PO Box 69999 1 Churchill Place Canary Wharf
London E14 1QE 020 71147000 GB 73160944
JA JA JA JA NEJ 006 IBAN indeholder ikke forbudte tegn 001 IBAN kontroltal er korrekt 002 Kontonummer kontroltal er korrekt 005 IBAN struktur er korrekt 003 IBAN længde er korrekt 007 Landet understøtter IBAN standarden

5. API V4 statuskoder

Et matematisk kontrolciffer og format valideringer sendes tilbage i "validerings" objektet
II v4 versionen af API’en har vi adskilt alle valideringer i deres egne objekter for at give lettere adgang til de forskellige specifikke valideringer i din kode.
Dette betyder stort set, at du i stedet for at køre gennem 'validerings' objektet bare kan henvise til det specifikke valideringsobjekt ved navn, såsom $validations->structure;

Statuskode Type Beskrivelse
301 Kontofejl API nøglen er ugyldig
302 Kontofejl Abonnement udløbet
303 Kontofejl Ingen forespørgsler tilbage
304 Kontofejl Du har ikke adgang til denne API
305 Kontofejl IP-adresse ikke tilladt
201 Valideringsfejl Kontroltal for kontonummer ikke korrekt
202 Valideringsfejl IBAN kontroltal ikke korrekt
203 Valideringsfejld IBAN længde er ikke korrekt
205 Valideringsfejl IBAN struktur er ikke korrekt
206 Valideringsfejl IBAN indeholder forbudte tegn
207 Valideringsfejld Landet understøtter ikke IBAN standarden
001 Validering lykkedes IBAN Check digit is correct
002 Validering lykkedes Account Number check digit is correct
003 Validering lykkedes IBAN længde er korrekt
004 Validering lykkedes Kontonummer kontroltal bruges ikke for denne bank eller filial
005 Validering lykkedes IBAN struktur er korrekt
006 Validering lykkedess IBAN indeholder ikke forbudte tegn
007 Validering lykkedes Landet understøtter IBAN standarden