Refunds and chargebacks

Refund and chargeback processing works differently based on whether you work with Application fees or with Split payments.

Refunding a payment with application fees

When using Application fees, the connected merchant account is in full control of the payment, and any refunds and chargebacks are also processed on their account.

As a platform, you can create refunds on behalf of the connected account by using the Refunds API with the connected account’s permission. Refunding previously charged application fees is not possible, however.

For more fine-grained control over the refund and chargeback flows, consider using Split payments instead.

Refunding a split payment

When using Split payments, your platform is liable for refunds and chargebacks.

You can issue a refund for a split payment by creating a refund on the original payment, like you would with any other payment. By default, the full refund will be deducted from the platform balance. In other words, by default the parts of the payment that were sent to connected accounts will remain untouched.

If you wish to pull back the money that was sent to a connected account, you can do so by ‘reversing the routes’ when issuing the refund request.

For a full reversal of the split that was specified during payment creation, simply set reverseRouting=true when creating the refund.

In the example below we will refund the €10,00 payment from earlier, and pull back the €7,50 that was sent to connected account org_23456.

1
2
3
4
5
curl -X POST https://api.mollie.com/v2/payments/tr_7UhSN1zuXS/refunds \
    -H "Authorization: Bearer access_vR6naacwfSpfaT5CUwNTdV5KsVPJTNjURkgBPdvW" \
    -d "amount[currency]=EUR" \
    -d "amount[value]=10.00" \
    -d "reverseRouting=true"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
HTTP/1.1 201 Created
Content-Type: application/hal+json; charset=utf-8

{
    "resource": "refund",
    "id": "re_gj08ZdgmVx",
    "amount": {
        "currency": "EUR",
        "value": "10.00"
    },
    "status": "pending",
    "paymentId": "tr_7UhSN1zuXS",
    "routingReversal": [
        {
            "amount": {
                 "value": "7.50",
                 "currency": "EUR"
            },
            "source": {
                 "organizationId": "org_23456"
            }

        }
    ]
    "...": { }
}