KYC Docs Get credentials
Docs › Blink SDK › React Native

React Native

A drop-in verification view for React Native apps, built on react-native-vision-camera. Your backend creates the session; the view runs the capture.

package @blink-kyc/react-native 1.3.0 peer react-native-vision-camera Expo dev client

Plugin installation

terminalshell
npm install @blink-kyc/react-native react-native-vision-camera

The package is not on the public npm registry; access is set up together with your credentials. It builds its sources when installed — if your npm blocks install scripts, allow them for this package:

terminalshell
npm install-scripts approve @blink-kyc/react-native

Expo

The SDK contains native camera code, so Expo Go cannot run it. Use a development build:

terminalshell
npx expo prebuild     # generates ios/ and android/
npm run ios           # or: npm run android

The vision-camera config plugin writes the camera permission strings for both platforms from app.json.

Verification flow

VerifyScreen.tsxtsx
import { BlinkKycView } from '@blink-kyc/react-native';

export function VerifyScreen({ sessionToken, sessionId }: { sessionToken: string; sessionId: string }) {
  return (
    <BlinkKycView
      baseUrl="https://kyc-api.blink-pay.net"
      sessionToken={sessionToken}
      document={{ type: 'PASSPORT' }}   // or document={true} to let the customer choose
      face
      theme={{ accent: '#15803d' }}
      onProgress={(p) => console.log(p.step)}
      onComplete={(verdict) => confirmOnBackend(sessionId, verdict)}
      onError={(error) => console.warn(error.code)}
    />
  );
}

onComplete receives the device copy of the verdict. Confirm it on your backend with the Result API before acting.

If you don't want the drop-in view, the SDK also offers headless APIs (runBlinkFlow and the useBlinkKyc hook), which don't need vision-camera.

Test on a real device. Document capture needs a real camera.