Skip to main content

Por que não WebView?

O widget KYC usa getUserMedia para acessar a câmera em tempo real (selfie + liveness). Esse recurso é bloqueado ou instável dentro de WebViews no iOS. A solução recomendada pelo mercado (Stripe, Onfido, Plaid) é o fluxo redirect: o app abre o widget em um browser externo e recebe o resultado via deep link.

Fluxo Completo


1. Criar sessão com redirect_uri

No backend do cliente, inclua o campo redirect_uri ao criar a sessão:
Resposta quando redirect_uri está presente:
O widget_url já contém o token. Passe-o para o app — o app nunca precisa conhecer a API Key nem o session_token.
redirect_uri só aceita deep links (ex: meuapp://, com.empresa.app://). URLs com http:// ou https:// são rejeitadas por segurança.

2. Abrir o widget no app

React Native (Expo)

Instale a dependência:

React Native (bare / CLI)

Flutter


Expo (app.json)

Android (AndroidManifest.xml — bare workflow)

iOS (Info.plist)


O resultado final (approved / rejected / manual_review) chega via:
  • Webhook configurado na sessão (recomendado) — ver Webhook
  • Polling em GET /v1/verify/{verification_id} com sua API Key
O session_token nunca aparece no deep link. O deep link só contém o verification_id (UUID público), sem scores, OCR nem dados internos.

Segurança


Vantagens do fluxo redirect

  • Câmera nativa do browser — funciona em iOS e Android sem workarounds de WebView
  • Widget atualiza sem o cliente publicar nova versão do app
  • A mesma URL funciona para web e mobile
  • Padrão já conhecido por desenvolvedores (mesmo fluxo do Sign in with Google, Stripe Checkout, Plaid Link)