Skip to main content

Ledgers: An overview

The following defines the ledger structure and how it is used in Tupertino:

  • LedgerBalance: The balance of a ledger, which is used to track the balance of an organisation or partner.
  • LedgerTransaction: A transaction that is used to update the ledger balance.
export class LedgerBalance {
id?: string;
organisation_id?: string; // The organisation that the ledger belongs to
balance?: number; // The balance of the current ledger
currency?: string; // The currency of the current ledger
created_at?: Date; // The date the ledger was created
updated_at?: Date; // The date the ledger was last updated
Organisation?: Organisation; // The organisation that the ledger belongs to
SourceLedgerTransactions?: LedgerTransaction[]; // The source ledger transactions
DestinationLedgerTransactions?: LedgerTransaction[]; // The destination ledger transactions
}

export class LedgerTransaction {
id?: string;
operation_type?: string;
description?: string;
source_ledger_balance_id?: string;
destination_ledger_balance_id?: string;
amount?: number;
currency?: string;
refund_id?: string;
payment_id?: string;
Refund?: Refund;
Payment?: Payment;
SourceLedgerBalance?: LedgerBalance;
DestinationLedgerBalance?: LedgerBalance;
created_at?: Date;
updated_at?: Date;
}

A worked example is given below:

  1. A payment is created with partner doku, with the following details:
    • Payment method: id_bri_banktransfer
    • Currency: sgd
    • Amount: 100
  2. The payment is processed by the partner, and the payment is updated as completed.
  3. The ledger transactions are created:
    1. A debit transaction is created for the organisation ledger with the following details:
      • Operation type: debit
      • Description: Payment for order #123
      • Source ledger balance ID: organisation_ledger_balance_id
      • Destination ledger balance ID: partner_ledger_balance_id
      • Amount: 100
      • Currency: sgd
    2. A credit transaction is created for the partner ledger with the following details:
      • Operation type: credit
      • Description: Payment for order #123
      • Source ledger balance ID: partner_ledger_balance_id
      • Destination ledger balance ID: organisation_ledger_balance_id
      • Amount: 100
      • Currency: sgd
    3. The ledger balances are updated:
      • Organisation ledger balance: 100
      • Partner ledger balance: -100