Quickpay Payment plugin for Sylius

Installs: 32 222

Dependents: 1

Suggesters: 0

Security: 0

Stars: 4

Watchers: 3

Forks: 3

Open Issues: 4



Latest Version on Packagist Software License Build Status

Quickpay Payment plugin for Sylius

This plugin adds Quickpay as a payment option to Sylius.


1. Install plugin

$ composer require setono/sylius-quickpay-plugin

2. Make sure the plugin is added to bundles.php:

# config/bundles.php
Setono\SyliusQuickpayPlugin\SetonoSyliusQuickpayPlugin::class => ['all' => true],

3. Import the config file

# config/packages/_sylius.yaml
    - { resource: "@SetonoSyliusQuickpayPlugin/Resources/config/app/config.yaml" }

4. (Optional) Import fixtures to play in your app

# config/packages/_sylius.yaml
    - { resource: "@SetonoSyliusQuickpayPlugin/Resources/config/app/fixtures.yaml" }    

5: Add validator constraint (optional)

Add this constraint if you are planning on using Klarna.

Create config/validator/Address.xml:

<?xml version="1.0" encoding="UTF-8"?>

<constraint-mapping xmlns=""
    <class name="Sylius\Component\Addressing\Model\Address">
        <constraint name="Setono\SyliusQuickpayPlugin\Validator\Constraints\AddressStreetEligibility">
            <option name="message">setono_sylius_quickpay.address.street_eligibility</option>
            <option name="groups">

Like it configured at example application.


Create a new Payment method of the type Quickpay and fill out the required form fields.


Automated tests

Run composer tests

Manual testing


  • Validation error: Transaction in wrong state for this operation after upgrading to Sylius v1.6

    After this commit, use_authorize config option should be strictly boolean typed. Update your payment_method fixtures like done at this commit.

    At live app - open each quickpay payment method at admin and click save so hidden use_authorize form field will be stored in database in new format.

  • Not authorized: Not authorized to PUT /payments/:id/link at /payment/authorize/... url:

    You should check at{QUICKPAY_MERCHANT_ID}/settings/users that System users > API User > User permissions > Create or update payment link have PUT checkbox checked. Also check QUICKPAY_API_KEY and QUICKPAY_AGREEMENT_ID is filled with API User's api key and agreement id rather than Payment Window's.

  • Validation error: order_id already exists on another payment

    Make sure you changed your QUICKPAY_ORDER_PREFIX at .env.* to some unique string like qp_<projectname>_<date>_ (when date should be updated to actual every time you recreate dev database) whenever you:

    • Recreating your database on dev environment and your order IDs become same as they was before
    • Use SetonoSyliusQuickpayPlugin at two different projects but with same QuickPay (developer) account credentials
  • Validation error: order_id must have length between 4 and 20

    You should cut your QUICKPAY_ORDER_PREFIX to 11 chars or less.