CPFHub.io

Dart / Flutter

Integre a API de consulta de CPF usando o SDK oficial do CPFHub.io para Dart e Flutter.

Instalação

bash
dart pub add cpfhub

Ou adicione ao pubspec.yaml:

yaml
dependencies:
  cpfhub: ^1.0.0
bash
dart pub get

Configuração

Nunca inclua a API Key no app Flutter

Chamadas à API devem ser feitas pelo backend. Inclua a API Key apenas em código server-side (Dart server, Cloud Functions, etc.) - nunca no app móvel.

Primeira consulta (Dart server)

Dart
import 'package:cpfhub/cpfhub.dart';

void main() async {
  final client = CPFHubClient(
    apiKey: Platform.environment['CPFHUB_API_KEY']!,
  );

  final result = await client.lookup('12345678909');

  print(result.data.name);       // "Fulano de Tal"
  print(result.data.gender);     // "M"
  print(result.data.birthDate);  // "15/06/1990"
}

Tratamento de erros

Dart
import 'package:cpfhub/cpfhub.dart';

final client = CPFHubClient(apiKey: Platform.environment['CPFHUB_API_KEY']!);

try {
  final result = await client.lookup('12345678909');
  print(result.data.name);
} on CPFNotFoundException {
  print('CPF não encontrado na base de dados');
} on InvalidCPFException {
  print('CPF com dígitos verificadores inválidos');
} on RateLimitException {
  await Future.delayed(const Duration(seconds: 1));
  // retry
} on CPFHubException catch (e) {
  print('Erro: ${e.code} - ${e.message}');
  rethrow;
}

Uso com Shelf (backend Dart)

Dart
import 'dart:io';
import 'package:shelf/shelf.dart';
import 'package:shelf/shelf_io.dart';
import 'package:cpfhub/cpfhub.dart';

final client = CPFHubClient(apiKey: Platform.environment['CPFHUB_API_KEY']!);

Future<Response> handler(Request request) async {
  final cpf = request.url.pathSegments.last;

  try {
    final result = await client.lookup(cpf);
    return Response.ok(
      jsonEncode({'ok': true, 'data': result.data.toJson()}),
      headers: {'content-type': 'application/json'},
    );
  } on CPFNotFoundException {
    return Response.notFound(
      jsonEncode({'ok': false, 'error': 'CPF não encontrado'}),
      headers: {'content-type': 'application/json'},
    );
  }
}

void main() async {
  final server = await serve(handler, 'localhost', 8080);
  print('Servidor rodando em http://${server.address.host}:${server.port}');
}

Links


Atualizado em 12 de maio de 2026