naya_id 0.1.2
naya_id: ^0.1.2 copied to clipboard
SDK Flutter officiel de Naya ID — vérification d'identité (eKYC) clé en main pour l'Afrique de l'Ouest. Capture de document, OCR, selfie avec liveness on-device et décision, dans une UI complète prête [...]
naya_id #
SDK Flutter officiel de Naya ID — vérification d'identité (eKYC) clé en main pour l'Afrique de l'Ouest.
Un appel, une UI complète : capture du document (recto + verso), selfie avec liveness on-device (ML Kit), décision — puis retour à votre application avec un résultat typé. L'envoi du document et l'OCR serveur s'exécutent en arrière-plan pendant le selfie ; les données extraites (ocrData) sont retournées dans le résultat, à faire confirmer par votre propre UI si votre parcours l'exige.
Pays couverts : Bénin, Côte d'Ivoire, Sénégal, Mali, Burkina Faso, Togo. Documents : CNI (CEDEAO), passeport, permis de conduire.
Installation #
dependencies:
naya_id: ^0.1.0
Android #
minSdkVersion≥ 21 (défaut Flutter — rien à faire dans la plupart des projets).- La permission caméra est déclarée par le SDK ; elle est demandée à l'utilisateur au premier écran de capture.
iOS #
Ajoutez la description d'usage caméra dans ios/Runner/Info.plist :
<key>NSCameraUsageDescription</key>
<string>Nécessaire pour capturer votre document d'identité et votre selfie de vérification.</string>
Plateforme minimale : iOS 15.5 (exigence ML Kit) — dans ios/Podfile :
platform :ios, '15.5'
Utilisation #
import 'package:naya_id/naya_id.dart';
final result = await NayaId.startVerification(
context,
apiKey: 'naya_live_xxx', // clé d'application, dashboard Naya
config: const NayaConfig(
country: NayaCountry.bj, // optionnel — sinon l'utilisateur choisit
documentTypes: [NayaDocument.cni], // optionnel — filtre les documents proposés
locale: NayaLocale.fr, // fr (défaut) ou en
callbackUrl: 'https://api.monclient.com/kyc/callback', // optionnel, voir ci-dessous
),
);
switch (result.status) {
case NayaStatus.approved:
// result.riskScore, result.matchScore, result.ocrData…
case NayaStatus.review:
// décision finale ultérieure — notifiée sur callbackUrl
case NayaStatus.rejected:
case NayaStatus.cancelled:
case NayaStatus.error:
}
NayaConfig #
| Champ | Défaut | Description |
|---|---|---|
country |
null |
Pré-sélectionne le pays (saute l'étape de choix si documentTypes n'a qu'une entrée) |
documentTypes |
tous | Types de documents proposés |
countries |
tous | Pays proposés quand country est nul |
locale |
fr |
Langue de l'interface (fr/en) |
callbackUrl |
null |
URL HTTPS notifiée par le serveur Naya à chaque décision sur la session |
maxAttempts |
2 |
Parcours autorisés après un rejet (« Réessayer ») |
primaryColor / accentColor |
charte Naya | Personnalisation légère des couleurs |
clientLogo |
null |
Logo affiché sur l'écran de bienvenue |
baseUrl |
prod | À ne changer que pour un environnement de test |
NayaResult #
status (approved/review/rejected/cancelled/error), verificationId (à rapprocher du dashboard et des callbacks), scores (riskScore, matchScore, authenticityScore, livenessScore, ocrConfidence), ocrData (identité extraite — la confirmation/correction éventuelle est à la charge de votre application) et note.
Callback serveur (par session) #
Si callbackUrl est fourni, le serveur Naya notifie votre backend à chaque décision — y compris quand un dossier parti « en revue » est tranché par un analyste des heures plus tard :
verification.completed— décision automatique au moment du parcours ;verification.reviewed— décision d'un analyste après revue manuelle.
Les requêtes sont signées (X-Naya-Signature, HMAC-SHA256) et rejouées 3 fois en cas d'échec.
Liveness on-device #
Pendant le selfie, ML Kit vérifie la présence d'un visage puis impose un défi actif (clignement des yeux, rotation de la tête). L'analyse s'exécute sur l'appareil : la photo n'est transmise qu'une fois le défi validé.
Exemple #
Une application de démonstration complète se trouve dans example/ :
cd example && flutter run
Licence #
© 41devs — tous droits réservés.