SDK incorporado ou link hospedado: escolha como integrar a verificação

Charles Archibong, Cofundador
Incorpore o SDK quando a verificação ocorrer dentro do seu produto; envie um link hospedado por candidato quando ela ocorrer fora dele. De qualquer forma, execute um fluxo de trabalho publicado para que a escolha seja sobre a entrega, e não sobre o fluxo em si.

Pontos principais
- Escolha a superfície onde a verificação ocorrerá: dentro do seu produto (incorporar) ou fora dele (link).
- Um link de sessão individual contém sua referência de usuário; um link compartilhado hospedado não permite saber quem o abriu.
- Primeiro, crie o fluxo como um fluxo de trabalho publicado, para que a incorporação e o link executem as mesmas verificações.
- Os links hospedados em um WebView relatam eventos de progresso, mas a leitura do chip NFC e a verificação de atividade nativa exigem os SDKs nativos.
Incorpore o SDK Quando a verificação ocorre dentro do seu produto, em um momento em que o usuário a acessa em sua própria sessão, envie um link hospedado quando a verificação ocorrer fora dele: um agente de crédito solicitando documentos, um comerciante sendo cadastrado por e-mail, um cliente solicitado a verificar novamente meses após o cadastro. Essa é a regra de decisão principal, e a maioria das equipes acaba precisando de ambas as abordagens.
O que torna essa opção econômica é a possibilidade de construir o fluxo uma única vez como um fluxo de trabalho publicado . Um elemento incorporado o utiliza por ID, um link executa o mesmo snapshot publicado e as verificações, a identidade visual e as regras de decisão são idênticas. Você está escolhendo uma plataforma de entrega, não um segundo fluxo de verificação para manter.
Qual é, de fato, a diferença entre os dois?
Ambas as rotas terminam no mesmo lugar. O candidato completa as etapas de captura, a plataforma processa a verificação de forma assíncrona e seu backend recebe o resultado por meio de um webhook (abre num novo separador) ou uma consulta de status. As diferenças estão em quem inicia o fluxo e no que seu código controla.
Pergunta | SDK incorporar | Link hospedado |
|---|---|---|
Por onde o candidato deve começar? | Dentro do seu aplicativo web ou móvel | UM URL aberto a partir de e-mail, SMS um código QR ou uma WebView |
O que você instala? | Um cliente SDK e uma chave publicável | Nada no cliente; uma chave secreta no seu backend para gerar links personalizados para cada candidato. |
Quem é o requerente? | Seu usuário conectado, passado como | Nomeado por |
O que você ouve em tempo real? | SDK callbacks como | Eventos de links hospedados quando a página é executada em um WebView ou iframe; caso contrário, somente seu webhook. |
Capacidades do dispositivo | Completo, incluindo NFC Leitura do chip e verificação de atividade no dispositivo nos SDKs nativos. | Funcionalidades do navegador apenas |
Alterando o fluxo | Republique o fluxo de trabalho | Republique o fluxo de trabalho |
A última linha é a que as pessoas interpretam incorretamente. Com um fluxo de trabalho, nenhuma das rotas exige alteração de código para modificar o fluxo. Sem um, incorporar um elemento significa especificar país, tipos de ID e opções de ativação/desativação de etapas como propriedades, e cada alteração se torna uma nova versão.
Quando o SDK Incorporar é a escolha certa
Incorpore a verificação quando ela for uma etapa em uma jornada que você controla e o usuário já estiver conectado. Um aplicativo de carteira que verifica um usuário antes de sua primeira transferência, ou um marketplace que verifica vendedores antes de seu primeiro anúncio, são exemplos disso.
Você obtém três coisas que um link não pode lhe dar.
Callbacks no seu próprio código. O SDK ligaçõesonSubmitcom umverificationIdAssim que a verificação for criada, você poderá mover o usuário para uma tela pendente sem esperar por um webhook.onErrorRelata falhas técnicas (rede, permissão da câmera, tipo de ID desativado) com estabilidade.code.
Capacidade nativa do dispositivo. Os SDKs React Native e Flutter (abre num novo separador) leem chips de passaporte. NFC e executar testes de desempenho no dispositivo. Os navegadores não conseguem se comunicar com o chip do passaporte, então a web SDK A tela do chip é exibida apenas na pré-visualização do construtor de painéis.
Identidade que você já possui. Você passauserIdeuserDataA partir da sua sessão, a verificação é vinculada a uma conta conhecida e o nome que você possui é comparado com o documento.
Um exemplo mínimo de conteúdo incorporado na web, retirado de SDK documentação:
<MyazaKYC
apiKey="pk_live_…"
workflowId="wf_AbC123dEf456"
userId="user_42"
metadata={{ requestId: "order_1001" }}
onSubmit={(s) => console.log(s.verificationId)}
/>Os custos são reais, mas modestos. Você adiciona uma dependência e a mantém na versão mínima ou acima da versão suportada.workflowId(web 2.2.0, React Native 2.1.0, Flutter 2.2.0 ou posterior), e no React Native você precisa de uma versão de desenvolvimento personalizada porque o SDK código nativo de navios.
Quando um link hospedado é a escolha certa
Envie um link quando a pessoa que você precisa verificar não estiver no seu aplicativo no momento em que você precisa dela. Alguns formatos comuns:
Uma instituição financeira que cobra empréstimos comerciais. KYC de um diretor que nunca acessou nada.
Uma equipe de operações verifica novamente a validade do documento de um cliente.
Uma plataforma sem aplicativo móvel, que verifica os usuários que chegam por e-mail.
Um canal de parceiros onde você não pode enviar código de forma alguma.
Existem dois tipos de link, e escolher entre eles é mais importante do que escolher entre link e link incorporado.
Links para as sessões individuais de cada candidato
Quando souber quem deve verificar, crie uma sessão a partir do seu backend comPOST /api/kyc/sessions (abre num novo separador)e uma chave secreta:
curl "https://api.toden.co/api/kyc/sessions" \
-H "Authorization: Bearer $MYAZA_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"workflowId": "wf_AbC123dEf456",
"externalUserId": "user_42",
"userData": { "firstName": "John", "lastName": "Doe" }
}'A resposta contém umurlque pertence a esse candidato específico. É de uso único e rastreável até você.externalUserIdE como já foi enviado, não funciona se você o encaminhar para outra pessoa. Você pode passar.emailPara que o link seja enviado em seu nome, ou para que você mesmo o envie.
Visitantes em computadores que acessam uma página hospedada recebem um código QR "continue no seu celular" para as etapas da câmera, de forma que um link enviado por e-mail para alguém em um laptop ainda alcance a câmera. (A web) SDK possui a mesma transferência de controle na área de trabalho, controlada por seudeviceHandoffopção.)
Dois detalhes importantes a considerar no planejamento. O link para de aceitar um novo início emexpiresAt24 horas para fluxos individuais e 7 dias para fluxos de negócios, a menos que o fluxo de trabalho defina seu próprio tempo de vida da sessão. E a configuração que o solicitante utiliza é o snapshot publicado, congelado no momento em que você criou o link; portanto, uma republicação nunca altera um link que já está na caixa de entrada de alguém.
links hospedados compartilhados
Cada fluxo de trabalho publicado também pode ser ativado como um fluxo público. URL que muitas pessoas abrem, cada visita iniciando sua própria verificação. É ideal para uma campanha ou um código QR em um balcão, onde você realmente não sabe quem vai aparecer. A desvantagem é a atribuição: o link não carrega nenhuma referência a um usuário em seu sistema, então você precisa conciliar os resultados de alguma outra forma. Regenerar o link a partir da página do fluxo de trabalho elimina o antigo. URL Imediatamente, que é o seu recurso caso a informação se espalhe mais do que o pretendido. Se você conhece a pessoa, utilize uma sessão.
O caminho do meio: um link hospedado dentro do seu aplicativo.
Algumas equipes preferem que a página seja hospedada por nós, mas aberta dentro de seu próprio aplicativo móvel, geralmente para evitar uma dependência nativa. Isso funciona. Abra a sessão.urlemreact-native-webview,webview_flutterou um iframe, e a página reporta seu progresso ao host como eventos de link hospedados (abre num novo separador) :ready,started,step,submitted,completed,erroreclosed.
<WebView
source={{ uri: session.url }}
onMessage={(event) => {
const message = JSON.parse(event.nativeEvent.data);
if (message.source !== 'myaza-kyc') return;
if (message.type === 'submitted') {
navigation.replace('VerificationPending', { id: message.verificationId });
}
}}
/>Conheça os limites antes de escolher. NFC A leitura do chip, a verificação de presença em segundo plano e a detecção de atividade nativa não estão disponíveis em uma WebView. Os eventos contêm IDs, nomes de etapas e códigos de erro, nunca informações digitadas ou capturadas pelo candidato, e são uma cortesia da sua interface, não do registro. O veredito ainda vem do seu webhook ou de uma consulta de status.
Em um iframe, adicione a origem da sua página como um parâmetro.originparâmetro de consulta. A página envia eventos somente quando o navegador confirma que sua página é realmente o incorporador e não envia nada caso contrário.
Uma decisão elaborada
Considere uma hipotética instituição financeira que concede empréstimos a consumidores, com um aplicativo móvel e uma equipe de vendas externas. Novos clientes realizam a verificação dentro do aplicativo antes de solicitarem o primeiro empréstimo, portanto, o aplicativo incorpora o React Native. SDK Com um fluxo de trabalho publicado que inclui a leitura do chip do passaporte. Os agentes de campo cadastram os traders nos mercados que ainda não instalaram o aplicativo, então o sistema cria uma sessão para cada trader com o ID de contato do trader comoexternalUserIde o agente envia o link por SMS Os clientes cujo ID expira posteriormente recebem um novo link de sessão da equipe de operações.
Um único fluxo de trabalho pode atender a todos os três, ou o credor pode manter um fluxo de trabalho mais simples para os links de campo. De qualquer forma, todos os resultados chegam ao mesmo manipulador de webhook, identificado porverificationIde carregando o próprio credorexternalUserId.
A regra de decisão
Crie o fluxo como um fluxo de trabalho publicado antes de escolher uma superfície.
Se o usuário estiver conectado ao seu produto no momento da verificação, incorpore o SDK Use um nativo SDK se você precisar NFC Leitura de chip.
Se a verificação ocorrer fora do seu produto e você conhecer a pessoa, crie uma sessão por candidato a partir do seu sistema interno.
Utilize um link de hospedagem compartilhada somente quando não tiver certeza de quem o abrirá e planeje como atribuirá os resultados.
Se você deseja uma página hospedada dentro do seu aplicativo, abra a sessão. URL Em uma WebView, fique atento a eventos de links hospedados, aceitando a perda da leitura do chip e da funcionalidade nativa de transmissão de dados.
Independentemente da sua escolha, considere o webhook como a fonte da verdade e o sinal do lado do cliente como uma dica.
Fontes

Charles Archibong
Cofundador
Charles Archibong é cofundador da Toden. Ele escreve sobre verificação de identidade, tecnologia financeira e o trabalho prático de construção de serviços digitais confiáveis.


