Description
🚀 Transform Your Payment Processing with Instant SEPA Bank Transfers
BANKpay+ for WooCommerce enables your store to accept instant SEPA bank transfers with settlement in just 7 seconds. No card fees, no chargebacks, just instant bank-to-bank payments.
🏛️ EU Late Payment Directive Compliant – Stay compliant with European payment regulations while getting paid faster. Our AI-powered invoice agent sends smart reminders and auto-extracts payment details, helping you manage cash flow professionally and get paid on time.
🤖 AI-Powered Payment Management – Upload invoices, automatically extract payment details, and send intelligent reminders to customers. Our invoice processing AI helps you maintain professional payment workflows and reduce late payments.
🎯 Key Benefits
- ⚡ 7-Second Settlement – Get your money instantly, not in days
- 💰 Up to 70% Lower Fees – Save thousands compared to card processors
- 🛡️ Zero Chargebacks – Bank transfers are final and irreversible
- 🏦 3000+ Banks Supported – Works with all major European banking institutions
- ✅ EU Regulation Compliant – Late Payment Directive, PSD2, GDPR
- 🤖 AI Invoice Processing – Auto-extract payment details and send smart reminders
- 📱 Mobile-First Experience – Optimized for smartphone banking apps
- 🔄 One-Click Repeat Payments – Returning customers pay with a single tap
💡 Why Choose BANKpay+ Over Card Payments?
💰 Save Money
- Credit card fees: 1.5-3.5% per transaction
- BANKpay+ fees: Starting at 0.5% (save up to €2,500/month on €100k revenue)
- No monthly fees, no setup costs
⚡ Get Paid Instantly
- Settlement time: 7 seconds (vs. 2-7 days with cards)
- Same-day access to your money
- Improved cash flow management
🛡️ Zero Chargeback Risk
- Bank transfers are final and irreversible
- No fraudulent chargebacks
- No chargeback fees (typically €15-25 each)
😊 Better Customer Experience
- No card details required
- Works with all European banks (3000+ institutions)
- Mobile-first payment flow
- One-click payments for returning customers
👥 Who Should Use This?
Perfect for:
- 💼 B2B businesses needing compliance with EU Late Payment Directive
- 🏪 Online stores serving European customers
- 📦 High-volume merchants wanting to reduce payment processing costs
- 📈 Subscription businesses needing reliable recurring payments
- 🏛️ Professional services (lawyers, accountants, consultants)
- 💰 Merchants tired of chargebacks and fraud
- ⚡ Businesses needing instant access to funds for better cash flow
🚀 Features
💸 Payment Processing
- ⚡ Instant Settlement – Money in your account within 7 seconds
- 💰 Low Fees – Significantly lower than card processing fees (starting at 0.5%)
- 🛡️ No Chargebacks – Bank transfers are final and secure
- 🌍 EU Coverage – Accept payments from customers across Europe
- ↩️ Refunds – Process refunds directly from WooCommerce
- ✓ IBAN Validation – Real-time validation with MOD-97 checksum (70+ countries)
- 🔄 Returning Customers – One-click payment with saved bank selection
🏛️ Compliance & Professional Features
- ✅ EU Late Payment Directive Compliance – Stay compliant with European B2B payment regulations
- 🔔 Smart Payment Reminders – AI-powered reminders help you get paid on time
- 🤖 Invoice AI Agent – Automatically upload and process invoices
- 📄 Auto-Extract Payment Details – AI reads invoice data (amount, due date, customer info)
- 💼 Professional Payment Workflows – Maintain compliance and professionalism
- 📅 Payment Terms Management – Track due dates and automate follow-ups
- 📊 Audit Trail – Complete payment history for regulatory compliance
⚙️ Admin Experience
- 📊 Analytics Dashboard – Comprehensive payment analytics with Chart.js visualizations
- 📋 Transaction Management – View all BANKpay+ payments in dedicated admin panel
- 📈 Payment Dashboard – Real-time statistics (today, week, month, all-time)
- 📉 Performance Metrics – Success rates, volume trends, and processing times
- 🏦 Bank Analytics – Top performing banks with usage statistics
- 💾 CSV Export – Download analytics data for external analysis
- 🔍 Order Details – Payment information displayed on order edit screen
- 📱 WordPress Dashboard Widget – Quick overview of payment activity
- 🔎 Search & Filter – Find transactions by status, customer, or order number
🔒 Security & Reliability
- 🔐 Bank-Grade Security – Webhook signature verification and HMAC authentication
- 🚦 Rate Limiting – Automatic protection against webhook abuse
- 🔁 Replay Protection – Timestamp validation prevents duplicate processing
- 🛡️ CSRF Protection – All admin actions protected with capability checks
- 🔒 Security Headers – CSP, HSTS, X-Frame-Options, and more
👨💻 Developer Friendly
- 🧪 Test Mode – Sandbox environment for testing
- ⚡ HPOS Compatible – Full support for High-Performance Order Storage
- ✅ WordPress Standards – Follows WordPress and WooCommerce coding standards
- 🔌 Extensible – Hooks and filters for customization
- 🔗 REST API – Public endpoint for IBAN validation
📋 Requirements
- ✅ WooCommerce 8.0 or higher
- ✅ PHP 8.0 or higher
- ✅ WordPress 6.0 or higher
- ✅ BANKpay+ merchant account (Sign up here)
⚙️ How It Works
- 🛒 Customer selects BANKpay+ at checkout
- 🏦 Customer is redirected to select their bank
- 📱 Customer authorizes payment in their banking app
- ⚡ Payment is confirmed and settled instantly
- ✅ Customer is returned to your store
🚀 Get Started in 5 Minutes
- 📥 Install – Download from WordPress.org or search in your admin panel
- ✅ Activate – Click “Activate” in your plugins list
- 🔗 Connect – Run the setup wizard (WooCommerce Settings Payments BANKpay+)
- 🧪 Test – Place a test order to verify everything works
- 🎉 Go Live – Switch from test mode to live mode
💡 Easy Setup: Our guided setup wizard walks you through every step. No technical knowledge required!
Translations
BANKpay+ for WooCommerce is fully translated and available in 6 languages:
- English (en_US) – Default, 100% complete
- German (de_DE) – Deutsch, 100% complete (~98 strings)
- Italian (it_IT) – Italiano, 100% complete (~98 strings)
- Portuguese (pt_PT) – Português, 100% complete (~98 strings)
- Spanish (es_ES) – Español, 100% complete (~98 strings)
- Greek (el) – Ελληνικά, 100% complete (~98 strings)
Contributing Translations
We welcome translation contributions! You can contribute in two ways:
-
Via WordPress.org (recommended)
Visit: https://translate.wordpress.org/projects/wp-plugins/bankpay-open-banking-sepa-payments-for-woocommerce/
Translations submitted via GlotPress are automatically included in language packs. -
Via GitHub
Fork the repository, translate the PO files in thelanguages/directory, and submit a pull request.
Seelanguages/README.mdfor detailed translation guidelines.
Translation Credits
- German: BANKpay+ Team (based on BANKpay+ application translations)
- Italian: BANKpay+ Team (professional translation)
- Portuguese: BANKpay+ Team (professional translation)
- Spanish: BANKpay+ Team (professional translation)
- Greek: BANKpay+ Team (professional translation for compliance market)
Thank you to all translators for making BANKpay+ accessible to users across Europe!
For Translators
Total strings to translate: 309
– PHP strings: ~271 (admin interface, settings, error messages)
– JavaScript strings: ~38 (customer-facing UI, validation feedback)
Key terminology:
– “Instant Bank Transfer” “SEPA-Sofortüberweisung” (DE)
– “Settlement” “Abwicklung” (DE)
– “Bank-grade security” “Bank-Level Sicherheit” (DE)
For complete translation guidelines, glossary, and context notes, see:
languages/README.md in the plugin directory
For Developers
BANKpay+ is built with developers in mind, featuring extensive hooks, filters, and well-documented APIs for customization and integration.
Architecture
Design Patterns:
- Dependency Injection Container
- Repository Pattern for order operations
- Observer Pattern for webhook events
- Strategy Pattern for payment flows
Key Components:
WC_Gateway_BANKpay_Plus– Main gateway class extending WC_Payment_GatewayBANKpay_Plus_API– RESTful API client with retry logicBANKpay_Plus_Webhook– Webhook handler with signature verificationBANKpay_Plus_Analytics– Payment metrics and reportingBANKpay_Plus_IBAN_Validator– MOD-97 validation with 70+ country support
API Integration
Authentication:
Authorization: Bearer {access_token}
X-API-Key: {api_key}
X-HMAC-Signature: {hmac_sha256}
Create Checkout Session:
POST /api/checkout/create
{
"amount": 100.00,
"currency": "EUR",
"reference": "Order #123",
"return_url": "https://yourstore.com/checkout/thank-you",
"webhook_url": "https://yourstore.com/?wc-api=wc_gateway_bankpay_plus"
}
Webhook Payload:
POST /?wc-api=wc_gateway_bankpay_plus
{
"event": "checkout.completed",
"checkout_id": "chk_123",
"payment_id": "pay_456",
"status": "completed",
"timestamp": "2025-01-26T15:30:00Z"
}
Hooks & Filters
Actions (Execution Points):
bankpay_plus_payment_initiated– Fires when payment initiatesbankpay_plus_payment_complete– Fires when payment completesbankpay_plus_payment_failed– Fires when payment failsbankpay_plus_refund_completed– Fires when refund processesbankpay_plus_webhook_received– Fires on webhook receiptbankpay_plus_webhook_verified– Fires after signature verificationbankpay_plus_webhook_failed– Fires on webhook errorbankpay_plus_analytics_event– Fires on analytics tracking
Filters (Data Modification):
bankpay_plus_gateway_title– Customize payment method titlebankpay_plus_gateway_description– Customize checkout descriptionbankpay_plus_payment_button_text– Customize payment button textbankpay_plus_checkout_data– Modify checkout session databankpay_plus_api_endpoint– Change API endpoint URLbankpay_plus_api_timeout– Adjust API request timeout (default: 30s)bankpay_plus_iban_valid– Override IBAN validation resultbankpay_plus_bank_list_cache_ttl– Adjust bank list cache (default: 24h)bankpay_plus_webhook_rate_limit– Adjust webhook rate limit (default: 50/min)bankpay_plus_verify_webhook_signature– Toggle signature verification
Code Examples
Example 1: Custom Payment Completion Logic
add_action('bankpay_plus_payment_complete', 'my_custom_payment_handler', 10, 2);
function my_custom_payment_handler($order_id, $payment_data) {
$order = wc_get_order($order_id);
// Send custom confirmation email
wp_mail(
$order->get_billing_email(),
'Payment Confirmed - Instant Delivery',
'Your payment was processed in 7 seconds!'
);
// Trigger fulfillment webhook
wp_remote_post('https://warehouse.example.com/fulfill', [
'body' => json_encode([
'order_id' => $order_id,
'payment_method' => 'bankpay_instant'
])
]);
}
Example 2: Customize Gateway Title
add_filter('bankpay_plus_gateway_title', 'custom_gateway_title', 10, 2);
function custom_gateway_title($title, $order_id) {
return $title . ' (Money in 7 seconds)';
}
Example 3: Validate Custom Business Rules
add_filter('bankpay_plus_checkout_data', 'add_business_rules', 10, 2);
function add_business_rules($data, $order) {
// Add custom validation for high-value orders
if ($order->get_total() > 1000) {
$data['require_phone_verification'] = true;
}
// Add custom metadata
$data['merchant_reference'] = get_option('custom_order_prefix') . $order->get_id();
return $data;
}
Example 4: Track Conversions in Analytics
add_action('woocommerce_thankyou', 'track_bankpay_conversion', 10, 1);
function track_bankpay_conversion($order_id) {
$order = wc_get_order($order_id);
if ($order->get_payment_method() === 'bankpay_plus') {
do_action('my_analytics_track', [
'event' => 'instant_payment_completed',
'value' => $order->get_total(),
'settlement_time' => '7_seconds'
]);
}
}
REST API Endpoints
IBAN Validation:
POST /wp-json/bankpay-plus/v1/validate-iban
{
"iban": "DE89370400440532013000"
}
Response:
{
"valid": true,
"country": "DE",
"bank_code": "37040044",
"checksum_valid": true,
"formatted": "DE89 3704 0044 0532 0130 00"
}
Rate Limiting: 10 requests per minute per IP address
Caching: Validation results cached for 30 days
Algorithm: MOD-97 checksum validation for 70+ countries
Database Schema
Analytics Table: {$wpdb->prefix}bankpay_plus_analytics
CREATE TABLE wp_bankpay_plus_analytics (
event_id BIGINT AUTO_INCREMENT PRIMARY KEY,
order_id BIGINT NOT NULL,
checkout_uuid VARCHAR(100),
event_type VARCHAR(50) NOT NULL,
event_timestamp DATETIME NOT NULL,
order_total DECIMAL(10,2),
currency VARCHAR(3),
customer_email VARCHAR(100),
bank_connector_id INT,
bank_name VARCHAR(255),
processing_time_ms INT,
is_returning_customer TINYINT(1),
user_agent_hash VARCHAR(64),
INDEX idx_order_id (order_id),
INDEX idx_event_type (event_type),
INDEX idx_event_timestamp (event_timestamp)
);
Testing
PHPUnit Test Suite:
cd wp-plugin/bankpay-plus-woocommerce
composer install
./vendor/bin/phpunit --testsuite unit
./vendor/bin/phpunit --testsuite integration
Code Quality:
composer phpcs # Check WordPress coding standards
composer phpcbf # Auto-fix coding standards
composer phpstan # Static analysis (level 8)
Makefile Commands:
make test-all # Run all tests
make lint # Check coding standards
make format # Auto-fix code style
make phpstan # Static analysis
Security Considerations
Webhook Signature Verification:
Automatic HMAC SHA-256 verification ensures webhook authenticity. Invalid signatures are rejected with HTTP 403.
Rate Limiting:
- Webhooks: 50 requests/minute per IP
- IBAN validation: 10 requests/minute per IP
- Automatic blocking with exponential backoff
Data Protection:
- All input sanitized with
sanitize_text_field(),sanitize_url() - All output escaped with
esc_html(),esc_url(),esc_attr() - No sensitive data in logs (automatic redaction)
- GDPR compliant (SHA-256 hashing for personal data)
Documentation
In Plugin Directory:
README.md– Quick start and overviewDEVELOPER_GUIDE.md– Architecture and contribution guidelinesAPI_INTEGRATION_GUIDE.md– Step-by-step API integrationTESTING_GUIDE.md– Unit, integration, and E2E testingWARP.md– AI assistant integration guide
Online Resources:
- GitHub: https://github.com/k42/WooCommerce
- API Docs: https://docs.bankpay.plus/api
- Support: https://wordpress.org/support/plugin/bankpay-open-banking-sepa-payments-for-woocommerce/
Contributing
We welcome contributions! Please see CONTRIBUTING.md in the plugin directory for:
- Code style guidelines (WordPress + WooCommerce standards)
- Testing requirements (PHPUnit coverage)
- Pull request process
- Security disclosure policy
Found a bug? Report it on the WordPress.org support forum
Installation
Minimum Requirements
- WordPress 6.0 or greater
- WooCommerce 8.0 or greater
- PHP 8.0 or greater
- MySQL 5.6 or greater
- SSL certificate (required for production mode)
- Modern web browser with JavaScript enabled
Automatic Installation
Automatic installation is the easiest option as WordPress handles the file transfers itself and you don’t need to leave your web browser.
- Log in to your WordPress dashboard
- Navigate to Plugins > Add New
- Search for “BANKpay+ for WooCommerce”
- Click Install Now next to our plugin
- Click Activate once installation completes
- Navigate to WooCommerce > Settings > Payments > BANKpay+
- Click Run Setup Wizard to configure your payment gateway
Manual Installation
The manual installation method involves downloading the plugin and uploading it to your server via FTP or your hosting control panel.
- Download the plugin ZIP file from WordPress.org
- Log in to your WordPress dashboard
- Navigate to Plugins > Add New > Upload Plugin
- Click Choose File and select the ZIP file you downloaded
- Click Install Now
- Click Activate Plugin once installation completes
- Navigate to WooCommerce > Settings > Payments > BANKpay+
- Follow the setup wizard to connect your BANKpay+ account
Alternatively, you can upload the plugin via FTP:
- Unzip the plugin file on your computer
- Upload the
bankpay-plus-woocommercefolder to/wp-content/plugins/ - Activate the plugin through the Plugins menu in WordPress
Updating
Automatic updates should work smoothly. As always, ensure you backup your site before updating.
If you experience any issues after an update:
- Go to WordPress > Settings > Permalinks
- Click Save Changes (no changes needed, just save)
- Clear your site cache if using a caching plugin
First-Time Setup
After installation, you’ll see an admin notice prompting you to run the setup wizard. The wizard will guide you through:
- Welcome – Introduction to BANKpay+ features
- Connect – API key configuration and connectivity test
- Payout – IBAN configuration for receiving settlements
The entire setup takes under 5 minutes. No technical knowledge required!
Testing Before Going Live
- Enable Test Mode in the gateway settings
- Use sandbox API credentials from your BANKpay+ dashboard
- Place test orders to verify the payment flow
- Check webhook delivery in WooCommerce logs
- Once satisfied, switch to Live Mode with production credentials
SSL Requirement
An SSL certificate is required for production mode. Payments will not work without HTTPS in live mode due to banking security requirements (PSD2 regulations).
Most hosting providers offer free SSL certificates via Let’s Encrypt. Contact your host if you need assistance.
FAQ
-
Do I need a BANKpay+ account?
-
Yes, you need to sign up for a merchant account at https://BANKpay.plus. The setup wizard can create your account automatically during plugin configuration.
-
How much does BANKpay+ cost?
-
Pricing starts at 0.5% per transaction with no monthly fees or setup costs. This is significantly lower than typical credit card processing fees (1.5-3.5%). For detailed pricing and volume discounts, visit https://BANKpay.plus/pricing
-
How long does setup take?
-
Most merchants complete setup in under 5 minutes using our guided setup wizard. You’ll need:
- Business email address
- IBAN for receiving payouts
- Business registration details (name, address)
The wizard validates everything in real-time, so you’ll know immediately if there are any issues.
-
Can I test before going live?
-
Yes! The plugin includes a full sandbox environment. You can test unlimited transactions before accepting real payments. Simply enable “Test Mode” in the settings.
-
What if a customer wants a refund?
-
Process refunds directly from the WooCommerce order page—just like you would with any other payment method. Refunds are sent back to the customer’s bank account within 1-2 business days. The refund amount is automatically deducted from your next payout.
-
Which countries are supported?
-
BANKpay+ works across all SEPA countries: Austria, Belgium, Cyprus, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Norway, Poland, Portugal, Slovakia, Slovenia, Spain, Sweden.
Customers in any of these countries can pay using their local bank account.
-
Do customers need a BANKpay+ account?
-
No! Customers pay directly from their existing bank account using their banking app (like N26, Revolut, or their regular bank’s app). No registration, no new account creation—just instant authentication and payment.
-
Is there a test mode?
-
Yes, the plugin includes a sandbox mode for testing before going live. Test mode uses separate API credentials and doesn’t process real money.
-
What happens if a payment fails?
-
If a customer’s bank declines the payment or they cancel during authorization, the order remains in “Pending” status. The customer can try again or choose a different payment method. You’ll see the failure reason in the order notes.
-
Can customers save their payment info?
-
Yes! Returning customers can enable one-click payments. Their bank selection is remembered (stored locally in their browser), making future checkouts even faster. This is optional and controlled by the customer.
-
How secure is BANKpay+?
-
BANKpay+ uses bank-grade security:
- All payments require authentication through the customer’s banking app
- No sensitive data is stored on your server
- Webhook signatures prevent tampering
- Rate limiting protects against abuse
- GDPR compliant
-
Does this work with WooCommerce subscriptions?
-
Currently, BANKpay+ supports one-time payments only. Subscription support is planned for a future release.
-
How does IBAN validation work?
-
The plugin validates IBANs using the MOD-97 algorithm for 70+ countries. Optionally, you can configure an ibanapi.com API key for enhanced validation with bank details. Without an API key, local validation still works perfectly.
-
Is customer bank data stored?
-
By default, bank selection information is stored only in your browser’s localStorage (on your device) to enable one-click payments on return visits. This includes your bank name, logo, and masked IBAN. No data is sent to our servers unless you explicitly create a user account and opt-in to cross-device sync.
You can remove saved bank information at any time by clicking “Forget this bank” during checkout, or by clearing your browser data. Data automatically expires after 90 days of inactivity.
-
Does this plugin work with my theme?
-
Yes! BANKpay+ works with any properly coded WordPress theme. The plugin integrates seamlessly with WooCommerce’s standard checkout flow.
If you notice styling issues, you can customize the appearance with CSS. We recommend Storefront or any WooCommerce-compatible theme for best results.
-
Is SSL required?
-
Yes, an SSL certificate (HTTPS) is required for production mode. This is mandated by PSD2 banking regulations for secure payment processing. Most hosting providers offer free SSL certificates via Let’s Encrypt.
Test mode can work without SSL for local development, but all production payments must use HTTPS.
-
Is this compatible with High-Performance Order Storage (HPOS)?
-
Yes! BANKpay+ is fully compatible with WooCommerce’s High-Performance Order Storage (HPOS, also called Custom Order Tables). We officially declare HPOS compatibility in our plugin headers.
-
What are webhooks and do I need to configure them?
-
Webhooks are automatic notifications sent from BANKpay+ to your store when payment status changes. The plugin handles webhook configuration automatically—no manual setup needed!
Webhooks are secured with HMAC SHA-256 signature verification and include:
- Rate limiting (50 requests/minute per IP)
- Replay protection (timestamp validation)
- Automatic retry with exponential backoff for failed deliveries
Your webhook URL is automatically configured as:
https://yourstore.com/?wc-api=wc_gateway_bankpay_plus -
Can I customize the plugin behavior with hooks and filters?
-
Yes! The plugin provides numerous WordPress action and filter hooks for developers:
Key Actions:
bankpay_plus_payment_complete– Fires when payment completesbankpay_plus_payment_failed– Fires when payment failsbankpay_plus_refund_completed– Fires when refund processesbankpay_plus_webhook_received– Fires on webhook receipt
Key Filters:
bankpay_plus_gateway_title– Customize payment method titlebankpay_plus_gateway_description– Customize checkout descriptionbankpay_plus_checkout_data– Modify checkout session databankpay_plus_api_timeout– Adjust API request timeout
For complete documentation, see the “For Developers” section below.
-
Where can I find API documentation?
-
API integration documentation is available in:
- Plugin directory: See
API_INTEGRATION_GUIDE.md - Developer guide: See
DEVELOPER_GUIDE.mdfor architecture overview - Online: Visit https://docs.bankpay.plus/api
The plugin uses RESTful JSON API with dual authentication (Bearer token + API key) and HMAC signature verification for webhooks.
- Plugin directory: See
-
How do I debug payment issues?
-
Enable WooCommerce logging:
- Go to WooCommerce > Status > Logs
- Look for logs starting with
bankpay-plusandbankpay-plus-webhook
Common debugging steps:
- Verify API credentials in settings
- Check Test Mode vs Live Mode configuration
- Confirm SSL certificate is valid
- Review webhook delivery in logs
- Check for plugin conflicts (disable other plugins temporarily)
For detailed troubleshooting, see:
TESTING_GUIDE.mdin the plugin directory -
What are the rate limits for API requests?
-
The plugin implements intelligent rate limiting:
- Webhook endpoint: 50 requests per minute per IP address
- IBAN validation: 10 requests per minute per IP address
- API requests: Cached for 5-15 minutes to minimize redundant calls
Bank connector list is cached for 24 hours, and analytics queries use transient caching to optimize performance.
-
What is SEPA Instant payment and how does it work?
-
SEPA Instant Credit Transfer (SCT Inst) is the European standard for real-time bank transfers. Unlike traditional SEPA payments that take 1-3 business days, SEPA Instant settles in under 10 seconds, 24/7/365.
How it works:
- Customer authorizes payment through their banking app
- Bank instantly verifies funds availability
- Money is debited from customer’s account
- Funds are credited to your account within 7-10 seconds
- Payment is final and irrevocable (no chargebacks)
Benefits over card payments:
- Instant settlement (vs 2-7 days for cards)
- Lower fees (0.5% vs 1.5-3.5% for cards)
- No chargebacks (bank transfers are final)
- No monthly fees or hidden costs
- 24/7/365 availability
SEPA Instant is available across all 24 SEPA countries with 3000+ participating banks.
-
What is Account-to-Account (A2A) payment?
-
Account-to-Account (A2A) payments are direct bank transfers between customer and merchant accounts without card networks or intermediaries.
Traditional payment flow:
Customer Card Network Acquiring Bank Your Account (Multiple intermediaries = higher fees + longer settlement)A2A payment flow:
Customer Bank Your Bank (Direct) (No intermediaries = lower fees + instant settlement)Why A2A is revolutionary:
- No card network fees (Visa/Mastercard take 1-3%)
- No acquiring bank markup
- Payments can’t be “charged back” fraudulently
- Works with any bank account (no card needed)
- Enabled by Open Banking regulations (PSD2)
-
What is Open Banking and PSD2?
-
Open Banking is the EU regulatory framework (PSD2 – Payment Services Directive 2) that allows licensed third parties to securely access banking services with customer consent.
What BANKpay+ does:
- You (merchant) requests payment
- Customer selects their bank
- Customer authorizes payment in their secure banking app
- BANKpay+ (licensed Payment Initiation Service Provider) initiates the transfer
- Money moves directly from customer to your account
Security features:
- Strong Customer Authentication (SCA) required
- No card details or passwords shared
- Bank-grade encryption (TLS 1.3)
- Multi-factor authentication via banking app
- Regulated by European Central Bank and national supervisors
Your data security:
- We never store bank login credentials
- No sensitive payment data on your server
- Webhook signatures prevent tampering
- GDPR compliant by design
-
Why can’t customers chargeback BANKpay+ payments?
-
Bank transfers are legally final and irrevocable under EU payment law (SEPA Rulebook). Once a customer authorizes payment through Strong Customer Authentication (SCA) in their banking app, the transaction cannot be disputed or reversed.
Contrast with card payments:
- Cards: Customer can dispute for 120+ days after purchase
- BANKpay+: Payment authorized with bank-level authentication, legally binding
Customer protection still exists:
- Customers must authenticate in their secure banking app
- Unauthorized transactions are bank’s responsibility
- Normal consumer protection laws still apply
For merchants, this means:
- No fraudulent chargebacks
- No chargeback fees (typically €15-25 each)
- Predictable revenue (no surprise reversals months later)
- Lower fraud rates (bank-level authentication required)
-
How fast is “7-second settlement”?
-
BANKpay+ uses SEPA Instant Credit Transfer, which guarantees settlement within 10 seconds. In practice, most payments settle in 7 seconds or less.
Timeline breakdown:
- 0-2 seconds: Customer authorizes in banking app
- 2-5 seconds: Bank verifies funds and processes transfer
- 5-7 seconds: Money arrives in your account
- 7-10 seconds: Confirmation webhook sent to your store
Compare this to traditional payment methods:
- Credit cards: 2-7 business days
- Debit cards: 1-3 business days
- PayPal: 1-2 business days (or instant for 1% fee)
- Bank transfer: 1-3 business days
- BANKpay+ SEPA Instant: 7 seconds
Real-world impact:
- Customer completes checkout at 14:30:15
- Money in your account at 14:30:22
- Order can ship immediately
- Same-day access to revenue
-
Which countries and banks are supported?
-
BANKpay+ works across all 24 SEPA countries with 3000+ participating banks:
Countries: Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Poland, Portugal, Romania, Slovakia, Slovenia, Spain, Sweden
Major banks include:
- Germany: Deutsche Bank, Commerzbank, Sparkasse, N26, Revolut
- France: BNP Paribas, Crédit Agricole, Société Générale
- Netherlands: ING, Rabobank, ABN AMRO
- Spain: Santander, BBVA, CaixaBank
- Italy: UniCredit, Intesa Sanpaolo
- Austria: Erste Bank, Raiffeisen
- Plus digital banks: N26, Revolut, Bunq, Trade Republic, Wise
Requirements:
- Customer must have an account at a SEPA Instant-enabled bank
- Most major EU banks support SEPA Instant (as of 2025)
- EU regulation makes SEPA Instant mandatory for all banks
Check bank availability during checkout – the plugin automatically displays only supported banks for each customer.
-
How does BANKpay+ compare to other payment methods?
-
Feature
BANKpay+
Credit Cards
PayPal
SEPA TransferSettlement Time
7 seconds
2-7 days
1-2 days
1-3 daysTransaction Fees
0.5%
1.5-3.5%
2.9% + €0.35
Free (slow)Monthly Fees
None
€20-50
None
NoneChargebacks
No
Yes (120 days)
Yes (180 days)
NoSetup Complexity
Easy
Complex
Medium
ManualCustomer Friction
Low
Medium
Medium
HighCoverage
EU (SEPA)
Global
Global
EU (SEPA)Success Rate
95%+
70-80%
85-90%
ManualBest for:
- European B2C ecommerce
- Digital products needing instant delivery
- High-value transactions (lower fees)
- Businesses tired of chargebacks
- Cash flow optimization (instant settlement)
Not ideal for:
- Global sales outside Europe
- Businesses needing payment plans
- Customers without bank accounts (rare in EU)
Reviews
There are no reviews for this plugin.
Contributors & Developers
“BANKpay+ for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “BANKpay+ for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.7.4 – 2025-11-17
1.7.4 – 2025-11-17
- Enhancement: [EDIT THIS – Describe main enhancement]
- Feature: [EDIT THIS – Describe new feature]
-
Release Date: 2025-11-17
-
Enhancement: Comprehensive readme.txt formatting improvements
- Enhancement: Consistent emoji/icon usage throughout documentation
- Enhancement: Improved visual hierarchy with icons for all sections
- Enhancement: Better section organization with clearer navigation
- Enhancement: Professional appearance optimized for WordPress.org plugin directory
- Note: No code changes – documentation quality improvements only
1.7.3 – 2025-11-17
- Enhancement: WordPress.org readme formatting improvements
- Fix: Removed special character from plugin header
- Fix: Converted bullet points to proper list format
- Enhancement: Cleaned up changelog (removed duplicates and template text)
1.7.2 – 2025-11-17
- Enhancement: Code style improvements (PHPCBF auto-fixes in main plugin file)
- Enhancement: Fixed indentation in setup wizard and API client classes
- Enhancement: Added automated release tooling for streamlined releases
- Enhancement: Added comprehensive release process documentation
- Technical: Applied WordPress coding standards fixes
- Note: No functional changes – code quality improvements only
1.7.1 – 2025-11-17
- Enhancement: Updated payment gateway descriptions with EU Late Payment Directive compliance
- Feature: Smart payment reminders help merchants get paid faster
- Feature: AI-powered invoice processing with auto-extract payment details
- Feature: Invoice agent automatically processes uploaded invoices
- Enhancement: Professional payment management improvements
1.7.0
- Feature: Added full internationalization support for 6 European languages
- Languages: German (de_DE), Italian (it_IT), Portuguese (pt_PT), Spanish (es_ES), Greek (el)
- Translation: 309 translatable strings across PHP and JavaScript
- Translation: Internationalized all JavaScript files with wp.i18n
- Translation: Professional translations for all supported languages
- Developer: Added translation infrastructure with POT template generation
- Developer: Created Makefile commands for translation management (make translate, make compile-mo)
- Documentation: Comprehensive translation README for contributors
- Ready: WordPress.org language pack integration prepared
- Release Date: 2025-10-26
1.6.5
- Fix: Converted all code blocks in readme.txt to WordPress.org format (4-space indentation)
- Fix: Removed triple backtick code fences that were rendering as literal text on plugin page
- Enhancement: Code examples now render properly in preview boxes on WordPress.org (15 blocks)
- Tooling: Added post-release validation script (bin/post-release-validation.sh) with 8 automated checks
- Documentation: Added WordPress.org readme.txt formatting rules to WARP.md for AI coding agents
- Quality: All code blocks validated: PHP examples, REST API calls, SQL schema, shell commands
- Developer: Post-release script validates version consistency, secrets security, SVN status, plugin page availability
- Release Date: 2025-10-26
1.6.1
- Security: Critical security audit and hardening release
- Security: Fixed input sanitization in webhook handler and admin forms
- Security: Enhanced output escaping across all templates
- Security: Improved nonce verification for all AJAX endpoints
- Security: Added SQL injection prevention in analytics queries
- Security: Strengthened capability checks for admin actions
- Security: Added rate limiting for REST API endpoints
- Security: Implemented webhook replay protection
- Security: Enhanced CSRF protection for settings pages
- Code Quality: Fixed critical coding standards violations
- Testing: Verified all security fixes with automated test suite
- Tooling: Security audit script validates OWASP best practices
- Release Date: 2025-10-26
1.5.2
- Documentation: Added comprehensive TESTING_GUIDE.md with unit, integration, E2E, and security testing procedures
- Documentation: Created DEVELOPER_GUIDE.md for developer onboarding, architecture overview, and contribution guidelines
- Documentation: Published API_INTEGRATION_GUIDE.md for step-by-step BANKpay+ API integration
- Tooling: Automated test suite runner (bin/run-full-test-suite.sh) for comprehensive validation
- Tooling: Pre-release checklist script (bin/pre-release-checklist.sh) for deployment validation
- Tooling: Security audit script (bin/security-audit.sh) with OWASP-based checks
- Code Quality: Fixed 400+ coding standards violations via PHPCBF
- Enhancement: Enhanced WARP.md with detailed project structure for AI assistants
- Maintenance: Updated all inline documentation and error handling
- Testing: All unit and integration tests passing
- Compatibility: Verified WordPress 6.7 and WooCommerce 9.0 compatibility
- Release Date: 2025-10-26
1.6.0
- Major: Redesigned onboarding experience with 3-step setup wizard (Welcome Connect Payout)
- Major: Simplified gateway settings from 13 fields to 10 (7 essential + 3 advanced)
- Feature: Interactive setup wizard with real-time validation and error handling
- Feature: Admin notice on first install guides users to setup wizard
- Feature: Connection status indicator in settings page showing API status, mode, and merchant ID
- Feature: API key validation during setup with connectivity testing
- Feature: IBAN validation using MOD-97 algorithm during setup
- Feature: Account holder name validation (minimum 2 characters)
- Enhancement: Unified API key field (auto-detects test vs live mode)
- Enhancement: Gateway automatically enables after wizard completion
- Enhancement: “Run Setup Wizard” button always accessible from settings
- Enhancement: Skip wizard functionality with permanent dismissal option
- Enhancement: Backward compatibility migration for v1.5.x settings
- Enhancement: Visual error messages with clear, actionable feedback
- Enhancement: Connection status with color-coded badges (test/live/enabled/disabled)
- UX: Auto-populated form fields with sensible defaults (site name, etc.)
- UX: Inline help text and dashboard links throughout wizard
- UX: Responsive wizard design optimized for mobile devices
- Developer: Public
handle_auto_signup()method for programmatic onboarding - Developer: New CSS classes:
.bankpay-connection-status,.bankpay-badge,.wizard-error - Security: Nonce verification on wizard skip action
- Security: AJAX handler with capability checks for notice dismissal
- Performance: Transient-based wizard completion tracking
- Compatibility: Seamless migration from legacy test/live key structure
- Docs: Comprehensive inline documentation for all wizard methods
- Release Date: 2025-01-25
1.5.1
- Bug Fix: Fixed critical issue where refund transactions were not being tracked in analytics
- Bug Fix: Fixed incorrect processing time calculation that was using current timestamp instead of event timestamp
- Enhancement: Added quick date filter buttons (Today, Last 7/30/90 Days) for faster analytics filtering
- Enhancement: Improved date validation: prevents future dates, enforces logical date ranges, limits max range to 365 days
- Enhancement: Added user-friendly error messages for invalid date range selections
- Enhancement: Implemented 12-month data retention policy with automatic cleanup via daily cron job
- Performance: Optimized analytics queries with improved date range validation
- Developer: Added
BANKpay_Plus_Analytics::cleanup_old_events()static method for data maintenance - Developer: Added
bankpay_plus_track_refund()hook that triggers onwoocommerce_order_refundedaction
1.5.0
- Feature: Analytics Dashboard with Chart.js visualizations (4 chart types)
- Feature: Payment performance metrics (success rate, volume, processing time)
- Feature: Bank-by-bank usage statistics and performance rankings
- Feature: Time-series charts showing payment volume and success rate trends
- Feature: CSV export functionality for external analysis
- Feature: Custom date range filtering (default: 30 days)
- Feature: Real-time analytics with transient caching (5-15 minute TTL)
- Database: New analytics table with 11 optimized indexes for performance
- Enhancement: Event tracking for payment initiation and completion
- Enhancement: Processing time calculation (milliseconds)
- Enhancement: Returning customer detection in analytics
- Enhancement: Auto-migration on plugin activation (version-checked)
- Admin: Dedicated “BANKpay+ Analytics” menu under WooCommerce
- Admin: 4 stat cards with hover effects and responsive design
- Admin: Line chart for payment volume over time (dual Y-axis)
- Admin: Pie charts for success/failure ratio and top 5 banks
- Admin: Horizontal bar chart for bank success rates
- Admin: Detailed bank performance table with sortable columns
- Performance: Query caching prevents redundant database hits
- Performance: Composite indexes optimize date-range queries
- Performance: Chart.js 4.4.0 loaded via CDN for fast rendering
- Security: AJAX nonce verification for CSV export
- Security: Capability checks (manage_woocommerce required)
- Security: User agent hashing for privacy (SHA-256)
- Developer: 175+ lines of JavaScript for chart initialization
- Developer: Extensible analytics class with public query methods
- Developer: GDPR-compliant data collection (no IP addresses stored)
- Responsive: Mobile-optimized dashboard (tablets, phones)
1.4.0
- Feature: Real-time IBAN validation with MOD-97 checksum algorithm
- Feature: Support for 70+ countries with country-specific validation
- Feature: Bank code extraction (DE, FR, GB, ES, IT, NL, BE, AT)
- Feature: Optional ibanapi.com integration for enhanced validation
- Feature: Client-side IBAN formatting and real-time feedback
- Feature: REST API endpoint: /wp-json/bankpay-plus/v1/validate-iban
- Feature: 30-day validation caching for performance
- Feature: Rate limiting protection (10 requests per minute)
- Feature: Returning customer recognition with localStorage persistence
- Feature: One-click payment for returning customers
- Feature: Automatic bank selection memory (90-day retention)
- Feature: IBAN masking for security (shows DE89****0000)
- Feature: Welcome back banner with saved bank information
- Feature: Manual “Forget this bank” option for privacy control
- Enhancement: Admin settings for IBAN validation configuration
- Enhancement: Visual feedback with success/error states
- Enhancement: localStorage caching for offline validation
- Enhancement: GDPR-compliant privacy policy template
- Enhancement: Mobile-responsive returning customer UI
- Enhancement: Event system for payment completion hooks
- Developer: Comprehensive PHPUnit test suite (30+ tests)
- Developer: Extensible validation hooks and filters
- Developer: Custom jQuery events for integration (bankpay:bank_saved, etc.)
- Privacy: localStorage-first approach (no server storage by default)
- Privacy: Automatic WordPress Privacy Policy integration
1.3.1
- Security: Enhanced input sanitization and validation across all components
- Security: Improved SQL query safety with proper escaping
- Code Quality: Fixed 1,256 coding standards violations (WordPress/WooCommerce standards)
- Code Quality: Improved code formatting and inline documentation
- Performance: Optimized statistics calculations with proper caching
- Maintenance: Updated phpcs and phpstan configurations
- Compatibility: Verified WordPress 6.7 and WooCommerce 9.0 compatibility
1.0.0
- Initial release
- Instant SEPA payment processing
- Webhook support for payment notifications
- Refund processing
- Test mode with sandbox environment
- HPOS (High-Performance Order Storage) compatibility
- Admin transaction management dashboard
- Payment statistics and analytics
- Order payment details meta box
- WordPress dashboard widget
- Advanced security features (rate limiting, replay protection, security headers)
- Dependency injection and repository pattern architecture
- Comprehensive logging with automatic sensitive data redaction


