Código de classificação e validação da conta bancária API V4 Documentation

Esta API faz parte do nosso serviço SortWare

1. O que é a API do Sortware V4?

A API SortWare fornece automação para validar o código de classificação e os números de conta do Reino Unido.

A API fornece duas funções principais: pesquisar e validar. A função validar realiza a validação de módulo, dada uma combinação de código de classificação e número de conta.
Caso você precise pesquisar um código de classificação no diretório do banco, use a função pesquisar e recupere as informações do banco e da agência para o código de classificação específico.

Changelog (da v3 para a v4):


Nova estrutura de resposta
A nova versão da API SortWare agora fornece uma estrutura de resposta aprimorada na formatação XML e JSON.
Separamos os resultados em cinco elementos (account_data, bank_data, payment_schemas, validações e erros)
A estrutura é muito semelhante à nossa API de validação do IBAN, facilitando a integração ao usar ambas as nossas soluções. Você pode encontrar uma descrição detalhada da estrutura de resposta abaixo (consulte a seção 4. Estrutura de resposta da API)

Códigos de erro
Códigos de erro foram implementados na resposta do SortWare V4 para facilitar a análise dos resultados da validação e das respostas da API.
Como com nossos outros códigos de erro de APIs, retorne a formatação legível da máquina para todos os erros que a API V4 possa encontrar.
Consulte a seção 5. (Códigos de erro) para obter uma descrição detalhada dos códigos de erro retornados pelo sistema.

Funcionalidade de cálculo aprimorada do IBAN
Introduzimos um algoritmo novo e aprimorado para calcular o IBAN a partir de dados de código de classificação e número de conta para o Reino Unido e a Irlanda.
A nova funcionalidade usa nosso diretório de códigos bancários preciso para calcular IBANs com maior precisão e menor possibilidade de erros durante o cálculo.



2. Recursos

A API SortWare fornece alguns dos seguintes recursos principais:

  • Recuperar informações sobre o banco e filial com base no código de classificação.
  • Gera automaticamente um IBAN válido para o código de classificação e o número da conta fornecidos
  • Identifique o suporte de pagamentos de FPS / CHAPS e Débito Direto para o banco e agência associados ao código de classificação fornecido.
  • Vários resultados exibidos em uma resposta estruturada em XML e JSON compatível com código

3. Uso da API

Essa API permite que você automatize a validação do código de classificação e do número da conta por meio de uma única solicitação HTTP GET ou POST.

Os parâmetros aceitos estão listados na tabela abaixo:

Nome do Campo Comprimento Tipo Descrição
formato 4 String Esse parâmetro pode ser um dos dois formatos suportados 'xml' ou 'json'. Especifica o formato da resposta.
pesquisa 6 String Esse parâmetro pode ser usado para pesquisar um código de classificação em nosso diretório do banco.
sortcode 6 String O código de classificação fornecido para validação em combinação com o parâmetro 'conta'.
conta 8 String Número da conta bancária fornecido para validação em combinação com o parâmetro 'sortcode'.
api_key 128 String Sua chave de API pessoal usada para proteger o acesso ao sistema.
Dentro da sua Área do Cliente -> seção Acesso à API, você pode encontrar sua chave de API, que é usada para identificar sua conta durante as solicitações da API.

Preparamos exemplos de envio de uma solicitação baseada em POST para nossa API nos idiomas mais comuns:

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("Nome do banco: " + data.bank_data.bank);
		console.log("Banco BIC: " + data.bank_data.bic);
		console.log("Bank City: " + data.bank_data.city);
		console.log("Endereço do banco: " + data.bank_data.address);
		console.log("Banco Zip: " + data.bank_data.zip);
		console.log("Telefone do banco: " + data.bank_data.phone);
		console.log("Nome do país do banco: " + data.bank_data.country);
		console.log("IBAN: " + data.account_data.iban);

    }
})



4. Estrutura de Resposta da API

