MIA, Bank Card & StarCard Payment Gateway for VictoriaBank (Community Edition)
MIA, Bank Card & StarCard Payment Gateway for VictoriaBank (Community Edition)
Description
MIA, Bank Card & StarCard Payment Gateway for VictoriaBank (Community Edition) is a comprehensive WooCommerce plugin that enables Moldovan merchants to accept all VictoriaBank payment methods through a single plugin.
This is a community-developed plugin and is not officially affiliated with or endorsed by VictoriaBank.
Supported Payment Methods
- MIA Instant Payment – QR-code based instant payments via Moldova’s MIA system
- Visa / Mastercard – International card payments via VictoriaBank e-Gateway with RSA SHA-256 digital signatures
- StarCard Installments – Pay in installments (3, 6, 12, or 24 months) with VictoriaBank StarCard
- StarCard Loyalty Points – Pay with accumulated StarCard loyalty points
Key Features
- 4 payment methods in a single plugin – one installation, complete coverage
- RSA SHA-256 digital signatures (P_SIGN) for secure e-Gateway communication
- Two-phase transaction flow (TRTYPE=0 authorization + TRTYPE=21 completion) for card payments
- Dynamic QR codes with configurable TTL for MIA payments
- Mobile deeplink support (
mia://pay) for seamless mobile MIA payments - Automatic status polling (TRTYPE=90) every 3 minutes as callback fallback
- Full and partial refunds – TRTYPE=24 for card payments; full or partial refund for MIA (MIA API 2.1)
- WooCommerce Cart & Checkout Blocks – all four methods work in both the block-based and the classic checkout
- JWT webhook verification (RS256) for MIA payment notifications
- Token caching for MIA API calls (reduces API calls by 98%)
- HPOS compatible – Full support for WooCommerce High-Performance Order Storage
- WooCommerce Action Scheduler support for reliable background polling
- WC_Logger integration – card payment logs at WooCommerce > Status > Logs
Payment Flows
Card Payments (Visa/MC, StarCard):
- Customer selects payment method at checkout
- Plugin generates TRTYPE=0 parameters with P_SIGN digital signature
- Customer is redirected to VictoriaBank secure payment page
- Bank sends callback with authorization result
- Plugin automatically executes TRTYPE=21 (Sales Completion)
- Order is marked as paid
MIA Instant Payment:
- Customer selects MIA at checkout
- Dynamic QR code is generated via VictoriaBank API
- Customer scans QR code or uses mobile deeplink
- Payment is confirmed via JWT webhook or AJAX polling
- Order status updates automatically
Requirements
- WordPress 6.0 or higher
- WooCommerce 7.0 or higher
- PHP 8.0 or higher (required for RSA cryptographic operations)
- PHP OpenSSL extension
- Active VictoriaBank merchant account with API credentials
- HTTPS enabled on your website
Configuration
After installation, configure each payment method at WooCommerce > Settings > Payments:
For MIA Instant Payment:
* API credentials (username, password)
* Merchant IBAN
* VictoriaBank public key (VBCA.crt) for JWT verification
* QR code expiry time
For Visa/Mastercard, StarCard methods:
* Terminal ID (8 digits) and Merchant ID (15 digits) from VictoriaBank
* Your own RSA key pair, generated by you before configuration (see FAQ below) — paste your private key and VictoriaBank’s public key (.pem) for callback verification
* Register callback URL with VictoriaBank: https://yoursite.com/?wc-api=vb_callback
Technical Details
MIA API Endpoints
- Authentication:
POST /identity/token - QR Creation:
POST /api/v1/qr - Full refund:
DELETE /api/v1/transaction/{id} - Partial refund:
DELETE /api/v1/transaction/{id}/partial-refund(body:{"amount": <number>})
Base URLs
- Test Environment:
https://test-ipspj.victoriabank.md - Production:
https://ips-api-pj.vb.md
Security
- JWT token authentication
- Token caching with automatic expiry
- HTTPS required (enforced by API)
- Nonce verification for AJAX requests
- Input sanitization and validation
- No sensitive data logged (passwords masked)
Compatibility
- WordPress 6.0+
- WooCommerce 7.0 – 11.1
- PHP 8.0+
- Tested with latest WordPress and WooCommerce versions
Third-Party Services
This plugin connects to VictoriaBank’s payment APIs:
- e-Gateway (card payments): https://ecomt.victoriabank.md (test) / https://vb059.vb.md (production)
- MIA IPS API (instant payments): https://test-ipspj.victoriabank.md (test) / https://ips-api-pj.vb.md (production)
By using this plugin, you agree to VictoriaBank’s terms of service and privacy policy: https://victoriabank.md
Privacy Policy
This plugin does not collect, store, or transmit any personal data outside of what is necessary for payment processing through VictoriaBank’s APIs. All payment data is transmitted securely via HTTPS.
Credits
Developed and maintained by an independent developer for the WooCommerce and Moldovan e-commerce community.
Source code: https://github.com/inginerit/MIA-Payment-Gateway-for-VictoriaBank
Installation
Automatic Installation
- Go to Plugins > Add New in your WordPress admin
- Search for “MIA Payment Gateway for VictoriaBank”
- Click Install Now and then Activate
Manual Installation
- Download the plugin ZIP file
- Go to Plugins > Add New > Upload Plugin
- Choose the ZIP file and click Install Now
- Click Activate Plugin
Upgrading from MIA-only version (2.x)
If you are upgrading from the MIA-only version (2.x), the MIA payment method will continue to work exactly as before (including partial refunds added in 2.2.0). The new card payment methods (Visa/Mastercard, StarCard) are added as separate gateways and can be enabled independently.
No database migration is needed. Your existing MIA settings and transaction history are preserved.
Faq
No, this is a community-developed plugin. It integrates with VictoriaBank’s official APIs but is not officially affiliated with or endorsed by VictoriaBank.
Yes. VictoriaBank assigns separate Terminal IDs for Visa/Mastercard, StarCard Installments, and StarCard Points. Each method has its own settings page.
Yes. Each payment method (MIA, Visa/MC, StarCard Rate, StarCard Points) can be enabled or disabled independently.
For card payments: https://yoursite.com/?wc-api=vb_callback
For MIA webhooks: https://yoursite.com/wp-json/miapg/v1/webhook
The RSA key pair used to sign requests sent to VictoriaBank (P_SIGN) is generated by you, the merchant — the plugin never generates it, and VictoriaBank does not send you a private key. Steps:
- Generate the key pair on your own computer (not on the live server), using OpenSSL:
openssl genrsa -out merchant_private.pem 2048
openssl rsa -in merchant_private.pem -pubout -out merchant_public.pem - Keep
merchant_private.pemsecret. Never email it, never upload it anywhere public, never share it with VictoriaBank support — your private key only has to exist on your own machine and inside this plugin’s settings. - Send
merchant_public.pem(the public key only) to VictoriaBank when you request or activate your e-Gateway terminal (Visa/Mastercard, StarCard Installments, StarCard Points each need their own terminal, see above). - In return, VictoriaBank gives you: your Terminal ID and Merchant ID for that payment method, plus VictoriaBank’s own public key (a separate
.pemfile, used to verify the bank’s callbacks — this one is provided by the bank). - In WooCommerce > Settings > Payments, open the gateway for that payment method and paste:
- your
merchant_private.pemcontent into “RSA private key (.pem)” - VictoriaBank’s public key content into “VictoriaBank public key (.pem)”
- your
- Repeat steps 1-5 separately for each card payment method you enable (Visa/Mastercard, StarCard Installments, StarCard Points use separate terminals and can use separate key pairs, or the same one if VictoriaBank allows it for your contract — confirm with your VictoriaBank account manager).
The plugin validates the private key format on save and will show an error if the pasted PEM is invalid.
For card payments, use the standard WooCommerce refund button. The plugin sends TRTYPE=24 to VictoriaBank automatically.
For MIA payments, both full and partial refunds are supported from the same WooCommerce refund button. Important: MIA allows only ONE refund per payment (either the full amount or a single partial amount) – after a partial refund, the remaining amount cannot be refunded through MIA. A MIA payment can be refunded a few minutes after it was made, once the bank has settled it.
Yes. All payment methods are available both in the block-based Cart & Checkout (default in new WooCommerce stores) and in the classic shortcode checkout.
Yes, the plugin is fully compatible with WooCommerce HPOS.
Add the following to your wp-config.php file:
define(‘WP_DEBUG’, true);
define(‘WP_DEBUG_LOG’, true);
define(‘WP_DEBUG_DISPLAY’, false);
Then enable “Debug Logging” in the MIA gateway settings. Card payment logs are available at WooCommerce > Status > Logs (source: mia-payment-gateway-for-victoriabank).
Reviews
Changelog
3.0.3
- Fixed: The “RSA private key (.pem)” field description (Visa/Mastercard, StarCard settings) incorrectly stated the key was “provided by VictoriaBank”. It is generated by the merchant, not the bank – the description now says so clearly.
- Added: New FAQ “How do I generate my RSA key pair for card payments?” with step-by-step OpenSSL instructions (what to generate, what stays secret, what to send to VictoriaBank, what you get back, where to paste it).
3.0.2
- Security: raised minimum required PHP version to 8.2, following the critical unauthenticated RCE vulnerabilities disclosed on 2026-10-20/22 and patched by the PHP project on 2026-10-21 (CVE-2026-109618, CVE-2026-109619). PHP 8.0 and 8.1 are end-of-life and will not receive this fix. If your host still runs 8.0/8.1, please ask them to upgrade PHP before updating this plugin.
- Recommended: confirm with your hosting provider that the latest PHP point release for your branch is applied (8.2.35+, 8.3.36+, 8.4.27+ or 8.5.12+).
3.0.1
- Added: The MIA callback (signals) URL to send to VictoriaBank is now shown in the MIA settings page (the card callback URL is shown in each card gateway settings page).
- Fixed: The MIA signals endpoint (
/wp-json/miapg/v1/webhook) was not registered on REST requests (gateways are loaded lazily by WooCommerce), so bank notifications were answered with 404 and payments were confirmed only by polling. - Security: MIA signals are accepted only with a valid RS256 signature. The current VictoriaBank signal certificates are bundled; additional certificates can be pasted in the settings (certificate rotation).
3.0.0
- Major update: added Visa/Mastercard, StarCard Installments and StarCard Points (VictoriaBank e-Gateway) next to MIA – one plugin for all VictoriaBank payment methods
- Added: RSA SHA-256 digital signature (P_SIGN) generation and verification, with MD5 fallback for legacy terminals
- Added: Two-phase card flow – TRTYPE=0 authorization, TRTYPE=21 sales completion, confirmation by bank push
- Added: TRTYPE=24 refunds for card payments
- Added: TRTYPE=90 status polling every 3 minutes (Action Scheduler / WP-Cron) as callback fallback, including TRTYPE=21 retry
- Added: WooCommerce Cart & Checkout Blocks support for all four payment methods
- Added: Admin test mode notices with one-click switch between test and production
- Added: PEM key validation on settings save
- Requires PHP 8.0+ and WooCommerce 7.0+
- Tested with WordPress 7.1 and WooCommerce 11.1
2.2.0
- Added: MIA partial refunds (MIA API 2.1)
- Added: WooCommerce Cart & Checkout Blocks support for MIA
- Fixed: Payment reference not saved when payment was confirmed by polling; refunds recover a missing reference from the API
- Fixed: Text domain now matches the plugin slug
2.1.4
- Fixed: Polling expiry – use absolute time instead of attempt counter
2.1.3
- Fixed: Authentication endpoint updated to
/api/identity/token - Enhanced: Comprehensive logging throughout the plugin
- Improved: Error handling for API communications
- Optimized: Token caching reduces API calls by 98%
- Added: Mobile deeplink support for direct app payments
- Added: AJAX payment status checking with automatic updates
- Added: Full refund support via VictoriaBank API
- Added: HPOS (High-Performance Order Storage) compatibility
2.1.2
- Fixed authentication issues
- Improved QR code generation reliability
2.1.0
- Initial release with MIA payment support