Learn how to automatically create paired transactions when recording capital calls and distributions. Eliminate manual double-entry and keep your cash accounts always balanced.
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.
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.
One entry creates both sides of the transaction. No manual duplication required.
Projections automatically include cash account flows. Monte Carlo shows complete liquidity.
Both transactions share a transferId. Easy to trace and reconcile.
Accounts always balance. No monthly cleanup or error hunting.
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.
Works both ways: Distribution from fund → Capital call on cash account
Every paired transaction shares a unique transferId. This enables:
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.
First, ensure you have a fund with type MONEY_MARKET orPUBLIC_PORTFOLIO. This will serve as your cash account.
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.
Override the default for specific funds by setting cashAccountFundIdin the fund's MASTER parameters:
{
"fundType": "VENTURE_CAPITAL",
"totalCommitment": 50000000,
"currency": "EUR",
"cashAccountFundId": "cash-eur-2024" // Override tenant default
}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.
Only certain transaction types create paired entries. This is intentional—not all fund transactions represent cash movement.
| Transaction Type | Creates Pair? | Paired Type |
|---|---|---|
| CAPITAL_CALL | ✓ Yes | DISTRIBUTION on cash account |
| DISTRIBUTION | ✓ Yes | CAPITAL_CALL on cash account |
| NAV_UPDATE | ✗ No | Valuation only, no cash movement |
| ADJUSTMENT | ✗ No | Non-cash correction |
| MANAGEMENT_FEE | ✗ No | Handled within fund accounting |
Cash Routing works for both ACTUAL transactions (what really happened) and PROJECTION transactions (what you expect to happen). The pairing logic is identical.
When you manually enter a capital call or distribution, both the main transaction and the paired transaction are created with dataSource: ACTUAL.
When scenario calculations run, projected capital calls and distributions automatically create paired entries with dataSource: PROJECTION.
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.
When the fund currency differs from the cash account currency, Nagare handles FX conversion automatically using the rate on the transaction date.
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.
Simply create a transaction as normal. If a cash account is configured, pairing happens automatically:
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:
{
"success": true,
"data": {
"id": "txn_abc123",
"fundId": "acme-pe-fund",
"transactionType": "CAPITAL_CALL",
"amount": 5000000,
"transferId": "xfr_789xyz", // Links to paired transaction
"dataSource": "ACTUAL"
}
}curl -X GET "https://api.nagarehq.com/api/v1/transactions?transferId=xfr_789xyz" \
-H "Authorization: Bearer fnd_live_YOUR_API_KEY"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
}'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.
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.
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.
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.
Cash Routing keeps your books balanced automatically. Explore related features to further automate your portfolio management.