Integrates CS-Cart and Multi-Vendor with Scalapay: Pay in 3, Pay in 4 and Pay later, capture at once or when you ship, refunds from the order page.
Tested on 2 buildsUpdated Nov 8, 2026Version 1.0.0CS-Cart, Multi-Vendor 4.17.2 – 4.21.x No core file edits
Built for
Scalapay Payments: Pay in 3, Pay in 4 and Pay later with capture at once or when you ship and refunds from the order page1 of 6
What it does
Scalapay for stores that sell in euro to Italy, France, Spain, Germany, Austria, Belgium, Finland, the Netherlands and Portugal, on CS-Cart, CS-Cart Ultimate, Multi-Vendor and Multi-Vendor Ultimate. Customers pay in 3 or 4 instalments or later on Scalapay's checkout page; you receive the order amount from Scalapay under your own merchant contract. Scalapay charges its own fees; the add-on has none per transaction.
What it changes for your store
An order is paid only after a read-back with the right amount and order total.
Delayed capture holds the authorization until you ship, up to 5 days, and an expired one moves the order to "not paid".
Partial refunds per order and, on a marketplace, per vendor order.
A lost webhook or a closed browser is recovered by the return and the cron.
Every create, capture, void and refund is stored with an idempotency key before it is sent; a call without a clear answer is read back and only re-sent with the same key.
The cart is emptied on return, so an order cannot be paid twice.
How it works
Admin: paste the Scalapay API key on the Connection page and run Save and test, enter the webhook address in the Scalapay Partner portal, add a payment method per Scalapay product, choose capture at once or delayed capture. The order page has a Scalapay tab with capture, void, refund and read back.
Shopper: chooses Scalapay, confirms the plan on Scalapay's page and returns to the order.
Tested against a stand-in built from the published API reference, not yet against the real Scalapay sandbox.
Pay in 3, Pay in 4 and Pay later, one payment method per product of your contract
Paid only after a read-back: amount created and current order total must match
Capture at once (standard flow) or delayed capture at an order status or by hand
Delayed orders wait at a status that is not paid; an expired or voided authorization moves the order to "not paid"
Full and partial refunds from the order page or by order status; Scalapay's "refunded" after a partial refund stays partial
Idempotency key stored before every call; unanswered operations are read back first
Amount mismatch, duplicate and late authorizations are voided, never booked
Signed webhooks (HMAC), return and cron recovery; a return address that never replaces the shopper's session cookie
Scalapay's widget on product, cart and checkout pages; the product page prints only shop-wide data (designed for the 4.21 full page cache)
Minimum and maximum of your contract, euro and the countries Scalapay serves; other shop currencies converted once
Neutral presentation for the EU Consumer Credit Directive: no pre-selection, optional information line
API keys stored encrypted, sandbox with the public test key; uninstall keeps payment records
Multi-Vendor: one payment for a multi-vendor cart with refunds per vendor share, or direct payments to each vendor's own Scalapay account
What you get
Package
kv_scalapay-1.0.0.zip, installed through Add-ons → Manage add-ons
Updates & support
12 months included. Download new versions from your account and install them in Add-ons → Manage add-ons or the Upgrade Center.
License
1 production installation. Staging, dev and localhost are free and unlimited. The add-on keeps working after the update period ends. How licensing works
Compatibility
We list only the builds we install and test on. “Tested” means the full test plan was run on that build; “Supported” means the build is inside the supported range and uses the same hooks.
CS-Cart version and edition compatibility
CS-Cart version
CS-Cart
CS-Cart Ultimate
Multi-Vendor
Multi-Vendor Ultimate
4.22 and later
Testing next
Testing next
Testing next
Testing next
4.21.2
Supported
Supported
Supported
Supported
4.20.x
Supported
Supported
Supported
Supported
4.19.x
Supported
Supported
Supported
Supported
4.18.x
Supported
Supported
Supported
Supported
4.17.2
Supported
Supported
Tested
Supported
Before 4.17.2
Not supported
Not supported
Not supported
Not supported
Last tested build: Multi-Vendor 4.17.2, Nov 8, 2026Tested on: Multi-Vendor 4.17.2
Requirements
PHP
CS-Cart, CS-Cart Ultimate, Multi-Vendor or Multi-Vendor Ultimate 4.17.2 to 4.21.x; PHP 7.4 to 8.3 with cURL and OpenSSL
Requirement
A Scalapay merchant account. From the Scalapay Partner portal you need the API key (sandbox and production keys differ) and, for the widget, your merchant token
Requirement
Euro set up as a currency of the store (Administration > Currencies). Scalapay takes euro only
Requirement
An HTTPS storefront and a cron job on your server
Core changes
None. Hooks and template overrides only
1.0.0
Nov 8, 2026
Latest
Added 13
Scalapay payment method for CS-Cart, CS-Cart Ultimate, Multi-Vendor and Multi-Vendor Ultimate 4.17.2 to 4.21.x (Scalapay Orders API: create order, read back, capture, delayed capture, void, refund, lookup by merchant reference).
One payment method per Scalapay product (Pay in 3, Pay in 4, Pay later, or any).
Capture at once (standard flow) or delayed capture (1 to 5 days) at an order status or by hand; void at the cancel status; refunds (full or partial) from the order page or at an order status.
Order paid only after a read-back with the created amount and the current order total; mismatch, duplicate and late authorizations are voided.
Delayed orders wait at a status that does not count as paid (default Open); a capture always moves them to the paid status; an expired or voided authorization moves them to the "not paid" status.
Scalapay's "refunded" status after a partial refund keeps the payment partly refunded.
Idempotency-Key stored before every create, capture, delay, void and refund; unanswered calls are read back first, then sent again with the same key.
Return address without a session (no_session=Y) that continues same-site, so a return from Scalapay never replaces the shopper's session cookie; the cart (and saved cart rows) is emptied while a payment is pending.
Signed webhooks (HMAC SHA-256 with the API key), cron recovery of open payments and of delayed authorizations past their end.
Scalapay's widget on product pages (full page cache safe), in the cart and at checkout; minimum / maximum amount, euro and the countries Scalapay serves.
Multi-Vendor: one payment on the parent order with one capture and refunds per vendor share, or direct payments to each vendor's own Scalapay account.
Connection page with encrypted API keys, sandbox (public test key) and production, connection test; log with CSV export; job queue; licence client; self-healing upgrades.
Uninstall keeps payment records and the connection (option "Delete payment records on uninstall").
Tested on Multi-Vendor 4.17.2. First release.
Do I need a Scalapay account?
Yes, a Scalapay merchant account and its API key. For first tests the add-on uses the public sandbox key Scalapay publishes in its documentation.
Who pays the instalments, and who carries the risk?
Scalapay. The customer agrees to the plan with Scalapay on Scalapay's page; you receive the order amount from Scalapay under your contract, minus Scalapay's fees.
Which currencies and countries?
Euro only, and delivery to Austria, Belgium, Finland, France, Germany, the Netherlands, Italy, Portugal and Spain, as Scalapay states for its plugins. A shop whose main currency is not the euro can still offer Scalapay if euro is set up: the order total is converted once with your euro rate when the payment is created.
Where do the minimum and maximum come from?
From your Scalapay contract; enter them in the settings. Scalapay publishes no API to read them; its plugin documentation names 5.00 EUR as the default minimum.
Should I capture at once or later?
At once is Scalapay's standard flow. Delayed capture (if enabled for your account) keeps the authorization for up to 5 days until you ship; capture or void it in time.
Can I capture in several parts?
No, one capture per order (the full or a lower amount); Scalapay documents capturing "up to the total", not several partial captures. Refunds can be partial and repeated.
Is the widget required?
No. It is Scalapay's own element, loaded from Scalapay's CDN only on the pages you switch on, and shown only while the page shows euro.
Does it work with the full page cache of CS-Cart 4.21?
Yes by design: the product page widget prints only data that is the same for every guest of that page, language and currency. Cart, checkout, return, webhook and cron are never cached.
What about the EU Consumer Credit Directive (CCD2)?
Directive (EU) 2023/2225 applies through national laws from 20 November 2026 and covers buy now, pay later credit. The add-on helps you present Scalapay neutrally (no pre-selection, no claims about cost, ease or speed, details from Scalapay's own widget and page, an optional information line). Check your wording with your adviser; this is not legal advice.
Does it change core files?
No. Hooks, its own controllers and templates only.
Add a released add-on to this order and save 15% on it. It uses the same edition and store domain.
Scalapay PaymentsThis add-on
+
One Step CheckoutOne page checkout in 1, 2 or 3 columns with a sticky summary, one screen for every field and a safe fallback to the standard checkout.