Home Plugins bankpay open banking sepa payments for woocommerce
BANKpay+ for WooCommerce logo

BANKpay+ for WooCommerce

by BANKpay+ by K42.ventures on WordPress.org

Accept instant SEPA payments with 7-second settlement time via BANKpay+.

(0)
Payment gateway settings

Payment gateway settings

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.

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

Features

Payment Processing

  • Instant Settlement – Money in your account within 7 seconds
  • Low Fees – Significantly lower than card processing fees
  • 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

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

  1. Customer selects BANKpay+ at checkout
  2. Customer is redirected to select their bank
  3. Customer authorizes payment in their banking app
  4. Payment is confirmed and settled instantly
  5. Customer is returned to your store

Get Started in 5 Minutes

  1. Install – Download from WordPress.org or search in your admin panel
  2. Activate – Click “Activate” in your plugins list
  3. Connect – Run the setup wizard (WooCommerce Settings Payments BANKpay+)
  4. Test – Place a test order to verify everything works
  5. 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:

  1. 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.

  2. Via GitHub
    Fork the repository, translate the PO files in the languages/ directory, and submit a pull request.
    See languages/README.md for 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_Gateway
  • BANKpay_Plus_API – RESTful API client with retry logic
  • BANKpay_Plus_Webhook – Webhook handler with signature verification
  • BANKpay_Plus_Analytics – Payment metrics and reporting
  • BANKpay_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 initiates
  • bankpay_plus_payment_complete – Fires when payment completes
  • bankpay_plus_payment_failed – Fires when payment fails
  • bankpay_plus_refund_completed – Fires when refund processes
  • bankpay_plus_webhook_received – Fires on webhook receipt
  • bankpay_plus_webhook_verified – Fires after signature verification
  • bankpay_plus_webhook_failed – Fires on webhook error
  • bankpay_plus_analytics_event – Fires on analytics tracking

Filters (Data Modification):

  • bankpay_plus_gateway_title – Customize payment method title
  • bankpay_plus_gateway_description – Customize checkout description
  • bankpay_plus_payment_button_text – Customize payment button text
  • bankpay_plus_checkout_data – Modify checkout session data
  • bankpay_plus_api_endpoint – Change API endpoint URL
  • bankpay_plus_api_timeout – Adjust API request timeout (default: 30s)
  • bankpay_plus_iban_valid – Override IBAN validation result
  • bankpay_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 overview
  • DEVELOPER_GUIDE.md – Architecture and contribution guidelines
  • API_INTEGRATION_GUIDE.md – Step-by-step API integration
  • TESTING_GUIDE.md – Unit, integration, and E2E testing
  • WARP.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

Active installations10+
Weekly downloads
34+750.00%
Version1.7.0
Last updated10/26/2025
WordPress version6.0
Tested up to6.7.4
PHP version8.0
Tags
bank transferinstant paymentpayment gatewaysepawoocommerce
BANKpay+ for WooCommerce | Plugin0