Έγγραφα API Επικύρωσης IBAN V4

Αυτό το API είναι μέρος της IBAN Suite υπηρεσίας μας

1. Τι νέο υπάρχει στο API Επικύρωσης IBAN V4;


Προσπαθούμε συνεχώς να βελτιώνουμε τις υπηρεσίες μας και να παρέχουμε καλύτερες λύσεις επικύρωσης πληρωμών.
Ίσως παρατηρήσΑτε ότι το API IBAN Suite έχει παραλείψει μια επανάληψη έκδοσης από το V2 στο V4.
Αυτό συνέβη γιατί ενώσαμε τα άλλα API όπως το μια επανάληψη έκδοσης πχ το v4.

Changelog ( από v2 σε v4 ):


Προστέθηκε νέα επικύρωση ( σφάλμα 206 ) - Το API V4 τώρα ελέγχει για παράνομους χαρακτήρες στην εισαγωγή του IBAN.
Ο νέος κωδικός σφάλματος - 206 (Αποτυχία Επικύρωσης) με μήνυμα: Το IBAN περιέχει παράνομους χαρακτήρες.
Αυτός ο κωδικός σφάλματος θα σας δώσει περισσότερες πληροφορίες σε περίπτωση που υποβάλετε IBAN με μη αλφαριθμητικούς χαρακτήρες στο σύστημά μας.
Η προηγούμενη συμπεριφορά ήταν η απογύμνωση από όλους τους αλφαριθμητικούς χαρακτήρες και η εκτέλεση της επικύρωσης.

Προστέθηκε νέα επικύρωση ( σφάλμα 207 ) - Η χώρα δεν υποστηρίζει IBAN
Αυτό το επίπεδο επικύρωσης θα αναφέρεται εάν ο κωδικός χώρας του υποβαλλόμενου IBAN δεν ανήκει στις επίσημες χώρες που υποστηρίζουν τις πληρωμές IBAN.
Για παράδειγμα, ένα άτομο μπορεί να δημιουργήσει ένα IBAN για τις Ηνωμένες Πολιτείες χρησιμοποιώντας ένα αναξιόπιστο λογισμικό τρίτου μέρους
Ένα τέτοιο IBAN μπορεί να είναι κάπως έτσι US64SVBKUS6S3300958879
Θα παρατηρήσετε ότι ο έλεγχος ψηφίων είναι έγκυρος και ότι θα περάσει το άρθρωμα επικυρώσεων, ωστόσο δεν είναι ένας έγκυρος αριθμός IBAN αφού οι Ηνωμένες Πολιτείες δεν χρησιμοποιούν IBAN για τραπεζικές πληρωμές.


2. Χαρακτηριστικά


Το API Επικύρωσης IBAN V4 σας επιτρέπει να κάνετε τα παρακάτω:

  • Επικύρωση εάν ένα IBAN είναι έγκυρο χρησιμοποιώντας τα ψηφία ελέγχου του
  • Επικύρωση εάν ένα IBAN έχει έγκυρα ψηφία ελέγχου στον τοπικό κωδικός τράπεζας και στον αριθμό λογαριασμού *
  • Επικύρωση μήκους IBAN για μια συγκεκριμένη χώρα
  • Επικύρωση δομής/διαμόρφωσης IBAN για μια συγκεκριμένη χώρα
  • Επικύρωση χαρακτηρών IBAN ( έλεγχος για μη αλφαριθμητικούς χαρακτήρες )
  • Επικύρωση εάν ο κωδικός χώρας υποστηρίζει τα πρότυπα IBAN

  • Ταυτοποίηση της τράπεζας που έκδοσε το IBAN
  • Ταυτοποίηση της χώρας και του κωδικού χώρας ενός IBAN
  • Ταυτοποίηση της διεύθυνσηςτης τράπεζας που έκδοσε το IBAN
  • Ταυτοποίηση του κωδικού BIC της τράπεζας
  • Ταυτοποίηση της υποστήριξης SEPA της τράπεζας: B2B,COR1,SCC,SCT,SDD

