A cash pool is a collection of payment accounts from one or more payment service providers that you want to manage as a single unit. Cash pools aggregate balances across multiple accounts, providing a unified view of your funds for financial reporting, treasury management, and reconciliation.

Why cash pools?

When managing funds across multiple financial institutions, you often need to view and analyze balances from different accounts together. For example, you might have:
  • A Stripe account for card payments
  • A PayPal account for alternative payments
  • A bank account for direct transfers
Rather than querying each account individually, cash pools let you:
  • View aggregated balances across all accounts in real-time
  • Track historical balances at specific points in time
  • Simplify financial reporting with consolidated balance views
  • Enable reconciliation against your internal ledger
  • Monitor liquidity across multiple financial institutions

Pool structure

A cash pool contains:
  • ID: Unique UUID identifier
  • Name: Human-readable name (must be unique)
  • Created at: Timestamp when the pool was created
  • Pool accounts: Array of account IDs included in the pool

Creating a cash pool

Cash pools are created via the Payments API with a name and array of account IDs:
{
  "name": "string (required)",
  "accountIDs": ["array of account ID strings (min 1 required)"]
}

Using cash pools

Balance queries

Pool balance endpoints aggregate balances from all accounts in the pool by asset:
# Get latest aggregated balances
GET /pools/{poolId}/balances/latest

# Get historical balances at specific timestamp (must be in past)
GET /pools/{poolId}/balances?at=2024-01-15T23:59:59Z
Balance aggregation logic:
  1. Fetches balances from all accounts in the pool
  2. Groups by asset/currency
  3. Sums amounts for each asset
  4. Returns array of aggregated balances

Reconciliation policies

Cash pool IDs are used in the paymentsPoolID field of reconciliation policies:
{
  "name": "string",
  "ledgerName": "string", 
  "ledgerQuery": "object",
  "paymentsPoolID": "uuid-string"
}
The reconciliation service compares ledger account balances against the aggregated cash pool balances. See Getting Started with Reconciliation for a complete workflow.