CPFHub.io

Lua

Integre a API de consulta de CPF usando o SDK oficial do CPFHub.io para Lua 5.4+.

Instalação

bash
luarocks install cpfhub

Configuração

bash
export CPFHUB_API_KEY=sua_api_key_aqui

Primeira consulta

Lua
local cpfhub = require("cpfhub")

local client = cpfhub.new(os.getenv("CPFHUB_API_KEY"))

local result, err = client:lookup("12345678909")

if result then
  print(result.data.name)        -- "Fulano de Tal"
  print(result.data.gender)      -- "M"
  print(result.data.birth_date)  -- "15/06/1990"
end

CPF com ou sem formatação

O SDK aceita CPF com ou sem pontuação: "12345678909" e "123.456.789-09" são equivalentes.

Tratamento de erros

Lua
local cpfhub = require("cpfhub")

local client = cpfhub.new(os.getenv("CPFHUB_API_KEY"))

local result, err = client:lookup("12345678909")

if err then
  if err.code == "CPF_NOT_FOUND" then
    print("CPF não encontrado na base de dados")
  elseif err.code == "INVALID_CPF_DIGITS" then
    print("CPF com dígitos verificadores inválidos")
  elseif err.code == "RATE_LIMIT_EXCEEDED" then
    os.execute("sleep 1")
    -- retry
  else
    error("Erro inesperado: " .. err.code)
  end
else
  print("Nome: " .. result.data.name)
end

Uso sem SDK (via curl / http)

Para projetos que preferem chamadas HTTP diretas:

Lua
local http  = require("socket.http")
local ltn12 = require("ltn12")
local json  = require("dkjson")

local function lookup_cpf(cpf)
  local api_key = os.getenv("CPFHUB_API_KEY")
  local url     = "https://api.cpfhub.io/cpf/" .. cpf
  local body    = {}

  local code, headers = http.request {
    url     = url,
    sink    = ltn12.sink.table(body),
    headers = { ["x-api-key"] = api_key },
  }

  local response = json.decode(table.concat(body))
  return response
end

local result = lookup_cpf("12345678909")
if result.success then
  print(result.data.name)
end

Links


Atualizado em 12 de maio de 2026