Skip to main content

Examples

Basic Implementation

Simple implementation with minimal setup:

import 'package:flutter/material.dart';
import 'package:azakaw_kyc_flutter/azakaw_kyc_flutter.dart';

class HomePage extends StatelessWidget {
const HomePage({Key? key}) : super(key: key);

void startKyc(BuildContext context) {
AzakawKyc.start(
context: context,
config: AzakawKycConfig(
sessionId: 'your-session-id',
environment: Environment.sandbox,
),
onComplete: () {
print('KYC Completed');
},
onCancel: () {
print('KYC Cancelled');
},
);
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('KYC Example'),
),
body: Center(
child: ElevatedButton(
onPressed: () => startKyc(context),
child: const Text('Start KYC'),
),
),
);
}
}

Complete Integration

Full implementation including session ID generation and error handling:

import 'package:flutter/material.dart';
import 'package:azakaw_kyc_flutter/azakaw_kyc_flutter.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

class KycPage extends StatefulWidget {
const KycPage({Key? key}) : super(key: key);

@override
State<KycPage> createState() => _KycPageState();
}

class _KycPageState extends State<KycPage> {
bool _isLoading = false;

Future<String?> getSessionId() async {
try {
final response = await http.post(
Uri.parse('your-api-endpoint'),
headers: {'Content-Type': 'application/json'},
body: jsonEncode({
'appId': 'your-app-id',
'appSecret': 'your-app-secret',
'tenantId': 'your-tenant-id',
}),
);

if (response.statusCode == 200) {
final json = jsonDecode(response.body);
return json['result']['sessionId'];
}
return null;
} catch (e) {
print('Error getting session ID: $e');
return null;
}
}

Future<void> startKycProcess() async {
setState(() => _isLoading = true);

try {
final sessionId = await getSessionId();
if (sessionId == null) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Failed to get session ID')),
);
return;
}

if (!mounted) return;

AzakawKyc.start(
context: context,
config: AzakawKycConfig(
sessionId: sessionId,
environment: Environment.sandbox,
isFullscreen: true,
),
onComplete: handleKycComplete,
onCancel: handleKycCancel,
);
} finally {
setState(() => _isLoading = false);
}
}

void handleKycComplete() {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('KYC Completed Successfully')),
);
}

void handleKycCancel() {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('KYC Process Cancelled')),
);
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('KYC Integration'),
),
body: Center(
child: _isLoading
? const CircularProgressIndicator()
: ElevatedButton(
onPressed: startKycProcess,
child: const Text('Start KYC'),
),
),
);
}
}

This example demonstrates:

  • Session ID generation
  • Loading state management
  • Error handling
  • Success/failure notifications
  • Fullscreen mode usage

For more specific use cases or customization options, please contact our support team.