Validador de IBAN
O validador de IBAN confere a estrutura de uma conta bancária internacional: o país existe, o comprimento bate com a regra daquele país e os dígitos verificadores fecham. Roda grátis no navegador, sem cadastro — para quem recebe pagamento do exterior, paga fornecedor lá fora ou confere planilha de remessas antes de executar.
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
Quando o brasileiro esbarra num IBAN
IBAN aparece na vida de quem exporta serviço, recebe de plataforma estrangeira ou paga fornecedor fora do país: o banco pede “o IBAN do beneficiário” e um caractere errado devolve a remessa dias depois — com tarifa cobrada dos dois lados. O IBAN brasileiro existe (começa com BR e tem 29 caracteres) e é o que você informa a quem vai te mandar dinheiro do exterior. Conferir antes custa zero; errar custa tarifa internacional.
O que o validador confere
Três coisas: o código de país é reconhecido; o comprimento corresponde ao padrão daquele país (o alemão tem 22 caracteres, o português 25, o brasileiro 29); e os dígitos verificadores fecham na conta de módulo 97 — o mecanismo matemático que pega erro de digitação, troca de letra por número e caractere fora do lugar. Se algo falhar, a resposta diz que tipo de problema encontrou.
O que ele não confirma — e é bom saber
Um IBAN estruturalmente válido não prova que a conta existe, está ativa ou pertence a quem diz ser o dono. Nenhum validador do mundo confirma isso de graça: só o banco, no momento da transferência. O papel desta checagem é eliminar o erro barato — o dígito trocado, o caractere comido no copia-e-cola — que responde por boa parte das remessas devolvidas.
Grátis aqui, via API no seu sistema
Na página, cole o IBAN e veja o resultado na hora: a conta roda no seu navegador e o número não é enviado a lugar nenhum. Via API, a mesma validação custa US$ 0,002 por chamada — útil para fintechs e financeiros que validam o campo IBAN no cadastro de beneficiários ou passam um lote de contas antes da folha de pagamentos internacional.
Casos de uso
Freelancer recebendo do exterior
Juliana Nascimento fecha um projeto com cliente europeu e precisa passar o IBAN da sua conta. Validar antes de enviar evita a troca de e-mails constrangedora quando a remessa volta.
Financeiro pagando fornecedor lá fora
A Distribuidora Horizonte Verde importa insumos e paga por transferência internacional. O IBAN de cada fornecedor novo passa pelo validador antes de entrar no cadastro do banco.
Planilha de remessas em lote
Antes de executar uma folha internacional, validar a coluna de IBANs via API aponta as linhas problemáticas — bem mais barato que descobrir pela tarifa de devolução.
Perguntas frequentes
IBAN válido garante que o dinheiro chega?
Garante que o número está estruturalmente certo — o que elimina a causa mais comum de devolução. Conta encerrada, dados do titular divergentes ou bloqueios são coisas que só o banco vê.
Conta brasileira tem IBAN?
Tem: o Brasil adota o padrão desde 2013, com 29 caracteres começando por BR. Seu banco informa o seu (muitos mostram direto no app); é ele que você passa para receber do exterior.
Por que meu IBAN dá inválido se eu copiei do banco?
Quase sempre é espaço ou caractere invisível que veio junto no copia-e-cola, ou a letra O no lugar do zero. Apague os espaços, confira os caracteres parecidos e valide de novo — o validador diz que tipo de erro encontrou.
Meus dados bancários ficam salvos?
Não: no navegador a validação roda na sua tela e o IBAN não é transmitido. Dado bancário é sensível, e a arquitetura aqui foi escolhida exatamente por isso.
E o código do banco (SWIFT/BIC), vocês validam?
Sim, é outra checagem do KIT — remessa internacional costuma pedir os dois, IBAN e SWIFT, e vale conferir ambos antes de ir à agência ou ao app.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/verify/iban \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/verify/iban", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/verify/iban",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/verify/iban", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/verify/iban", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"items": [
"valor-1",
"valor-2"
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "verify.iban",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |