SlimPay Developer Center

  • REST API
  • File Transfer
  • Resources
  • Overview
  • Use Case Guides
  • Reference
  • Browser
  • HTTP Clients
 
30 Minutes Integration
  • Enroll a customer in minutes!
Getting Started
  • Choosing the right HTTP client
  • Get an access token
  • Retrieving URLs
  • Where to next?
Enroll your customers
  • Checkout Integration Types
  • SlimPay Checkout
  • Checkout Api
  • Setting Up SlimCollect
  • Import an Existing Mandate
  • Add a Document Signature
Collect payments
  • Add a First Payment
  • Collect Payments by Direct Debit
Webhook
  • Configuration
  • Notification
  • Security
Monitor activity
  • Handle Payment Issues
  • Refund Payments
  • Update the Payment Method

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:

  1. The recipient must have been debited by SlimPay in the past
  2. The recipient must have an active SEPA mandate
  3. The refund amount must be less than or equal to the merchant's available funds
  4. 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.

ParameterMandatoryFormatMax length
creditor » reference YESAlphanumeric35
mandate » reference
or
subscriber » reference
YESAlphanumeric35
payment reference
If null, SlimPay will generate a unique reference.
Alphanumeric35
amount YESDecimal19
currency
  • EUR
YESAn ISO 4217 currency code3
scheme
  • SEPA.CREDIT_TRANSFER
YESAlphanumeric35
label Alphanumeric140
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).

 
SlimPay
  • Developer Center
  • Help Center
  • Website
  • REST API
    • Overview
    • Guides
    • Reference
    • Browser
    • Clients
  • File Transfer
    • Overview
    • Checkout
    • Payments
    • Payments Issues
    • Account Reporting
  • Resources
    • FAQ
    • IBANs