Dokumentacija IBAN API V4 validacije

Ovaj API je deo našeg IBAN paketa usluga

1. Šta je novo u V4 IBAN API validaciji?


Konstantno radimo na poboljšanju naših usluga i pružimo bolja rešenja validacije plaćanja.
Možda ste primetili da he IBAN API paket preskočio verziju od V2 na V4.
To je zato jer smo ujedinili druge API-je kao što je SortWare v3 u jedinstvenu verziju t.j. v4.

Zapisnik promena ( iz v2 u v4 ):


Dodata nova validacija ( greška 206 i uspeh 006 ) - V4 API sada proverava nevažeće znakove za IBAN.
Novi kod pogreške - 206 (Validacija neuspešna) uz poruku: IBAN sadrži netačne znakove.
Kod uspeha za ovu proveru je - 006 ( Uspešna validacija ) uz poruku: IBAN ne sadrži nevažeće znakove
Ovaj kod pogreške će vam pružiti više informacija u slučaju da podnesete IBAN s znakovima koji nisu alfanumerički na naš sistem.
Prethodna radnja je bilo ukidanje svih znakova koji nisu alfanumerički i izvšavanje validacije

Dodata nova validacija ( greška 207 i uspeh 007 ) - Država ne podržava IBAN broj
Ovaj sloj validacije će vas informisati ako državni kod podnesenog IBAN broja nije deo zvaničnih država koje podržavaju IBAN plaćanja.
Na primer, osoba može generisati IBAN broj za Sjedinjene Države koristeći nepouzdan program treće strane
Takav IBAN broj može izgledati ovako US64SVBKUS6S3300958879
Primetićete da su kontrolni brojevi tačni i proći će validacije modula, međutim nije važeći IBAN broj jer Sjedinjene Države ne koriste IBAN za bankovna plaćanja.


2. Značajke


IBAN API V4 validacije omogućava vam sledeće:

  • Validacija da li je IBAN važeći korišćenjem njegovih kontrolnih brojeva
  • Validacija da li IBAN ima važeći domaći bankovni kod i kontrolne brojeve bankovnog naloga *
  • Validacija IBAN dužine za određene države
  • Validacija IBAN strukture/fromatiranja za određene države
  • Validacija IBAN znakova ( provera znakova koji nisu alfanumerički )
  • Validacija da li država podržava IBAN standard

  • Identifikacija banke koja je izdala IBAN broj
  • Identifikacija države i koda države IBAN broja
  • Identifikacija adrese banke koja je izdala IBAN
  • Identifikacija BIC koda banke
  • Identifikacija SEPA podrške banke: B2B,COR1,SCC,SCT,SDD

* Validacije bankovnog koda i broja naloga se izvršavaju samo za određene banke i države.

3. API V4 zahtevi



API sistem vam omogućava automatizovanje IBAN validacije putem jednostavnog HTTP GET ili POST zahteva.
Prihvaćeni parametri su navedeni u tabeli ispod:

Naziv polja Dužina Tip Opis
IBAN Maks 100 String IBAN koji želite da validirate.
api_key 128 String Vaš lični API ključ.
format 5 String Format odgovora koji podržava XML i JSON.

*Kako biste dobili API ključ, molimo kontaktirajte nas na contact@iban.com ili se pretplatite putem naše stranice za narudžbe

Primer – Validacija IBAN-a
Iskoristite primer koda ispod kako biste testirali API u najčešće korišćenim programerski jezicima.

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("Naziv banke: " + data.bank_data.bank);
		console.log("BIC kod: " + data.bank_data.bic);
		console.log("Grad banke: " + data.bank_data.city);
		console.log("Adresa banke: " + data.bank_data.address);
		console.log("Poštanski broj banke: " + data.bank_data.zip);
		console.log("Telefon banke: " + data.bank_data.phone);
		console.log("FAKS banke: " + data.bank_data.fax);
		console.log("Veb sajt banke: " + data.bank_data.www);
		console.log("E-mail banke: " + data.bank_data.email);
		console.log("Naziv države banke: " + data.bank_data.country);
		console.log("Kod države banke: " + data.bank_data.country_iso);
		console.log("Domaći broj naloga: " + data.bank_data.account);
		
    }
})


Primer koršćenja IBAN API-ja validacije s GET zahtevom možete pronaći ispod:

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

Gde:
  • ključ je vaš API ključ
  • IBAN se šalje na validaciju od strane API modula.
  • xml je format odgovora. Takođe možete navesti i json za odgovor formatiran u json-u.

