IBAN検証API V4のドキュメンテーション

このAPIは、 IBAN Suite サービスの一部です。

1. V4 IBAN検証APIの新機能とは?


当社では、サービスの向上と支払い確認ソリューションの提供に努めています。
ご存知のように、IBAN Suite APIはV2からV4へのバージョンの繰り返しをスキップしています。
これは、SortWare v3などの他のAPIを単一のバージョン管理反復に統合したためです。例:V4

変更履歴(v2からv4):


新しい検証機能が追加されました(エラー206、成功006) - V4 APIでは、入力IBAN内の不正な文字がチェックされるようになりました。
メッセージ「IBANに不正な文字が含まれています。」という新しいエラーコード - 206(検証に失敗しました)
このチェックの成功コードは - 006(検証成功)で、次のメッセージが表示されます。IBANに不正な文字は含まれていません。
このエラーコードでは、英数字以外の文字を含むIBANをGoogleのシステムに送信した場合に詳細な情報が提供されます。
以前の動作は、英数字以外のすべての文字を削除して検証を実行することでした。

新しい検証機能が追加されました(エラー207、成功007) - 国はIBANをサポートしていません
この確認レイヤーは、送信されたIBANの国コードがIBANの支払いをサポートする公式の国の一部ではないかどうかを報告します。
たとえば、信頼できないサードパーティ製ソフトウェアを使用して、米国向けのIBANを生成する可能性があります。
そのようなIBANは、US64SVBKUS6S3300958879のような場合があります。
チェックディジットが正しいこと、およびそれがモジュラス検証に合格することに気づかれると思いますが、米国は銀行の支払いにIBANを使用していないため、有効なIBANではありません。


2. 特徴


IBAN検証API V4を使用すると、次のことを実行できます。

  • チェックディジットを使用してIBANが有効かどうかを検証する。
  • IBANに有効な国内銀行コードと口座番号チェックディジット*があるかどうか検証する。
  • 特定の国のIBANの長さを検証する。
  • 特定の国のIBAN構造/書式設定を検証する。
  • IBAN文字を検証する(英数字以外の文字を確認)。
  • 国コードがIBAN規格をサポートしているかどうかを検証する。

  • IBANを発行した銀行を特定する。
  • IBANの国と国コードを確認する。
  • IBANを発行した銀行の住所を特定する。
  • 銀行のBICコードを特定する。
  • 銀行とSEPAサポートを特定する。:B2B、COR1、SCC、SCT、SDD

*銀行コードと口座番号の検証は、特定の銀行と国に対してのみ行われます。

3. API V4リクエスト



APIシステムを使用すると、単純なHTTP GETまたはPOSTリクエストを介してIBAN検証を自動化できます。
許容されるパラメータは以下の表のとおりです。

フィールド名 長さ 種類 説明
IBAN 最大100 文字列 検証したいIBAN。
api_key 128 文字列 お客様の個人的なAPIキー。
format 5 文字列 応答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);
		}

ノード

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


GETリクエストでのIBAN検証APIの使用例は次のとおりです。

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 V4 レスポンス

APIの応答のXSDスキーマは以下のとおりです。:




	 
		   
				 
					   
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
					   
				 
		   
		   
				 
					   
							 
							 
							 
							 
							 
					   
				 
		   
		   
				 
					   
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
					   
				 
		   
		   
	 



返されるbank_dataオブジェクトフィールドの詳しい説明は以下の表の通りです。:

フィールド名 長さ タイプ 説明
BIC 最大 11文字 文字列
発行銀行/支店または機関のBICコード。
BANK 最大 256文字 文字列
IBANを発行した銀行/機関名
BRANCH 最大 256文字 文字列
銀行支店名(ある場合)
COUNTRY 最大 32文字 文字列 国の正式名称。例:アメリカ合衆国
COUNTRY_ISO 2文字 文字列 国コードの2文字の略語。例:US, UK, AU, FRなど
CITY 最大 128文字 文字列
発行銀行の所在地の市
STATE 最大 128文字 文字列
銀行/支店がある州
ZIP 最大 11文字 文字列
市の郵便番号
ADDRESS 最大 128文字 文字列
発行銀行の所在地
ACCOUNT 最大 128文字 文字列 IBANから抽出された国内銀行口座番号
返されるsepa_dataオブジェクトフィールドの詳細な説明は、以下の表の通りです。:

フィールド名 長さ タイプ 説明
SCT 最大3文字 文字列 この銀行がSEPA口座振替をサポートしているかどうか。
SDD 最大3文字 文字列 この銀行がSEPA口座振替をサポートしているかどうか。
COR1 最大3文字 文字列 この銀行がSEPA COR1をサポートしているかどうか。
B2B 最大3文字 文字列 この銀行がSEPA企業間取引をサポートしているかどうか。
SCC 最大3文字 文字列 この銀行がSEPAカード決済をサポートしているかどうか。


IBAN検証クエリに対するAPIからのサンプルXML応答は次のようになります。:

	
		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ステータスコード

数学的なチェックデジットとフォーマットの検証は、 "validations"オブジェクトに返されます。
APIのv4バージョンでは、コード内の各検証に簡単にアクセスできるように、各検証を独自のオブジェクトに分けました。
これは基本的に、 'validations'オブジェクトをループするのではなく、$validations->structure;のような名前で特定の検証オブジェクトを簡単に参照できることを意味します。

ステータスコード タイプ 説明
301 アカウントエラー
APIキーが無効です
302 アカウントエラー
サブスクリプションの期限が切れました
303 アカウントエラー
利用可能なクエリはありません
304 アカウントエラー
このAPIにアクセスできません。
305 アカウントエラー IPアドレスは許可されていません。
201
検証に失敗
アカウント番号チェックディジットが正しくありません。
202
検証に失敗
IBANチェックディジットが正しくありません。
203
検証に失敗
IBANの長さが正しくありません。
205
検証に失敗
IBANの構造が正しくありません。
206
検証に失敗
IBANに不正な文字が含まれています。
207
検証に失敗
国はIBAN規格をサポートしていません。
001
検証に成功
IBANチェックディジットは正しいです。
002 検証に成功 口座番号チェックディジットは正しいです。
003 検証に成功 IBANの長さは正しいです。
004 検証に成功 この銀行または支店では口座番号チェックディジットは実行されません。
005 検証に成功 IBANの構造は正しいです。
006 検証に成功 IBANは不正な文字は含まれていません。
007 検証に成功 国はIBAN規格をサポートしています。