SEDA for SEPA payment extension

As part of the SEPA payment extension, FinDock supports SEPA-compliant Electronic Database Alignment (SEDA) services used in Italy. SEDA established specific rules for the exchange of mandate-related information between the bank of the creditor (called the Alignment Bank in SEDA) and the bank of the debtor prior to the first direct debit collection.

These exchanges are done via structured Payments Initiation (PAIN) files: pain.009, pain.010, pain.011 and pain.012. FinDock supports SEDA services for both incoming and outgoing files.

Supported SEDA procedures

FinDock supports the basic SEDA module. This means you (the creditor) can register, amend and cancel mandates. Your customers and donors (debtors) cannot register a mandate. They are only allowed to amend or cancel their mandates. For further information, please refer to official SEDA documentation.

Enabling SEDA support

There are no special action needed to enable SEDA-specific functionality, but to use SEDA features, a few modifications are needed to page layouts, as outlined below:

  • Contact page: add ‘Tax code’ field
  • Inbound Report page: add ‘Accepted’ field (true or false)
  • Mandate page: add ‘AccountholderName’ (from Payment Profile) and ‘Tax code’ (from Contact)
  • Mandate Schedule page: add Generate Mandates button

Creating SEDA targets

SEDA targets are similar to SEPA targets, but there are a few additional target settings.

Follow the normal procedure for creating SEPA targets, but select SEDA as the type. The additional SEDA-specific settings are described in the following table.

SettingDescription
Clearing system member codeYour member code with the clearing system.
CUC codeCBI Unique Identifier. For further information, see CBI.
SIA codeYour SIA code.

SEDA mandates

The starting point for SEDA mandates is similar to normal SEDA mandates: you configure the mandate prefix and enable auto-creation of mandates in the FinDock Core configuration. From there, the process diverges.

Creating SEDA mandates automatically (based on recurring donation)

When you create a recurring donation for a SEDA target, the auto-created mandate is not immediately active. Newly created mandates get the status ‘Pending registration.’ If you have to cancel a mandate, you need to manually change the mandate status to ‘Pending cancellation.’ This deactivates the mandate, and it can no longer be used. If you want to change the parameters of a mandate, make the changes to the associated payment profile in Salesforce. These changes are automatically added to the mandate. After making the profile changes, set the mandate status to ‘Pending amendment.’

Processing SEDA mandates

After SEDA mandates are created in FinDock, you need to generate PAIN files and send those files to your bank.

To process new SEDA mandates:

  1. Launch the FinDock app.
  2. Click Mandate Schedules in the main menu and select New.
  3. Choose a SEDA target and processing date, and then select status ‘Scheduled.’
  4. Save the mandate schedule, and then click Generate Mandates. After a while the status of the mandate schedule changes to ‘Generated.’ If you open the related list of the mandate schedule, you can see that the mandates that are pending registration, pending amendment and pending cancellation (for the selected target) are added to the mandate schedule.
  5. Change the schedule status to ‘Process’ to initiate pain.009 file creation in ProcessingHub. You can follow the progress of the job in the ProcessingHub Manager.
  6. When the job is ready, you can fetch the generated SEDAC file (containing the pain.009 file) in your file exchange Chatter group. Download the file and send it to your bank for acceptance.

Processing acceptance reports

Your bank sends you acceptance reports for PAIN files you have generated with FinDock and submitted to the bank for review. You need to upload these reports to validate the SEDA mandates.

To process acceptance reports:

  1. Upload the acceptance reports to your file exchange Chatter group.
  2. ProcessingHub automatically extracts information from uploaded reports and creates corresponding inbound reports.
  3. FinDock updates the relevant mandate records in Salesforce.

Inbound reports can have the following status:

  • Error: no mandate found
  • Manual: the mandate (at the bank) does not have the correct status
  • Processed: the mandate was found

For inbound reports with status ‘Processed,’ the mandate status in FinDock is changed to match the acceptance report result:

  • False: mandate is not accepted and status is set to ‘Failed’
  • True: mandate accepted and status is set to ‘Active’

