Skip to main content

Instructions

For a general introduction to transaction groups in Caramel, see Accounting Overview. That page explains the three broad business-facing groups of transactions:

  • Customer Transactions
  • Vendor Transactions
  • Internal Transactions

This page focuses on the structural side of transactions: how transaction records are built, how they behave in accounting, and when to use each transaction type in practice.

Transaction Structure

In Caramel, transactions are mainly separated by two fields:

  • Type
  • Mode

These same fields are also available in the filtering area of Transaction Management (List & Search), where you can narrow down records by transaction behavior.

Type

The main transaction types are:

Payment Credit Invoice Bill Stmt/Check Transfer

Mode

The available modes are:

  • Deposit
  • Withdraw

Not every transaction type uses a mode. Some types are directional and use Deposit or Withdraw, while others act as accounting documents without being treated as money entering or leaving an account directly.

tip

If you are reviewing the transaction list and want to understand why two records look similar but behave differently, check both the Type and Mode columns together.

Payment

A Payment is used when actual money is received or paid.

Its direction depends on whether the transaction is registered for a customer or a vendor.

Customer payment

When a payment is registered for a customer, it is stored as:

  • Type: Payment
  • Mode: Deposit

In customer-related areas, this usually appears as Receive Payment.

This is the common choice when a customer pays you against invoices or outstanding balance.

Vendor payment

When a payment is registered for a vendor, it is stored as:

  • Type: Payment
  • Mode: Withdraw

In vendor-related areas, this usually appears as Make Payment.

This is the common choice when you pay a vendor against bills or outstanding balance.

Payment form

In the payment form, these fields are usually required:

  • Account
  • Amount

Other fields are optional and can be filled when needed, such as:

  • Category
  • Method (Cash, Credit Card, and similar methods)
  • DateTime
  • Reference
  • Memo

Credit

A Credit is not a real cash movement. It is a virtual financial value recorded for future settlement.

It behaves similarly to Payment in direction:

  • for customers: Deposit
  • for vendors: Withdraw

The difference is that Credit does not usually require an actual payment account.

Customer credit

When credit is given to a customer, it is registered as:

  • Type: Credit
  • Mode: Deposit

This increases the customer’s usable balance without recording a real money receipt.

Vendor credit

When credit is registered for a vendor, it is stored as:

  • Type: Credit
  • Mode: Withdraw

This is used when a virtual adjustment is needed on the vendor side without direct cash movement.

Credit form

Unlike Payment, the credit form does not include an Account field.

The main required field is:

  • Amount

Other optional fields may still be available depending on the context.

Allocations Table

When you register a Payment or Credit, Caramel may show an allocation table below the input form.

For customers, the table typically shows:

  • invoices or statements that will be paid by this deposit
  • documents that are still outstanding

For vendors, the same idea applies, but the table shows bills or statements affected by the withdraw.

Automatic allocation

As soon as you enter the amount, Caramel automatically tries to distribute that amount across the listed rows.

This helps speed up routine accounting work, especially when the oldest or most obvious unpaid documents should be settled first.

Manual allocation

You can still adjust allocations manually.

You may change:

  • selected rows
  • allocated amounts
  • checkboxes for included documents

This is useful when the payment should only be applied to specific documents.

Select-based recalculation

The button above the table is used to first choose the intended rows and then let the system recalculate the amount based on those selected records.

This button is only available in Add mode and is not shown when editing an existing transaction.

Preset

The Preset option is available to speed up payment entry.

Instead of selecting several fields one by one, you can choose one preset from a dropdown and let Caramel fill multiple fields automatically.

A preset can apply values such as:

  • Account
  • Method
  • Category

For example, a preset like POS 1 may automatically set:

  • Account = Account #233
  • Method = POS
  • Category = Counter

This reduces repetitive data entry and helps keep transaction registration more consistent.

In some workflows, preset selection can also be connected to card terminal or POS-related operations.

note

The Preset field is only available while adding a new payment. It is not shown in edit mode.

Invoice and Bill

Invoice and Bill are the main accounting documents used to create receivables and payables.

They are not direct cash transactions.

Invoice

An Invoice is used to charge a customer.

It is the standard document for recording income, such as:

  • product sales
  • services
  • received wages or fees
  • other customer-facing charges

Bill

A Bill is used to register what you owe to a vendor.

It is the standard document for recording expenses, such as:

  • product purchases
  • services received
  • salaries paid
  • other vendor-related costs

Why they are different from Payment and Credit

Invoice and Bill are the only major transaction types that do not use Deposit or Withdraw.

Instead, they work through system-level accounting balances such as:

  • Account Receivable
  • Account Payable

These system accounts are affected virtually. Actual settlement usually happens later through Payment or Credit transactions.

Because these two document types are larger topics and often need more reporting and operational details, Caramel provides separate pages for them.

