Accounting Model

Updated on 28 May 2024

The SDK.finance Accounting Model provides real-time insights into money movement within the system, displaying  wallet balances as they change.

 

Crucial Elements

1. There are two types of account usage:

  • accountingthey are used for accounting purposes and do not reflect the actual flow of currency within the system and
  • circulation –  these accounts reflect the movement of currency in and out of the system

2. All income and outgoing transactions for a specific currency (e.g., USD) within the system are routed through the issuing_transit account and affect the system circulation volume. 

Example: all incomes/outcomes to/from the system circulation in certain currency1 are reflected on the issuing1_balance account and issuing1_transfer account (both accounts have one unique Currency – Currency1)

3. The issuing_balance account is a wallet with usage=accounting, which reflects all the income/outcome to/from the certain Currency issued in the system (with particular and unique currency, e.g. issuing1_balance USD1=currency USD1).

4. Accounts with usage=accounting must not be included in the circulation volume

5. Accounts with usage=circulation must be included in the circulation volume

6. The technical_transit account serves as a temporary holding account during transaction processing. It might be used to split transaction amounts for fees or settlements. This account’s balance should always be zero after processing a transaction.

7. To reconcile the circulating volume of a specific issued currency (e.g., USD1), compare the balance of the “Currency1” account (coin type = issuing1_transfer) with the balance of the issuing1_balance account (coin type = issuing1_balance). These balances should always be equal, ensuring the system tracks currency issuance and circulation accurately.

Account Types

Each type of account can be technical and not technical (technical: TRUE/FALSE). Technical accounts are temporary containers for technical operations, which have a limited life cycle according to the Business Process flow.

Type

Description

Level*

Usage

Collector

issuing_transit

money which was issued in the system (circulation)

issuer

circulation

n/a

technical_transit

technical transit account, after the operation was completed the balance of this account must be 0

system

circulation*

n/a

technical_transit

technical transit account, after the operation was completed the balance of this account must be 0

system

accounting*

n/a

regular_system_commission

system commission from regular users (such as individual) for the internal operation (e.g. transfer, top up via bank etc.) OR system commission for external operation, when the commission was issued at the circulation

system

circulation

n/a

business_system_commission

system commission from business users (such as merchants) for the internal operation (e.g. transfer, top up via bank, etc.) OR system commission for external operation, when the commission was issued at the circulation

system

circulation

n/a

regular_system_commission

system commission from regular users such as individual for the internal operation (e.g. transfer, top up via bank etc.)

system

accounting

n/a

business_system_commission

system commission from business users such as merchant for the internal operation (e.g. transfer, top up via bank, etc.)

system

accounting

n/a

issuing_balance

ledger account, is used to calculate the in-system circulation volume

system

accounting

n/a

regular_gate_commission

is used for calculations of commission income for specified provider account and specific commission collector for Individuals.
For the external operation (e.g. Top up via provider, Withdrawal via provider)

gate

accounting

Provider

business_gate_commission

is used for calculations of commission income for specified provider account and specific commission collector for Merchant.
For the external operation (e.g. Top up via provider, Withdrawal via provider)

gate

accounting

Provider

debt_gate_settlement

is used for calculation of amount which the system did not received from provider because provider deducted their commission. This wallet is allow to have a negative balance.

gate

accounting

debt_gate_commission

is used for calculation of gate commission which was not covered by total commission received from the Individual and Merchant

gate

accounting

Provider

exchange_reserve

is used only for Currency Exchange operations as exchange reserve account

system

circulation

n/a

client

a general type of accounts owned by end users (Individual, Merchant)

client

circulation

n/a

gate

gate balance account

gate

accounting

n/a

reserve

money which is transferring from one cash desk to another

system

circulation

n/a

cash

cash desk account

cash desk

accounting

n/a

prepaid

prepaid account can be accessed by serial and pin (voucher coin)

client

circulation

n/a

cashback_payer (is not used)

the merchant obligation before the payers to pay cashback, the funds from this coin are sent to payer client coin at the end of the month

client

circulation

n/a

cashback_merchant (is not used)

the obligation to pay cashback for merchant who accept payment, the funds on this account are sent to payer client coin (also to the commission coin) at the end of the month

client

circulation

n/a

*Level – the logical level of the account, is not linked with a certain organization


Supported commission directions for all operation types

The System supports the following commission directions for operations (via Front-end and API):

Operation type

Supported commission direction

TOPUP via provider

OUT (tab Provider Commission)

WITHDRAW via provider

IN (tab Provider Commission)

PURCHASE via provider

OUT (tab Product Commission)

TRANSFER

IN, OUT, SHARED

TOPUP via bank

OUT

WITHDRAW via bank

IN

Merchant PAYMENT

IN

INVOICE

IN

Voucher CREATION

OUT

Voucher ACTIVATION

IN

TOP UP via cash desk

OUT

WITHDRAW via cash desk

IN

ISSUE CARD (based on PURCHASE via provider operation)

OUT (tab Product Commission)

Accounting Model Creation of all other commission directions for certain operations is blocked on the Front-end, API, and code level. For source code clients it’s possible to unlock and use additional the configurations.

 

Accounting model by operations

Internal operations

Transfer

The transfer operation occurs inside the circulation and does not change the volume of electronic money issued within the system (it does not influence the balance of the wallet with the type issuing_balance).

The system commission for the transfer operation is also accumulated inside the circulation until it is deducted from the circulation by withdrawal from the commission wallet – as the company’s revenue.

Transfer OUT commission

Accounting Model

Transfer IN commission

Accounting Model

Transfer SHARED commission

Accounting Model

 

Bank operations

Operations of Top up/Whithdraw wallet via manual bank transfer have an impact on the volume of e-money circulation (circulation increases while top up and decreases while withdrawal).

For the operations, which have an impact on the volume of e-money circulation the general approach to calculating and issuing/redeeming system commissions is the following:

  • when inputting funds into circulation (e.g. Top up via bank), the system commission is not included in the amount of e-money issued into circulation, it is only calculated for the accounting needs on a separate commission wallet (usage=accounting).

  • when redeeming funds from circulation (e.g. Withdrawal via bank), the system commission is not included in the amount of e-money removed from circulation, it is accumulated on a separate commission wallet (usage=circulation). Until it is deducted from the circulation by withdrawal from the commission wallet – as the company’s revenue.

Top up via bank