SDK Captura de documentos iOS

Última atualização: 10 de Novembro de 2023

Introdução

Os SDKs de Captura de Documentos permitem a realização de capturas pelo usuário dentro de sua aplicação. Essas capturas passam por validações que identificam o tipo de documento e que avaliam a qualidade da imagem capturada, instruindo o usuário através de feedbacks visuais.

Todas as informações coletadas são dados relacionados apenas ao dispositivo do usuário.

É necessário que o usuário conceda permissão de acesso à câmera do dispositivo para capturar e enviar seu documento.

iOS

Requisitos

  • Versão do sistema operacional iOS: 12.0 ou superior.
  • Versão do projeto Swift 4+: funciona com Xcode anterior ao 13.
  • Espaço em disco: 18.5mb

Instalação do Pacote

  • CocoaPods

Para adicionar o SDK ao seu projeto utilizando Cocoapods basta adicionar o seguinte comando ao seu Podfile:

Instalação em ambiente de desenvolvimento e testes

platform :ios, '12.0'

use_frameworks!

target 'NOME_DO_SEU_PROJETO' do
pod 'CSDocumentoscopySDK', :git => 'URL DO REPOSITÓRIO ENVIADO PELA CLEARSALE', :tag => '2.0.0-hml'
end

Instalação em ambiente de produção

platform :ios, '12.0'

use_frameworks!

target 'NOME_DO_SEU_PROJETO' do
pod 'CSDocumentoscopySDK', :git => 'URL DO REPOSITÓRIO ENVIADO PELA CLEARSALE', :tag => '2.0.0'
end

Configuração

Instruções para configuração do framework no projeto:

  1. Adicionar as seguintes entradas ao arquivo Info.plist do projeto de destino:
  2. <key>NSCameraUsageDescription</key>
    <string>This app requires access to the camera.</string>

Classe CSDocumentoscopySDK

Descrição

CSDocumentoscopySDK é a classe responsável pela inicialização do SDK.

Atributo/Função Descrição
delegate Delegate responsável por retornar os feedbacks do SDK para o usuário que o implementa.
initialize Função que chama o SDK.

Método initialize

Descrição

initialize é responsável pela inicialização do SDK e necessita de certos parâmetros para que consiga realizar sua tarefa.

Parâmetros Descrição
clientId: String Id que identifica o cliente junto à ClearSale (valor fornecido pela ClearSale).
clientSecret: String Token que funciona como autenticação para identificação do cliente a utilizar o serviço (valor fornecido pela ClearSale).
identifierId: String Identifier ID é uma string de até 100 caracteres OBRIGATÓRIA que identifica todo o fluxo do usuário de forma única e é gerada pela entidade. Serve para agilizar consultas e chamados feitos pela entidade (e pode ser utilizada como identificador interno entre produtos aqui da ClearSale).
cpf: String É uma string de 11 caracteres OPCIONAL (no formato CPF) do usuário que irá realizar o fluxo, devendo seguir as regras de validade estipuladas pelo Governo.
navigationController: UINavigationController Navigation Controller do projeto.

Classe CSDocumentoscopySDKDelegate

Descrição

Para acessar a resposta do processamento da ClearSale ou erros durante o processo é disponibilizado o delegate CSDocumentoscopySDKDelegate.


Construtores

Esta classe não possui um construtor público.


Eventos do Fluxo
Nome do Evento Descrição Obrigatoriedade
didOpen() Este evento é acionado sempre que o SDK é iniciado. Opcional
didTapClose() Este evento é acionado sempre que o usuário sai de forma intencional do SDK. Opcional
Eventos de Sucesso
Nome do Evento Descrição Obrigatoriedade
didFinishCapture(result: CSDocumentoscopySDKResult) Ao concluir todo o fluxo e enviar as imagens com sucesso para o servidor, o SDK se encerra automaticamente após 2 segundos, acionando este evento. Requerido
Eventos de Erro
Nome do Evento Descrição Obrigatoriedade
didReceiveError(error: CSDocumentoscopySDKError) Ao ocorrerem erros mapeados, este evento será chamado logo após o fechamento automático do SDK. Requerido

Classe CSDocumentoscopySDKError

Parâmetros

Esta classe possui os seguintes parâmetros.


Parâmetro Descrição
case: CSDocumentoscopySDKError Enum interno de error.
text: String Texto descritivo do error.
errorCode: Int Código interno do error.

Enum CSDocumentoscopySDKError

Descrição

Representa os possíveis erros que serão retornados pelo CSDocumentoscopySDKError

Cases

Este enum possui os seguintes cases:


Nome do case Descrição
noData Acontecerá quando ao solicitar ao SDK as fotos armazenadas em memória, seja para enviar para o backend ou qualquer outro uso, ocorrer um erro por elas não estarem mais armazenadas.
errorParsable Acontecerá ao tentar converter o arquivo do tipo Imagem para Base64 e por qualquer motivo, o processo falhar.
noInternetConnection Acontecerá quando qualquer chamada à API for solicitada e o usuário não estiver com internet ativa.
authenticationFailure Acontecerá se ao tentar autenticar o usuário a request falhar.
invalidCPF Acontecerá ao tentar iniciar o SDK passando um CPF inválido.
invalidIdentifierId Acontecerá ao passar um identifierID fora do formato esperado.
internalError Acontecerá caso ocorra um erro interno.
switchContext Acontecerá quando a aplicação entrar em background durante o o fluxo do usuário.

Classe CSDocumentoscopySDKResult

Parâmetro

Esta classe possui os seguintes parâmetros.


Parâmetro Descrição
sessionId: String ID único da sessão, utilizado para a recuperação da imagem).
documentType: CSDocumentoscopySDKDocumentType Resultado do tipo do documento sendo RG ou CNH

Exemplos

Faça a importação da biblioteca em sua classe.

import CSDocumentoscopySDK

Instancie o SDK passando os parâmetros pedidos, conforme exemplo abaixo.

let sdk = CSDocumentoscopySDK()
sdk.delegate = self
sdk.initialize(
    clientId: "PARÂMETRO ENVIADO PELA CLEARSALE",
    clientSecret: "PARÂMETRO ENVIADO PELA CLEARSALE",
    identifierId: "PARÂMETRO GERADO PELO CLIENTE",
    cpf: "CPF DO USUÁRIO",
    navigationController: "NAVIGATION CONTROLLER DO PROJETO")

Implementação do Delegate

Estenda o protocolo CSDocumentoscopySDKDelegate e implemente seus métodos, para receber os retornos do SDK, como no exemplo abaixo.

extension Classe: CSDocumentoscopySDKDelegate {
    func didOpen() { }
    func didTapClose() { }
    func didFinishCapture(result: CSDocumentoscopySDKResult) { }
    func didReceiveError(error: CSDocumentoscopySDKError) { }
}