Payment requirements
By default, to process a refund your store must have at least one payment method configured with the offline
gateway. This guarantees that refunds work out-of-the-box without calling an external PSP (payment service provider).
If your custom refund logic supports additional gateways (e.g., Stripe), extend the configuration and implement the online refund call in your project.
Allow additional gateways
Add the gateway codes your project should consider “eligible for refunds”:
# config/services.yaml
parameters:
sylius_refund.supported_gateways:
- offline
- stripe
# - adyen
# - mollie
Notes & good practices
Idempotency: use order/payment number as a key to avoid duplicate PSP refunds.
Partial refunds: ensure you pass the correct minor units (e.g., cents) and currency.
Error handling: if the PSP call fails, do not mark the refund as successful; surface an error in Admin and retry safely.
Reconciliation: store the PSP’s refund ID (metadata/log table) so support can match a credit memo to the PSP record.
Last updated
Was this helpful?