CPFHub.io

Nim

Integre a API de consulta de CPF usando o SDK oficial do CPFHub.io para Nim.

Instalação

bash
nimble install cpfhub

Ou adicione ao .nimble:

Nim
requires "cpfhub >= 1.0.0"

Configuração

bash
export CPFHUB_API_KEY=sua_api_key_aqui

Primeira consulta

Nim
import cpfhub
import os

let client = newCPFHubClient(getEnv("CPFHUB_API_KEY"))

let result = await client.lookup("12345678909")

echo result.data.name       # "Fulano de Tal"
echo result.data.gender     # "M"
echo result.data.birthDate  # "15/06/1990"

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

Nim
import cpfhub, os

let client = newCPFHubClient(getEnv("CPFHUB_API_KEY"))

try:
  let result = await client.lookup("12345678909")
  echo result.data.name
except CPFNotFoundException:
  echo "CPF não encontrado na base de dados"
except InvalidCPFException:
  echo "CPF com dígitos verificadores inválidos"
except RateLimitException:
  await sleepAsync(1000)
  # retry
except CPFHubException as e:
  echo "Erro: ", e.code, " - ", e.msg
  raise

Uso sem SDK (via httpclient)

Nim
import httpclient, json, os, asyncdispatch

proc lookupCPF(cpf: string): Future[JsonNode] {.async.} =
  let apiKey = getEnv("CPFHUB_API_KEY")
  let client = newAsyncHttpClient()
  client.headers = newHttpHeaders({"x-api-key": apiKey})

  let response = await client.get("https://api.cpfhub.io/cpf/" & cpf)
  let body     = await response.body
  return parseJson(body)

proc main() {.async.} =
  let data = await lookupCPF("12345678909")
  if data["success"].getBool():
    echo data["data"]["name"].getStr()

waitFor main()

Links


Atualizado em 12 de maio de 2026