IBAN patvirtinimo API V4 dokumentacija

Šis API yra dalis mūsų IBAN komplekto paslaugos

1. Kas yra nauja V4 IBAN patvirtinimo API?


Mes nuolat stengiamės tobulinti savo paslaugas ir teikti geresnius mokėjimo patvirtinimo sprendimus.
Galbūt pastebėjote, kad IBAN komplekto API praleido versijos iteraciją nuo V2 iki V4.
Tai buvo padaryta, nes mes sujungėme kitus API, pvz., SortWare v3, į vieną versijos iteraciją, pvz. v4.

Pakeitimų sąrašas ( iš v2 į v4 ):


Įterptas naujas patvirtinimas (klaida 206 ir sėkmė 006) - V4 API dabar tikrina, ar IBAN įvestyje yra draudžiamų simbolių.
Naujas klaidos kodas - 206 (Patvirtinimas nepavyko) su pranešimu: IBAN yra draudžiamų simbolių.
Šio patikrinimo sėkmės kodas yra - 006 (Patvirtinimas pavyko) su pranešimu: IBAN nėra draudžiamų simbolių
Šis klaidos kodas suteiks daugiau informacijos tuo atveju, jei mūsų sistemai pateiksite IBAN ne su raidiniais skaitmeniniais simboliais.
Ankstesnis elgesys buvo pašalinti visus neraidinius ir neskaitinius simbolius ir atlikti patvirtinimą

Įterptas naujas patvirtinimas (klaida 207 ir sėkmė 007) - Šalis nepalaiko IBAN
Šis patvirtinimo sluoksnis praneša, jeigu pateikto IBAN šalies kodas nėra oficialių šalių, palaikančių IBAN mokėjimus, sąrašo dalis.
Pavyzdžiui, asmuo gali generuoti IBAN JAV, naudodamas nepatikimą trečiosios šalies programinę įrangą
Toks IBAN gali atrodyti taip: US64SVBKUS6S3300958879
Jūs pastebėsite, kad kontrolinis skaitmuo yra teisingas ir jis atitiks modulio patvirtinimus, tačiau tai nėra galiojantis IBAN, nes Jungtinės Valstijos nenaudoja IBAN banko mokėjimams.


2. Funkcijos


IBAN patvirtinimo API V4 leidžia atlikti šiuos veiksmus:

  • Patvirtinkite, ar IBAN yra galiojantis naudojant jo skaitmenis
  • Patvirtinkite, ar IBAN turi galiojantį vidaus banko kodą ir sąskaitos numerio patikrinimo skaitmenis *
  • Patvirtinkite konkrečios šalies IBAN ilgį
  • Patvirtinkite konkrečios šalies IBAN struktūrą/formatavimą
  • Patvirtinkite IBAN simbolius( patikrinti ar yra neraidinių arba neskaitinių simbolių )
  • Patvirtinkite, ar šalies kodas palaiko IBAN standartą

  • Nustatykite banką, išdavusį IBAN
  • Nustatykite IBAN šalį ir šalies kodą
  • Nustatykite IBAN išdavusio banko adresą
  • Nustatykite banko BIC kodą
  • Nustatykite banko SEPA palaikymą: B2B,COR1,SCC,SCT,SDD

* Tik tam tikrų bankų ir šalių bankų kodai ir sąskaitos numeriai patvirtinami.

3. API V4 užklausos



API sistema leidžia automatizuoti IBAN patvirtinimą su paprasta HTTP GET arba POST užklausa.
Priimtini parametrai išvardyti žemiau esančioje lentelėje:

Laukelio pavadinimas Ilgis Tipas Aprašymas
IBAN Maks. 100 String IBAN, kurį norite patvirtinti.
api_key 128 String Jūsų asmeninis API raktas.
format 5 String Palaikomo XML ir JSON atsako formatas.

*Jei norite gauti API raktą, susisiekite su mumis adresu contact@iban.com arba užsisakykite prenumeratą mūsų užsakymų puslapyje

PAVYZDYS - Patvirtinti IBAN
Jei norite išbandyti API dažniausiai naudojamose programavimo kalbose, naudokitės toliau pateiktu pavyzdiniu kodu.

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


Toliau pateikiamas IBAN patvirtinimo API su GET užklausa pavyzdys:

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

Kur:
  • raktas yra jūsų API raktas
  • IBAN siunčiamas patvirtinimui API modulyje.
  • xml yra atsakymo formatas. Taip pat gali būti nurodytas JSON raktinis žodis, skirtas pateikti JSON formato atsakymą.

Pateikus HTTP GET arba POST užklausą su teisingu API raktu, sistema grąžins rezultatus nurodytu formatu. Pavyzdinį atsakymą rasite kitame skyriuje “API atsako struktūra”