* Οι επικυρώσεις των Κωδικών Τράπεζας και Αριθμών Λογαριασμού εκτελούνται μόνο για ορισμένες τράπεζες και χώρες.

3. Αιτήματα API V2



Το σύστημα API σάς επιτρέπει να αυτοματοποιήσετε την επικύρωση IBAN μέσω ενός απλού αιτήματος HTTP GET ή POST.
Οι αποδεκτές παράμετροι παρατίθενται στον παρακάτω πίνακα:

Όνομα Πεδίου Μήκος Είδος Περιγραφή
IBAN Max 100 String Το IBAN που θέλετε να επικυρώσετε.
κλειδί_api 128 String Το προσωπικό σας κλειδί API.
διαμόρφωση 5 String Διαμόρφωση της υποστηριζόμενης απόκρισης XML και JSON.

*Για να αποκτήσετε ένα κλειδί API, παρακαλούμε επικοινωνήστε μαζί μας στο contact@iban.com ή αγοράστε μια συνδρομή στην σελίδα παραγγελιών μας

ΠΑΡΑΔΕΙΓΜΑ – Επικύρωση ενός IBAN
Μπορείτε να χρησιμοποιήσετε το παρακάτω δείγμα κωδικού για να δοκιμάσετε το API στις πιο κοινές γλώσσες προγραμματισμού.

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


Ένα παράδειγμα χρήσης του API Επικύρωσης IBAN με ένα αίτημα GET μπορεί να βρεθεί παρακάτω:

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

Όπου:
  • κλειδί είναι το κλειδί API σας
  • IBAN στάλθηκε για επικύρωση από το άρθρωμα API.
  • xml είναι η διαμόρφωση απόκρισης. Επιπλέον μια λέξη κλειδί json μπορεί να καθοριστεί για την απόκριση διαμόρφωσης json.

Μόλις πραγματοποιηθεί ένα αίτημα HTTP GET ή POST με το σωστό κλειδί API, το σύστημα θα επιστρέψει τα αποτελέσματα στην καθορισμένη μορφή. Μπορείτε να βρείτε ένα δείγμα απόκρισης στην επόμενη ενότητα “Δομή Απόκρισης API”

4. Απόκριση API V2

Ένα Σχήμα XSD της απόκρισης του API μπορεί να βρεθεί παρακάτω:


  
    
      
        
          
            
              
              
              
              
              
              
              
              
              
              
              
              
              
              
            
          
        
        
          
            
              
              
              
              
              
            
          
        
        
          
            
              
                
                  
                    
                    
                  
                
              
            
          
        
        
      
    
  

Μια λεπτομερής περιγραφή των πεδίων αντικειμένων δεδομένα_τράπεζας που επιστρέφονται μπορεί να βρεθεί στον παρακάτω πίνακα:

Όνομα Πεδίου Μήκος Είδος Περιγραφή
BIC Μέγιστο 11 String Ο κωδικός BIC της εκδότριας τράπεζας/υποκαταστήματος ή ιδρύματος.
ΤΡΑΠΕΖΑ Max 256 String Το όνομα της τράπεζας/υποκαταστήματος που έκδοσε το IBAN
ΥΠΟΚΑΤΑΣΤΗΜΑ Μέγιστο 256 String Όνομα του καθορισμένου υποκαταστήματος τράπεζας εάν είναι διαθέσιμο
ΧΩΡΑ Μέγιστο 32 String Πλήρες όνομα της χώρας προέλευσης π.χ. “Ηνωμένες Πολιτείες”
ISO_ΧΩΡΑΣ 2 String Συντομογραφία δύο γραμμάτων του κωδικού χώρας π.χ. US, UK, AU, FR … κλπ.
ΠΟΛΗ Μέγιστο 128 String Το όνομα της πόλης που βρίσκεται η εκδότρια τράπεζα.
ΠΟΛΙΤΕΙΑ Μέγιστο 128 String Το όνομα της πολιτείας που βρίσκεται η πόλη/υποκατάστημα.
ZIP Μέγιστο 11 String Κωδικός zip ή ταχυδρομικός κωδικός της πόλης σας.
ΔΙΕΥΘΥΝΣΗ Μέγιστο 128 String Η διεύθυνση της εκδότριας τράπεζας.
ΛΟΓΑΡΙΑΣΜΟΣ Μέγιστο 128 String Ο τοπικός αριθμός τραπεζικού λογαριασμού που εξάγεται από το IBAN.
Μια λεπτομερής περιγραφή των πεδίων αντικειμένων sepa_data που επιστρέφονται μπορούν να βρεθούν στον παρακάτω πίνακα:

Όνομα Πεδίου Μήκος Είδος Περιγραφή
SCT Μέγιστο 3 String Εάν αυτή η τράπεζα υποστηρίζει Μεταφορές Πιστώσεων SEPA.
SDD Μέγιστο 3 String Εάν αυτή η τράπεζα υποστηρίζει Άμεση Χρέωση SEPA.
COR1 Μέγιστο 3 String Εάν αυτή η τράπεζα υποστηρίζει SEPA COR1.
B2B Μέγιστο 3 String Εάν αυτή η τράπεζα υποστηρίζει SEPA από Επιχείρηση σε Επιχείρηση.
SCC Μέγιστο 3 String Εάν αυτή η τράπεζα υποστηρίζει Καθαρισμό Κάρτας SEPA.


Μια απλή απάντηση XML από το API για ένα ερώτημα επικύρωσης IBAN θα μπορούσε να είναι:

	
		BARCGB22
		CHELTENHAM
		BARCLAYS BANK PLC
		
Λέστερ LE87 2BB 0345 7345345 Ηνωμένο Βασίλειο GB 30093459
ΝΑΙ ΝΑΙ ΝΑΙ ΝΑΙ ΟΧΙ 002 Το ψηφίο ελέγχου του Αριθμού Λογιαριασμού είναι έγκυρο 001 Το ψηφίο Ελέγχου του IBAN είναι έγκυρο 005 Η δομή IBAN είναι έγκυρη 003 Το Μήκος του IBAN είναι έγκυρο

5. Κωδικοί Κατάστασης API V2

Μαθηματικές επικυρώσεις ψηφίου ελέγχου επιστρέφονται στο αντικείμενο "επικυρώσεις"

Κωδικός Κατάστασης Είδος Περιγραφή
301 Σφάλμα Λογαριασμού Το Κλειδί API δεν είναι έγκυρο
302 Σφάλμα Λογαριασμού Η συνδρομή έληξε
303 Σφάλμα Λογαριασμού Δεν υπάρχουν διαθέσιμα ερωτήματα
304 Σφάλμα Λογαριασμού Δεν έχετε πρόσβαση σε αυτό το API
201 Αποτυχία Επικύρωσης Το ψηφίο ελέγχου του Αριθμού Λογαριασμού δεν είναι έγκυρο
202 Αποτυχία Επικύρωσης Το ψηφίο Ελέγχου του IBAN δεν είναι έγκυρο
203 Αποτυχία Επικύρωσης τΟ Μήκος IBAN δεν είναι έγκυρο
205 Αποτυχία Επικύρωσης Η δομή IBAN δεν είναι έγκυρη
206 Αποτυχία Επικύρωσης Το IBAN περιέχει παράνομους χαρακτήρες
207 Αποτυχία Επικύρωσης Η χώρα δεν υποστηρίζει IBAN
001 Επιτυχία Επικύρωσης Το ψηφίο ελέγχου IBAN είναι σωστ
002 Επιτυχία Επικύρωσης Το ψηφίο ελέγχου αριθμού λογαριασμού είναι σωστό
003 Επιτυχία Επικύρωσης Το Μήκος IBAN είναι έγκυρο
004 Επιτυχία Επικύρωσης Ο Αριθμός Λογαριασμού δεν υποστηρίζει ψηφίο ελέγχου
005 Επιτυχία Επικύρωσης Η δομή IBAN είναι έγκυρη