AIxGen Core SDK
The AIxGen Core SDK provides a comprehensive set of tools for integrating with the AIxGen platform in Flutter/Dart applications.
Features
Digital Wallet & Account Management
Multi-currency support (fiat and digital assets) API-driven onboarding with automated KYC/AML Customizable wallet configurations with spending limits Real-time transaction monitoring with AI risk assessment Webhook notifications for account events
Card Issuance & Payment Processing
Virtual and physical card issuance with custom controls Multi-gateway integration (Visa, Mastercard, Stripe, etc.) PCI-DSS compliant tokenization AI-driven fraud prevention 3D Secure (3DS2) authentication Seamless wallet and bank transfers
Rewards & Loyalty Management
Configurable point-based programs Tiered membership structures Wallet-integrated redemptions Event-triggered rewards Analytics and campaign tracking
AI-Driven Fraud Prevention
Anomaly detection with Isolation Forest & Autoencoders Graph Neural Networks for fraud relationship analysis Behavioral biometrics for account takeover prevention Real-time risk scoring with XGBoost Velocity and geolocation analysis
Security & Compliance Automation
End-to-end encryption (TLS 1.3, AES-256) Automated KYC/AML verification GDPR and PCI DSS compliance Audit logs and regulatory reporting
Webhook & API Management
Event-driven architecture Multi-tenant API support Developer dashboard with sandbox testing Customizable rate limits Webhook monitoring and debugging
All capabilities are accessible through the unified AIxGen Core SDK interface, with complete developer documentation for each module.
Installation
Add the following to your pubspec.yaml file:
dependencies:
aixgen_core: ^1.0.0
Then run:
flutter pub get
Initialization
Initialize the SDK with your developer API key:
import 'package:aixgen_core/aixgen_core.dart';
void main() async {
final sdk = AIxGenCore();
final initialized = await sdk.initialize(
apiKey: 'your_developer_api_key',
baseUrl: 'https://api.example.com',
environment: SdkEnvironment.sandbox, // or SdkEnvironment.production
);
if (initialized) {
print('SDK initialized successfully');
} else {
print('Failed to initialize SDK');
}
}
Authentication
Login
final loginResponse = await sdk.auth.login('user@example.com', 'password123');
if (loginResponse['success']) {
print('Login successful');
// Token is automatically stored in the SDK
} else {
print('Login failed: ${loginResponse['message']}');
}
MFA Verification
If MFA is enabled, verify the code:
final mfaResponse = await sdk.auth.verifyMfaCode(userId, '123456');
if (mfaResponse['success']) {
print('MFA verification successful');
} else {
print('MFA verification failed: ${mfaResponse['message']}');
}
Logout
await sdk.auth.logout(userId);
User Management
Get Current User
final user = await sdk.user.getCurrentUser();
if (user != null) {
print('Current user: ${user.email}');
}
Update User Profile
final updateResponse = await sdk.user.updateProfile(userId, {
'firstName': 'John',
'lastName': 'Doe',
});
if (updateResponse['success']) {
print('Profile updated successfully');
}
Multi-Factor Authentication
Check MFA Status
final mfaStatus = await sdk.mfa.getMfaStatus(userId);
print('MFA enabled: ${mfaStatus['enabled']}');
print('Preferred method: ${mfaStatus['preferredMethod']}');
Set Up MFA
final mfaSetup = await sdk.mfa.initiateMfaSetup(
userId,
MfaMethod.authenticatorApp,
);
print('Secret key: ${mfaSetup['secretKey']}');
print('QR code URL: ${mfaSetup['qrCodeUrl']}');
print('Recovery codes: ${mfaSetup['recoveryCodes']}');
Verify and Enable MFA
final verifyResponse = await sdk.mfa.verifyAndEnableMfa(userId, '123456');
if (verifyResponse['success']) {
print('MFA enabled successfully');
}
Disable MFA
final disableResponse = await sdk.mfa.disableMfa(userId);
if (disableResponse['success']) {
print('MFA disabled successfully');
}
Financial Products
Get All Products
final products = await sdk.products.getAllProducts();
if (products != null) {
for (final product in products) {
print('Product: ${product.name}');
}
}
Get Product by ID
final product = await sdk.products.getProductById(productId);
if (product != null) {
print('Product details: ${product.name} - ${product.description}');
}
Update Product
product.description = 'Updated description';
final updateResponse = await sdk.products.updateProduct(product.id, product);
if (updateResponse['success']) {
print('Product updated successfully');
}
Update Product Features
final featuresResponse = await sdk.products.updateProductFeatures(
productId,
['api_access', 'data_export', 'advanced_analytics'],
);
if (featuresResponse['success']) {
print('Product features updated successfully');
}
Metrics
Get API Requests
final apiRequests = await sdk.metrics.getApiRequests('monthly');
print('API requests this month: $apiRequests');
Get Total Transactions
final totalTransactions = await sdk.metrics.getTotalTransactions('monthly');
print('Total transactions this month: $totalTransactions');
Get Revenue Generated
final revenue = await sdk.metrics.getRevenueGenerated('monthly');
print('Revenue generated this month: $revenue');
Get Failed Transactions
final failedTransactions = await sdk.metrics.getFailedTransactions('monthly');
print('Failed transactions this month: $failedTransactions');
Support
Create a Ticket
final ticket = await sdk.support.createTicket(
userId,
'API Integration Issue',
'Having trouble integrating with the payment API.',
TicketType.technical,
);
if (ticket != null) {
print('Ticket created with ID: ${ticket.id}');
}
Get Ticket History
final ticketHistory = await sdk.support.getTicketHistory(userId);
print('Found ${ticketHistory.length} tickets in history');
Fraud Detection
Get All Operations
final operations = await sdk.fraud.getAllOperations();
if (operations != null) {
print('Found ${operations.length} operations for fraud analysis');
}
Execute Command
final commandResponse = await sdk.fraud.executeCommand('analyze_transactions');
if (commandResponse != null && commandResponse['success']) {
print('Command executed successfully');
}
Error Handling
The SDK uses a consistent error handling approach. All methods return either:
- The requested object(s)
- A map with
successandmessagekeys nullin case of unexpected failures
Always check the return values and implement proper error handling in your application.
Environment Switching
You can switch between sandbox and production environments:
await sdk.changeEnvironment(SdkEnvironment.production);
Logging
The SDK uses the logger package for internal logging. You can configure your own logger for more detailed information.
License
This SDK is licensed under the MIT License.