Complete Guide

Cash Routing & Paired Transactions

Learn how to automatically create paired transactions when recording capital calls and distributions. Eliminate manual double-entry and keep your cash accounts always balanced.

01What Is Cash Routing?

Cash Routing is an automatic transaction pairing system that creates offsetting entries whenever you record a capital call or distribution. When money moves into or out of a fund, it also moves out of or into your cash account—Cash Routing handles both entries automatically.

The Problem It Solves

Without Cash Routing: Every capital call requires two manual entries—one on the fund, one on the cash account. Miss one, and your books don't balance. Reconciliation becomes a monthly headache.

With Cash Routing: Enter the capital call once. The system automatically creates the paired entry on your cash account. Always balanced, always reconciled, zero manual work.

Key Benefits

Zero Double-Entry

One entry creates both sides of the transaction. No manual duplication required.

Accurate Cash Forecasts

Projections automatically include cash account flows. Monte Carlo shows complete liquidity.

Clear Audit Trail

Both transactions share a transferId. Easy to trace and reconcile.

Instant Reconciliation

Accounts always balance. No monthly cleanup or error hunting.

02How Paired Transactions Work

When you create a capital call or distribution, Nagare automatically creates a paired transaction on the configured cash account. Both transactions share the sametransferIdfor linking and audit purposes.

Transaction Pairing Flow

CAPITAL CALL
on PE Fund A
+$5,000,000
AUTO-PAIRED
Same transferId
DISTRIBUTION
on Cash Account
-$5,000,000

Works both ways: Distribution from fund → Capital call on cash account

The TransferId Link

Every paired transaction shares a unique transferId. This enables:

  • Atomic deletion: Delete one side, both sides are removed
  • Easy reconciliation: Query by transferId to see both legs
  • Audit trail: Clear lineage of where cash flowed

03Configuration

Cash Routing requires a destination cash account to be configured. You can set this at the tenant level (default for all funds) or override per fund.

Step 1: Create a Cash Account Fund

First, ensure you have a fund with type MONEY_MARKET orPUBLIC_PORTFOLIO. This will serve as your cash account.

Step 2: Set Tenant Default

PATCH /api/v1/settings
curl -X PATCH https://api.nagarehq.com/api/v1/settings \
  -H "Authorization: Bearer fnd_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "defaultCashAccountFundId": "cash-usd-2024"
  }'

Once set, all capital calls and distributions on any fund will automatically create paired entries on cash-usd-2024.

Step 3: Fund-Level Override (Optional)

Override the default for specific funds by setting cashAccountFundIdin the fund's MASTER parameters:

Fund Parameters (MASTER)
{
  "fundType": "VENTURE_CAPITAL",
  "totalCommitment": 50000000,
  "currency": "EUR",
  "cashAccountFundId": "cash-eur-2024"  // Override tenant default
}

Pro Tip: Multi-Currency Portfolios

If you have funds in multiple currencies (USD, EUR, GBP), create a separate cash account for each currency. Override the default at the fund level so EUR funds route to the EUR cash account.

04Supported Transaction Types

Only certain transaction types create paired entries. This is intentional—not all fund transactions represent cash movement.

Transaction TypeCreates Pair?Paired Type
CAPITAL_CALL✓ YesDISTRIBUTION on cash account
DISTRIBUTION✓ YesCAPITAL_CALL on cash account
NAV_UPDATE✗ NoValuation only, no cash movement
ADJUSTMENT✗ NoNon-cash correction
MANAGEMENT_FEE✗ NoHandled within fund accounting

05ACTUAL vs PROJECTION Pairing

Cash Routing works for both ACTUAL transactions (what really happened) and PROJECTION transactions (what you expect to happen). The pairing logic is identical.

ACTUAL Transactions

When you manually enter a capital call or distribution, both the main transaction and the paired transaction are created with dataSource: ACTUAL.

Example: Record Q1 capital call → Paired distribution created on cash

PROJECTION Transactions

When scenario calculations run, projected capital calls and distributions automatically create paired entries with dataSource: PROJECTION.

Example: Monte Carlo projects Q4 distribution → Paired capital call on cash

Why This Matters

With projection pairing, your cash account shows the complete liquidity picture. Monte Carlo simulations automatically account for cash outflows (capital calls) and inflows (distributions). You can forecast your cash position months in advance.

06Multi-Currency Handling

When the fund currency differs from the cash account currency, Nagare handles FX conversion automatically using the rate on the transaction date.

Example: EUR Fund → USD Cash Account

Fund transaction:€1,000,000 CAPITAL_CALL
FX Rate (transaction date):EUR/USD = 1.08
Paired on cash:$1,080,000 DISTRIBUTION

Best Practice

For simpler accounting, create currency-specific cash accounts (USD Cash, EUR Cash, GBP Cash) and route each fund to its matching currency. This avoids FX conversion complexity in your cash accounts.

07API Examples

Create Transaction with Auto-Pairing

Simply create a transaction as normal. If a cash account is configured, pairing happens automatically:

POST /api/v1/funds/:fundId/transactions
curl -X POST https://api.nagarehq.com/api/v1/funds/acme-pe-fund/transactions \
  -H "Authorization: Bearer fnd_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "transactionType": "CAPITAL_CALL",
    "transactionDate": "2024-03-15",
    "amount": 5000000,
    "currency": "USD",
    "dataSource": "ACTUAL",
    "notes": "Q1 2024 capital call"
  }'

The response includes the transferId linking both transactions:

Response
{
  "success": true,
  "data": {
    "id": "txn_abc123",
    "fundId": "acme-pe-fund",
    "transactionType": "CAPITAL_CALL",
    "amount": 5000000,
    "transferId": "xfr_789xyz",  // Links to paired transaction
    "dataSource": "ACTUAL"
  }
}

Query Paired Transactions

Find both legs by transferId
curl -X GET "https://api.nagarehq.com/api/v1/transactions?transferId=xfr_789xyz" \
  -H "Authorization: Bearer fnd_live_YOUR_API_KEY"

Override Cash Account for Single Transaction

One-time override
curl -X POST https://api.nagarehq.com/api/v1/funds/acme-pe-fund/transactions \
  -H "Authorization: Bearer fnd_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "transactionType": "CAPITAL_CALL",
    "transactionDate": "2024-03-15",
    "amount": 5000000,
    "currency": "USD",
    "cashAccountFundId": "special-cash-account"  // Override for this txn only
  }'

08Troubleshooting

No paired transaction created

Causes: No cash account configured, transaction type doesn't support pairing, or the fund IS the cash account.

Solution: Verify defaultCashAccountFundId is set in tenant settings. Check that you're creating a CAPITAL_CALL or DISTRIBUTION. Ensure the fund isn't set as its own cash account.

Wrong cash account used

Causes: Fund-level override not set for multi-currency portfolio.

Solution: Set cashAccountFundId in the fund's MASTER parameters to override the tenant default for that specific fund.

FX conversion error

Causes: Missing FX rate for the transaction date.

Solution: Ensure FX rates are loaded for the transaction date. Enable the Market Data Sync schedule to automatically fetch daily rates, or upload rates manually.

Orphaned paired transactions

Causes: Main transaction was deleted but paired transaction remains (rare edge case).

Solution: Query by transferId to find both legs. Delete the orphaned transaction. The system automatically cleans up orphans during projection recalculation.

Ready to Eliminate Double-Entry?

Cash Routing keeps your books balanced automatically. Explore related features to further automate your portfolio management.