$ 99.00
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 677 |
| Technical Name |
payment_mandiri_ok |
| License | OPL-1 |
| Website | https://linkedin.com/in/okky-permana-sihipo |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 677 |
| Technical Name |
payment_mandiri_ok |
| License | OPL-1 |
| Website | https://linkedin.com/in/okky-permana-sihipo |
💳 Payment Provider: Mandiri OK
Bank Mandiri Virtual Account Integration for Odoo 18
Version 18.0.1.0.0📋 Overview
Payment Provider: Mandiri OK adalah modul Odoo 18 yang mengintegrasikan sistem pembayaran Virtual Account Bank Mandiri menggunakan standar SNAP (Standard Nasional Open API Pembayaran). Modul ini memungkinkan bisnis Anda menerima pembayaran melalui Virtual Account Mandiri dengan konfirmasi otomatis.
Why Choose Mandiri OK?
- Trusted Bank - Bank Mandiri adalah salah satu bank terbesar di Indonesia
- Wide Acceptance - Customer dapat bayar via Mobile Banking, Internet Banking, ATM, atau transfer antar bank
- Automatic Confirmation - Pembayaran dikonfirmasi otomatis via webhook
- Secure - Menggunakan RSA dan HMAC signature untuk keamanan maksimal
- SNAP Compliant - Mengikuti standar API nasional Indonesia
✨ Key Features
Virtual Account Creation
Otomatis generate unique VA number untuk setiap transaksi dengan expiry 24 jam.
Real-time Notifications
Webhook integration untuk konfirmasi pembayaran instant tanpa delay.
Secure Authentication
RSA-SHA256 dan HMAC-SHA512 signature untuk keamanan tingkat enterprise.
IDR Currency Support
Full support untuk Rupiah Indonesia dengan format yang sesuai.
Sandbox Testing
Environment sandbox untuk testing sebelum go-live production.
Multi-Channel Payment
Customer bisa bayar via Mobile Banking, ATM, Internet Banking, atau transfer.
Technical Highlights
| Feature | Description | Status |
|---|---|---|
| OAuth2 Token Management | Automatic token generation and caching | ✓ Implemented |
| Signature Verification | RSA & HMAC signature for security | ✓ Implemented |
| Webhook Handler | Automatic payment notification processing | ✓ Implemented |
| Error Handling | Comprehensive error logging and recovery | ✓ Implemented |
| Unit Tests | 39 test cases covering all functionality | ✓ Implemented |
📦 Installation
Prerequisites
- Odoo 18.0 or higher
- Python 3.10+
- PostgreSQL database
- Active Bank Mandiri business account
- API credentials from Bank Mandiri
Step-by-Step Installation
-
Install Python Dependencies
pip install cryptography requests -
Copy Module to Addons Directory
cp -r payment_mandiri_ok /path/to/odoo/addons/ -
Update Apps List
Login ke Odoo → Apps → Update Apps List
-
Install Module
Search "Mandiri OK" → Click Install
-
Verify Installation
Go to Accounting → Configuration → Payment Providers → Mandiri
⚙️ Configuration
1. Obtain API Credentials
Register at Bank Mandiri API Portal and obtain:
- Client ID - Your API client identifier
- Client Secret - Your API client secret key
- Partner ID (X-PARTNER-ID) - Your partner identifier
- Partner Service ID - Your VA service ID (5 digits)
- RSA Private Key - Private key in PEM format
2. Configure Payment Provider
-
Navigate to Payment Providers
Accounting → Configuration → Payment Providers → Mandiri
-
Enter Credentials
Client ID: [Your Client ID] Client Secret: [Your Client Secret] Partner ID: [Your Partner ID] Partner Service ID: [Your 5-digit Service ID] RSA Private Key: [Paste PEM format key] -
Set Environment
Test Mode: For sandbox testing
Enabled: For production use -
Save Configuration
Click Save to apply settings
3. Configure Webhook URL
Register webhook URL di Bank Mandiri API Portal:
https://yourdomain.com/payment/mandiri/webhook📖 User Manual
For Administrators
Creating a Payment Transaction
-
Create Sale Order or Invoice
Create normal sale order atau invoice seperti biasa
-
Register Payment
Click "Register Payment" dan pilih Mandiri sebagai payment provider
-
VA Number Generated
System akan otomatis generate VA number dan tampilkan ke customer
-
Wait for Payment
Transaction status akan otomatis update ketika customer bayar
For Customers
Payment Instructions
Customer akan menerima VA number dan bisa bayar melalui:
📱 Mobile Banking
Transfer → Virtual Account → Enter VA Number
💻 Internet Banking
Payment → Virtual Account → Enter VA Number
🏧 ATM Mandiri
Bayar/Beli → Lainnya → Virtual Account → Enter VA
🏦 Other Banks
Transfer to Mandiri → Use VA as Account Number
Payment Flow Diagram
Customer Order → VA Created → Payment Instructions Sent
↓
Customer Pays via Mandiri → Webhook Notification
↓
Transaction Confirmed → Invoice Paid → Order Processed🔌 API Reference
Endpoints
| Endpoint | Method | Description |
|---|---|---|
/openapi/auth/v1.0/access-token/b2b |
POST | OAuth2 token generation |
/openapi/transaction/v1.0/transfer-va/create-va |
POST | Create Virtual Account |
/openapi/transaction/v1.0/transfer-va/inquiry-va |
POST | Inquiry VA status |
/payment/mandiri_ok/webhook |
POST | Payment notification webhook |
Response Codes
| Code | Description | Action |
|---|---|---|
2007300 |
Success (Access Token) | Token obtained |
2002700 |
Success (VA Created/Paid) | Transaction success |
2002800 |
Pending | Payment pending |
4002700 |
Client Error | Check request data |
5002702 |
Server Error | Retry later |
Security
- RSA-SHA256 signature for authentication
- HMAC-SHA512 signature for API requests
- SHA-256 body hash for integrity
- OAuth2 Bearer token authorization
- Webhook signature verification
🔧 Troubleshooting
Common Issues
1. "Failed to generate signature"
Solution:
- Check private key is in PEM format
- Verify private key password if encrypted
- Ensure key matches public key registered with Mandiri
2. "Failed to get access token"
Solution:
- Verify Client ID and Client Secret are correct
- Check API subscription is active
- Ensure using correct environment (sandbox/production)
3. "VA creation failed"
Solution:
- Verify Partner Service ID is correct (5 digits)
- Check amount is valid (IDR only)
- Ensure customer data is complete
4. "Webhook signature verification failed"
Solution:
- Check Partner ID matches configuration
- Verify webhook URL is correctly configured in Mandiri portal
- Ensure system time is synchronized (NTP)
Debug Mode
Enable debug logging in Odoo configuration:
# In odoo.conf
log_level = debug
log_handler = :DEBUGSupport Resources
- 📧 Module Support: Contact your Odoo administrator
- 🏦 Bank Mandiri API: API Portal
- 📚 Odoo Documentation: Official Docs
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module