BAN验证API V4文档

>此API是我们 IBAN Suite 服务的一部分

1. V4 IBAN Validation API有哪些新功能?


我们一直致力于改善我们的服务并提供更好的支付验证解决方案
您可能会注意到IBAN Suite API已跳过从V2到V4的版本迭代
之所以这样做是因为我们已将其他API(例如 SortWare v3)整合到单个版本控制迭代中,例如V4

更改日志(从v2到v4):


添加了新验证(错误206) - V4 API现在会检查输入IBAN中的非法字符。
新错误代码 - 206(验证失败),消息:IBAN包含非法字符。
如果您向我们的系统提交包含非字母数字字符的IBAN,此错误代码将为您提供更多信息。
P以前的行为是剥离所有非字母数字字符并执行验证

添加了新验证(错误207) -不支持IBAN的国家
此验证层将报告提交的IBAN的国家代码是否不属于支持IBAN付款的官方国家。
例如,一个人可以使用不可靠的第三方软件为美国生成IBAN
此类IBAN可能看起来像US64SVBKUS6S3300958879
您会注意到校验位是正确的,它将通过模数验证,但它不是有效的IBAN,因为美国不使用IBAN执行银行付款。


2. 特点


IBAN Validation API V4允许您执行以下操作:

  • 使用支票数字验证IBAN是否有效
  • 验证IBAN是否具有有效的国内银行代码和帐号校验位*
  • 验证特定国家的IBAN长度
  • 验证特定国家的IBAN结构/格式
  • 验证IBAN字符(检查非字母数字字符)
  • 验证国家代码是否支持IBAN标准

  • 确定发行IBAN的银行
  • 确定IBAN的国家和国家代码<
  • 确定发行IBAN的银行地址
  • 识别银行的BIC代码
  • 确定银行的SEPA支持:: B2B,COR1,SCC,SCT,SDD

*仅对某些银行和国家执行银行代码和帐号验证。

3. API V2请求



API系统允许您通过简单的HTTP GET或POST请求自动执行IBAN验证.
接受的参数列在下表中:

字段名称 长度 类型 描述
IBAN 最大 100 字符串 您要验证的IBAN。
api_key 128 字符串 您的个人API密钥。
格式 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);
		}

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


可以在下面找到带有GET请求的IBAN Validation API的示例用法:

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

其中:
  • key是您的API密钥
  • IIBAN已通过API模块发送验证。
  • xml是响应格式。还可以为json格式的响应指定json关键字。

一旦使用正确的API密钥发出HTTP GET或POST请求,系统将以指定的格式返回结果。 您可以在下一节“API响应结构”中查找示例响应。

4. API V2 Response

API的响应的XSD架构可以在下方查找:


  
    
      
        
          
            
              
              
              
              
              
              
              
              
              
              
              
              
              
              
            
          
        
        
          
            
              
              
              
              
              
            
          
        
        
          
            
              
                
                  
                    
                    
                  
                
              
            
          
        
        
      
    
  

返回的bank_data对象字段的详细说明可以在下表中查找:

字段名称 长度 类型 描述
BIC 最大11 字符串 发卡银行/分行或机构的BIC代码
银行 最大256 字符串 发出IBAN的银行/机构的名称
分行 最大256 字符串 特定银行分行的名称(如果有)
国家 最大32 字符串 发卡国全名,例如&ldquo;美国&rdquo;
COUNTRY_ISO 2 字符串 国家代码的两个字母缩写,例如US, UK, AU, FR …等等。
城市 最大128 字符串 >发卡银行所在城市的名称
最大128 字符串 银行/分行所在州的名称。
邮编 最大11 字符串 城市邮编<或邮政编码
地址 最大128 字符串 发卡行地址。
ACCOUNT 最大128 字符串 从IBAN提取的国内银行帐号。
返回的sepa_data对象字段的详细说明可以在下表中查找:

字段名称 长度 类型 描述
SCT 最大3 字符串 该银行是否支持SEPA积分转移。
SDD 最大3 字符串 该银行是否支持SEPA直接付款。
COR1 最大3 字符串 该银行是否支持SEPA COR1。
B2B 最大3 字符串 该银行是否支持SEPA企业对企业。
SCC 最大3 字符串 该银行是否支持SEPA卡清算。


来自API的IBAN验证查询的XML回复示例如下

	
		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长度不正确t
205 验证失败 IBAN结构不正确
206 验证失败 IBAN包含非法字符
207 验证失败 国家不支持IBAN
001 验证成功 IBAN校验位正确
002 验证成功 帐号校验位正确
003 验证成功 IBAN长度正确
004 验证成功 帐号不支持校验位
005 验证成功 IBAN结构正确

如果您正在寻找我们的旧版IBAN验证API V2的文档,您可以在旧版API V2文档中查找