Documentation

Flutter SDK

Nesta seção, você encontrará todas as informações necessárias para instalar o SDK da plataforma em seus aplicativos Flutter

📲 Guia de instalação – Flutter SDK

🧱 Requisitos do Ambiente de Desenvolvimento

  • SDK do Flutter instalado (versão 3.3.0 ou superior)
  • Android: 9.0+ (API 28)
  • iOS: 13+

📱 Dispositivos Compatíveis

Este SDK funciona apenas em dispositivos físicos, não em emuladores ou simuladores.

Dispositivos iOS

Compatível com a maioria dos dispositivos com iOS 13+. Consulte a documentação oficial da Apple para a lista completa de modelos suportados.

Dispositivos Android

Compatível com a maioria dos dispositivos Android com versão 9.0 (API 28) ou superior.

Algumas extensões de fornecedores podem depender de APIs ou SKUs específicos do fabricante.

📦 Configurando o Acesso e Instalação do SDK Flutter

1. Autenticação com o Repositório Privado

Para acessar nosso SDK, você precisará autenticar seu ambiente Flutter com nosso repositório Pub privado. Durante o processo de onboarding, você receberá um token de autenticação.

Execute o seguinte comando no seu terminal. Você será solicitado a colar o token fornecido:

$ flutter pub token add https://altpub.altb.co

Após executar o comando, cole o token quando solicitado e pressione Enter.

2. Adicionando a Dependência

Com a autenticação configurada, adicione a seguinte dependência ao seu arquivo pubspec.yaml:

dependencies:
  flutter:
    sdk: flutter
  # Adicione outras dependências aqui
  
  alt_kyc_sdk_pub:
    hosted: https://altpub.altb.co
    version: ^1.0.0 # Certifique-se de usar a versão mais recente disponível

Depois de adicionar a dependência ao pubspec.yaml, execute o comando abaixo na raiz do seu projeto Flutter para instalar o pacote:

$ flutter pub get

Nota: Se o pacote não for instalado, verifique se a configuração no pubspec.yaml está correta, se o token foi adicionado com sucesso e se você executou flutter pub get.

🚨 Permissões Necessárias

O SDK requer permissões para acessar a câmera (para Liveness e Validação de Documentos) e a internet (para comunicação com os servidores).

iOS

Adicione as seguintes chaves ao arquivo Info.plist do seu projeto iOS (localizado em ios/Runner/Info.plist) para descrever o motivo do uso da câmera:

<key>NSCameraUsageDescription</key>
<string>Precisamos de acesso à câmera para realizar a prova de vida e capturar seus documentos.</string>

A permissão de internet (NSAppTransportSecurity) geralmente é configurada por padrão, mas garanta que seu aplicativo possa acessar a internet.

Android

Adicione as seguintes permissões ao seu arquivo AndroidManifest.xml (localizado em android/app/src/main/AndroidManifest.xml), dentro da tag <manifest>:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />

Para Android 6.0 (API 23) e superior, você também precisará implementar a solicitação de permissões em tempo de execução. O SDK tentará lidar com isso internamente, mas é uma boa prática estar ciente deste requisito da plataforma.

📥 Importando e Utilizando o SDK

No seu código Dart, importe o pacote:

import 'package:alt_kyc_sdk_pub/alt_kyc_sdk.dart';

Exemplo de Inicialização e Uso:

Para iniciar o processo de KYC, você chamará o método AltKycSDK.start. Este método é responsável por apresentar a interface de usuário do SDK, que guiará o cliente através dos 4 fluxos principais: Validação de Telefone, Validação de Dispositivo, Liveness e Validação de Documentos. Internamente, ao chamar AltKycSDK.start, o SDK utiliza o sistema de navegação do Flutter para apresentar uma nova sequência de telas (de forma similar a um novo MaterialApp ou um fluxo de Widgets que ocupa toda a tela), gerenciando este fluxo de forma independente. Após a conclusão do fluxo (seja por sucesso, erro ou cancelamento pelo usuário), o SDK retornará o controle para a sua aplicação.

O método AltKycSDK.start pode retornar diferentes tipos de objetos dependendo do resultado da operação:

  • Em caso de sucesso e conclusão do fluxo, ele retornará uma String contendo o sessionId.
  • Em caso de erro de fluxo (por exemplo, falha na validação, cancelamento pelo usuário, etc.), ele retornará um objeto AltKycError, que contém um id do erro e uma message descritiva.
É importante verificar o tipo do resultado para tratar cada caso adequadamente.

Conceitualmente, a integração seria da seguinte forma:


// Importe o SDK
import 'package:alt_kyc_sdk_pub/alt_kyc_sdk.dart';

// Definição conceitual da classe de erro, caso não seja exportada diretamente pelo SDK
// class AltKycError {
//   final String id;
//   final String message;
//   AltKycError({required this.id, required this.message});
// }

void iniciarFluxoKYC() async {
  try {
    // Inicialize o SDK com os dados do usuário e configurações
    final kycConfig = AltKycConfig(
      fullName: "Nome Completo do Usuário",
      cpf: "12345678900",
      email: "[email protected]",
      dateOfBirth: "YYYY-MM-DD", // ou objeto DateTime
      tenantToken: "SEU_TENANT_TOKEN_AQUI", // Token específico do seu tenant
      webhookUrl: "https://seu-backend.com/webhook/altkyc",
    );

    // Inicie o fluxo principal do SDK.
    final dynamic result = await AltKycSDK.start(config: kycConfig);

    if (result is String) {
      final String sessionId = result;
      print("Fluxo KYC concluído com sucesso. Session ID: $sessionId");
      // Armazene o sessionId para consultas futuras ao seu backend
      // Prossiga com a lógica da sua aplicação para sucesso
    } else if (result is AltKycError) {
      // Assumindo que AltKycError é uma classe importada do SDK ou definida no seu projeto
      print("Erro no fluxo KYC: ID - ${result.id}, Mensagem - ${result.message}");
      // Trate o erro de KYC específico (ex: exibir mensagem para o usuário)
    } else {
      print("Resultado inesperado do fluxo KYC: $result");
      // Trate como um erro/resultado inesperado
    }

  } catch (e) { // Catches outras exceções (ex: PlatformException, erros de rede não tratados pelo SDK)
    print("Erro crítico ao executar o fluxo KYC: $e");
    // Trate os erros apropriadamente
  }
}

Consulte a documentação completa da API do AltKycSDK para obter detalhes sobre as classes (incluindo AltKycError), métodos, configurações e callbacks disponíveis.