alvincoded / laravel-mtn-momo-ai
A Laravel package for integrating MTN Mobile Money API with AI capabilities
Fund package maintenance!
alvincoded
Requires
- php: >=8.1
- deepseek-php/deepseek-php-client: ^1.0
- google-gemini-php/laravel: ^1.0
- guzzlehttp/guzzle: ^7.9
- illuminate/support: ^9.0|^10.0|^11.0
- laravel/framework: ^9.46.0|^10.34.2|^11.23.5
- mozex/anthropic-laravel: ^1.1
- openai-php/client: ^0.10.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.68
- mockery/mockery: ^1.6
- nunomaduro/larastan: ^2.0
- orchestra/testbench: 7.0|^8.0|^9.0|^10.0|^11.0
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.0|^10.0
- rector/rector: ^0.19
- symfony/var-dumper: ^6.0|^7.0
This package is auto-updated.
Last update: 2025-05-12 14:44:22 UTC
README
A powerful Laravel package that integrates MTN Mobile Money API with AI capabilities, providing intelligent transaction analysis, fraud detection, and more!
Features ๐
- ๐ณ Seamless integration with MTN MOMO API (Collections, Disbursements, Remittances)
- ๐ง AI-powered transaction analysis using multiple LLM models (ChatGPT, Claude, Gemini)
- ๐ต๏ธ Intelligent fraud detection
- ๐ Cash flow forecasting
- ๐ Smart retry mechanisms for failed transactions
- ๐ Natural language command parsing
- ๐ Automated reporting
- โฑ๏ธ Smart disbursement scheduling
- ๐จ Anomaly detection in transactions
- ๐ง API call optimization
Prerequisites
Before getting started with the MTN MOMO AI package, you'll need:
MTN MOMO API Requirements
-
MTN MOMO Developer Account
- Sign up at MTN MOMO Developer Portal
- Complete the verification process
- Store your API credentials safely
-
API Subscription
- Subscribe to one or more MTN MOMO products:
- Collections
- Disbursements
- Remittances
- Get your Subscription Key from your developer profile
- Subscribe to one or more MTN MOMO products:
AI Model Requirements
You'll need at least one of these API keys:
- OpenAI API Key (for ChatGPT)
- Anthropic API Key (for Claude)
- Google Gemini API Key (for Gemini)
- Deepseek API Key (for Deepseek)
System Requirements
- PHP 8.1 or higher
- Laravel 9.x|10.x|11.x
- Composer
Environment Setup
Make sure your server/hosting environment:
- Allows outbound HTTPS connections
- Has sufficient memory for AI operations
- Supports background job processing (for notifications)
Installation ๐ฆ
Requires PHP 8.1+
You can install the package via composer:
composer require alvincoded/laravel-mtn-momo-ai
After installation, run the package's installation command:
php artisan mtn-momo-ai:install
This command will guide you through the setup process, including publishing the configuration file and setting up your environment variables.
Configuration โ๏ธ
The package configuration file will be published to config/mtn-momo-ai.php
. You can modify the settings there or use environment variables in your .env
file.
Environment Variables
# MTN MOMO API Configuration MTN_MOMO_API_USER=your_api_user_id # Randomly generated UUID MTN_MOMO_API_KEY=your_api_key MTN_MOMO_SUBSCRIPTION_KEY=your_subscription_key MTN_MOMO_PROVIDER_CALLBACK_HOST=http://localhost MTN_MOMO_BASE_URL=https://sandbox.momodeveloper.mtn.com MTN_MOMO_ENVIRONMENT=sandbox MTN_MOMO_DEFAULT_CURRENCY=EUR # AI Model API Keys OPENAI_API_KEY=your_openai_key ANTHROPIC_API_KEY=your_anthropic_key GEMINI_API_KEY=your_gemini_key DEEPSEEK_API_KEY=your_deepseek_key # Default LLM Configuration DEFAULT_LLM=ChatGPT REPORTING_LLM=ChatGPT # Alerting Configuration MTN_MOMO_ALERT_EMAIL=alerts@example.com
Usage ๐ ๏ธ
Basic Usage
use AlvinCoded\MtnMomoAi\Facades\MtnMomoAi; // Analyze a transaction $analysis = MtnMomoAi::analyzeTransaction('transaction123'); // Request to pay $result = MtnMomoAi::requestToPay(100, 'EUR', 'ext123', 'party123', 'Payment', 'Note'); // Transfer (Disbursement) $result = MtnMomoAi::transfer(100, 'EUR', 'ext123', 'party123', 'Payment', 'Note'); // Remittance $result = MtnMomoAi::remit(100, 'EUR', 'ext123', 'party123', 'Payment', 'Note');
AI-Enhanced Features
// Detect fraud $fraudAnalysis = MtnMomoAi::detectFraud($transactionData); // Forecast cash flow $forecast = MtnMomoAi::forecastCashFlow('1month'); // Parse natural language command $result = MtnMomoAi::parseNaturalLanguageCommand('Send 100 EUR to John Doe'); // Generate report $report = MtnMomoAi::generateReport($startDate, $endDate); // Detect anomalies $anomalies = MtnMomoAi::monitorTransactions();
Currency Configuration
// Using default currency MtnMomoAi::scheduleDisbursement(100, 'recipient123'); // Specifying a different currency MtnMomoAi::scheduleDisbursement(100, 'recipient123', 'EUR');
Transaction Analysis
// Detailed transaction analysis $analysis = MtnMomoAi::analyzeTransaction('transaction123'); // Returns AI-powered insights about the transaction // Fraud detection with custom parameters $fraudAnalysis = MtnMomoAi::detectFraud([ 'amount' => 1000, 'currency' => 'EUR', 'recipient' => 'user123', 'timestamp' => now(), 'location' => 'GH' ]);
Smart Retry Mechanism
// Retry failed transaction with AI-optimized strategy $retryResult = MtnMomoAi::smartRetry([ 'product' => 'collection', 'amount' => 100, 'currency' => 'EUR', 'externalId' => 'ext123', 'partyId' => 'party123', 'payerMessage' => 'Payment', 'payeeNote' => 'Note' ]);
Error Handling
The package includes comprehensive error handling:
try { $result = MtnMomoAi::requestToPay(100, 'EUR', 'ext123', 'party123', 'Payment', 'Note'); } catch (\AlvinCoded\MtnMomoAi\Exceptions\MtnMomoApiException $e) { // Handle API-specific errors $errorDetails = $e->getResponseBody(); } catch (\Exception $e) { // Handle general errors }
AI Model Selection
// Use default model from config $analysis = MtnMomoAi::analyzeTransaction('transaction123'); // Specify a particular model $analysis = MtnMomoAi::analyzeTransaction('transaction123', 'Claude'); $fraudCheck = MtnMomoAi::detectFraud($transactionData, 'Gemini'); $forecast = MtnMomoAi::forecastCashFlow('1month', 'ChatGPT');
API Reference ๐
MTN MOMO API Methods
requestToPay($amount, $currency, $externalId, $partyId, $payerMessage, $payeeNote)
getCollectionTransactionStatus($referenceId)
getAccountBalance()
getAccountHolder($accountHolderId, $accountHolderIdType)
transfer($amount, $currency, $externalId, $payee, $payerMessage, $payeeNote)
getDisbursementTransactionStatus($referenceId)
remit($amount, $currency, $externalId, $payee, $payerMessage, $payeeNote)
getRemittanceTransactionStatus($referenceId)
AI-Enhanced Methods
analyzeTransaction($transactionId)
detectFraud($transactionData)
smartRetry($failedTransaction)
forecastCashFlow($timeframe)
parseNaturalLanguageCommand($command)
generateReport($startDate, $endDate)
scheduleDisbursement($amount, $recipient)
monitorTransactions()
optimizeApiCalls($endpoint)
handleError($errorCode, $context)
Testing ๐งช
To run the package tests:
composer test
Contributing ๐ค
Contributions are welcome! Please see CONTRIBUTING.md for details.
Security ๐
Please review our security policy on how to report security vulnerabilities.
Changelog
Please see CHANGELOG for more information on what has changed recently.
Credits ๐
- OpenAI PHP by Nuno Maduro
- Anthropic Laravel by Mozex
- Gemini PHP for Laravel by Fatih AYDIN
- DeepSeek PHP Client by Omar AlAlwi
License ๐
The MIT License (MIT). Please see License File for more information.
Support ๐ฌ
For support, please open an issue in the GitHub repository.