Title: BMPF Payment Infrastructure
Author: Xyno
Published: <strong>October 6, 2026</strong>
Last modified: October 6, 2026

---

Search plugins

![](https://ps.w.org/bmpf-payment-infrastructure/assets/banner-772x250.png?rev=3730882)

![](https://ps.w.org/bmpf-payment-infrastructure/assets/icon-256x256.png?rev=3730882)

# BMPF Payment Infrastructure

 By [Xyno](https://profiles.wordpress.org/xyno/)

[Download](https://downloads.wordpress.org/plugin/bmpf-payment-infrastructure.zip)

 * [Details](https://wordpress.org/plugins/bmpf-payment-infrastructure/#description)
 * [Reviews](https://wordpress.org/plugins/bmpf-payment-infrastructure/#reviews)
 * [Development](https://wordpress.org/plugins/bmpf-payment-infrastructure/#developers)

 [Support](https://wordpress.org/support/plugin/bmpf-payment-infrastructure/)

## Description

BMPF Payment Infrastructure (BMPF) is a modular WordPress payment foundation developed
by Bold Mark Creative that integrates with PayFast for payment processing.

The Free Edition provides a reliable payment foundation for WordPress websites that
need to accept invoice payments or donations through PayFast.

BMPF handles the payment infrastructure so website owners and developers do not 
need to implement PayFast transaction handling, signatures, ITN processing and transaction
tracking themselves.

### Features

 * PayFast Sandbox and Live environment support
 * Merchant ID, Merchant Key and Passphrase settings
 * PayFast payment request generation
 * PayFast signature generation
 * Secure payment redirects
 * PayFast ITN REST endpoint
 * ITN signature validation
 * PayFast notification source validation
 * Payment amount validation
 * Server-side PayFast transaction confirmation
 * Payment status handling
 * Dedicated BMPF transaction database table
 * Transaction creation and retrieval
 * Transaction verification and status updates
 * Transaction administration
 * BMPF dashboard
 * Public BMPF integration API
 * Standalone invoice payments
 * Decimal invoice amounts
 * Invoice or Payment Reference field
 * Standalone donations
 * Suggested donation amount buttons
 * Custom donation amounts
 * Reusable payment configurations
 * Enable/disable payment configurations
 * Payment shortcodes
 * Optional per-integration Pay Button Colour

### External Services

BMPF communicates with PayFast, a third-party payment service, to process payments
and verify payment notifications.

When a payment is created, BMPF sends the payment request data required by PayFast,
including the merchant identifier, payment amount, payment description, customer
return URLs and the BMPF transaction reference. PayFast processes the payment on
its own service.

PayFast sends an Instant Transaction Notification (ITN) to the BMPF endpoint configured
for the site. BMPF validates the notification and performs a server-side confirmation
request to PayFast before updating the transaction status.

For more information about PayFast’s services, terms and privacy practices, see:

 * PayFast General Terms & Conditions: https://payfast.io/legal/general-terms-conditions/
 * PayFast Privacy Policy: https://payfast.io/privacy-policy/

### Invoice Payments

BMPF can provide a standalone invoice payment experience using the `[bmpf_payment]`
shortcode.

The customer enters an invoice or payment reference and the amount to be paid. BMPF
validates the request, creates the PayFast transaction and redirects the customer
to PayFast.

Example:

    ```
    [bmpf_payment id="invoice-default"]
    ```

Invoice references support letters, numbers and common reference characters including
periods, underscores, slashes and hyphens.

### Donations

BMPF can provide a standalone donation payment experience using the same reusable
payment shortcode system.

Suggested donation amounts can be configured alongside a custom donation amount.

Example:

    ```
    [bmpf_payment id="donation-default"]<h3>Payment Flow</h3>
    ```

The standard BMPF payment lifecycle is:

 1.  A website requests a payment through BMPF.
 2.  BMPF validates the payment request.
 3.  BMPF creates a pending transaction.
 4.  BMPF generates the PayFast payment request and signature.
 5.  The customer is redirected to PayFast.
 6.  PayFast processes the payment.
 7.  PayFast sends an ITN notification to BMPF.
 8.  BMPF validates the notification.
 9.  BMPF locates the original transaction.
 10. BMPF validates the payment amount.
 11. BMPF confirms the transaction directly with PayFast.
 12. BMPF updates the transaction according to the verified PayFast status.

### Transaction Protection

BMPF maintains its own transaction record for each payment attempt.

Verified transactions are protected against being treated as new active payments
for the same payment reference.

Pending transactions are handled separately from completed transactions so that 
payment state can be tracked safely.

Existing transaction records are retained for administration and audit purposes.

### Payment Configuration

BMPF provides reusable payment configurations for standalone payment experiences.

Each configuration can define:

 * Configuration name
 * Configuration key
 * Description
 * Payment type
 * Minimum amount
 * Maximum amount
 * PayFast payment name
 * Suggested donation amounts where applicable
 * Optional Pay Button Colour
 * Enabled or disabled status

Configurations can be managed from the WordPress administration area.

### Public Integration API

BMPF includes a public integration API that allows other Bold Mark Creative systems
and custom WordPress development to request payments through the central BMPF payment
infrastructure.

This keeps PayFast handling, transaction creation, verification and payment state
in one reusable payment layer.

### Current Status

The Free Edition currently provides the core payment foundation for invoice payments
and donations.

The PayFast Sandbox payment lifecycle has been successfully tested, including payment
creation, redirect, ITN receipt, notification validation, amount validation, server-
side confirmation and transaction verification.

Standalone invoice payments and donations have also been implemented and tested,
including decimal payment amounts and configurable donation amounts.

The plugin is intended to provide a stable foundation for future payment integrations
while keeping the core payment engine reusable and independent.

### Development Roadmap

 1.  PayFast payment infrastructure — COMPLETE
 2.  Signature generation — COMPLETE
 3.  PayFast redirect — COMPLETE
 4.  ITN validation — COMPLETE
 5.  Server-side payment verification — COMPLETE
 6.  Transaction system — COMPLETE
 7.  Transaction administration — COMPLETE
 8.  BMPF dashboard — COMPLETE
 9.  Public integration API — COMPLETE
 10. Standalone invoice payments — COMPLETE
 11. Standalone donations — COMPLETE
 12. Payment configuration system — COMPLETE
 13. Free Edition 0.1.2 — COMPLETE
 14. Additional payment integrations — FUTURE

### Architecture

BMPF is designed as a reusable payment infrastructure layer.

The core architecture consists of:

BMPF
 | +– Payment Engine +– PayFast Signature Handling +– ITN Verification +– Transaction
System +– Admin Dashboard +– Integration API | +– Standalone Payment Experiences
+– Future Integrations

The payment engine remains responsible for PayFast communication and payment state,
while individual payment experiences provide the customer-facing payment context.

### Security

BMPF validates payment requests server-side and does not rely solely on browser-
side payment information.

PayFast ITN notifications are validated before transactions are updated.

Payment amounts are checked against the original transaction before a payment can
be marked as verified.

Administrative actions use WordPress capability checks and nonces.

### Requirements

 * WordPress 6.0 or later
 * PHP 7.4 or later
 * A PayFast merchant account

### Author

Bold Mark Creative

https://boldmark.co.za/

## Screenshots

[⌊PayFast Sandbox configuration⌉⌊PayFast Sandbox configuration⌉[

PayFast Sandbox configuration

[⌊Sandbox connection test⌉⌊Sandbox connection test⌉[

Sandbox connection test

[⌊Live PayFast credentials⌉⌊Live PayFast credentials⌉[

Live PayFast credentials

[⌊Creating a payment shortcode⌉⌊Creating a payment shortcode⌉[

Creating a payment shortcode

[⌊Customising the success message and button colour⌉⌊Customising the success message
and button colour⌉[

Customising the success message and button colour

[⌊Managing payment shortcodes⌉⌊Managing payment shortcodes⌉[

Managing payment shortcodes

[⌊BMPF payment form on a website⌉⌊BMPF payment form on a website⌉[

BMPF payment form on a website

[⌊Customer payment flow⌉⌊Customer payment flow⌉[

Customer payment flow

[⌊PayFast checkout⌉⌊PayFast checkout⌉[

PayFast checkout

[⌊PayFast payment⌉⌊PayFast payment⌉[

PayFast payment

[⌊PayFast processing⌉⌊PayFast processing⌉[

PayFast processing

[⌊Success message displayed on the website⌉⌊Success message displayed on the website⌉[

Success message displayed on the website

[⌊Verified transaction on the BMPF dashboard⌉⌊Verified transaction on the BMPF dashboard⌉[

Verified transaction on the BMPF dashboard

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“BMPF Payment Infrastructure” is open source software. The following people have
contributed to this plugin.

Contributors

 *   [ Xyno ](https://profiles.wordpress.org/xyno/)

[Translate “BMPF Payment Infrastructure” into your language.](https://translate.wordpress.org/projects/wp-plugins/bmpf-payment-infrastructure)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/bmpf-payment-infrastructure/),
check out the [SVN repository](https://plugins.svn.wordpress.org/bmpf-payment-infrastructure/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/bmpf-payment-infrastructure/)
by [RSS](https://plugins.trac.wordpress.org/log/bmpf-payment-infrastructure/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.1.6

 * Added an optional per-integration Pay Button Colour setting.
 * Added front-end styling for custom payment button colours.
 * Updated the short description to comply with WordPress.org length requirements.

#### 0.1.5

 * Updated the plugin identity and WordPress.org contributor metadata.
 * Added PayFast external service documentation.
 * Replaced direct inline JavaScript output with enqueued assets.
 * Updated release metadata for the 0.1.5 remediation release.

#### 0.1.3

 * Added configurable success messages for verified invoice and donation payments.
 * Added verified payment return handling with automatic status confirmation.

## Meta

 *  Version **0.1.6**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [donations](https://wordpress.org/plugins/tags/donations/)[invoice](https://wordpress.org/plugins/tags/invoice/)
   [payfast](https://wordpress.org/plugins/tags/payfast/)[payment gateway](https://wordpress.org/plugins/tags/payment-gateway/)
   [payments](https://wordpress.org/plugins/tags/payments/)
 *  [Advanced View](https://wordpress.org/plugins/bmpf-payment-infrastructure/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/bmpf-payment-infrastructure/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/bmpf-payment-infrastructure/reviews/)

## Contributors

 *   [ Xyno ](https://profiles.wordpress.org/xyno/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/bmpf-payment-infrastructure/)