WooCommerce plugin for instant payments

The Credetra payWEB plugin is a WooCommerce payment gateway plugin to bridge WooCommerce order payment tracking with appropriate order-status changes.

Urgency, time-pressure

Paying with intant payment becomes a part of the customer journey and not some "unrelated" event at a different time/ place (like waiting for an invoice). Your customers make the money transfer immediately and doesn't have to wait for emails.

Communication

Your customer can give a feedback on the completion of the transfer on their side. You can optimize your processes accordingly. We are working on integrating the bank's feedback to integrate the event of receiving the money.

Less room for errors

You can forget about "please enter the order number in the transfer's comment secion" messages. Using QR codes, the correct data is transferred in the transaction. You don't have to send quotes, or pre-invoices just to end up in spam folders.

Optimizing stock

In your process, the payments lock the stock - which could last days until your customer makes the transaction. Upon cancellation, the stock is released immediately, you don't have to wait. Your sales process will speed up substantially.

Supported process

The customer sets up the basket in the webshop

WooCommerce handles the management of the basked and the preparation of the order.

The customer chooses a payment method

Fills the shipping address, if it's neccessary. Pressing the payment button, the Credetra pay@WEB pages is loaded.

pay@WEB presents the QR code

Similarly to the card payments, the account number, merchant and amount is shown.

Customer can canncel anytime

The cancel button redirects back to the checkout page. You can check the the status-change at the order's notes.

Customer scans and initiates instant payment

Using his/her own bank's mobile bank to scan and start the transaction. Manually copy-pasting the data can be used too if scanning is not available.

Banks handle the instant payment

Money is transferred from customer's account to the merchant's account directly, there's no third party involved. Payment charges are on the customer.

pay@WEB UI handles the feedback

Either the customer does it manually, or it just happens automatically (if your bank's supported). UI navigates to the thank-you page.

Pluging checks the status on the server

Makes sure about the statuses, and proceeds with the appropriate WooCommerse process. You can find the result of the check in the order's notes.

Technical description for integrators, developers

Basic requirements

  • WooCommerce is installed in the woocommerce folder located in the plugins directory.
  • Your WooCommerce portal's currency is set to HUF

  • your WooCommerce server must be able to access and call the following URL: https://payweb.credetra.com
  • you have a Credetra API key

Information for integrating into heavily customized portals

The plugin builds upon standard/basic WordPress functions and WooCommerce hoooks and facilities. You shouldn't run into any issues, but we do recommend to try the plugin with the test version of your site (which you probably have).

The most important thing is the presence of two order-statuses: on-hold, and failed. The first is used when a transaction signature process is started, the later is used when the redirection finds the transaction in a non-optimal (meaning: cancelled, timeouted, not found, etc) state.

Upon success, the plugin invokes the `payment_complete` function of the `order`, so if you have overwritten it, the transaction will go to the correct state. So, if you have overriden this method, your code will run and the status will be the one you've set.

The plugin also installs an API hook at the standard API URL, `/credeetra/` added, to receive the status from the server. If you have something like it installed (highly doubt it, but just in case), they will collide.

`add_order_note` is used to keep you up-to-date what has happened with the order's statuses. The messages are i18n-ready.

The order's meta-data is used to store interim information about the last successful transaction. It's not cleaned, if you ever need a reference, but for processed transactions, you can set up a job cleaning them up. Meta-data starts with `_credetra`.

Multilanguage is supported with LocoTranslate files. English and Hungarian are provided, feel free to customize it yourself. Please note, that since the language files are in the plugin folder, uppgrading the plugin will delete your changes. So keep your translations backed up.

Frequently asked questions

Does this plugin work with any WordPress sales portal?

No. The Credetra WooCommerce plugin will only work with WooCommerce installed. It uses it's specific hooks and methods.

Is the plugin really free?

Partially. You don't have to pay anything to obtain the plugin. However, you have to pay for the usage (generating QR codes).

What mobile banks' support the MNB standard QR code?

As of writing, Raiffeisen's and Gránit Bank's applications are supporting the initiation of instant payment transactions from MNB standard QR codes. We expect the other banks to follow.

Why can't OTP's mobile bank read the QR?

Currently, OTP and Simple applications do not support MNB standard QR codes. It might change in the future.

What's with the customer 'promising' to fulfill the payment?

Currently, the main purpose of Credetra is to help your customers' user experience filling out a HUF transfer with the help of a QR code. In this sense, it's the same as providing money transfer payment, with a nicer UI. The following state-transfers are supported for the orders:

When the customer presses the 'I promise' button, the order status remains in on-hold, and you can check your account statement for the incoming transactionn - as you probably do today.

If your bank supports Credetra integration, the 'I promise' button is simply not present. In this case, Credetra check wether the amount has been deposited to your account with the correct order-reference, and updates the order status to 'processing'. Your processes will continue as you would expect.

Is my bank supported?

The short answer is: no.

The longer answer is: there is only one bank in Hungary, that has the holy trinity of sending transaction notifications in an immediate, unattended, machine-processible way, and also supporting Hungarinan Instant Payments: TransferWise. (Ok, technically Magnet Bank is capable too.) We are currently working on an adapter to integrate to TransferWise accounts. Please check Credetra payWEB's website to get the latest news on the supported banks' list.

Why don't you have a test-mode available?

We believe, that using the plugin you won't run into much of a problem. Trying the features from test environment doesn't put a financial burden on your enterprise. You can turn on the debug mode (writes logs, a lot), and restrict the usage for a test user. You can check wether it lives up to your expectation, or not.

Why is turning on debug ill-advised?

Debug writes it's own files. It is VERY exhaustive, and you can only get technical details - it's mostly for us helping the development. We decidd to leave it in the products, since you might have technical / connectivity issues, so keeping it turned on is not really worht it. It doesn't log any security related stuff, so it's up to you wether you want to use it or not.

There are multiple notes beside the transaction indicating the transaction status is checked. Why is that?

Each time the order's status is checked with Credetra, the received status is added as a note. There are certain cases, where the user's browser misbehaves, and the callback endpoint is called more than once. You see the results there.

Why is redirecting back from Credetra to the thank-you page take a long time?

Might be surprising, but you might be 'wrong' here. The way Credetra returns to your site is the following:

  • Credetra issues a 302 (temporary moved) to the callback URL, wich is an API endpoint provided by the plugin.
  • the callback endpoint at the WooCommerce server checks the status with Credetra, and acts accordingly
  • `payment_complete()` is called. If you have unneccesary, not working elements here, this will take a long time
  • cart is emptied
  • WooCommerce issues a 302 (temporary moved) to the `thank-you` page
  • WooCommerce `thank-you` page is rendered

We know for sure, that non-working / missing email servers can cause up to 5 second delays using WooCommerce's default install. Turn off email sending, and your process will speed up.

If you still think, that Credetra is slow, turn on the debulg log to check response times.

Platform

PHP 7.0+

WordPress 4.7+

WooCommerce 4.4.1+

Loco Translate 2.4.4+

Changes

The full list can be found here:

Changelog