ERPNext

ERPNext

Open in ChatGPT
Ask ChatGPT about this page
Open in Claude
Ask Claude about this page

Refunds

Refunds

Sometimes you need to refund a customer — wrong product shipped,
duplicate payment, returns, dispute settlement. Mollie supports
refunds back to the original payment method automatically.

When refunds are possible

  • Within the original transaction's refund window. Mollie holds
    refund eligibility for typically 6 months from the original payment
    date for most methods; longer for some cards. Past that, the refund
    has to happen via bank transfer (which is what the Refunds out of
    window
    section below covers).
  • Up to the original amount. Mollie won't process a refund larger
    than what was paid. Partial refunds are fine.
  • Only on settled payments. A refund initiated before Mollie has
    settled the original payment will be processed but may show as a
    hold rather than an immediate credit.

How to initiate a refund

From the Payment Entry that received the Mollie payment:

  1. Open the Payment Entry.
  2. Click the Refund via Mollie button (the integration adds this
    button to Payment Entries that came from Mollie).
  3. In the dialog, enter:
    • Amount — defaults to the full Payment Entry amount; reduce
      for a partial refund.
    • Description — appears on the customer's statement.
  4. Confirm. The integration calls Mollie's refund API.
  5. On success, the dialog closes and an Integration Request record
    is created with the Mollie refund ID (re_xxx).

The original Payment Entry is not modified. Instead, a separate
Payment Entry is created with a negative amount, referencing the same
Sales Invoice or Customer.

How the refund settles

Refunds back through the original method:

  • iDEAL / Bancontact — credit back to the originating bank
    account within 1–2 business days.
  • Credit card — credit back to the card, usually 3–5 business
    days. Some issuers take up to 10 days to show the credit.
  • SEPA Direct Debit — back to the originating IBAN.
  • PayPal — back to PayPal balance.

The customer sees the refund in their bank statement / card statement
referenced to the original payment.

Refunds out of window

If the original Mollie payment is past its refund window (or wasn't
through Mollie at all), you have to handle the refund manually:

  1. Get the customer's IBAN.
  2. Use the SEPA batch feature in
    erpnext_netherlands
    to send the refund as part of your next payment batch.
  3. Manually reconcile the resulting bank-debit against the original
    Sales Invoice (now over-credited) and a Refund Note or Credit Note.

This is more work but unavoidable for old payments.

What about chargebacks?

A chargeback is not the same as a refund. If a customer disputes a
card payment with their bank instead of asking you for a refund:

  • Mollie notifies you via email and via the dashboard.
  • The disputed amount is held against your Mollie balance.
  • You have a window (typically 7 days) to provide evidence (proof of
    delivery, signed contract, etc.).
  • Mollie's dashboard handles the dispute workflow entirely.
  • The integration does NOT create automatic ERPNext records for
    chargebacks — they happen in Mollie's UI.

Once the chargeback is settled, you may need to manually adjust the
ERPNext Payment Entry to reflect the final outcome (full reversal,
partial recovery, or full win).

Common mistakes

  • Don't manually create a negative Payment Entry first. Let the
    integration create it after Mollie confirms the refund. Otherwise
    you'll end up with two negative entries (one from you, one from
    the webhook).
  • Don't refund through Mollie's dashboard then create a separate
    Payment Entry in ERPNext.
    The webhook will fire from the Mollie
    dashboard refund too; it'll create the Payment Entry automatically.
    Doing both gives you a double-refund in the books.
  • Don't refund after the customer has already disputed. The
    refund + chargeback can collide; resolve the chargeback first.
Last updated 3 months ago
Was this helpful?
Thanks!