Processing mandate changes initiated by bank or debtor

If you bank or a debtor (customer or donor) want to change an existing mandate, this is handled through a pain file that you receive from the bank.

To process mandate changes from bank or debtor:

  1. Upload the PAIN file to your file exchange Chatter group.
  2. ProcessingHub automatically extracts information from uploaded reports and creates corresponding inbound reports.
  3. FinDock updates the relevant mandate records in Salesforce.

Inbound reports can have the following status:

  • Error: no mandate found
  • Manual: the mandate (in FinDock) does not have the correct status
  • Processed: the mandate was found

For inbound reports with status ‘Processed,’ the mandate status in FinDock is changed to match the change request:

  • If the request was for a cancellation, the mandate is cancelled and no longer available.
  • If the request was for an amendment, the payment profile and the mandate are updated accordingly. The previous information is stored in the Mandate History object. You can add this object to the related list of the Mandate page layout if needed.
note

FinDock cannot change a tax number with this method.

Create mandates manually

In cases where SEDA mandates need to be handled individually, you can manually create new mandates.

To manually register a new mandate:

  1. Create a new cpm__Mandate__c with the status ‘Pending registration.’
  2. Run or schedule a new cpm__Mandate_Schedule__c.
  3. The Status of the Mandate Schedule is set to ‘Pending Verification’
  4. Send the SEDAC file with the corresponding pain.009 file to your bank
  5. If the file is accepted, set the Status of the Mandate Schedule to ‘Verified’. The Status of the Mandates are set ‘Pending registration acceptance’.
  6. To activate the new mandate, upload the corresponding SEDAD file (pain.012) that you receive from your bank to your file exchange Chatter group.

ProcessingHub automatically processes the file and changes cpm__Status__c of the new cpm__Mandate__c to ‘Success’ or ‘Failed.’

Amend mandates manually

If an existing SEDA mandate needs to be changed, you can update the information manually in Salesforce.

To manually process a mandate amendment:

  1. Change the field cpm__Status__c of the relevant cpm__Mandate__c to ‘Pending amendment.’
  2. Run or schedule a new cpm__Mandate_Schedule__c.
  3. After the cpm__Mandate_Schedule__c is processed, the field cpm__Status__c of the new cpm__Mandate__c is changed to ‘Pending amendment acceptance.’
  4. To complete the amendment, upload the corresponding SEDAD file (pain.012) from your bank to your file exchange Chatter group.

ProcessingHub automatically processes the file and changes cpm__Status__c of the new cpm__Mandate__c to 'Success.'

Another way a cpm__Mandate__c can be amended is by the debtor (the donor). This will result in a Pain.010 in a SEDAD file. This SEDAD file should be uploaded to chatter which will then be picked up by the ProcessingHub. ProcessingHub will create a cpm__Inbound_Report__c and try to find a related cpm__Mandate__c. The system will then update the Salesforce data and set the field cpm__Status__c of this cpm__Mandate__c to: 'Success.'

Cancel mandates manually

As with amendments, you can manually cancel an existing SEDA mandate.

To manually process a mandate cancellation:

  1. Change the field cpm__Status__c of the relevant cpm__Mandate__c to ‘Pending cancellation.’
  2. Run or schedule a new cpm__Mandate_Schedule__c.
  3. After the cpm__Mandate_Schedule__c is processed, the field cpm__Status__c of the new cpm__Mandate__c is changed to ‘Pending cancellation acceptance.’
  4. To complete the cancellation, upload the corresponding SEDAD file (pain.012) from your bank to your file exchange Chatter group.

ProcessingHub automatically processes the file and changes cpm__Status__c of the new cpm__Mandate__c to 'Cancelled.’

Another way a cpm__Mandate__c can be cancelled is by the debtor (the donor). This will result in a Pain.011 in a SEDAD file. This SEDAD file should be uploaded to chatter which will then be picked up by the ProcessingHub. ProcessingHub will create a cpm__Inbound_Report__c and try to find a related cpm__Mandate__c. And set the field cpm__Status__c of this cpm__Mandate__c to: 'Cancelled.'