4. API V4 atsakas

API atsako XSD schema pateikiama apačioje:




	 
		   
				 
					   
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
					   
				 
		   
		   
				 
					   
							 
							 
							 
							 
							 
					   
				 
		   
		   
				 
					   
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
					   
				 
		   
		   
	 



Išsamus grąžintų bank_object laukelių aprašymas pateikiamas žemiau esančioje lentelėje:

Laukelio pavadinimas Ilgis Tipas Aprašymas
BIC Maks. 11 String Išduodančiojo banko/filialo ar įstaigos BIC kodas.
BANK Maks. 256 String IBAN išdavusio banko/įstaigos pavadinimas
BRANCH Maks. 256 String Konkretaus banko filialo pavadinimas, jei yra
COUNTRY Maks. 32 String Pilnas kilmės šalies pavadinimas, pvz.“Jungtinės Valstijos”
COUNTRY_ISO 2 String Dviejų raidžių šalies kodo santrumpa, pvz. US, JK, AU, FR… ir t.t.
CITY Max 128 String Išduodančiojo banko miesto pavadinimas.
STATE Max 128 String Valstijos, kurioje yra bankas/filialas, pavadinimas.
ZIP Max 11 String Miesto pašto kodas.
ADDRESS Max 128 String Išduodančiojo banko adresas.
ACCOUNT Max 128 String Vietinis banko sąskaitos numeris, gautas iš IBAN.
Toliau pateiktoje lentelėje pateikiama išsami grįžtamų sepa_data objektų laukų aprašas:

Laukelio pavadinimas Ilgis Tipas Aprašymas
SCT Maks. 3 String Ar šis bankas palaiko SEPA kredito pervedimą.
SDD Maks. 3 String Ar šis bankas palaiko SEPA tiesioginį debetą.
COR1 Maks. 3 String Ar šis bankas palaiko SEPA COR1.
B2B Maks. 3 String Ar šis bankas palaiko SEPA Business to Business.
SCC Maks. 3 String Ar šis bankas palaiko SEPA kortelių atsiskaitymą.


Pavyzdinis XML atsakas iš API, pateiktus IBAN patvirtinimo užklausą būtų:

	
		BARCGB22
		INTERNATIONAL BANKING 2
		BARCLAYS BANK UK PLC
		
PO Box 69999 1 Churchill Place Canary Wharf
London E14 1QE 020 71147000 GB 73160944
YES YES YES YES NO 006 IBAN does not contain illegal characters 001 IBAN Check digit is correct 002 Account Number check digit is correct 005 IBAN structure is correct 003 IBAN Length is correct 007 Country supports IBAN standard

5. API V4 būsenos kodai

Matematiniai patikros skaitmenų ir formatavimo patvirtinimai grąžinami į „patvirtinimo“ objektą
API v4 versijoje kiekvienas patvirtinimas buvo atskirtas į savo objektą, kad būtų lengviau pasiekti kiekvieną konkretų kodo patvirtinimą.
Iš esmės tai reiškia, kad vietoj „validacijos“ objekto, jūs galite tiesiog nurodyti konkretų patvirtinimo objektą pagal pavadinimą, pvz., $validations->structure;

Būsenos kodas Tipas Aprašymas
301 Paskyros klaida API raktas negalioja
302 Paskyros klaida Prenumerata pasibaigusi
303 Paskyros klaida Nėra galimų užklausų
304 Paskyros klaida Jūs neturite prieigos prie šio API
305 Paskyros klaida IP adresas neleidžiamas
201 Patvirtinimas nepavyko Paskyros numerio patikros skaitmuo neteisingas
202 Patvirtinimas nepavyko IBAN patikros skaitmuo neteisingas
203 Patvirtinimas nepavyko IBAN ilgis neteisingas
205 Patvirtinimas nepavyko IBAN struktūra neteisinga
206 Patvirtinimas nepavyko IBAN yra negalimų simbolių
207 Patvirtinimas nepavyko Šalis nepalaiko IBAN standarto
001 Patvirtinimas pavyko IBAN patikros skaitmuo yra teisingas
002 Patvirtinimas pavyko Sąskaitos numerio patikros skaitmuo yra teisingas
003 Patvirtinimas pavyko IBAN ilgis teisingas
004 Patvirtinimas pavyko Paskyros numerio patikros skaitmuo šiam bankui ar filialui nėra atliekamas
005 Patvirtinimas pavyko IBAN struktūra yra teisinga
006 Patvirtinimas pavyko IBAN nėra negalimų simbolių
007 Patvirtinimas pavyko Šalis palaiko IBAN standartą