See also:

Statement / Check

Stmt/Check is used for less common financial directions.

Normally:

  • customers mostly create Deposit behavior
  • vendors mostly create Withdraw behavior

But sometimes the opposite is needed.

That is where Stmt/Check becomes important.

Typical examples include:

  • refund
  • recompense or damage payment
  • loan-related entries
  • manual financial adjustments

This type is especially useful when you need customer-side withdraw behavior or vendor-side deposit behavior.

Examples are explained later in Common Accounting Scenarios.

Transfer

A Transfer is used to move money directly between two accounts.

This is an internal money movement and does not depend on customer or vendor settlement.

Transfer form

The main required fields are:

  • From
  • To
  • Amount

Other fields such as Method and DateTime can be filled if needed.

How Transfer is stored

When a transfer is confirmed, Caramel creates two linked accounting entries:

  • one Transfer with Mode: Withdraw
  • one Transfer with Mode: Deposit

These two records represent the source and destination sides of the same movement.

Although they appear as separate rows in the transaction list, they are linked to each other and behave as one transfer form.

That means:

  • editing one side updates the linked side
  • deleting one side also affects the linked side
warning

Even though a transfer appears as two rows in Transaction Management (List & Search), it should be understood as one accounting action between two accounts.

Common Accounting Scenarios

How do I register payroll or salary?

To register payroll for a staff member, create a Bill for that person and make sure the person is registered or selected as a Vendor

For example, one bill row can be something like January Salary, and you can add more rows if needed for allowances, deductions, or other items.

After the bill is confirmed, that vendor becomes a creditor, meaning you owe them money. You can then use Make Payment to settle the amount fully or partially.

It is also possible to register a payment before creating the bill. In that case, the system may warn you about overpayment, and you can confirm it if that is intentional. Later, when the bill is created, that earlier payment can be matched against the vendor’s balance.

A similar workflow can also be used on the customer side when your business receives a salary-like or recurring amount from a customer.

How do I register a refund?

Refunds are usually used when a customer or vendor already has available balance, such as extra payment, unallocated payment, or credit.

For a customer refund:

  1. Open the customer transaction area.
  2. Choose Statement / Check.
  3. In the opened window, choose Refund Check.
  4. Enter the Amount.
  5. Select the Account that the money should leave from.

Other fields such as payment method, category, date/time, and reference are optional and can be filled if needed.

A similar process is available for vendors when a vendor is returning money to you or when you are refunding a vendor, depending on the transaction direction used in your workflow.

How do I register compensation or damage?

If the customer agrees to receive compensation as account credit for future invoices, you can simply create a Credit transaction.

If the customer wants an actual payment instead, use Statement / Check, select the customer, and then choose Recompense in the transaction window.

After that:

  • enter the desired amount
  • choose the account the money should leave from
  • optionally fill fields such as method, category, date/time, and reference

A similar idea can also be used for vendors when the financial direction is reversed.

Refund vs recompense

The main difference is that Refund is usually used when balance already exists and money is simply being returned.
Recompense is used more as a compensating action, and in this flow Caramel also creates a related credit record for the entered amount and assigns it to that document.

How do I register a loan?

A loan workflow can be modeled using transaction documents.

For example, if you receive a loan from a bank or institution, you can register it in two parts:

  • one document for the received loan amount
  • one separate document for the loan interest, if interest applies

A practical workflow is:

  1. Open the vendor transaction area.
  2. Choose Statement / Check.
  3. Select or create the related vendor, such as the bank or institution.
  4. In the window, choose Manual (Late Payment).

This records the incoming amount as a separate financial document and increases the balance of the selected account accordingly.

If the loan includes interest, create a separate Bill for the same vendor and add an item such as Loan Interest.

This keeps the principal and the interest as two separate documents. From that point on, you can use Make Payment to settle the vendor balance over time.

A similar concept can be used on the customer side if you are giving a loan to a customer.

How do I register a purchase made by someone else on our behalf?

One common example is when a staff member pays for something personally and you want to settle it later.

Simpler method

Create a new Bill for that vendor or staff member.

Later, when you are ready to settle the amount, register a payment for the bills recorded for that vendor.

You can also assign a dedicated category to these bills so they are easier to find later in search and reports.

More detailed method

If one vendor pays on your behalf to another vendor, a more precise workflow can be used.

For example:

  1. Create an account representing the paying person or vendor, such as a personal account for John.
  2. Create a Statement / Check transaction for that vendor using that account and choose Manual (Late Payment)
  3. This records a deposit-like document for that vendor and makes that vendor a creditor.
  4. Later, when making payment for another bill, select that created account as the payment source.

With this approach, the target bill is settled, while the original paying vendor remains the one you owe. You can then settle that vendor later together with other bills already registered for them, such as salary or reimbursements.