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. Note: In case of ACRs initiated by Solaris, you must notify the customer immediately about the account closure.
    • 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. Solaris will send you status updates for an ACR on the webhook event ACCOUNT_CLOSURE_REQUEST for certain transitions.
  4. 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.

Customer communication

When you communicate to your customer that their account has been closed, you must include several important pieces of information that vary based on your specific setup (e.g., legal closure date, information on whether the customer is allowed to pay out funds). Your Partner Manager will tell you which information you must include in this communication.

Exceptional cases

Please note the following:

  • If your solution includes a Solaris product that involves multiple bank accounts (e.g., multiaccounts, subaccounts), then you must issue an ACR for each account separately.
  • Depending on your branching country where you offer your services, there may be additional steps required in the ACR process. Please contact your Partner Manager for more information.

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 must have a balance of 0.
  • The account may not have a compliance block.

From the moment the customer initiates the account closure, Solaris will fully block the account. Pay-ins and pay-outs will no longer be possible. At this point, the account is considered legally closed.

Solaris will then perform an additional series of checks. If any of the checks fail, then the technical closure of the account may be delayed. These checks include the following:

  • The account has seizures with the status ACTIVE.
  • The account has CARD_TRANSACTION or CARD_DIRECT_DEBIT bookings from the past 45 days.
  • The account has reservations with the status OPEN.
  • The account has bookings with a valuta date in the future.

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_REQUEST_UPDATE: Notifies when the status of an ACR changes. This webhook only notifies for certain status transitions. Check this section for more information.
  • ACCOUNT_CLOSURE: Notifies when a customer account has been technically closed (which may occur after the legal closure).

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.

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).

    • Please consult with Solaris before initiating an ACR with a reason other than CUSTOMER_WISH.
    • ACRs cannot be created for accounts with a compliance block.
  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 notify you with status changes of the ACR via two webhook events:

ACCOUNT_CLOSURE_STATUS_UPDATE

Solaris will send status changes notifications on the webhook event ACCOUNT_CLOSURE_STATUS_UPDATE for the following transitions:

From status To status
CONFIRMED IN_PROGRESS
CONFIRMED REVOKED
IN_PROGRESS COMPLETED
IN_PROGRESS FAILED

ACCOUNT_CLOSURE

Solaris will notify you upon successful account closures via the ACCOUNT_CLOSURE webhook.

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.
REVOKED The account closure request has been revoked. Only Solaris can revoke an ACR before it reaches the IN_PROGRESS status.

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 for any SEPA Direct Debit (SDDs) collected in the last 56 days. If there is an SDD found, the ACR processing is moved to the next day. This validation is relevant for the Decoupled Cards and Credit Cards products.
  13. Checks to see if the closure type is insolvency.
  14. If the ACR has the reason INSOLVENCY_ORDINARY_INTERNAL or INSOLVENCY_IMMEDIATE_INTERNAL, then the job will fail.
  15. (For accounts with decoupled cards) Pays out the remaining funds to the reference account.
  16. Closes the account.

Successful account closure

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

Failure reasons

In case an ACR fails, the failure reasons will be returned in the failure_reason object, including a code value for the failure reason and a description of the reason in the detail field.

The following table shows the mapping between the values of the code and detail fields.

code value detail value
account_inactive Account already technically closed.
negative_balance Account balance is negative, can't perform technical closure.
positive_balance Account balance is positive, can't perform technical closure.
accrued_interest Accrued interest found on the account, can't perform technical closure.
forced_failure Account Closure was manually stopped. Please contact Solaris Customer Support for details.

Splitpay termination

If an account closure request is initiated for a customer's account, any associated credit line must also be terminated. You can trigger the termination request using PUT Terminate a credit line or contact Solaris for assistance.