Pular para o conteúdo
Tutorial

Valide números IBAN com uma chamada de API

| 5 min read

Valide qualquer IBAN, extraia o código do país e os dígitos de verificação e receba de volta uma string formatada. Uma solicitação POST, mais de 80 países, sem necessidade de SDK bancário.

International bank building facade
Photo by Sean Pollock on Unsplash

Seu formulário de pagamento aceita transferências bancárias internacionais. O usuário digita um IBAN de 22 caracteres. Antes de enviar isso para o seu processador de pagamento e esperar por uma falha, você deseja detectar erros de digitação no nível do formulário. A validação do IBAN envolve um algoritmo de dígito de verificação módulo 97, específico do país regras de comprimento e análise de estrutura BBAN. Você pode escrevê-lo sozinho, buscar uma biblioteca ou deixar uma API lida com isso.

Botoi's /v1/validate/iban endpoint pega uma string IBAN e retorna se é válido, o código do país, o nome do país e uma versão formatada do número. Uma postagem solicitação, sem SDK bancário, sem coleção de regex para manter.

A chamada da API

Resposta:

A resposta fornece quatro campos. valid é o booleano que você precisa para gate em nível de formulário. country_code e country permitir que você detecte automaticamente o país do banco do usuário para lógica posterior, como seleção de moeda ou regras fiscais. formatted retorna o IBAN no agrupamento padrão de quatro caracteres humanos esperamos ver em faturas e extratos bancários.

Quando o IBAN falha na verificação do dígito de verificação, você ainda obtém os campos analisados:

O valid: false bandeira é tudo que você precisa. Sem exceções para capturar, sem códigos de erro para olhar para cima. Verifique o booleano e mostre uma mensagem de erro.

Node.js

Pitão

Formatos IBAN por país

O comprimento do IBAN varia de acordo com o país. Os primeiros dois caracteres são sempre o código do país ISO 3166-1, seguido por dois dígitos de verificação e, em seguida, o Número Básico da Conta Bancária (BBAN). Aqui estão os cinco mais formatos comuns em pagamentos europeus:

País Código Comprimento Formatar Exemplo
Alemanha DE 22 DE + 2 dígitos de verificação + 8 códigos bancários + 10 contas DE89 3704 0044 0532 0130 00
Reino Unido GB 22 GB + 2 dígitos de verificação + 4 bancos + 6 códigos de classificação + 8 contas GB29 NWBK 6016 1331 9268 19
França França 27 FR + 2 dígitos de verificação + 10 bancos + 11 contas + 2 chaves FR76 3000 6000 0112 3456 7890 189
Espanha ES 24 ES + 2 dígitos de verificação + 4 banco + 4 agência + 2 controle + 10 conta ES91 2100 0418 4502 0005 1332
Holanda Holanda 18 NL + 2 dígitos de verificação + 4 bancos + 10 contas NL91 ABNA 0417 1643 00

A API lida com todos os mais de 80 países no registro SWIFT IBAN. Você não precisa manter um tabela de consulta de comprimentos e formatos; o endpoint é validado em relação às regras corretas para código de cada país.

Validação do formulário React/Preact no desfoque

A integração mais comum: validar o IBAN quando o usuário sai do campo de entrada. Acionar o desfoque (em vez de cada pressionamento de tecla) mantém baixo o uso da API e evita flashes mensagens de erro enquanto o usuário ainda está digitando.

O componente chama a API quando o campo perde o foco. Se o IBAN for válido, passa o dados analisados (código do país, string formatada) até o formulário pai via onValidated. O pai pode então preencher automaticamente a moeda, ajustar o roteamento ou exibir o IBAN formatado como confirmação.

Validar IBANs em lote de um CSV

As equipes financeiras geralmente precisam validar uma lista de IBANs de fornecedores ou funcionários antes de executar uma pagamento em lote. Este script lê um CSV, valida cada IBAN e sinaliza entradas inválidas.

O script sai com o código 1 se algum IBAN for inválido, tornando-o utilizável como uma etapa de CI ou verificação pré-upload. Para arquivos grandes (mais de 1.000 linhas), adicione um pequeno atraso entre as solicitações ou use uma chave de API para obter limites de taxa mais altos.

Integração do Stripe Connect

Ao contratar vendedores ou freelancers por meio do Stripe Connect, você coleta os dados bancários deles para configurar pagamentos. Validando o IBAN antes de ligar stripe.accounts.createExternalAccount evita uma viagem de ida e volta à API do Stripe que falharia de qualquer maneira. Também permite extrair o código do país para definir a moeda de pagamento correta.

O fluxo é simples: primeiro valide, extraia o país, mapeie-o para uma moeda e depois crie a conta externa. Se o IBAN for inválido, o usuário verá um erro imediatamente de esperar que Stripe o rejeite segundos depois.

Pontos-chave

  • Um POST, quatro campos. Envie uma string IBAN para /v1/validate/iban e recupere a validade, o código do país, o nome do país e o número formatado.
  • Mais de 80 países. O endpoint cobre todos os países no registro SWIFT IBAN. Nenhuma lógica específica do país da sua parte.
  • Capture erros no nível do formulário. Valide o desfoque em seu formulário de pagamento para evitar que IBANs inválidos cheguem ao seu banco ou processador de pagamentos.
  • Sem armazenamento, sem registro. O IBAN é processado na memória e descartado. Nada é persistido.
  • Nível gratuito disponível. Acesso anônimo a 5 solicitações por minuto, 100 por dia. Nenhuma chave de API é necessária para desenvolvimento e teste.

FAQ

Esta API verifica se a conta bancária existe?
Não. Valida a estrutura do IBAN e o checksum módulo 97. Ele confirma que o número está formatado corretamente, mas não entra em contato com nenhum banco nem verifica se a conta está aberta ou com fundos.
Quantos países a validação do IBAN suporta?
Mais de 80 países que adotaram o padrão IBAN, incluindo todos os estados membros da UE/EEE, Reino Unido, Suíça, Arábia Saudita e Brasil. A lista completa segue o registro SWIFT IBAN.
Posso enviar um IBAN com espaços?
Sim. Os espaços são eliminados automaticamente antes da validação. "DE89 3704 0044 0532 0130 00" e "DE89370400440532013000" retornam o mesmo resultado.
Preciso de uma chave API para validar IBANs?
Não. O acesso anônimo permite 5 solicitações por minuto com limitação de taxa baseada em IP e 100 solicitações por dia. Para maior rendimento, inscreva-se para obter uma chave de API em botoi.com/api.
O IBAN que envio é armazenado ou registrado?
Não. O IBAN é validado na memória e descartado imediatamente. Nada é persistido ou gravado em nenhum log.

Comece a construir com botoi

150+ endpoints de API para consultas, processamento de texto, geração de imagens e utilitários para desenvolvedores. Plano gratuito, sem cartão de crédito.