排序代码和银行帐户验证API V4文档

此API是我们的 SortWare 服务
的一部分

1. 什么是V4 SortWare API?

SortWare API提供验证英国排序代码和帐号的自动化。

API提供两个主要功能“搜索”和“验证”。 “验证”功能在给定排序代码和帐号组合的情况下执行模数验证 如果您需要在银行目录中查找排序代码,您可以使用“搜索”功能并检索该特定排序代码的银行和分支信息。

更改日志(从v3到v4):


新的响应结构
新版本的SortWare API现在提供了XML和JSON格式的改进响应结构 我们已将结果分为五个元素(account_data,bank_data,payment_schemas,验证和错误)
该结构与我们的IBAN验证API非常相似,因此在使用我们的两种解决方案时更容易集成。 您可以在下面找到响应结构的详细说明(请参阅第4节“API响应结构”)

错误代码
错误代码已在SortWare V4的响应中实现,以便更轻松地解析验证结果和API响应 与我们的其他API一样,错误代码返回V4 API可能遇到的所有错误的机器可读格式 有关系统返回的错误代码的详细说明,请参见第5节(错误代码)

改进的IBAN计算功能y
我们引入了一种新的改进算法,用于从英国和爱尔兰的排序代码和帐号数据计算IBAN 新功能使用我们准确的银行代码目录来计算更高精度的IBAN,并降低计算过程中出错的可能性 增加此功能的可靠性


2. 功能

SortWare API提供以下一些主要功能:

  • 据排序代码检索有关银行和分行的信息。
  • 自动为提供的排序代码和帐号生成有效的IBAN。
  • 确定对与提供的排序代码相关联的银行和分行的FPS支付/ CHAPS和直接借记的支持。
  • 在代码友好的XML和JSON结构化响应中显示多个结果。

3. API使用

此API允许您通过单个HTTP GET或POST请求自动执行排序代码和帐号验证。

接受的参数列于下表中:br>
字段名称 长度 类型 描述
格式 4 字符串 此参数可以是两种支持格式“xml”或“json”之一。指定响应的格式。
搜索 6 字符串 此参数可用于搜索银行目录中的排序代码。
排序代码 6 字符串 T排序代码与'账户'参数一起提供验证。
帐户 8 字符串 供验证的银行帐号与'排序代码'参数一起使用。
api_key 128 字符串 您的个人API密钥用于保护系统访问。
在您的客户区 - > API访问部分,您可以找到您的API密钥,用于在API请求期间识别您的帐户。

我们准备了以大多数常用语言向API提交基于POST的请求的示例:

curl "https://api.iban.com/clients/api/v4/sort/" \
    -X POST \
    -d format=json \
	-d api_key=[YOUR_API_KEY] \
	-d sortcode=200415 \
	-d account=38290008 
<?php
$curl = curl_init();

$post = [
    'format' => 'json',
    'api_key' => '[YOUR_API_KEY]',
    'sortcode'   => '200415',
	'account' => '38290008',
];

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://api.iban.com/clients/api/v4/sort/',
	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/sort/')

res = Net::HTTP.post_form(uri, "format" => "json", "api_key" => "[YOUR_API_KEY]","sortcode" => "200415","account" => "38290008")

puts res.body
import requests

post_data = {'format':'json', 'api_key':'[YOUR_API_KEY]','sortcode':'200415','account':'38290008'}

response = requests.post('https://api.iban.com/clients/api/v4/sort/',post_data)
print(response.text)
use LWP::UserAgent;

my $ua = LWP::UserAgent->new;
my $server_endpoint = "https://api.iban.com/clients/api/v4/sort/";

my $format = 'json';
my $api_key = '[YOUR_API_KEY]';
my $sortcode = '200415';
my $account = '38290008';


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 . '&sortcode=' . $sortcode . '&account=' . $account;

