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에서 잘못된 문자를 확인합니다.
새 오류 코드 - 206(유효성 검사 실패됨) 및 메시지: IBAN에 잘못된 문자가 포함되어 있습니다.
해당 확인에 대한 성공 코드는 - 006(유효성 검사 성공)이며, IBAN에 잘못된 문자가 포함되어 있지 않습니다
해당 오류 코드는 영숫자가 아닌 문자가 포함된 IBAN을 시스템에 제출한 경우에 대한 자세한 정보를 제공합니다.
이전의 동작은 영숫자가 아닌 모든 문자를 제거하고 유효성 검사를 수행하는 것입니다

새로운 유효성 검사가 추가되었습니다(오류 207 및 성공 007 ) - 국가가 IBAN을 지원하지 않습니다.
해당 유효성 검사 단계는 제출된 IBAN의 국가 코드가 IBAN 지불을 지원하는 공식 국가에 해당하지 않은 경우 보고합니다.
예를 들어 신뢰할 수 없는 타사 소프트웨어를 사용하여 미국용 IBAN을 생성할 수도 있습니다
이러한 IBAN은 US64SVBKUS6S3300958879처럼 보일 수 있습니다
체크 디지트가 올바르고 표준 유효성 검사를 통과하지만, 미국이 은행 지급에 IBAN을 사용하지 않기 때문에 유효한 IBAN은 아닙니다


2. 기능


IBAN 유효성 검사 API V4를 사용하여 다음을 수행할 수 있습니다:

  • IBAN의 체크 디지트를 사용하여 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 String 검증하고자 하는 IBAN
api_key 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);
		
    }
})


GET 요청이 있는 IBAN 유효성 검사 API의 예제는 아래에서 찾을 수 있습니다:

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

위치:
  • 키는 귀하의 API 키입니다
  • IBAN이 API 모듈에서 유효성 검사를 위해 전송되었습니다
  • xml은 응답 형식입니다. 또한 json 형식의 응답에 대해 json 키워드를 지정할 수 있습니다.

올바른 API 키로 HTTP GET 또는 POST 요청을 하면 시스템에서 지정된 형식으로 결과를 반환합니다. 다음 섹션 "API 응답 구조"에서 샘플 응답을 찾을 수 있습니다

4. API V4 응답

API 응답의 XSD 스키마는 아래에서 찾을 수 있습니다:




	 
		   
				 
					   
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
							 
					   
				 
		   
		   
				 
					   
							 
							 
							 
							 
							 
					   
				 
		   
		   
				 
					   
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
							 
								   
										 
											   
											   
										 
								   
							 
					   
				 
		   
		   
	 



반환된 bank_data 개체 필드에 대한 자세한 설명은 아래 표에 나와 있습니다

필드명 길이 유형 설명
BIC 최대 11 String 발행 은행/지점 또는 기관의 BIC 코드입니다
은행 최대 256 String BAN을 발급한 은행/입금의 이름
지점 최대 256 String 사용 가능한 경우 특정 은행 지점의 이름
국가 최대 32 String 국가의 전체 이름(예: "United States")
COUNTRY_ISO 2 String 국가 코드인 두 글자로 된 약자(예: US, UK, AU, FR 등)
도시 최대 128 String 발행 은행의 위치인 도시명
최대 128 String 은행/지점이 위치한 주의 이름
우편 번호 최대 11 String 도시의 우편 번호
주소 최대 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 Card Clearing를 지원하는지 여부.


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에 잘못된 문자가 없습니다 001 IBAN 체크 디지트가 올바릅니다 002 계좌 번호 체크 디지트가 올바릅니다 005 IBAN 구조가 올바릅니다 003 IBAN 길이가 올바릅니다 007 국가는 IBAN 표준을 지원합니다

5. API V4 상태 코드

수학적 체크 디지트 및 형식 유효성 검사가 "유효성 검사" 대상에 반환됩니다
v4 버전의 API에서는 코드에 있는 각 특정 유효성 검사에 더 쉽게 액세스할 수 있도록 각 유효성 검사를 자체 대상으로 구분했습니다
이는 본질적으로 'validations' 대상을 반복하는 대신 $validation->structure와 같은 이름으로 특정 검증 대상을 참조할 수 있다는 것을 의미합니다.

상태 코드 유형 설명
301 계좌 오류 API 키가 잘못되었습니다
302 계좌 오류 구독이 만료되었습니다
303 계좌 오류 사용 가능한 쿼리가 없습니다
304 계좌 오류 You have no access to this 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 표준을 지원합니다