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.2.0(2w ago)02MITPHPPHP &gt;=8.1CI failing

Since Jan 30Pushed 2w 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 1w ago

READMEChangelog (3)Dependencies (10)Versions (4)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 through Curbstone's hosted Payment Landing Page (PLP) with PCI-aware UX patterns designed for high-conversion checkouts.

The plugin supports authorize-only and immediate authorize-and-capture flows, saved card management (vaulting), and automatic refunds and voids driven by Shopware's own order transaction states. 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 **Curbstone's hosted Payment Landing Page (PLP)**, 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 manual capture) 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 or from their account for faster repeat purchases. Saved cards are stored as vaulted tokens (MFUKEY/MFKEYP) against the customer's account and can be managed from the **Account &gt; Saved Cards** page, which displays a paginated grid (5 cards per page).

### Automatic Refunds

[](#automatic-refunds)

- When an order transaction moves to **Refunded** or **Refunded (partially)** in Shopware, the plugin automatically sends a refund request to Curbstone and stores the refund metadata on the transaction.

### Void Authorization

[](#void-authorization)

- When an authorized (not yet captured) transaction is cancelled, the plugin sends a **void request** to Curbstone to release the authorization hold.

### Multi-Environment Support

[](#multi-environment-support)

- Switch between **Sandbox** (`c3sbx.net`) and **Live** (`c3plp.net`) environments from the Admin config — no code changes required.

### TLS Verification

[](#tls-verification)

- TLS certificate validation is enforced by default. Can be overridden via the 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 transaction 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. Sensitive fields (card numbers, CVV, tokens) are redacted before being written to logs.

### Saved-Card Metadata Backfill (CLI)

[](#saved-card-metadata-backfill-cli)

- A console command, `curbstone:backfill-saved-card-metadata`, normalizes and backfills vaulted card metadata for existing customers. Supports `--dry-run` (preview without persisting changes) and `--limit` (batch size, default 250).

### Extensibility Hook

[](#extensibility-hook)

- A `CurbstonePaymentCompletedEvent` is dispatched after every successful charge, letting other plugins or custom code react to completed Curbstone payments without modifying the core plugin.

---

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`)**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. Currently stored for forward compatibility — see [Roadmap](#roadmap--known-limitations)**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. `Auth & Capture` — authorizes and captures immediately---

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 inline 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's PLP endpoint, which returns a **payment token (MFUKEY/MFKEYP)** 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 card token (either from the session pre-auth or from a selected saved card) and sends a **real charge request** to Curbstone's PLP endpoint with the full order amount and billing details. Whether the request is sent as a pre-authorization (`PA`) or an immediate authorize-and-capture (`SA`) is determined by the configured Auth/Capture flow.

### 3. Saved Cards

[](#3-saved-cards)

If the customer checks **Save card** during checkout (or adds a card from their account) and the pre-authorization succeeds, Curbstone returns a vaulted card token 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.

### 4. Refunds

[](#4-refunds)

When an order transaction is moved to **Refunded** or **Refunded (partially)** in Shopware, the plugin reads the stored token and session metadata 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.

### 5. Void

[](#5-void)

When an **authorized** 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's 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 saved cards (brand, last 4 digits, expiry) in a paginated grid
- Delete individual saved cards
- Select a saved card at checkout without re-entering card details

---

Roadmap / Known Limitations
---------------------------

[](#roadmap--known-limitations)

The following items are present in configuration as forward-compatible fields but are **not yet functional** in this release. They're listed here so integrators don't assume behavior that isn't implemented yet:

- **DSI (Direct Server Integration):** The Merchant DSI Key field is stored, but all requests (charge, pre-auth, refund, void) currently route through the PLP endpoint. A true server-to-server DSI request path is not yet wired up.
- **PLP presentation mode:** The checkout iframe is always rendered in embedded mode; there is no redirect-based full-page fallback yet.
- **High-value order deferral / ERP hand-off:** Not implemented in this release — all orders are processed through the standard authorize/capture flow regardless of amount.
- **Configurable retry/backoff:** Not implemented in this release — gateway requests are sent once, with a fixed 10-second timeout, and no automatic retry on transient failures.

---

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

40

—

FairBetter than 86% of packages

Maintenance96

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity46

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 ~91 days

Total

3

Last Release

19d 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 (10 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

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

Storefront for Shopware

674.7M286](/packages/shopware-storefront)[kiener/mollie-payments-plugin

Mollie Payments

6767.7k](/packages/kiener-mollie-payments-plugin)[frosh/tools

Provides some basic things for managing the Shopware Installation

88858.1k3](/packages/frosh-tools)[shopware/production

176216.5k](/packages/shopware-production)[swag/paypal

PayPal integration for Shopware 6

32113.4k](/packages/swag-paypal)

PHPackages © 2026

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