Account closure guide

This guide contains information about:

  • How the Solaris automated account closure system works,
  • How to close customer accounts, and
  • What you need to implement in order to enable this process in your application.

Summary of the process

On a high level, the account closure process works as follows:

  1. Either you, the customer (via your frontend), or Solaris initiates an account closure request (ACR).

    • If Solaris initiated the ACR, then you will receive a notification on the ACCOUNT_CLOSURE_REQUEST webhook.
    • If a customer initiated the ACR, then your application must run a series of checks to ensure that the request is valid before calling the account closure endpoint.
  2. Solaris' systems will trigger an account closure job and calculate a legal closure date for the account.
  3. If the account closure job succeeds, then the account is closed and you will receive an ACCOUNT_CLOSURE webhook notification.

    • If the account closure fails, then Solaris Customer Support will provide assistance.

How to implement account closure requests in your solution

You must implement the following endpoints, webhooks, and logic in your application in order to use the automated account closure process:

Account closure acceptance logic

When a customer requests an account closure, your application must perform a series of checks on the account in order to ensure that Solaris can close it automatically:

  • The account must have a status of ACTIVE.
  • The account may not have any associated CARD_TRANSACTION or CARD_DIRECT_DEBIT bookings from the past 45 days.
  • The account may not have any reservations with the status OPEN.
  • The account may not have any bookings with a valuta date in the future.
  • The account must have a balance of 0.
  • The account may not have any seizures with the status ACTIVE.
  • If the account has any associated decoupled cards, then there must be a reference account with the status ACTIVE.
  • The account may not be closed due to insolvency. In such cases, please contact Solaris to request a manual account closure.

Webhooks

You are required to subscribe to the following account closure webhooks for compliance reasons:

  • ACCOUNT_CLOSURE_REQUEST: Notifies when Solaris initiates an ACR. Customer- and partner-initiated ACRs will not be reported on this webhook.
  • ACCOUNT_CLOSURE: Notifies when a customer account has been closed on the legal closure date.

ACR endpoints

POST Create ACR

To initiate an ACR, call the POST /account_closure_requests endpoint.

Before initiating an ACR, please ensure that your application checks the customer account for the above criteria.

Click here to view the full API reference.

GET Retrieve info about an ACR

The GET /account_closure_requests/{account_closure_request_id} method returns information about a specific ACR. Solaris will not notify you when the status of an ACR changes, so use this endpoint to keep track of the status of an ACR once it has been initiated.

Click here to view the full API reference.

GET List all ACRs

The GET /account_closure_requests method returns a list of all ACRs.

Click here to read the API documentation for this method.

Initiating an account closure request

Account closure requests can be initiated in three ways:

  1. The customer requests account closure via your application.
  2. You request account closure via API (automatic account closure) or Solaris WebUI (manual account closure).
  3. Solaris initiates the account closure process.

    • If this is the case, then you will receive a notification via the ACCOUNT_CLOSURE_REQUEST webhook.

Regardless of who initiated it, an ACR can be either ordinary or immediate.

Ordinary closures

Ordinary account closures are for cases when a customer account should be closed according to the notice period specified in the customer terms & conditions for the Solaris product that they use. For digital banking accounts, this notice period is typically two months.

When an ordinary ACR is initiated, the legal closure date of the account is calculated to be the end of the contractual notice period. On this date, the account closure job will execute on Solaris' backend.

Below are the possible closure_reason values for ordinary account closures:

Internal (Solaris) closure reasons External (partner) closure reasons
  • COMPLIANCE_ORDINARY_INTERNAL
  • INSOLVENCY_ORDINARY_INTERNAL
  • RELATIONSHIP_TERMINATION_INTERNAL
  • SEIZURES_ORDINARY_INTERNAL
RELATIONSHIP_TERMINATION

Immediate closures

Immediate account closures are for cases when you or Solaris cannot continue the relationship with a customer and must terminate the account right away, e.g., for compliance reasons.

When an immediate ACR is initiated, the legal closure date is set to the current date and the account closure job runs immediately.

Internal (Solaris) closure reasons External (partner) closure reasons
  • ACCOUNT_REVOCATION_INTERNAL
  • COMPLIANCE_IMMEDIATE_INTERNAL
  • CUSTOMER_WISH_INTERNAL
  • DUNNING_DECOUPLED_CARD_INTERNAL (only for decoupled debit card accounts)
  • INSOLVENCY_IMMEDIATE_INTERNAL
  • ACCOUNT_REVOCATION
  • CUSTOMER_WISH

Account closure process

This section outlines the steps Solaris takes to close an account and how you can keep track of the status of an account closure.

Checking the status of the account closure request

Solaris will only notify you upon successful account closures via the ACCOUNT_CLOSURE webhook. Solaris does not notify partners when the status of an ACR changes (e.g., when the ACR fails). Therefore, you should use the GET /account_closure_requests/:account_closure_request_id endpoint to check the status of an ACR after it has been started.

Possible ACR status values

Status Description
INITIATED The ACR has been created. Only applies to ACRs triggered by Solaris.
CONFIRMED
  • Solaris has received and accepted the ACR from the partner, or
  • Solaris initiated an ACR and sent an ACCOUNT_CLOSURE_REQUEST webhook to you, which you then accepted.
IN_PROGRESS The account closure job has been triggered for the first time for the ACR and is currently running.
COMPLETED The account closure job succeeded, and the account is now closed.
FAILED The account closure job failed due to one of the reasons listed below.

Account closure job

The account closure job runs through the following steps:

  1. Checks to see if the account is still active.

    • If the account is INACTIVE, then the job will fail.
  2. Blocks the account.
  3. Blocks all cards associated with the account.
  4. Cancels any standing orders and timed orders for the account.
  5. Checks for card settlements in the last 45 days.

    • If there are any CARD_TRANSACTION or CARD_DIRECT_DEBIT bookings in the last 45 days for the account, then the account will only be closed once 45 days have elapsed since the last booking.
  6. Checks for open reservations.
  7. Checks for bookings with valuta dates in the future.
  8. Checks the account balance.

    • If the account has a negative balance, then the job will fail.
  9. Checks for active seizures.
  10. (For decoupled debit card customers) Checks for a reference account.
  11. If there is no active reference account, then the job will fail.
  12. Checks to see if the closure type is insolvency.
  13. If the ACR has the reason INSOLVENCY_ORDINARY_INTERNAL or INSOLVENCY_IMMEDIATE_INTERNAL, then the job will fail.
  14. (For accounts with decoupled cards) Pays out the remaining funds to the reference account.
  15. Closes the account.

Successful account closure

When the account closure job succeeds, Solaris will send you a notification on the ACCOUNT_CLOSURE webhook.