PHPackages                             solution25/curbstone - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. solution25/curbstone

ActiveShopware-platform-plugin[Payment Processing](/categories/payments)

solution25/curbstone
====================

Curbstone Payments for Shopware 6.7. A first-party integration that enables secure credit-card authorization and capture flows, manual capture, refunds, and storefront/admin configuration with PCI-aware UX patterns designed for high-conversion checkouts.

1.1.0(1w ago)00MITPHPPHP &gt;=8.1CI passing

Since Jan 30Pushed 5mo ago1 watchersCompare

[ Source](https://github.com/solution25com/curbstone-payment-shopware-6-solution25)[ Packagist](https://packagist.org/packages/solution25/curbstone)[ RSS](/packages/solution25-curbstone/feed)WikiDiscussions main Synced today

READMEChangelog (2)Dependencies (5)Versions (3)Used By (0)

[![License: MIT](https://camo.githubusercontent.com/8bb50fd2278f18fc326bf71f6e88ca8f884f72f179d3e555e20ed30157190d0d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e2e737667)](https://github.com/solution25com/curbstone-payment-shopware-6-solution25/blob/main/LICENSE)

Curbstone Payments for Shopware 6
=================================

[](#curbstone-payments-for-shopware-6)

Introduction
------------

[](#introduction)

The **Curbstone Payments Plugin** integrates the [Curbstone](https://www.curbstone.com) payment gateway into your Shopware 6 store, enabling secure credit card processing with full PCI-aware UX patterns designed for high-conversion checkouts.

The plugin supports two checkout integration modes — **PLP** (Payment Landing Page) and **DSI** (Direct Server Integration) — along with authorize-only and immediate capture flows, saved card management, automatic refunds and voids, and a configurable high-value order deferral system for ERP-based manual authorization. All gateway communication is handled server-side, keeping sensitive card data off your servers.

---

Key Features
------------

[](#key-features)

### Credit Card Processing

[](#credit-card-processing)

- Accepts credit card payments via the **Curbstone PLP or DSI integration**, redirecting card data handling to Curbstone's PCI-compliant environment.

### Authorize &amp; Capture Flow

[](#authorize--capture-flow)

- Choose between **Authorize Only** (capture later, e.g. via ERP) or **Authorize &amp; Capture** (immediate charge) per Sales Channel.

### Inline Pre-Authorization (0.00 Auth)

[](#inline-pre-authorization-000-auth)

- On the checkout confirmation page, a **Curbstone-hosted iframe** collects and tokenizes card details via a zero-amount pre-authorization, keeping card data entirely off your servers before the order is placed.

### Saved Cards (Vault)

[](#saved-cards-vault)

- Customers can **save cards** during checkout for faster repeat purchases. Saved cards are stored as vaulted tokens (MFKEYP) against the customer's account and can be managed from the **Account &gt; Saved Cards** page.

### High-Value Order Deferral

[](#high-value-order-deferral)

- Orders exceeding a configurable **high-value threshold** are automatically deferred for manual ERP authorization instead of being charged immediately. The transaction is flagged as `pending_erp` and the card token is stored securely on the order for later use.

### Automatic Refunds

[](#automatic-refunds)

- When an order transaction is set to **Refunded** in Shopware, the plugin automatically sends a refund request to Curbstone and stores the refund metadata on the transaction.

### Void Authorization

[](#void-authorization)

- When a payment is cancelled before capture, the plugin sends a **void request** to Curbstone to release the authorized funds.

### Dual Integration Modes

[](#dual-integration-modes)

- **PLP mode**: Uses Curbstone's hosted Payment Landing Page. Supports `embedded` and `redirect` sub-modes.
- **DSI mode**: Direct Server Integration using a merchant DSI key for tighter control.

### Multi-Environment Support

[](#multi-environment-support)

- Switch between **Sandbox** (`c3sbx.net`) and **Live** (`c3plp.net` / `c3dsi.net`) environments from the Admin config — no code changes required. Sandbox and production endpoints are automatically resolved based on your mode selection.

### Retry Logic

[](#retry-logic)

- Configurable **retry count and backoff interval** for resilience against transient API failures.

### TLS Verification

[](#tls-verification)

- TLS certificate validation is enforced by default. Can be overridden via Admin toggle or the `CURBSTONE_HTTP_VERIFY` environment variable for controlled environments.

### Transaction Metadata

[](#transaction-metadata)

- All gateway request and response payloads (sanitized of sensitive data) are stored as **order custom fields** for full traceability in the Admin order view.

### Comprehensive Logging

[](#comprehensive-logging)

- Detailed logging of all payment, refund, void, and pre-authorization events for troubleshooting and audit purposes.

---

Compatibility
-------------

[](#compatibility)

- ✅ Shopware 6.7.x
- ✅ PHP 8.1+

---

Get Started
-----------

[](#get-started)

### Installation &amp; Activation

[](#installation--activation)

#### GitHub

[](#github)

1. Clone the plugin into your Shopware plugins directory:

```
git clone https://github.com/solution25com/curbstone-payment-shopware-6-solution25.git
```

2. **Install the Plugin in Shopware 6**

    - Log in to your Shopware 6 Administration panel.
    - Navigate to **Extensions &gt; My Extensions**.
    - Locate the plugin and click **Install**.
3. **Activate the Plugin**

    - After installation, click **Activate** to enable the plugin.
    - Run the following commands from your Shopware root:

```
bin/console plugin:refresh
bin/console plugin:install --activate Curbstone
bin/console cache:clear
```

4. **Build Storefront Assets**

```
bin/console bundle:dump
bin/build-storefront.sh
bin/console cache:clear
```

5. **Verify Installation**

    - After activation, you will see **Curbstone Payments** in the list of installed plugins.
    - The plugin name, version, and installation date should appear.

---

Plugin Configuration
--------------------

[](#plugin-configuration)

After installing the plugin, configure your **Curbstone** credentials and options through the Shopware Administration panel.

### Accessing the Configuration

[](#accessing-the-configuration)

1. Go to **Settings &gt; Curbstone Payments**
2. Select the **Sales Channel** you want to configure
3. Set the following fields:

### General Settings

[](#general-settings)

FieldDescription**Sandbox Mode**Enable to use Curbstone sandbox endpoints (`c3sbx.net`). Disable for production (`c3plp.net` / `c3dsi.net`)**Disable Curbstone Subscribers**When enabled, Curbstone event subscribers (refund, void) will not execute for this Sales Channel**Verify TLS Certificates**Validates the Curbstone server certificate on all HTTPS calls (recommended). Can also be controlled via the `CURBSTONE_HTTP_VERIFY` environment variable### API Credentials

[](#api-credentials)

FieldDescription**Merchant DSI Key (MFDSIK)**Your Curbstone Merchant DSI key — required when using DSI checkout integration**Customer ID (MFCUST)**Your Curbstone Customer ID**Merchant Code (MFMRCH)**Your Curbstone Merchant Code### Payment Settings

[](#payment-settings)

FieldDescription**Auth / Capture Flow**`Auth Only` — authorizes the card and defers capture (e.g. for ERP). `Auth & Capture` — authorizes and captures immediately**PLP Mode**How the PLP checkout is presented: `Embedded` (inline iframe) or `Redirect` (full-page redirect)**Checkout Integration**`PLP` — Curbstone hosted Payment Landing Page. `DSI` — Direct Server Integration (requires MFDSIK, MFCUST, MFMRCH)> **Note:** When using DSI integration, all three DSI credentials (MFDSIK, MFCUST, MFMRCH) are required. The plugin will throw a configuration error if any are missing.

### Advanced Settings

[](#advanced-settings)

The following settings can be configured via Shopware system config or environment variables:

SettingDescriptionDefault`Curbstone.config.retries`Number of retries on transient API failures`2``Curbstone.config.backoffMs`Backoff interval between retries in milliseconds`120``Curbstone.config.highValueThreshold`Orders above this amount (in store currency) are deferred for manual ERP authorization instead of being charged immediately`5000.00``CURBSTONE_HIGH_VALUE_THRESHOLD`Environment variable override for the high-value threshold—---

How It Works
------------

[](#how-it-works)

### 1. Card Pre-Authorization at Checkout

[](#1-card-pre-authorization-at-checkout)

On the checkout confirmation page, a **Curbstone-hosted iframe** is rendered inside the payment section. The customer enters their card details directly into Curbstone's secure environment. A zero-amount pre-authorization is sent to Curbstone, which returns a **payment token (MFKEYP)** that is stored in the session — no raw card data ever touches your server.

### 2. Payment on Order Placement

[](#2-payment-on-order-placement)

When the customer submits the order, Shopware triggers the payment handler. The plugin resolves the MFKEYP token (either from the session pre-auth or from a selected saved card) and sends a **real charge request** to Curbstone's PLP or DSI endpoint with the full order amount and billing details.

### 3. High-Value Order Deferral

[](#3-high-value-order-deferral)

If the order total exceeds the configured **high-value threshold**, no charge is sent immediately. Instead, the token and order metadata are saved to the transaction's custom fields with a `pending_erp` status, and the transaction is set to `in_progress` in Shopware. The charge is then expected to be triggered externally via ERP or manual authorization.

### 4. Saved Cards

[](#4-saved-cards)

If the customer checks **Save card** during checkout and the payment succeeds, Curbstone returns a vaulted card token (MFUKEY/MFKEYP) along with the card's last 4 digits, brand, and expiry. This is stored against the customer's Shopware account. On future checkouts, the customer can select a saved card from a paginated grid — bypassing the iframe entirely.

### 5. Refunds

[](#5-refunds)

When an order transaction is moved to **Refunded** in Shopware, the plugin reads the stored `MFSESS` and `MFKEYP` from the transaction's custom fields and sends a refund request to Curbstone. The refund response is stored back on the transaction for audit purposes.

### 6. Void

[](#6-void)

When a transaction is cancelled before capture, the plugin sends a **void request** to Curbstone to release the authorization hold. The void response is stored on the transaction custom fields.

---

Saved Cards — Customer Account
------------------------------

[](#saved-cards--customer-account)

Customers can manage their vaulted cards via **Account &gt; Saved Cards** in the storefront. From this page they can:

- View all saved cards (brand, last 4 digits, expiry)
- Delete individual saved cards
- Select a saved card at checkout without re-entering card details

---

Uninstallation
--------------

[](#uninstallation)

```
bin/console plugin:deactivate Curbstone
bin/console plugin:uninstall Curbstone
bin/console cache:clear
```

---

License
-------

[](#license)

MIT — see [LICENSE](LICENSE) for details.

---

Support
-------

[](#support)

For questions or issues, please open a [GitHub Issue](https://github.com/solution25com/curbstone-payment-shopware-6-solution25/issues) or contact [Solution25](https://solution25.com).

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance83

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~144 days

Total

2

Last Release

12d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2851766651e9958fdd1740394d7af4c76bb357dba37485ab7045c5372bd3ed88?d=identicon)[solution-25](/maintainers/solution-25)

---

Top Contributors

[![solution-25](https://avatars.githubusercontent.com/u/101514766?v=4)](https://github.com/solution-25 "solution-25 (2 commits)")

###  Code Quality

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/solution25-curbstone/health.svg)

```
[![Health](https://phpackages.com/badges/solution25-curbstone/health.svg)](https://phpackages.com/packages/solution25-curbstone)
```

###  Alternatives

[adyen/adyen-shopware6

Official Shopware 6 Plugin to connect to Payment Service Provider Adyen

25117.9k](/packages/adyen-adyen-shopware6)[shopware/storefront

Storefront for Shopware

684.6M237](/packages/shopware-storefront)[kiener/mollie-payments-plugin

Mollie Payments

6565.2k](/packages/kiener-mollie-payments-plugin)[shopware/production

177209.0k](/packages/shopware-production)[frosh/tools

Provides some basic things for managing the Shopware Installation

87820.7k3](/packages/frosh-tools)[swag/paypal

PayPal integration for Shopware 6

32106.2k](/packages/swag-paypal)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
