---
title: "Contra Transaction"
description: "How to record internal fund transfers in NICE HMS — user cash acceptance and bank deposits using CONTRA and CONTRA_B vouchers."
date: 2026-07-19
lastModified: 2026-07-25
category: "billing"
author: "Dr. Umesh Bilagi"
beta: false
---

## Overview

Contra Transactions move funds between internal accounts. Unlike patient invoices or vendor purchases, contra entries are purely internal — they don't involve patients, vendors, or payors. NICE HMS provides two specific contra flows with built-in security that enforces personal cashbook boundaries.

## Voucher Types

| Type | Flow | Purpose |
|------|------|---------|
| CONTRA | User Cash | Accept cash into your personal cashbook |
| CONTRA_B | Bank Deposit | Deposit money from cash/digital to a bank account |

Both are accessed from **Accounts > Contra**.

## User Cash (CONTRA)

Each user with cash access has a personal cashbook. The User Cash flow lets you accept cash into your own cashbook from another cash account.

**Access:** Accounts > Contra > **User Cash** (`/admin/accounts/contra/create/user-cash`)

### Form Fields

| Field | Description |
|-------|-------------|
| **Date** | Date of the cash acceptance |
| **Accept Cash From (Cr)** | Select the source CASH account — money leaves this account |
| **Amount** | Amount being accepted |

### How It Works

- **Dr (debit)**: Fixed to your personal cash account — money enters your cashbook. This cannot be changed.
- **Cr (credit)**: You select from all active CASH accounts in the organization.

### Security

Your cash account is hardcoded as the debit side (Dr). You can only pull money **into** your own cashbook — you cannot push money from your cashbook into someone else's. The source (Cr) can be any CASH account, but the destination (Dr) is always your own.

## Bank Deposit (CONTRA_B)

Deposit money collected in cash or digital accounts into a bank account.

**Access:** Accounts > Contra > **Deposit To Bank** (`/admin/accounts/contra/create/bank-deposit`)

### Form Fields

| Field | Description |
|-------|-------------|
| **Date** | Date of the deposit |
| **From Cash & Digital (Cr)** | Select the source — CASH or DIGITAL account |
| **To Bank accounts (Dr)** | Select the destination BANK account |
| **Amount** | Amount being deposited |

### How It Works

- **Cr (credit)**: Money leaves the selected cash or digital account.
- **Dr (debit)**: Money enters the selected bank account.

### Security

The source (Cr) dropdown only shows:
- **Your own cash account** — named `{userId}_{username} Cash`. Other users' cash accounts are excluded.
- **All active DIGITAL accounts** — shared payment gateways (UPI, card, etc.).

You cannot deposit from another user's cash — only from your own cashbook or from digital accounts.

## Contra vs Bill vs Advance

| Transaction | Parties | Voucher Types | Purpose |
|-------------|---------|---------------|---------|
| **Bill** | Patient / TPA → Hospital | INVOICE, CREDIT_NOTE | Charging for services |
| **Advance** | Patient / TPA → Hospital (deposit) | Separate advance flow | Advance payment before billing |
| **Contra** | Internal → Internal | CONTRA, CONTRA_B | Moving funds between internal accounts |

## FAQ

**Q: Does a contra transaction affect patient balances?**
A: No. Contra transactions only move funds between internal accounts like cash, bank, and digital.

**Q: Can I transfer between two bank accounts?**
A: Not through the Contra page. The Bank Deposit flow only supports Cash/Digital → Bank. For bank-to-bank transfers, use the journal or contact support.

**Q: Why can't I see another user's cash account in Bank Deposit?**
A: This is by design. Each user's cashbook is personal — you can only deposit from your own cash. Other users' cash accounts are excluded from the dropdown.

**Q: Why can I see all cash accounts in User Cash?**
A: You can accept cash FROM any cash account, but the money always goes TO your own cashbook (Dr is fixed). You cannot redirect it elsewhere.

**Q: How do I view past contra transactions?**
A: Use the Voucher Audit tool. Filter by voucher type CONTRA or CONTRA_B with your desired date range. See [Voucher Audit](/docs/audit).
