← Back

How fees work

We want to be transparent about how much of your payment we actually keep, why monthly costs more (for both of us) than yearly, and why a partial refund after cancellation is reduced by a small fee. Nothing on this page is a profit margin: every fee mentioned is paid directly to our payment processor (Mollie B.V.), and we just pass it through.

Why we use Mollie

Mollie is a Dutch (EU) payment processor. We currently accept SEPA Direct Debit, credit and debit cards, Apple Pay, Google Pay, and PayPal — Mollie supports more methods (iDEAL, Bancontact, etc.) but we keep the list focused on what our audience actually uses. They are GDPR-compliant by design, headquartered in Amsterdam, and don't require us to embed any third-party scripts on our site (a buyer is redirected to Mollie's checkout page, completes payment there, and is sent back). Compared to US-based alternatives like Stripe, Mollie has lower per-transaction fees in Europe and a much simpler legal posture for an EU operator.

What Mollie charges per payment

Mollie's fees vary by payment method. The figures below are approximate as of early 2026 — check Mollie's pricing page for the current values. Per-transaction fees apply to every payment, including the very first one and every subsequent renewal.

Payment method Fee per transaction
SEPA Direct Debit€0.25
Credit / debit card (EU consumer)1.8% + €0.25
Credit / debit card (commercial / non-EU)2.8–2.9% + €0.25
Apple Pay (charged as card)card fee applies
Google Pay (charged as card)card fee applies
PayPal2.9% + €0.30
Refund (any method)€0.25 flat

For a typical Supporter charge (€2 via SEPA), Mollie keeps €0.25 and we receive €1.75. For a Supporter Plus charge (€5), we receive €4.75. For a Team charge (€25), we receive €24.75. For a Professional charge (€100), we receive €99.75.

Why yearly is cheaper for everyone

The €0.25 per-transaction fee is a flat cost that doesn't scale with the size of the payment. On a monthly subscription Mollie deducts that fee twelve times a year. On a yearly subscription, only once. The math:

Supporter monthly: 12 × €0.25 = €3.00 in transaction fees per year

Supporter yearly:   1 × €0.25 = €0.25 in transaction fees per year

→ €2.75 saved per sponsor per year on the smallest plan

That's why we offer yearly subscriptions at 11 × the monthly price — one month free. You save the cost of one month, we save eleven transaction fees, and the admin overhead drops too. Same OSS storage quota either way; the choice is purely about cash-flow preference.

Why partial refunds are reduced by €1

If you cancel mid-period, we calculate the unused portion of your last payment by days and refund that share. But we have to subtract €1 from it, because Mollie charges us twice when we issue a refund — and one of those fees has a percentage component that varies by payment method:

  1. The original transaction fee Mollie charged when you first paid. Mollie does not return this fee even on a full refund — it's a sunk cost the moment the payment goes through. For SEPA that's €0.25 flat; for cards it's 1.8% + €0.25 (€0.34 on a €5 charge, €0.70 on a €25 charge).
  2. A flat refund-processing fee of €0.25 Mollie charges when we issue the refund itself. This is on top of the original transaction fee — Mollie's policy is "fees are not reversible".

Rather than carry every payment method's exact fee through our code, we deduct €1 flat. This covers the SEPA case comfortably (combined fees ~€0.50, so we keep ~€0.50 toward our infrastructure costs) and approximately covers the typical EU card / Apple Pay / Google Pay case. In extreme cases — for instance a small payment on a non-EU credit card — we may still absorb a few cents of our own. We accept that loss because the alternative is making you read the Mollie pricing page before cancelling, and that's silly.

Worked example: you pay €5 for a month of Supporter Plus, use one day (~€0.17), then cancel. The unused portion is €4.83. We deduct our €1 processing-fee allowance, so you receive €3.83. Of the €1 we kept, roughly:

On SEPA the leftover is comfortably positive (~€0.50). On a non-EU credit card it can be near zero or even slightly negative — that's the corner case we absorb out of pocket rather than make the math configurable.

If your unused portion is smaller than our €1 deduction (e.g. you cancel four days before your renewal on the Supporter plan), our automatic flow won't issue a refund at all — the cancellation goes through but no money moves. The dashboard tells you in plain numbers what would happen before you click cancel, so there are no surprises.

If you'd prefer a full refund — the entire prorated amount with no deduction — we'll process it manually. Just email us instead of clicking "Cancel and accept this refund" in the dashboard. We'll absorb the fees on our side. We don't make this the default because it requires an operator to do the work by hand, but for sponsors who would rather get their full unused portion back, the option exists. The exact email address is on the dashboard's cancel page.

Note on the refund email: that mailbox is reserved strictly for refund requests. It's not a support address. If you write to it about anything other than a refund, we'll redirect you to GitHub issues without reading further. We're a one-person operation and the only way to keep support sustainable is to handle questions in public threads where the answer benefits everyone.

How to get help

Bug reports, feature requests, configuration questions, and anything else that isn't a refund will go through a public issue tracker — coming soon. We're publishing the source code on a public Git host shortly; this section will link there once it's live.

Why public-only? Because we're one person, and writing the same answer ten times in private is the fastest way for the project to die. A public thread is searchable, future users with the same problem find it, and a few of them eventually become contributors who answer the next person before we do. That trade-off is the only thing that keeps Stift sustainable as a free open-source app on top of a tiny paid hosting layer.

Please understand: as a one-person team, replying to every email individually isn't sustainable at the lower price points. Limiting premium support to the top tier (Professional, €100/mo) is the only way to keep the time commitment manageable while still offering it at all.

What we keep, what it pays for

After fees, we use the remaining money for:

Stift itself is and always will be free and open source under EUPL-1.2. Sponsorship pays for the hosted convenience layer; nothing in the editor or its export formats is locked behind a paywall.

Pricing Sponsor sign in Impressum Datenschutz