Subledgers
Overview
COS offers the ability to create subledgers instantly and on-demand. A subledger can be linked to any existing deposit account, also known as the master account.
Subledger API Endpoints
In API endpoints involving subledgers, “subaccounts” is used instead of subledgers. For instance, GET/v1/dda/subaccounts.
In COS, subledgers are a first class citizen. All transactions first go through a subledger, followed by the master account. Each master account has what is called an "implicit" subledger, which is automatically created and maintained. The implicit subledger accounts for the portion of the balance which is directly attributed to the master account's activity. COS does this by giving it the same account number as the master.
With the use of an implicit subledger, a master account's subledgers will always sum to the balance of the master account. It is virtually impossible for your master account and subledger to be out of balance.
It’s also important to note that the master account's implicit balance can go negative. This would occur in situations where more funds are attributed to other subledgers than the master account directly. It is the responsibility of the partner to maintain and reconcile the subledger system.
For API reference on subledgers click here.
Real-Time Subledger
The subledger and master account balances are updated atomically and never out of sync. Funds posted to a subaccount are immediately available from the master account.
Key Differences
You may be wondering whether you should be using master accounts or subledgers. You generally need to use master accounts (e.g. checking and savings accounts) if any of the following are true:
- Customer of CRB is the end user, such that the tax ID on the account is the customer's tax ID.
- Customers require monthly statements for each account
- Customers require yearly tax documents
Subledgers are a better fit when:
- The customer of CRB is the partner, such that the tax ID on the account is the partner's tax ID.
- Unique account number aliases are needed to ease accounting and reconciliation of payments
- All transactions should be reported on a single monthly statement
Account Numbers
Subledger numbers, as with all COS account numbers, are globally unique within the bank. Subledger numbers are 12 digits and follow this format:
3 [10 digit random number] [check digit]
Note: All subledger account numbers within COS start with the numeral "3".
In theory, it is possible to create millions of sub accounts under a single master account.
Account Check Digit
All COS accounts use a luhn check digit to validate the other digits in the account number. For more information on the luhn algorithm click here.
Sample Subledger
In this example, a checking account has been opened with an initial deposit of $500. Note that an implicit subledger with the same number has been created and is tracking the balance of the master.
Master Account # | Subledger # | Balance |
---|---|---|
2000012345 | -- | $500 |
2000012345 (Implicit) | $500 |
Next, two sub ledgers are created at the request of the partner:
Master Account # | Subledger # | Balance |
---|---|---|
2000012345 | -- | $500 |
2000012345 (Implicit) | $500 | |
300007770001 | $0 | |
300007770002 | $0 |
A wire for $500 is then sent to each of the subledgers:
Master Account # | Subledger # | Balance |
---|---|---|
2000012345 | -- | $1500 |
2000012345 (Implicit) | $500 | |
300007770001 | $500 | |
300007770002 | $500 |

Finally, an ACH for $1,000 is pulled from the master account directly:
Master Account # | Subledger # | Balance |
---|---|---|
2000012345 | -- | $500 |
2000012345 (Implicit) | ($500) | |
300007770001 | $500 | |
300007770002 | $500 |
Note that the implicit subledger is now negative; however, the sum of the subledger still correctly reflects the master account's balance. It is good practice to transfer subledger funds to the master account before spending the money. Ideally the implicit balance should match the master balance.
Subledger Types
COS supports two types of subledgers. The first type is called a passthrough ledger. In a passthrough ledger the subledger balance can go negative, and only the master balance will be used in transaction decisions.
The other type is called a direct ledger. Under a direct ledger the subledger balance will be used in transaction decisions. The implicit subledger cannot go negative.
A direct ledger system can be more difficult to manage, since in order to withdraw funds from the master account, the funds must be transferred from its subledger accounts to the implicit master account. For this reason, it is recommended to use a passthrough ledger configuration whenever possible.
The example below illustrates a use case where a partner is using subledgers for their program and how transactions on the subledgers would be decisioned based on the subledger type.
Passthrough | Key Features | Direct |
---|---|---|
Yes | Instantaneous rollup of transactions to the master account balance | Yes |
Yes | Fully routable on all payment rails (i.e. ACH, Wires, RTP, etc.) | Yes |
Yes | Supports webhooks on subledger events (such as inbound transactions) | Yes |
Yes | Reflects balance of transactions cleared against account | Yes |
Yes | Subledger can carry a negative balance | No |
Yes | Will allow transactions to clear against subledger when balance < $0 (as long as the master account has sufficient funds) | No |
No | Best for model where funds availability is managed at the subledger level | Yes |
Yes | Best for model where funds availability is managed outside of subledger with need for visibility and efficiency of transactional flows with co-mingled funds | No |
Opening Subledgers
Subledgers can be opened under any master account, such as a checking or savings account. The only information required is the master account number and Title field. The Title is typically set to the name of the partner. Subledgers also support a beneficiary profile for storing additional data such as the name and address associated with the subledger. Your implementation manager will assist you with any questions related to the data used to populate these fields, as they can vary by use case and program.
Once opened, the subledger is ready to transact usually within a few seconds or less. Note that the various payment rails (ACH, Wires, RTP, etc.) may take a short amount of time to synchronize and become "aware" of the new subledger.
POST /core/v1/dda/subaccounts
{
"masterAccountNumber": "2001231234",
"title": "Acme Co",
"beneficiary": {
"referenceId": "ABC789",
"entityName": "Acme Co",
"streetAddress1": "400 Business Street",
"streetAddress2": "Suite 123",
"city": "New York",
"state": "NY",
"postalCode": "10025",
"countryCode": "US",
"phoneNumber": "2015551234",
"emailAddress": "[email protected]",
"notes": "Testing 123"
}
}
Updated 7 months ago