# Settlements BC

The Settlements BC is integral to settling Participant transfers using either Deferred Net Settlement or Immediate Gross Settlement methods. It is responsible for creating settlement windows, identifying and deploying the required settlement method (DNS/IGS), settling, closing, and updating batches, and recording all deposits and withdrawals to the appropriate ledger accounts in the Accounts and Balances BC.

## Terms

The following terms are used in this BC, also known as a domain.

| Term            | Description                                           |
| --------------- | ----------------------------------------------------- |
| **DNS**         | Deferred Net Settlement                               |
| **IGS/RTGS**    | Immediate Gross Settlement/Real-Time Gross Settlement |
| **Operator**    | Person or System issuing instructions/requests        |
| **Participant** | FSP/PISP or FSP Customer                              |
| **Account**     | Ledger Journal Account (Cr/Dr)                        |

## Functional Overview

![Use Case - Functional Overview](https://960632945-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXhOIEoqtInj89WmQ_Q%2Fuploads%2Fgit-blob-153e4c753b5a2e4bc45854e398e9fc8ebbe2c0a8%2FsettleFunctionalOverview_20210826.png?alt=media)

>

## Use Cases

### Deferred Net Settlement (DNS)

#### Description

Method of deferring payments to enable settlement on multiple batches according a predetermined schedule. This is useful for environments involving multiple Participants to a transaction requiring a balance of payment due settlement approach.

#### Flow Diagram

![Use Case - Deferred Net Settlement (DNS)](https://960632945-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXhOIEoqtInj89WmQ_Q%2Fuploads%2Fgit-blob-8c8b1977f0aa1acc7537ce497ded675dc2e01d42%2FML2RA_SET-ucDeferNetSettle_Mar22-a-P1-2.png?alt=media)

> UC Workflow Diagram: Deferred Net Settlement - 19/10/2021

### Immediate Gross Settlement (IGS)

#### Description

Method to enable immediate settlement of batches. This is useful for SME environments where quick payment turnarounds are often desirable in order to maximize their liquidity. IGS is also known as Real-Time Gross Settlement (RTGS)

#### Flow Diagram

![Use Case - Immediate Gross Settlement (IGS)](https://960632945-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXhOIEoqtInj89WmQ_Q%2Fuploads%2Fgit-blob-911db5bfe64d88e83e384b600de327271369c60b%2FML2RA_SET-ucInstantGrossSettle_Mar22-a.png?alt=media)

> UC Workflow Diagram: Immediate Gross Settlement

### Abort Settlement

#### Description

Method that enables the Settlement BC to abort a settlement as required, reversing Participant settlement accounts, updating the settlement status for settlement windows, and updating the settlement state.

#### Flow Diagram

![Use Case - Abort Settlement](https://960632945-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXhOIEoqtInj89WmQ_Q%2Fuploads%2Fgit-blob-5016294ea898170f6901e36d44aaf1a1c096a634%2FsettleAbortSettle_20210827.png?alt=media)

>

### Create/Update the Settlement Model (DNS/IGS)

#### Description

Method that enables the Settlement BC to create or update the settlement method for a settlement batch based on the Participant Account Type. Useful in instances where mixed Settlement Methods are required.

#### Flow Diagram

![Use Case - Create/Update the Settlement Model (DNS/IGS)](https://960632945-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXhOIEoqtInj89WmQ_Q%2Fuploads%2Fgit-blob-054b6a2f21fcafa1ef0c7b7d3201016393535146%2FsettleCreateUpdateModel_20210827.png?alt=media)

>

### Bootstrap (Startup) Settlement Model via Configuration

#### Description

Method that configures the Settlement Method (DNS/IGS) based upon the system startup configuration. Useful in instances where all Settlement Models are the same, such as all DNS, or all IGS.

#### Flow Diagram

![Use Case - Bootstrap (Startup) Settlement Model via Configuration](https://960632945-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXhOIEoqtInj89WmQ_Q%2Fuploads%2Fgit-blob-9b04df7c127dc9a58c5932d3ce0b88f7ac9453d7%2FML2RA_SET-ucBootStrapSettleModViaConfig_Mar22-b.png?alt=media)

> UC Workflow Diagram: Bootstrap (Startup) Settlement Model via Configuration

### Create Settlement related accounts for newly created Particpants

#### Description

The system creates settlement accounts for new Participants to enable fund transfers to managed by the Switch. This enables the Switch to exercise end-to-end management of all transfers irrespective of settlement method.

#### Flow Diagram

![Use Case - Create Settlement related accounts for newly created Particpants](https://960632945-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXhOIEoqtInj89WmQ_Q%2Fuploads%2Fgit-blob-8c27bfe78ac7f438bec929a7f48b09da843a5e29%2FsettleCreateSettleAccountsNewPart_20210827.png?alt=media)

>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mojaloop.gitbook.io/mojaloop/docs/technical/reference-architecture/boundedcontexts/settlements/index.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
