ཞིབ་བརྗོད།
Syntopia Pay adds three payment methods to WooCommerce checkout, all processed by ePay.bg:
- Card: the customer pays on the ePay.bg payment page.
- ePay.bg account: the customer pays from their ePay.bg wallet.
- EasyPay code: the customer gets a 10-digit code and pays it at an EasyPay office or through ePay.bg.
It is for shops in Bulgaria that have a merchant account with ePay.bg and sell in euro.
What it does:
- Works in the classic checkout and the block checkout.
- Marks an order paid, failed or cancelled when ePay.bg reports the result. Repeated or late messages from ePay.bg are handled safely.
- Warns you in wp-admin and by email when a payment needs a look, for example when a customer paid twice, paid after the order was cancelled, or paid an amount that no longer matches the order.
- Shows the EasyPay code, the amount and the date to pay by on the thank-you page, in the “on hold” email and in My account.
- Refunds are manual: you refund in WooCommerce and in the ePay panel.
- Works with Bulgarisation for WooCommerce.
- An “ePay.bg” column in WooCommerce > Orders with the method, the paid invoice and a flag for payments that need a look.
- The settings page shows when the last notification from ePay.bg arrived.
- Prices are in euro.
- Includes a guide in English and Bulgarian under WooCommerce > Syntopia Pay.
Syntopia Pay for ePay.bg is an independent plugin by Syntopia LTD. It is not made, endorsed or supported by ePay.bg. ePay.bg and EasyPay are trademarks of their owners.
Syntopia, the company behind the plugin, builds and maintains WooCommerce shops in Bulgaria; see syntopia.bg.
Early release
Syntopia Pay is new. Card payments already run in a live shop. The ePay.bg account and EasyPay code methods were tested on the ePay.bg demo system and by automated tests, not yet with real money. If you switch them on, make one small real payment first. The plugin grows with the shops that use it: ask questions and report anything odd in the support forum and we answer there.
External services
This plugin connects to ePay.bg, the payment service it is built for. No other outbound calls are made: no update checks, no telemetry.
www.epay.bg (live) and demo.epay.bg (test mode)
When a customer pays by card or ePay.bg account, their browser posts a payment form to https://www.epay.bg. While test mode is on, the same form goes to https://demo.epay.bg. The form carries the merchant number (MIN), the order’s invoice number (INVOICE), the amount (AMOUNT), the currency (CURRENCY), the payment deadline (EXP_TIME), a short description (DESCR) and the return links, signed with the shop’s secret. The customer’s name, email, phone and address are not sent. ePay.bg answers by showing its payment page and later reports the result to the shop (payment status and reference numbers, which are stored with the order). Terms and privacy declaration.
/ezp/reg_bill.cgi (EasyPay code)
When an EasyPay code is created, the shop’s server sends a signed request to /ezp/reg_bill.cgi on www.epay.bg (demo.epay.bg in test mode) with MIN, INVOICE, AMOUNT, CURRENCY, EXP_TIME and DESCR. ePay.bg returns the 10-digit code that the plugin shows to the customer. Terms and privacy declaration.
ePay.bg also calls the shop to report payment status. Those are incoming requests, checked against the shop’s secret.
Data kept on uninstall
Removing the plugin deletes its settings (including the secret) and temporary data. Order meta is kept, because it is the record of each payment.
Stock reservation
WooCommerce reserves stock for an unpaid order only for the time set in woocommerce_hold_stock_minutes. A card payment window can be longer, so the last unit of a product may be sold to someone else while a customer is still paying. This is an accepted risk. This applies to card and ePay.bg account payments; raise WooCommerce’s hold time or shorten the payment window if the window is longer. If the payment then arrives and there is not enough stock, the order is still completed as paid, stock may go below zero, and the shop owner gets an order note and an email to check stock before shipping.
Refunds
Refunds are manual. Create a refund on the order in WooCommerce (Refund manually), then refund the payment in the ePay panel. If you use Bulgarisation, check the credit note.
གཏུབ་རེིས།