Kada HTTP GET ili POST zahtven bude stvoren korišćenjem ispravnog API ključa, sistem će vratiti rezultate u određenom formatu. Možete pronaći primer odgovora u sledećoj sekciji “Struktura API odgovora”

4. API V4 odgovor

XSD šema API odgovora se može pronaći ispod:




	 
		   
				 
					   
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
					   
				 
		   
		   
				 
					   
							 
							 
							 
							 
							 
					   
				 
		   
		   
				 
					   
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
					   
				 
		   
		   
	 



Detaljan opis objekta polja bankovni podaci se vraća kao što je prikazano u tabeli ispod:

Naziv polja Dužina Tip Opis
BIC Maks 11 String BIC kod banke izdavatelja, filijale ili institucije.
BANKA Maks 256 String Naziv banke/isntitucije koja je izdala IBAN
FILIJALA Maks 256 String Naziv određene filijale ako je dostupno
DRŽAVA Maks 32 String Puni naziv države porekla, npr. “Sjedinjene Države”
ISO DRŽAVE 2 String Dvoslovna skrećenica koda države npr. US, UK, AU, FR … i sl.
GRAD Maks 128 String Naziv grada gdje je locirana banka izdavatelj.
SAVEZNA DRŽAVA Maks 128 String Naziv savezne države gde je locirana banka/filijala.
POŠTANSKI BROJ Maks 11 String Poštanski broj grada.
ADRESA Maks 128 String Adresa banke izdavatelja.
NALOG Maks 128 String Domaći broj banke izveden iz IBAN broja.
Detaljan opis objekta polja SEPA podaci se vraća kao što je prikazano u tabeli ispod:

Naziv polja Dužina Tip Opis
SCT Maks 3 String Podržava li ova banka SEPA kreditne transfere.
SDD Maks 3 String Podržava li ova banka SEPA direktno zaduživanje.
COR1 Maks 3 String Podržava li ova banka SEPA COR1.
B2B Maks 3 String Podržava li ova banka SEPA B2B.
SCC Maks 3 String Podržava li ova banka SEPA kliring kartica.


Primer XML odgovora iz API-ja za validaciju IBAN upita bi bio:

	
		BARCGB22
		MEĐUNARODNO BANKARSTVO 2
		BARCLAYS BANK UK PLC
		
PO Box 69999 1 Churchill Place Canary Wharf
London E14 1QE 020 71147000 GB 73160944
DA DA DA DA NE 006 IBAN ne sadrži nevažeće znakove 001 IBAN kontrolni broj je tačan 002 Kontrolni brojevi broja naloga su tačni 005 IBAN struktura je tačna 003 IBAN dužina je tačna 007 Država podržava IBAN standard

5. API V4 statusni kodovi

Matematička validacija kontrolnih brojeva i formatiranja se vraćaju u bojektu validacije
U verziji v4 API-ja, razdvojili smo svaku validaciju u svoj objekat kako bi olakšali pristup svakoj posebnoj validaciji u vašem kodu.
Ovo u suštini znači da umesto prolaženja kroz objekte validacije, jednostavno možete referencirati poseban obekat validacije prema nazivu kao što je $validations->structure;

Statusni kod Tip Opis
301 Pogreška naloga API ključ je nevažeći
302 Pogreška naloga Istekla pretplata
303 Pogreška naloga Nema dostupnih upita
304 Pogreška naloga Nemate pristup ovom API-ju
305 Pogreška naloga IP adresa nije dozvoljena
201 Neuspela validacija Kontrolni broj broja naloga je netačan
202 Neuspela validacija IBAN kontrolni broj nije tačan
203 Neuspela validacija IBAN dužina nije tačna
205 Neuspela validacija IBAN struktura nije tačna
206 Neuspela validacija IBAN sadrži neispravne znakove
207 Neuspela validacija Država ne podržava IBAN standard
001 Uspešna validacija IBAN kontrolni broj je tačan
002 Uspešna validacija Kontrolni broj broja naloga je tačan
003 Uspešna validacija IBAN dužina je tačna
004 Uspešna validacija Kontrolni brojevi broja naloga se ne koriste za ovu banku ili filijalu
005 Uspešna validacija IBAN struktura je tačna
006 Uspešna validacija IBAN ne sadrži neispravne znakove
007 Uspešna validacija Država podržava IBAN standard