Riverty Payments for Sylius
Riverty Buy Now Pay Later for Sylius - invoice, direct debit, instalments and Pay in X via Hosted Checkout, nine countries, capture, void and refund in the admin, Storefront and Shop API
Note on Riverty: This plugin is an independent integration and has no business or contractual relationship with Riverty. It was not commissioned, authorized or reviewed by Riverty. If you have questions or problems, contact the plugin support (support@markus-michalski.net) only. Riverty itself accepts no responsibility and provides no support for it. "Riverty" is a trademark of its respective owner.
This documentation always describes the latest published version.
Live demo: Try this and other plugins live, with no installation and no risk: demo.markus-michalski.net
Riverty Payments for Sylius
Riverty Buy Now Pay Later for Sylius 2: invoice, direct debit, instalments (fixed instalments) and Pay in X through Riverty Hosted Checkout. Customers enter their payment details on the Riverty page after the redirect, not in your shop. The plugin works in the Twig storefront and headless through the Sylius Shop API. It is built for Sylius shop owners with a Riverty merchant contract who sell in DE, AT, CH, NL, BE, NO, SE, DK or FI.
Connecting Riverty takes more than a redirect: API keys per country, availability checks, capture, void and refund, reconciliation of open payments and expiring reservations. This plugin handles all of it. You configure and manage orders in the Sylius admin, without writing any code.
graph LR
A["Storefront (Twig)"] --> C["Sylius Payment Request"]
B["Shop API"] --> C
C --> D["Riverty plugin"]
D --> E["Riverty API"]
E --> F["Hosted Checkout"]
F --> G["Customer returns or is reconciled"]
G --> H["Payment authorized"]
H --> I["Capture, void, refund in the admin"]
Documentation
| Page | Contents |
|---|---|
| Installation | Composer installation, routes, setup command, update, uninstall |
| Configuration | API keys per country, creating payment methods, checking the contract, options, API log |
| Order management | Capture, void and refund, partial quantities, capture on shipment |
| Reconciliation and expiry | Reconciling open payments, the 30-day reservation, digest mail, cron job |
| Storefront | Payment methods at checkout, instalment example, identification number, thank-you page |
| Shop API | Headless use through Sylius payment requests, limits |
| Extensibility | Service tags, replaceable interfaces, events |
| Troubleshooting | Common problems, known limitations, FAQ |
| Technical details | Flow diagram, plugin structure, tables |
Features
| Feature | Description |
|---|---|
| Hosted Checkout | Payment runs on Riverty through a redirect, no payment details are collected in your shop |
| Four payment methods | Invoice, direct debit, instalments (fixed instalments) and Pay in X (Netherlands only) |
| Nine countries | One API key pair (test and live) per country: DE, AT, CH, NL, BE, NO, SE, DK, FI |
| Payment methods in one click | One button creates the Riverty payment methods for a channel, a second one asks what your contract offers |
| Availability from Riverty | The checkout offers only the payment methods Riverty reports for the cart |
| Capture, void, refund | Right on the order page in the admin, including partial quantities and per capture |
| Capture on shipment | Optional: whatever is still open is captured as soon as the last shipment is shipped |
| Reconciling open payments | Riverty has no webhook, a console command picks up customers who never came back |
| Expiry monitoring | Warning before the 30-day reservation ends, on the order page and in a daily digest mail |
| API log | Every call to Riverty is logged, personal data is masked |
| Order history | Optional: whether and how much of the earlier order history of the customer goes to Riverty, nothing by default |
| Identification number | A field in the payment step for Norway, Sweden, Denmark and Finland, stored encrypted |
| Instalment example | Optional representative example under section 6a PAngV at checkout |
| Dual mode | Storefront and Shop API use the same payment path |
Requirements
| Requirement | Version | Notes |
|---|---|---|
| Sylius | ^2.2 | Tested with 2.2 and 2.3 |
| PHP | ^8.3 | Extensions mbstring and openssl |
| Symfony | ^7.4 | |
| Database | MySQL or MariaDB | The migrations are MySQL DDL, PostgreSQL is not supported |
| Riverty | Merchant account | One API key per country you sell in |
APP_SECRET |
Not empty, never changed | The key for stored API keys is derived from it |
| Payment request transport | sync:// |
Sylius default, see Installation |
| State machine adapter | symfony_workflow |
Sylius default, required for capture on shipment and for blocking the Sylius buttons |
License
Commercial license.
Support
Email: support@markus-michalski.net