སྒྲིག་འཇུག
- Install and activate WooCommerce, then Syntopia Pay for ePay.bg.
- Go to WooCommerce > Settings > Payments > Syntopia Pay. Enter your merchant number (MIN) and secret word from your ePay.bg account.
- Leave test mode on at first. In your demo.epay.bg account, enter the notification address shown on the settings page as the notification URL.
- Under WooCommerce > Settings > Payments, switch on Card, ePay.bg account and EasyPay code as you need them. Set the payment window for each.
- Make a test order with each method. Test mode is visible to customers too, so use it only on a staging site or at a quiet hour, and switch it off before real customers pay.
- To go live, enter the same notification address in your www.epay.bg account, turn test mode off, and follow the steps in the guide.
The guide under WooCommerce > Syntopia Pay explains each step with pictures and what to do when something unusual happens.
FAQ
-
Does it work with Bulgarisation for WooCommerce?
-
Yes. Enable a Syntopia Pay method first, then map the payment method ids syntopia_card, syntopia_wallet and syntopia_easypay in Bulgarisation. Bulgarisation documents are created when the order is placed, before payment, so a refused or expired order already has one. After mapping, place a test order with each method and check the payment type on its documents.
-
How do refunds work?
-
Refunds are manual. Create a refund on the order in WooCommerce (Refund manually), then refund the payment in the ePay panel. If you use Bulgarisation, check the credit note.
-
How do I test without real money?
-
Turn on test mode in the Syntopia Pay settings and use your demo.epay.bg account. Payments then go to demo.epay.bg and no money moves. Customers see the methods too, so test on a staging site or at a quiet hour, and turn test mode off before real customers pay.
-
Is customer data sent to ePay.bg?
-
The shop sends ePay.bg the order number, amount, a short description and return links. It does not send the customer’s name, email, phone or address; the customer enters payment details on ePay.bg. Payment reference numbers stored with an order are included in WooCommerce’s personal data export and erased when WooCommerce erases the order’s personal data, following your WooCommerce privacy settings. The plugin also adds a suggested text to your privacy policy page.
-
Is stock held while a customer has an EasyPay code?
-
Yes. The stock is taken when the code is issued and kept for the whole payment window. If the code is not paid in time, the order is cancelled and the stock comes back. Shorten the payment window in the EasyPay settings if you want it back sooner.
-
I am moving from the old ePay plugin. What do I need to do?
-
Deactivate the old plugin before you enable a Syntopia Pay payment method. The old plugin’s notification address keeps working, so you do not have to change it in the ePay.bg panel right away. When the first method is enabled, Syntopia Pay reads the old plugin’s saved settings once. If the old plugin used no invoice prefix and no other plugin changes order numbers, its invoice numbers are the order IDs and Syntopia Pay recognises them. Otherwise notices for old invoice numbers that match no order are answered with an error so that ePay.bg retries them. The Syntopia Pay settings page shows which case applies. You do not need to edit wp-config.php.
གདེང་འཇོག
There are no reviews for this plugin.
བྱས་རྗེས་འཇོག་མཁན། & གསར་འབྱེད་པ།
“Syntopia Pay for ePay.bg” is open source software. The following people have contributed to this plugin.
བྱས་རྗེས་འཇོག་མཁན།ཁྱེད་ཀྱི་སྐད་ཡིག་ནང་ལ་ “Syntopia Pay for ePay.bg” ཡིག་སྒྱུར་བྱོས།
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
དག་བཅོས་ཉིན་ཐོ།
0.2.2
- A warning in the WordPress admin when Bulgarisation for WooCommerce reports orders to the NRA and an enabled Syntopia Pay payment method has no payment type, or only the default first one, set there. You can hide it once the type is confirmed.
Older entries are in changelog.txt.
