Title: TjingTjing – Form Payments with Payfast
Author: tjingtjing
Published: <strong>November 4, 2026</strong>
Last modified: November 4, 2026

---

Search plugins

![](https://ps.w.org/tjingtjing/assets/banner-772x250.png?rev=3784433)

![](https://ps.w.org/tjingtjing/assets/icon.svg?rev=3784433)

# TjingTjing – Form Payments with Payfast

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

[Download](https://downloads.wordpress.org/plugin/tjingtjing.0.3.2.zip)

 * [Details](https://wordpress.org/plugins/tjingtjing/#description)
 * [Reviews](https://wordpress.org/plugins/tjingtjing/#reviews)
 *  [Installation](https://wordpress.org/plugins/tjingtjing/#installation)
 * [Development](https://wordpress.org/plugins/tjingtjing/#developers)

 [Support](https://wordpress.org/support/plugin/tjingtjing/)

## Description

TjingTjing adds Payfast checkout to Ninja Forms. Your visitor fills in the form,
pays securely on Payfast, and the payment is verified and recorded against their
submission.

 * Works with the free Ninja Forms plugin
 * Fixed or calculated amounts, for example {field:amount} or {calc:total}
 * Sandbox mode for safe testing
 * Every payment verified four ways: signature, source, Payfast confirmation, amount
 * Payment status (Pending, Paid, Failed, Cancelled, Refunded) saved on each submission
 * A Payments screen listing every payment, where you record refunds made in Payfast
 * No WooCommerce, no invoicing system, no code

TjingTjing is an independent plugin. It is not affiliated with or endorsed by Payfast
or Ninja Forms. Payfast and Ninja Forms are trademarks of their owners.

### External services

This plugin connects to Payfast (https://payfast.io), a South African payment gateway,
to take payments. You need your own Payfast merchant account.

 * When a visitor submits a form with the TjingTjing action, their browser is sent
   to Payfast’s payment page with the amount, what they are paying for, a payment
   reference, and the buyer’s name, email and (if you map it) cell number. Payfast
   needs these to take the payment and send a receipt.
 * After a payment, Payfast sends a notification to your site. TjingTjing then sends
   that notification back to Payfast to confirm it is genuine.
 * In Sandbox mode the same happens on sandbox.payfast.co.za and no real money moves.

Payfast terms and conditions: https://payfast.io/legal/general-terms-conditions/

Payfast privacy policy: https://payfast.io/privacy-policy/

## Installation

 1. Install and activate TjingTjing, and make sure Ninja Forms is active.
 2. Go to TjingTjing > Settings and enter your Payfast Merchant ID and Key (and passphrase,
    if you set one in Payfast). Leave Sandbox on while testing.
 3. Edit a form in Ninja Forms. Under Emails & Actions, add “TjingTjing (Payfast)”.
 4. Set the amount (for example {field:amount} or {calc:total}), what they are paying
    for, and the buyer’s name and email fields.
 5. Optional: add a Hidden field with the key `payment_status` to see the status in
    Ninja Forms’ Submissions screen and exports.

## FAQ

### Do I need a Payfast account?

Yes. Payfast holds and pays out the money. TjingTjing connects your form to it. 
For testing, create a free sandbox account at sandbox.payfast.co.za.

### Why does Payfast say I can’t pay myself?

Payfast refuses a payment when the buyer’s email address is the same as the merchant
account’s. When you test your own form, use a different email address.

### How do refunds work?

Refund the money in your Payfast dashboard. Then open TjingTjing > Payments and 
click Record refund on that payment, for the full amount or part of it. Payfast 
does not tell your site about refunds, so this keeps your records and the form submission
up to date.

### Do I need to set a notify URL in Payfast?

No. TjingTjing sends it with every payment.

### Payments stay “Pending”

A payment stays Pending if the buyer never finishes paying. If paid payments stay
Pending, turn on the debug log under TjingTjing > Settings and check your PHP error
log. If it says the source IP failed and your site uses Cloudflare or another proxy,
set “Site behind a proxy”.

### What happens to my data if I delete the plugin?

Settings are removed. The payments table is kept, because it is a financial record.
To remove it as well, add `define( 'TJINGTJING_REMOVE_ALL_DATA', true );` to wp-
config.php before deleting the plugin.

### For developers

tjingtjing_payment_complete( $payment, $itn ) fires once per verified payment.
 
tjingtjing_payment_status_changed( $status, $payment, $itn ) fires on every verified
update. tjingtjing_payment_refunded( $payment, $refund ) fires when a refund is 
recorded. tjingtjing_credentials filters the merchant credentials per payment.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“TjingTjing – Form Payments with Payfast” is open source software. The following
people have contributed to this plugin.

Contributors

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

[Translate “TjingTjing – Form Payments with Payfast” into your language.](https://translate.wordpress.org/projects/wp-plugins/tjingtjing)

### Interested in development?

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

## Changelog

#### 0.3.2

 * New name: TjingTjing – Form Payments with Payfast.

#### 0.3.1

 * Database queries use WordPress’s identifier placeholders throughout.
 * A Settings link on the Plugins screen.
 * Requires WordPress 6.2 or later.

#### 0.3.0

 * Ready for wordpress.org: every admin text is translatable, a clean uninstall,
   and documentation of the Payfast connection.
 * Notice when Ninja Forms is not active.
 * Refund messages no longer travel in the page address.

#### 0.2.1

 * Fix: the TjingTjing action now appears in Ninja Forms’ action list.

#### 0.2.0

 * New Payments screen.
 * Record full and partial refunds; status shows on the submission.

#### 0.1.0

 * First build: shared Payfast core and Ninja Forms adapter.

## Meta

 *  Version **0.3.2**
 *  Last updated **12 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [donations](https://wordpress.org/plugins/tags/donations/)[ninja forms](https://wordpress.org/plugins/tags/ninja-forms/)
   [payfast](https://wordpress.org/plugins/tags/payfast/)[payments](https://wordpress.org/plugins/tags/payments/)
   [south africa](https://wordpress.org/plugins/tags/south-africa/)
 *  [Advanced View](https://wordpress.org/plugins/tjingtjing/advanced/)

## Ratings

No reviews have been submitted yet.

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

[See all reviews](https://wordpress.org/support/plugin/tjingtjing/reviews/)

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/tjingtjing/)