Title: SaltEdge Ecomm Payments
Author: Salt Edge
Published: <strong>August 12, 2026</strong>
Last modified: October 8, 2026

---

Search plugins

![](https://ps.w.org/saltedge-ecomm-payments/assets/banner-772x250.png?rev=3652873)

![](https://ps.w.org/saltedge-ecomm-payments/assets/icon.svg?rev=3652873)

# SaltEdge Ecomm Payments

 By [Salt Edge](https://profiles.wordpress.org/seecomm/)

[Download](https://downloads.wordpress.org/plugin/saltedge-ecomm-payments.1.12.1.zip)

 * [Details](https://en-au.wordpress.org/plugins/saltedge-ecomm-payments/#description)
 * [Reviews](https://en-au.wordpress.org/plugins/saltedge-ecomm-payments/#reviews)
 *  [Installation](https://en-au.wordpress.org/plugins/saltedge-ecomm-payments/#installation)
 * [Development](https://en-au.wordpress.org/plugins/saltedge-ecomm-payments/#developers)

 [Support](https://wordpress.org/support/plugin/saltedge-ecomm-payments/)

## Description

SaltEdge Ecomm Payments adds a payment method that lets customers pay directly from
their bank account. At checkout the customer is redirected to their bank, authorises
the payment, and returns to your store. The order is updated from the payment status
the platform reports back.

Features:

 * Bank payments through the Salt Edge platform
 * Redirect checkout flow with bank authentication
 * Payment status updates over signed webhooks
 * Order status synchronisation back to the platform
 * Full and partial refunds from the WooCommerce order screen
 * Customer refund notification emails
 * One-click connect: credentials and the webhook URL are configured automatically

#### External service

This plugin relies on the Salt Edge Ecomm platform (https://ecomm.saltedge.com) 
to process payments. The payment method cannot work without it, and a merchant account
on the platform is required.

What is sent, and when:

 * When a customer places an order: the order total, currency, order number and 
   reference, the order description, the return and webhook URLs, and the customer’s
   IP address.
 * When an order status changes: the order reference, status, total, currency, payment
   ID and line items (name, quantity, price).
 * When a refund is requested: the payment ID, refund amount and reason. For refunds
   started from the order screen, the shop manager’s IP address and a return URL
   back to the order screen are also sent (required by UK Faster Payments). For 
   customer-initiated refunds and bank account verification, the customer’s name
   and email are also sent, so the platform can verify the destination bank account.
 * When connecting your store: your site URL and the callback and webhook URLs for
   this site.

The platform sends payment and refund status updates back to this site over signed
webhooks.

Use of the service is governed by Salt Edge’s terms and privacy policy:

 * Terms of Service: https://www.saltedge.com/legal/terms_of_service
 * Privacy Policy: https://www.saltedge.com/legal/privacy_policy

## Installation

 1. Upload the `saltedge-ecomm-payments` folder to `/wp-content/plugins/`, or install
    the plugin through the WordPress plugins screen.
 2. Activate the plugin through the **Plugins** menu.
 3. Go to WooCommerce > Settings > Payments > SaltEdge Ecomm Payments
 4. Complete onboarding. Start self-service onboarding and connect your account. The
    entire process takes less than 5 minutes. Credentials and the webhook URL are configured
    automatically to your store.
 5. Enable the payment method and save.

Credentials can also be entered by hand under _Advanced: manual setup_.

## FAQ

### Do I need an account on the SaltEdge Ecomm Platform?

Yes. The plugin talks to the platform for every payment, so a merchant account with
a Client ID and Secret is required. Sign up at https://ecomm.saltedge.com and then
connect your store from the gateway settings.

### Where do I get my Client ID and Secret?

From your merchant account on the platform at https://ecomm.saltedge.com. In most
cases you do not need to copy them by hand: **Connect to Salt Edge** on the gateway
settings screen fetches the credentials and configures the webhook URL for you. 
The fields under _Advanced: manual setup_ are there if you prefer to enter them 
yourself.

### Can I issue refunds from WooCommerce?

Yes. Full and partial refunds are started from the “Pay by Bank refund” box on the
order screen, and you authorize the payout at your bank in a new tab. If no verified
bank account is on file for the buyer, the same box lets you email them a secure
link to verify one first. The order is only marked refunded once the money actually
moves.

## Reviews

![](https://secure.gravatar.com/avatar/fa85cf7ff9260291181d6e2ad767e203321b194edaf9a29409d6734eff2df050?
s=60&d=retro&r=g)

### 󠀁[Really fast onboarding](https://wordpress.org/support/topic/really-fast-onboarding/)󠁿

 [Soundslikeapanda](https://profiles.wordpress.org/mogoshv/) August 19, 2026

I started to use this plug recently and I like how it is easy to set up and work
with it. please don't forget to add new page builders

 [ Read all 1 review ](https://wordpress.org/support/plugin/saltedge-ecomm-payments/reviews/)

## Contributors & Developers

“SaltEdge Ecomm Payments” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Salt Edge ](https://profiles.wordpress.org/seecomm/)

[Translate “SaltEdge Ecomm Payments” into your language.](https://translate.wordpress.org/projects/wp-plugins/saltedge-ecomm-payments)

### Interested in development?

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

## Changelog

#### 1.12.1

 * A buyer who picks their bank, leaves the bank app without paying and presses 
   Place Order again now gets a working bank window straight away, instead of a “
   Session lost” page.
 * The “Didn’t open? Continue to your bank” link on the checkout waiting notice 
   is no longer shown once the buyer has picked their bank, since it could no longer
   take them back to the payment.

#### 1.12.0

 * Pressing Place Order again while the bank window is open, or after closing it,
   no longer creates a new order on the block checkout. The buyer’s retry stays 
   on the same order, so the shop gets one order per purchase instead of one per
   click.
 * A buyer who leaves before their bank receives the payment — closes the bank window,
   or backs out at the bank — no longer fails the order. It stays at Pending payment,
   still payable, with a note saying what happened, and WooCommerce sends no “order
   failed” email. A payment the bank itself refuses still fails the order as before.
 * After an unsuccessful payment the checkout page now says why, once: “This payment
   didn’t go through (Insufficient funds)” with the reason the platform gives, “
   This payment didn’t go through” when there is none, or “This payment wasn’t completed”
   when the buyer left — instead of a generic “we didn’t hear back from your bank”
   followed by a second sentence repeating it.
 * Cancelling in the bank window now ends that attempt straight away: the bank window
   says you cancelled, the checkout page offers to try again at once, and trying
   again opens a fresh bank window instead of the cancelled one.
 * Paying again from the order page (My Account or the email link) now picks up 
   a payment just started at checkout instead of refusing it, and the order page
   explains a payment still in progress without claiming a bank window was opened.
 * A checkout page left on “try again” moves on to the order by itself once the 
   order is paid in another tab.
 * After the bank, the order page now says why a payment was declined, as checkout
   does.
 * A failed Pay by Bank order’s note now says why the bank declined it, e.g. “Pay
   by Bank payment failed: Insufficient funds.”
 * A bank window left open on an earlier attempt no longer affects the buyer’s newer
   payment when it comes back to the shop.
 * The Pay button in My Account  Orders is still hidden while a payment for that
   order is at the bank, now without affecting how the checkout treats the order.

#### 1.11.0

 * When a call to the Salt Edge platform fails, the plugin now records the platform’s
   own reference for that call in the WooCommerce logs (WooCommerce  Status  Logs,
   source “saltedge-ecomm-payments”), alongside the request and the status code.
   A failed call creates no payment, so there is nothing for support to look up 
   by order number; this reference lets them find the exact call behind a “checkout
   is not working” report.
 * Checkout no longer asks the buyer to choose their bank before placing the order.
   The bank is now picked once, in the Salt Edge window, which lists every supported
   bank — instead of choosing on the checkout page and confirming again at the next
   step.
 * Whether a buyer may start a second payment for an order is now decided by the
   platform, which checks with Salt Edge whether the earlier payment ever reached
   a bank. A buyer who closed the bank picker can pay again straight away instead
   of waiting out a fixed 15 minutes, and a buyer whose payment is with their bank
   stays blocked for as long as that is true.
 * The notice shown when a second payment is refused now says why: the order is 
   already paid (with a link to it), a payment is waiting at the bank, or the status
   could not be checked and should be retried shortly. It is also shown on the order
   page it sends the buyer to, on both the classic and the block checkout; before,
   it was queued for a page that never displayed it.
 * When the platform itself refuses a second payment at Place Order (another payment
   on the order is live, or Salt Edge could not be reached), the buyer now sees 
   that same notice instead of a raw “Payment error” line.
 * A payment the platform marks as abandoned (never got past the bank picker) now
   fails the order with a note saying so, and no longer leaves the checkout page
   waiting or the order-pay page blocked.
 * A payment confirmation the plugin could not apply no longer counts as handled,
   so a replayed notification can now still update the order — previously the first
   attempt was recorded as done and every later one was refused, leaving the order
   at Pending payment until someone changed it by hand.
 * A refund that WooCommerce refuses to record is now reported as a failure, so 
   Salt Edge retries it a few times instead of the order note promising a retry 
   that never came. If it still cannot be recorded, the order says so and asks for
   it to be entered by hand, rather than the attempt disappearing quietly.
 * A confirmed payment that cannot move the order — because the order is in a status
   WooCommerce will not complete from, usually one set by another plugin — now leaves
   a note on the order saying it is still unpaid, instead of nothing at all.
 * The plugin’s reply to each notification now says what it did with it: which order
   moved and to which status, or the reason nothing happened. Salt Edge support 
   can read that when a merchant asks why an order did not update.
 * Handled notifications are now forgotten once they are 30 days old, on top of 
   the existing limit on how many the shop keeps.

#### 1.10.0

 * An external refund resolved as “process through Pay by Bank” on the merchant 
   dashboard now settles onto the refund row the merchant already created: the order
   keeps one refund line, stamped as paid through Pay by Bank, instead of gaining
   a duplicate.
 * If that original refund row was deleted while the bank transfer was still in 
   flight, the plugin records a fresh refund row when the money lands and says why
   in the order notes.
 * If the amount reported as settled ever disagrees with that original refund row,
   the row is left untouched and an order note shows both figures so the discrepancy
   can be reconciled by hand.

#### 1.9.0

 * Placing a Pay by Bank order now keeps the buyer on the checkout page while their
   bank window is open, instead of showing “Order received” for an order that has
   not been paid yet. The page moves on to Order received by itself once the payment
   is confirmed.
 * A payment that fails, is cancelled, or is abandoned at the bank now brings the
   buyer back to a working checkout form with a note explaining what happened, and
   their cart still filled.
 * The checkout page watches the payment in the background rather than reloading
   itself every few seconds, so it no longer blinks or loses anything the buyer 
   had typed. If the shop cannot be reached for a couple of minutes it says so instead
   of waiting silently.
 * The bank window now closes itself once the bank sends the buyer back to the shop,
   instead of leaving a second copy of the order open in a small window. Where the
   browser will not let it close — which happens if the popup was blocked and the
   buyer opened their bank from the fallback link — it says the window can be closed
   and links to the order.
 * A payment whose status cannot be read from the platform now stops blocking a 
   fresh attempt once it is older than the bank session it belongs to, so a platform
   outage no longer leaves the buyer with no way to pay at all.

#### 1.7.0

 * The order screen now asks what an external refund (the manual refund button, 
   returns plugins) actually was — a bank transfer, store credit, another payment
   provider, or something else — so the order history says what happened to the 
   money instead of just that it left Pay by Bank’s books.
 * Resolving one of these refunds from the Pay by Bank merchant dashboard now also
   clears the question from the order screen and records it on the order.
 * Deleting an external refund that had already been confirmed as processed on Pay
   by Bank now says so on the order, instead of claiming a release that did not 
   happen.
 * External refunds recorded before this version don’t get the order-screen question—
   resolve those from the Pay by Bank merchant dashboard instead.

#### 1.6.0

 * Checkout now shows the main UK banks as tiles with their logos, on both the classic
   and block-based checkout. Choosing one takes the buyer straight into that bank’s
   authorisation instead of picking again from the full list in the Salt Edge window.
 * Monzo joins the bank list, bringing it to eight named banks alongside “Other 
   bank”.
 * “Other bank”, and leaving no bank selected, both behave as before and show the
   complete list in the Salt Edge window.
 * Choosing a bank at checkout fixes it for that payment: the Salt Edge window offers
   no route back to the full list, so a buyer who picks the wrong bank has to start
   the payment again.

#### 1.5.0

 * Refunds made outside Pay by Bank (the manual refund button, returns plugins) 
   are now recorded on the platform and reduce the refundable balance, so a refund
   can no longer be paid twice.
 * Deleting such a WooCommerce refund releases the reserved balance again.
 * The order screen explains that manual refunds do not move money via Pay by Bank.

#### 1.4.0

 * Refunds started from the order screen now send a stable idempotency key, so a
   retried request can no longer create a duplicate refund.

#### 1.3.3

 * Checkout now shows an FCA consent notice (“[institution] will initiate this [
   amount] payment… you agree to [institution]’s Terms & Conditions and Privacy 
   Policy”) on both the classic and block-based checkout, with the payment institution
   name and terms URL filterable via `saltedge_ecomm_consent_entity_name` / `saltedge_ecomm_terms_url`.
 * Added Halifax and Nationwide to the bank list at checkout, and real logos for
   Halifax, Nationwide, NatWest and Santander UK (renamed from “Santander”), replacing
   placeholder SVGs. A dedicated icon replaces the generic building glyph on the“
   Other bank” option.
 * Fixed the payment method icon strip on checkout rendering the “99+” pill at a
   different size than the bank logos next to it.

#### 1.3.2

 * An order with a payment already in progress can no longer start a second one:
   opening the pay page while the customer is still at their bank now explains what
   is happening and offers to continue the payment already started, instead of quietly
   creating a second payment.
 * A payment left unfinished at the bank stops holding the order after fifteen minutes,
   so a customer who closed their bank window can still pay.
 * If an order does receive a second successful payment, an order note now records
   it, so a double charge is visible to the shop instead of passing silently.
 * A late “payment failed” notification for an earlier attempt no longer moves an
   already-paid order to Failed.

#### 1.3.1

 * Refunds from the order screen are now real: a “Pay by Bank refund” box replaces
   the generic refund button, and you authorize each payout at your bank. Previously
   the order could show a completed refund while no money had moved.
 * When no verified bank account is on file for the buyer, the order screen can 
   email them a secure link (works for guest checkouts too) to verify their account
   before the refund is sent.
 * The order is marked refunded only when the bank confirms the payout; abandoned
   or failed payouts free the order for another attempt.

#### 1.2.7

 * Checkout and the order payment page no longer report “a payment is already in
   progress” when the payment status could not be read — they now say the status
   could not be confirmed and to try again.
 * A payment status that could not be read is remembered for seconds rather than
   a full minute, so a brief outage stops blocking an order shortly after it clears.

#### 1.2.6

 * The plugin logo now shows next to the payment method on the WooCommerce Settings
   > Payments page instead of the generic placeholder.

#### 1.2.5

 * No functional changes. Added icon and banner.

#### 1.2.4

 * No functional changes; release tooling only.

#### 1.2.3

 * The store now stands itself down when a merchant revokes its connection from 
   the platform dashboard: the plugin acts on the store-level webhook, disconnects
   its own side cleanly, and shows when it happened. Reconnecting clears the marker.

#### 1.2.2

 * Requires at least now correctly states the major WordPress version (5.8) instead
   of a point release.
 * Moved webhook signature verification to permission_callback
 * The payment status reported by the platform is now shown to customers: as a **
   Payment status** section on the order page while a payment is still in flight,
   and alongside the “complete your payment” and “payment already in progress” notices.
 * Confirmed payments now go through WooCommerce’s standard payment-complete handling,
   so the transaction ID and paid date are recorded and the order lands in the status
   the store is configured to use, instead of always _Processing_.
 * Refunds completed on the platform are recognised again and recorded against the
   order; a refund still in progress adds its order note only once, however many
   times the platform re-sends the event.
 * Fewer platform calls on the order and pay pages: the status of a finished payment
   is cached far longer, and no call is made at all for orders that are already 
   paid.

#### 1.2.1

 * Documentation: the FAQ now points merchants to the platform for signing up and
   for their API credentials.

#### 1.2.0

 * Renamed to SaltEdge Ecomm Payments; plugin slug, option names and hook prefixes
   changed accordingly.
 * Bank picker on the classic checkout and pay-for-order pages, next to the existing
   block checkout support.
 * Failed and cancelled payments can be retried from the order page; orders the 
   platform will not accept again no longer offer a Pay action.
 * Declared compatibility with WooCommerce High-Performance Order Storage and cart/
   checkout blocks, and WooCommerce as a plugin dependency.
 * Fewer platform calls when listing orders in the admin.
 * Output escaping, input sanitisation and translator comments brought in line with
   WordPress Plugin Check.

#### 1.1.0

 * One-click **Connect to Salt Edge**: credentials and the webhook URL are configured
   automatically through an OAuth/PKCE handshake. Manual entry stays available under
   _Advanced: manual setup_.

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.12.1**
 *  Last updated **4 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress Version ** 5.8 or higher **
 *  Tested up to **7.1.3**
 *  PHP Version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/saltedge-ecomm-payments/)
 * Tags
 * [bank](https://en-au.wordpress.org/plugins/tags/bank/)[pay by bank](https://en-au.wordpress.org/plugins/tags/pay-by-bank/)
   [payment](https://en-au.wordpress.org/plugins/tags/payment/)[refunds](https://en-au.wordpress.org/plugins/tags/refunds/)
   [woocommerce](https://en-au.wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://en-au.wordpress.org/plugins/saltedge-ecomm-payments/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  1 5-star review     ](https://wordpress.org/support/plugin/saltedge-ecomm-payments/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/saltedge-ecomm-payments/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/saltedge-ecomm-payments/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/saltedge-ecomm-payments/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/saltedge-ecomm-payments/reviews/?filter=1)

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

[See all reviews](https://wordpress.org/support/plugin/saltedge-ecomm-payments/reviews/)

## Contributors

 *   [ Salt Edge ](https://profiles.wordpress.org/seecomm/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/saltedge-ecomm-payments/)