CPFHub.io

SDK Java

SDK oficial para Java 11+ com suporte a Maven e Gradle, cliente HTTP não-bloqueante e tipos imutáveis.

Instalação

Maven

XML
<dependency>
  <groupId>io.cpfhub</groupId>
  <artifactId>cpfhub-java</artifactId>
  <version>1.0.0</version>
</dependency>

Gradle

groovy
implementation 'io.cpfhub:cpfhub-java:1.0.0'

Requerimentos: Java 11+

Inicialização

Java
import io.cpfhub.CPFHub;
import io.cpfhub.CPFHubConfig;

CPFHub client = new CPFHub(CPFHubConfig.builder()
    .apiKey(System.getenv("CPFHUB_API_KEY"))
    // .timeout(Duration.ofSeconds(10)) // opcional
    .build());

Parâmetros do builder

MétodoTipoPadrãoDescrição
apiKey(String)String-Sua API Key (obrigatório)
timeout(Duration)DurationPT10STimeout da requisição
baseUrl(String)Stringhttps://api.cpfhub.ioURL base da API

Métodos

client.lookup(String cpf)

Consulta um CPF e retorna os dados de identidade.

Java
CPFHubResult result = client.lookup("12345678909");

System.out.println(result.getData().getName());   // "João da Silva"
System.out.println(result.getData().getGender()); // "M"

Retorno: CPFHubResult

Java
public class CPFHubResult {
    boolean success;
    CPFData data;
}

public class CPFData {
    String cpf;
    String name;
    String nameUpper;
    String gender;     // "M" | "F"
    String birthDate;  // "DD/MM/AAAA"
    int    day;
    int    month;
    int    year;
}

client.lookupAsync(String cpf)

Versão assíncrona usando CompletableFuture:

Java
CompletableFuture<CPFHubResult> future = client.lookupAsync("12345678909");
future.thenAccept(result -> System.out.println(result.getData().getName()));

Tratamento de erros

Java
import io.cpfhub.CPFHub;
import io.cpfhub.CPFHubException;

try {
    CPFHubResult result = client.lookup("12345678909");
} catch (CPFHubException e) {
    System.out.println(e.getCode());       // "CPF_NOT_FOUND"
    System.out.println(e.getMessage());    // "CPF not found in our database"
    System.out.println(e.getStatusCode()); // 404
}

Códigos de erro

e.getCode()e.getStatusCode()Descrição
CPF_NOT_FOUND404CPF não encontrado (sem consumo de crédito)
INVALID_CPF_FORMAT400Formato inválido
INVALID_CPF_DIGITS422Dígitos verificadores inválidos
MISSING_API_KEY401API Key ausente
INVALID_API_KEY401API Key inválida
RATE_LIMIT_EXCEEDED429Limite de taxa excedido
INSUFFICIENT_CREDITS403Sem créditos disponíveis

Exemplos de integração

Spring Boot - REST Controller

Java
@RestController
@RequestMapping("/cpf")
public class CPFController {

    private final CPFHub cpfhub = new CPFHub(CPFHubConfig.builder()
        .apiKey(System.getenv("CPFHUB_API_KEY"))
        .build());

    @GetMapping("/{cpf}")
    public ResponseEntity<?> consultar(@PathVariable String cpf) {
        try {
            CPFHubResult result = cpfhub.lookup(cpf);
            return ResponseEntity.ok(result.getData());
        } catch (CPFHubException e) {
            return ResponseEntity
                .status(e.getStatusCode())
                .body(Map.of("error", e.getCode()));
        }
    }
}

Spring Bean com injeção de dependência

Java
@Configuration
public class CPFHubConfig {

    @Bean
    public CPFHub cpfHub(@Value("${cpfhub.api-key}") String apiKey) {
        return new CPFHub(io.cpfhub.CPFHubConfig.builder()
            .apiKey(apiKey)
            .build());
    }
}

Repositório e suporte


Atualizado em 12 de maio de 2026