A resposta da API SortWare V4 contém alguns objetos de dados para ajudar a separar claramente os diferentes recursos dos dados retornados.
Por favor, sinta-se livre para fazer referência ao esquema XSD para a resposta do formato XML abaixo:

  
    
      
        
          
            
              
              
              
            
          
        
        
          
            
              
              
              
              
              
              
              
              
            
          
        
        
          
            
              
              
              
              
              
            
          
        
        
          
            
              
                
                  
                    
                    
                  
                
              
            
          
        
        
      
    
  

Abaixo, você pode encontrar descrições detalhadas dos tipos de elementos de dados retornados em cada objeto de dados individual:

Descrição do objeto account_data
Nome do Campo Comprimento Tipo Descrição
SORTCODE 6 Integer Retorna a classificação codificada que o cliente enviou para referência de retorno.
CONTA 8 Integer Contém o número da conta submetida pelo cliente.
IBAN 125 String Contém o IBAN (International Bank Account Number) calculado a partir do código de classificação e número de conta válidos fornecidos


Descrição do objeto "bank_data" que contém informações sobre o banco emissor e a filial do código de classificação enviado
Nome do Campo Comprimento Tipo Descrição
BIC 8 or 11 String O código BIC do banco e filial correspondentes.
BANCO 256 String O nome do banco que possui o código de classificação enviado.
AGÊNCIA 256 String Nome da agência bancária específica à qual o código de classificação está atribuído.
ENDEREÇO 256 String Endereço do ramo bancário correspondente ao qual o código de classificação pertence.
CIDADE 11 String Nome da cidade na qual a respectiva filial está localizada.
CEP 11 String A parte do código postal do endereço da agência bancária.
TELEFONE 20 String Entre em contato com o número de telefone do respectivo banco e agência.
PAÍS 2 String O código ISO de duas letras do país no qual o banco e a agência estão localizados.


Descrição do objeto payment_schemes que fornece informações sobre esquemas de pagamento suportados
Nome do Campo Comprimento Tipo Descrição
DD 3 String Indicador de suporte de débito direto do respectivo ramo. Os valores podem ser YES ou NO
FPS_PAYMENTS 3 String Indicador de suporte ao serviço de pagamentos mais rápidos (FPS) da agência respectiva. Os valores podem ser 'YES' ou 'NO'
CHAPS 3 String Indicador de suporte para pagamentos CHAPS da respectiva filial. Os valores podem ser 'YES' ou 'NO'
BACS 3 String Indicador de suporte de pagamento BACS do respectivo ramo. Os valores podem ser 'YES' ou 'NO'
CCC_PAYMENTS 3 String Indicador para Empresa de Compensação de Cheques e Créditos(C&CCC) suporte de pagamentos do respectivo ramo. Os valores podem ser 'YES' ou 'NO'


Descrição do objeto 'validations'
Nome do Campo Comprimento Tipo Descrição
CODE 3 Integer Retorna o código de status da validação de módulo feita na combinação do código do banco e do número da conta. veja a seção 5 (Códigos de Status) para descrição dos valores.
MESSAGE 256 String Contém descrição de texto dos resultados da validação. Veja a seção 5 (códigos de status) para todos os resultados possíveis.


Descrição do objeto 'errors'
Nome do Campo Comprimento Tipo Descrição
CODE 3 Integer Retorna o código de status do erro, se isso ocorreu. veja a seção 5 (Códigos de Status) para descrição dos valores.
MESSAGE 256 String Contém a descrição de texto do erro atual, se tal ocorrer. Veja a seção 5 (códigos de status) para todos os resultados possíveis.


5. Códigos de Status do SortWare API V4

Existem dois tipos de códigos de status retornados pela API.
Sucesso de validação ou falha são retornados no objeto 'validations'.
Erros de conta são retornados no objeto 'errors'.

Código de status Tipo Descrição
301 Erro na conta A chave da API é inválida
302 Erro na conta Assinatura expirada
303 Erro na conta Nenhuma consulta disponível
304 Erro na conta Você não tem acesso a esta API
201 Falha na validação O dígito de verificação do número da conta não está correto
202 Falha na validação Código de classificação não encontrado no diretório do banco
001 Sucesso de Validação O dígito de verificação do número da conta é válido