ADR-0005 — Payment Provider: PayNL¶
| Status | Accepted |
| Date | 2025 |
| Deciders | Flooris development team / Zwerfkei management |
Context¶
The Zwerfkei e-commerce platform must support online payment processing. A payment service provider (PSP) is required to handle payment method selection, transaction processing, status callbacks and refund support.
Decision¶
PayNL is adopted as the payment service provider for the Zwerfkei platform.
Rationale¶
- PayNL is already the payment provider used within the existing Zwerfkei infrastructure.
- PayNL supports all major Dutch and European payment methods (iDEAL, credit card, Bancontact, etc.).
- The PayNL API provides webhook-based payment status updates, enabling reliable asynchronous order confirmation.
- An existing integration and merchant account are in place, reducing migration overhead.
Supported Payment Methods¶
| Method | Region |
|---|---|
| iDEAL | Netherlands |
| Credit card (Visa / Mastercard) | International |
| Bancontact | Belgium |
| PayPal | International |
| Klarna / Afterpay | Netherlands / Belgium |
| Gift card (Givacard) | Netherlands |
Note
Supported payment methods are configurable per PayNL account and may be extended or restricted based on business requirements.
Gift Card Support¶
Zwerfkei supports gift cards via Givacard.nl. Gift card validation and redemption is handled through Pay.NL.
If the gift card does not cover the full order amount, the customer pays the remaining balance using any other supported payment method (e.g. iDEAL, credit card).
Integration Pattern¶
- At checkout, the Zwerfkei Backend creates a PayNL transaction and redirects the customer to the PayNL payment page.
- After payment, PayNL redirects the customer back to the platform and sends a webhook to the Zwerfkei Backend.
- The webhook updates the
OrderTransactionstatus and triggers theOrderConfirmedevent on successful payment.
Consequences¶
- The Zwerfkei Backend must implement a PayNL API client and a secure webhook endpoint.
- Webhook endpoints must validate the PayNL signature to prevent fraudulent callbacks.
- Refunds can be initiated via the PayNL dashboard or API, with the status reflected in
OrderTransaction.