$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/sort/";
		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&sortcode=200415&account=38290002";

		// 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/sort/");
 
			var postData = "api_key=[YOUR_API_KEY]";
			 postData += "&format=json";
			 postData += "&sortcode=200415";
			 postData += "&account=38290002";
			 
			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/sort/',
    method: 'POST',
    headers: headers,
    form: {'api_key': '[YOUR_API_KEY]', 'format': 'json', 'sortcode': '200415', 'account': '38290002'}
}


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 Country Name: " + data.bank_data.country);
		console.log("IBAN: " + data.account_data.iban);
		
    }
})



4. API响应结构

SortWare V4 API的响应包含一些数据对象,以帮助清楚地分离返回数据的不同功能。
请随意在下面引用XML格式响应的XSD架构:

  
    
      
        
          
            
              
              
              
            
          
        
        
          
            
              
              
              
              
              
              
              
              
            
          
        
        
          
            
              
              
              
              
              
            
          
        
        
          
            
              
                
                  
                    
                    
                  
                
              
            
          
        
        
      
    
  

下面,您可以找到每个单独数据对象中返回的数据元素类型的详细描述:

'account_data' '对象的描述
字段名称 长度 类型 描述
排序代码 6 整数 返回客户提交以进行反向引用的编码排序。
帐户 8 整数 包含客户提交的帐号。
IBAN 125 字符串 包含来自给定有效排序代码和帐号的计算国际银行帐号(IBAN)


描述'bank_data'对象,其中包含有关发行银行和提交的排序代码分支的信息
字段名称 长度 类型 描述
BIC 8或11 字符串 相应银行和分行的BIC代码。
银行 256 字符串 拥有提交的排序代码的银行的名称。
分行 256 字符串 分配代码的特定银行分行的名称。
地址 256 字符串 排序代码所属的相应银行分行的地址。
城市 11 字符串 相应分行所在城市的名称。
邮编 11 字符串 银行分行地址的邮政编码部分。
电话 20 字符串 >各银行和分行的联系电话。
国家 2 字符串 银行和分行所在国家/地区的双字母ISO代码。


描述'payment_schemes'对象,提供有关支持的支付方案的信息
字段名称 长度 类型 描述
DD 3 字符串 各分行的直接付款支持指标。值可以是“是”或“否”
FPS_PAYMENTS 3 字符串 各分行的快速支付服务(FPS)支持指标。值可以是“是”或“否
CHAPS 3 字符串 各分支机构的CHAPS支付支持指标。值可以是“是”或“否”
BACS 3 字符串 各分行的BACS支付支持指标。值可以是“是”或“否'
CCC_PAYMENTS 3 字符串 支票和信用结算公司(C&amp; CCC)对各分行的支付支持指标。值可以是“是”或“否”


'验证'对象的描述
字段名称 长度 类型 描述
代码 3 整数 R返回在银行代码和帐号组合上完成的模数验证的状态代码。有关值的描述,请参阅第5节(状态代码)。
信息 256 字符串 包含验证结果的文本描述。有关所有可能结果,请参阅第5节(状态代码)。


'错误'对象的描述
字段名称 长度 类型 描述
代码 3 整数 如果发生错误,则返回错误的状态代码。有关值的描述,请参阅第5节(状态代码)。
信息 256 字符串 包含当前错误的文本描述(如果已发生)。有关所有可能结果,请参阅第5节(状态代码)。


5. SortWare API V4状态代码

API返回两种类型的状态代码。
验证成功或失败在“验证”数据对象中返回。
帐户错误在“错误”对象中返回。

状态代码 类型 描述
301 帐户错误 API密钥无效
302 帐户错误 订阅已过期
303 帐户错误 无可查询
304 帐户错误 您无法访问此API
201 验证失败 帐号校验数字不正确
202 验证失败 在银行目录中找不到排序代码
001 验证成功 帐号校验位有效

如果您正在寻找旧版SortWare API V3的文档,可以在 Legacy SortWare API V3文档中查找