Como conectar uma API de CPF a um bot do Telegram usando Node.js

Bernardo RochaBernardo Rocha
Publicado em 14 de abril de 20254 min de leitura

Introdução

A integração de APIs de consulta de CPF com bots do Telegram é uma solução inovadora para empresas que desejam oferecer verificação de identidade automatizada dentro do próprio aplicativo de mensagens. Com um bot no Telegram, usuários podem consultar a situação de um CPF de forma rápida e segura.

Neste guia, vamos ensinar como criar um bot do Telegram usando Node.js e conectá-lo à API da CPFHub.io para validar CPFs em tempo real.


1. Pré-requisitos

Antes de começar, você precisará de:

Node.js instalado (versão 14 ou superior recomendada).
Conta na CPFHub.io para obter a chave de API.
Token do Bot do Telegram (gerado via BotFather).
Bibliotecas node-fetch e telegraf para comunicação com a API e o Telegram.

Se ainda não tem uma conta, cadastre-se em CPFHub.io e gere sua chave de API.

2. Criando o bot no Telegram

Passo 1: Criar um novo bot

No Telegram, procure o BotFather e envie o comando:

/start
/newbot

O BotFather solicitará:

  1. Um nome para o bot (exemplo:
    CPF Checker Bot
    ).
  2. Um nome de usuário (deve terminar com
    bot
    , ex:
    cpf_checker_bot
    ).

Após a criação, você receberá um token de API do Telegram, que será usado na configuração do bot.


3. Configurando o projeto em Node.js

Passo 2: Criar o projeto e instalar dependências

No terminal, crie uma pasta para o projeto e instale as bibliotecas necessárias:

mkdir cpf_bot
cd cpf_bot
npm init -y
npm install telegraf node-fetch dotenv
Crie um arquivo
.env
e adicione suas credenciais:
TELEGRAM_BOT_TOKEN=SEU_TOKEN_DO_TELEGRAM
API_CPFHUB_KEY=SUA_CHAVE_DE_API

4. Criando o bot e conectando à API de CPF

Crie um arquivo
bot.js
e adicione o seguinte código:
require('dotenv').config();
const { Telegraf } = require('telegraf');
const fetch = require('node-fetch');

const bot = new Telegraf(process.env.TELEGRAM_BOT_TOKEN);
const API_URL = 'https://api.cpfhub.io/api/cpf';
const API_KEY = process.env.API_CPFHUB_KEY;

// Função para validar CPF via API
async function consultarCPF(cpf, birthDate) {
    try {
        const response = await fetch(API_URL, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'x-api-key': API_KEY
            },
            body: JSON.stringify({ cpf, birthDate })
        });
        
        const data = await response.json();
        return data;
    } catch (error) {
        console.error('Erro na consulta:', error);
        return null;
    }
}

// Comando /start
bot.start((ctx) => {
    ctx.reply('Bem-vindo ao CPF Checker Bot! Envie um CPF e data de nascimento no formato: \n123.456.789-00 15/06/1990');
});

// Tratando mensagens
bot.on('text', async (ctx) => {
    const input = ctx.message.text.split(' ');
    if (input.length !== 2) {
        return ctx.reply('Formato inválido! Use: CPF DD/MM/AAAA');
    }
    
    const [cpf, birthDate] = input;
    ctx.reply('Consultando CPF... Aguarde.');

    const resultado = await consultarCPF(cpf, birthDate);
    
    if (resultado && resultado.success) {
        const info = resultado.data;
        ctx.reply(`✅ CPF Válido!
👤 Nome: ${info.name}
📌 Situação: ${info.situation}
📅 Data de Nascimento: ${info.birthDate}`);
    } else {
        ctx.reply('❌ CPF não encontrado ou inválido.');
    }
});

// Iniciar bot
bot.launch();
console.log('🤖 Bot está rodando no Telegram!');

5. Executando o bot

No terminal, execute:

node bot.js

Se tudo estiver correto, você verá a mensagem:

🤖 Bot está rodando no Telegram!

Agora, no Telegram, envie uma mensagem ao bot no formato:

123.456.789-00 15/06/1990

E ele responderá com os dados do CPF consultado! 🎉


6. Exemplo de resposta da API

Após a requisição, a API retornará um JSON com as informações do CPF:

{
  "success": true,
  "data": {
    "name": "João da Silva",
    "status": "Regular",
    "situation": "Ativo",
    "birthDate": "15/06/1990",
    "cpfNumber": "12345678900",
    "registrationDate": "anterior a 10/11/1990",
    "verificationDigit": "03",
    "receipt": {
      "emissionTime": "22:08:26",
      "emissionDate": "13/01/2025",
      "controlCode": "XXXX.XXXX.XXXX.XXXX"
    },
    "validationUrl": "https://servicos.receita.fazenda.gov.br/Servicos/CPF/ca/ResultadoAut.asp?cp=12345678900&cc=XXXXXX&de=13012025&he=220826&dv=03&em=01",
    "validationHtmlUrl": "https://api.cpfhub.io/api/view-proof/12345678900/XXXXXXXXXXXXX"
  }
}

Vantagens desse bot:

  • Validação instantânea de CPFs diretamente no Telegram.

  • Evita fraudes e consultas manuais.

  • Fácil de implementar e escalar para diferentes usos.


Conclusão

Conectar uma API de CPF a um bot do Telegram usando Node.js é uma forma prática e inovadora de automatizar a verificação de identidade. Utilizando o Telegraf e a API da CPFHub.io, conseguimos criar um bot funcional em poucos passos!

Se sua empresa deseja validar CPFs de forma automatizada e eficiente, conheça a API da CPFHub.io e implemente essa solução hoje mesmo! 🚀