Dolipesa 1.0.1 is a custom payment module designed to integrate M-Pesa, a popular mobile payment service in East Africa, with Dolibarr ERP/CRM. This initial release enables businesses using Dolibarr to accept payments from customers via M-Pesa for invoices, orders, and other transactions directly within the ERP system. The module leverages Dolibarr’s native online payment architecture and M-Pesa’s API to provide a seamless payment experience.
- Upload the `dolipesa-1.0.1.zip` file and click **Install**.
- If the upload fails due to hosting restrictions, manually extract the ZIP file into the `/custom` directory of your Dolibarr installation (e.g., `/var/www/dolibarr/custom/dolipesa`).
3.**Activate the Module**
- Go to **Home > Setup > Modules**.
- Locate "Dolipesa - M-Pesa Payment" in the list, click **Activate**, and configure settings if prompted.
#### Configuration
1.**Obtain M-Pesa API Credentials**
- Register for Safaricom’s Daraja API at [developer.safaricom.co.ke](https://developer.safaricom.co.ke).
- Generate a Consumer Key, Consumer Secret, and Passkey.
- Provide a callback URL (e.g., `https://your-dolibarr-domain.com/custom/dolipesa/callback.php`).
- Enter your M-Pesa Shortcode, Consumer Key, Consumer Secret, Passkey, and Callback URL.
- Save the settings.
3.**Test the Integration**
- Create a test invoice in Dolibarr.
- Access the public payment page (e.g., `https://your-dolibarr-domain.com/public/payment/newpayment.php?source=invoice&ref=INVREF`).
- Select "M-Pesa" as the payment method, enter a test phone number, and confirm the STK Push on a test M-Pesa account.
#### Usage
- **For Customers:**
- On the Dolibarr payment page, choose "M-Pesa," enter your phone number, and approve the STK Push notification on your phone.
- **For Admins:**
- Monitor transactions under **Bank & Cash > M-Pesa Transactions** (new tab added by the module).
#### Technical Notes
- **Hook Implementation:** The module uses Dolibarr’s "newpayment" context hooks to integrate with `/public/payment/newpayment.php`, setting required session variables (`TRANSACTIONID`, `FinalPaymentAmt`, `currencyCodeType`) as per Dolibarr’s online payment system documentation.
- **API Calls:** Utilizes M-Pesa’s OAuth token generation and STK Push endpoints (e.g., `https://sandbox.safaricom.co.ke/mpesa/stkpush/v1/processrequest` for testing).
- **Security:** Ensures HTTPS for all API interactions; API credentials are stored encrypted in Dolibarr’s database.
#### Known Limitations (1.0.1)
- Supports only single-currency transactions (KES).
- Basic error handling; no retry mechanism for failed STK Push attempts.
- Sandbox mode only (production requires Safaricom approval).
#### Changelog
- **1.0.1 (March 30, 2025):**
- Fixed minor bug in callback URL validation.
- Initial stable release after 1.0.0 beta testing.
#### Future Enhancements (Planned for 1.1.0)
- Multi-currency support with automatic conversion.
- Retry logic for failed transactions.
- Customer notification emails upon payment success.
#### Support
- Report issues or request features at support@nestict.com.