> ## Documentation Index
> Fetch the complete documentation index at: https://docs.monime.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Financial Transaction

A **Financial Transaction** represents a movement of funds that affects a Financial Account, either as a **credit** (inflow) or a **debit** (outflow).\
Every transaction adjusts the balance of an account and provides a full audit trail of how money moves within Monime.

***

### Use Cases

* **Customer Payment Recording**\
  A user pays SLE 500 into your platform via Mobile Money.\
  *Result*: A **credit transaction** is posted to a financial account of the space; this transaction is linked to a **Payment** created from the originating **Payment Code**.

* **Fee Deduction**\
  A SLE 50 fee is charged for a payout of SLE 1,000.\
  *Result*:
  * A **debit transaction** of SLE 1,000 from the payout account.
  * A **debit transaction** of SLE 50 from the payout account.

* **Internal Transfer**\
  Moving SLE 10,000 from a Settlement Account to a Disbursement Float.\
  *Result*:
  * A **debit transaction** on the Settlement Account.
  * A **credit transaction** on the Disbursement Float Account.

* **Refund or Reversal**\
  If a payment is refunded, a corresponding **debit transaction** reduces the merchant’s balance.\
  *Result*: The audit trail shows both the original credit and the refund debit, linked together.

***

<ResponseExample>
  ```json JSON Model theme={null}
  {
      "id": null,
      "type": "credit",
      "amount": {
          "currency": null,
          "value": null
      },
      "timestamp": null,
      "reference": null,
      "financialAccount": {
          "id": null,
          "balance": {
              "after": {
                  "currency": null,
                  "value": null
              }
          }
      },
      "originatingReversal": {
          "originTxnId": null,
          "originTxnRef": null
      },
      "originatingFee": {
          "code": null
      },
      "ownershipGraph": {
          "owner": {
              "id": null,
              "type": null,
              "metadata": null,
              "": null
          }
      },
      "metadata": null
  }
  ```
</ResponseExample>

<ResponseField name="📋" type="Properties">
  <ResponseField name="id" type="string">
    Unique identifier for this financial transaction.
  </ResponseField>

  <ResponseField name="type" type="enum<string>">
    Indicates whether the transaction is a 'credit' or 'debit'.

    Available options: <code>credit</code> <code>debit</code>
  </ResponseField>

  <ResponseField name="amount" type="object">
    The monetary value involved in this transaction.

    <Expandable title="properties">
      <ResponseField name="currency" type="string">
        The [3-letter](https://en.wikipedia.org/wiki/ISO_4217) ISO currency code. Currently supported: 'SLE'
      </ResponseField>

      <ResponseField name="value" type="integer">
        The value representation in the currency's minor unit. E.g. For 1 Leone (SLE 1), the value should be 100, denoting cents, the minor unit.
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="timestamp" type="string">
    The exact time when this transaction was recorded.
  </ResponseField>

  <ResponseField name="reference" type="string">
    Internal identifier associated with this transaction for reconciliation purposes.
  </ResponseField>

  <ResponseField name="financialAccount" type="object">
    The account that was debited or credited as part of this transaction, including post-transaction balance snapshot.

    <Expandable title="properties">
      <ResponseField name="id" type="string">
        **Account ID**: Unique identifier of the financial account affected by this transaction.
      </ResponseField>

      <ResponseField name="balance" type="object">
        **Account balance**: Balance snapshot of the account immediately after the transaction, if available.

        <Expandable title="properties">
          <ResponseField name="after" type="object">
            **Post-transaction balance**: The available balance of the account immediately after this transaction completed.

            <Expandable title="properties">
              <ResponseField name="currency" type="string">
                The [3-letter](https://en.wikipedia.org/wiki/ISO_4217) ISO currency code. Currently supported: 'SLE'
              </ResponseField>

              <ResponseField name="value" type="integer">
                The value representation in the currency's minor unit. E.g. For 1 Leone (SLE 1), the value should be 100, denoting cents, the minor unit.
              </ResponseField>
            </Expandable>
          </ResponseField>
        </Expandable>
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="originatingReversal" type="object">
    Indicates that this transaction was created as the result of a reversal action. The transaction itself represents the reversal of fund.

    <Expandable title="properties">
      <ResponseField name="originTxnId" type="string">
        The ID of the transaction that was reversed by this transaction
      </ResponseField>

      <ResponseField name="originTxnRef" type="string">
        The reference of the transaction that was reversed by this transaction
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="originatingFee" type="object">
    Indicates that this transaction was created as the result of an internal platform fee. The transaction itself represents the fee.

    <Expandable title="properties">
      <ResponseField name="code" type="string">
        The type of charge applied.
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="ownershipGraph" type="object">
    Traceability structure showing which resource or object owns or initiated this transaction.

    <Expandable title="properties">
      <ResponseField name="owner" type="object">
        **Immediate object** that owns this entity. This is the direct originator or source object.

        <Expandable title="properties">
          <ResponseField name="id" type="string">
            **Unique ID** of the object instance that owns this entity.
          </ResponseField>

          <ResponseField name="type" type="string">
            **Type of the object** that owns this entity. Examples include: 'internal\_transfer', 'checkout\_session', 'payment\_code'.
          </ResponseField>

          <ResponseField name="metadata" type="object">
            **Arbitrary metadata** describing the owning object.
          </ResponseField>

          <ResponseField name="" type="" />
        </Expandable>
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="metadata" type="object">
    Custom structured key-value pairs associated with this transaction for additional context.
  </ResponseField>
</ResponseField>
