Skip to content

feat(react-native-expo): add EU L2 KYC flow - #28

Open
rohan-stripe wants to merge 1 commit into
mainfrom
rohang/eu-kyc-flow
Open

feat(react-native-expo): add EU L2 KYC flow#28
rohan-stripe wants to merge 1 commit into
mainfrom
rohang/eu-kyc-flow

Conversation

@rohan-stripe

@rohan-stripe rohan-stripe commented Jun 10, 2026

Copy link
Copy Markdown

Summary

Add EU L2 KYC flow for the React Native (Expo) example app:

  • New screens: EuKYCScreen (basic info), EuIdentifiersScreen (MiCA/CARF national identifiers), EuAttestationScreen (ToS acceptance), EuVerifyDocsScreen (document verification)
  • Update KYCPrimerScreen with a country-of-residence picker that routes EU countries to the EU flow and US to the existing US flow
  • Update RegisterScreen with EU country chip selector
  • Add kycRegion setting to SettingsContext for demo configuration
  • Add comprehensive EU identifier data (CARF_IDENTIFIERS, CARF_COUNTRY_TO_TYPE) and EU_COUNTRIES set
  • Register all new screens in AppNavigator

Test plan

  • Set kycRegion = eu in Settings, register with an EU country, confirm KYC Primer shows EU requirements and routes to EU flow
  • Step through: EU identity info → identifiers → attestation → verify docs
  • Set kycRegion = us, confirm existing US flow is unaffected
  • Verify country picker in KYCPrimer defaults to the registration country

Comment on lines +33 to +34
const [phone, setPhone] = useState(settings.kycRegion === 'eu' ? '+' : '+1');
const [country, setCountry] = useState(settings.kycRegion === 'eu' ? '' : 'US');

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://docs.stripe.com/crypto/onramp/embedded-components-integration-guide?platform=web#step-register-a-new-link-user-if-needed
you now need to consider the country the user is in, providing US will guide through US flow and providing an EU based country will trigger EU verification flow.

@@ -0,0 +1,298 @@
import React, { useState } from 'react';

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Implements the full EU KYC verification flow using the @stripe/stripe-react-native
SDK (v0.67.0). EU users must complete L2 verification (mandatory) including:

- Basic KYC info with nationalities, birth city/country (attachKycInfo)
- CARF TIN and MiCA identifier collection (retrieveMissingIdentifiers + submitIdentifiers)
- CRS/CARF attestation (presentUserAttestation)
- Document + selfie verification (presentKycInfoVerification)

Also adds:
- US/EU region toggle in demo Settings (EU forces L2 tier)
- EUR source currency support throughout the payment flow
- Country picker on registration screen for EU users
- Scrollable layouts for screens with long content

Committed-By-Agent: claude
@rohanspersonalgit rohanspersonalgit changed the title Rohang/eu kyc flow feat(react-native-expo): add EU L2 KYC flow Aug 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants