Documentação Técnica

Onboarding

Nossa solução para validação de identidade possui três fluxos diferentes:

FluxoFinalidade
DocumentoCaptura o documento de seu usuário, garante a qualidade da imagem e extrai as informações desejadas.
Prova de VidaRealiza a captura biométrica com prova de vida.
CompletoRealiza a captura de documento, garante a qualidade da imagem, extrai as informações desejadas, faz a captura biométrica com prova de vida e também efetua a comparação de faces (Face Match).

Compatibilidade

O nosso SDK de Onboarding para iOS possui apenas um requisito de compatibilidade:

  • Software - iOS 15 ou superior.

Como Instalar

Opção 1: Swift Package

Para adicionar nosso pacote ao seu projeto, basta incluir essa URL: <https://gitlab.com/BigDataCorp/apps-public-repo/mobile/ios-liveness-sdk-package>


Opção 2: XCFramework

Você deve selecionar o projeto no navegador de arquivos e, na aba General, na parte de Frameworks, Libraries and Embedded Content, inserir o .xcframework descompactado, arrastando o arquivo ou clicando no botão +. Não esqueça de colocar a opção Embed & Sign.

Exemplo de adição

Como Usar

Em seu arquivo, faça o import do framework BDCOnboardingKit. Para iniciar a captura, utilize o método BDCOnboardingManager.shared.start(). Nele, passe o token de autenticação, o tipo de onboarding (captura de documento, prova de vida ou ambos), um id para identificação do usuário final e quem é o delegate que vai ser notificado ao fim da sessão. Esse mesmo delegate deve implementar o protocolo BDCOnboardingDelegate com seus dois métodos: didCompleteCaptureSession() e didFailCaptureSession().

import UIKit
import BDCOnboardingKit

class ViewController: UIViewController, BDCOnboardingDelegate {
  
  let token = ""

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        BDCOnboardingManager.shared.createSession(withToken: token,
                                                  webhookClientId: "")
      
        BDCOnboardingManager.shared.start(.complete, withDelegate: self)
    }

    func didCompleteCaptureSession(with result: BDCOnboardingResult) {}
    
    func didFailCaptureSession(with error: BDCOnboardingError) {}

}

Três Fluxos

O parâmetro BDCOnboardingType determina qual fluxo será apresentado ao usuário.

FluxoParâmetro
Documento.documentCapture
Prova de Vida.biometricCapture
Completo.complete

Interpretando o Resultado

Tipos de Falha

Caso aconteça qualquer erro durante a sessão de captura, o método didFailCaptureSession() será chamado e você terá acesso ao objeto BDCOnboardingError, que possui a propriedade description. BDCOnboardingError é na verdade um enum com os seguintes casos:

ErroDescrição
.authenticationFailedAuthentication failed. Please check your token and the network connection.
.unexpectedAn unexpected error occurred. Please try again.
.timeOutUser's request timed out.
.userCancelledThe process was cancelled by the user.
.maxRetriesUser's number of retries was reached. Please try again.
.invalidRequestAn invalid request occurred. Please try again.
.networkConnectionNetwork connection error. Please try again.
func didFailCaptureSession(with error: BDCOnboardingError) {
  	print(error.description)
 }

Sucesso

Caso o usuário complete a sessão de captura, o método didCompleteCaptureSession() será chamado e você terá acesso ao objeto BDCOnboardingResult. Esse objeto representa o resultado da sessão com todas as informações que retornamos.

func didCompleteCaptureSession(with result: BDCOnboardingResult) {
     print(result.onboardingId)
}
CampoDescriçãoTipo
onboardingIdIdentificador único de cada sessão de captura, importante para rastrear o que aconteceu em cada processo.String