Refund Payments
Processing refunds is a part of any business, so it’s important to know how you can return funds to your customer when the need arises. SlimPay allows merchants to reimburse direct debit and SlimCollect payments using our API, through batch file injection or by using the Dashboard. Payments can be refunded partially or in full.
Please note
This guide does not cover the basics of API authentication or the format of requests and responses. Please review these sections if you are unfamiliar with these concepts.
All of the code examples in our guides are written in PHP and are based on our HAPI Client, developed by SlimPay to reduce the code complexity of interfacing with our API. Please refer to our HTTP client page for more details on using these libraries.
Refunding a SEPA direct debit by API
In order to refund a direct debit, a number of conditions must be satisfied:
- The recipient must have been debited by SlimPay in the past
- The recipient must have an active SEPA mandate
- The refund amount must be less than or equal to the merchant's available funds
- The refund amount must be less than or equal to the total amount debited from the recipient's account over the past 14 months (minus the already refunded amount)
An SDD refund is initiated by creating a SEPA credit transfer using the create-payouts relation, which can be found at the API entry point.
The table below lists all of the parameters that you need to create a refund. Be sure to include all the properties that are mandatory, as well as any optional ones you wish. All of the data you provide must conform to the constraints outlined in our API reference.
Parameter | Mandatory | Format | Max length |
---|---|---|---|
creditor » reference | Alphanumeric | 35 | |
mandate » reference or subscriber » reference |
Alphanumeric | 35 | |
payment reference If null , SlimPay will generate a unique reference. |
Alphanumeric | 35 | |
amount | Decimal | 19 | |
currency
|
An ISO 4217 currency code | 3 | |
scheme
|
Alphanumeric | 35 | |
label | Alphanumeric | 140 | |
executionDate As soon as possible if null . |
A date, formatted to ISO 8601 standard E.g. 2021-11-03T00:00:00.000+0100 | 28 |
Below is an example of the create-payouts API call using our PHP HTTP Client:
$rel = new Hal\CustomRel('https://api.slimpay.net/alps#create-payouts');
$follow = new Http\Follow($rel, 'POST', null, new Http\JsonBody(
[
'creditor' => [
'reference' => 'yourCreditorReference'
],
'mandate' => [
'reference' => 'theMandateReference'
],
'amount' => 199.99,
'currency' => 'EUR',
'scheme' => 'SEPA.CREDIT_TRANSFER',
'label' => ''Refund label',
'executionDate' => null
]
));
$payment = $hapiClient->sendFollow($follow);
In the example above, the mandate reference was used to refund the direct debit payment. You could also provide the subscriber reference instead, and SlimPay will refund the most recently active mandate associated with this subscriber.
Please note: a direct debit can be subject to a dispute from the debtor's bank for up to 13 months. Because the credit transfer method outlined above is in no way connected to the original direct debit, the debtor could potentially receive the amount twice. So be very careful when using this method of refunding payments.
Refund payments by file
Direct debit payments can also be reimbursed by batch file, meaning you can inject a remittance file for processing dozens, hundreds or even thousands of refunds in a single operation. Documentation regarding refunds by batch file can be found here.
Refund payments by Dashboard
Refunds can also be processed using SlimPay’s Dashboard interface. For documentation on this process, please refer to our Help Center.
Determining whether a payment refund was successful
SlimPay allows merchants to track the status of refunded payments to confirm whether they have been successfully processed.
To retrieve direct debit refunds, you can use the search-payments relation available at the API entry point, providing your creditor reference and the payment scheme (SEPA.CREDIT_TRANSFER) as parameters. All SDD refunds will be returned in a collection by the SlimPay server.
Direct debit refunds (credit transfers) are generally processed the day following the execution date (assuming the payment was submitted before the cut-off threshold of 3am UTC).