Subledgers
Cross River gives you 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.
In subledger API endpoints, subaccounts is used instead of subledgers. For instance, GET/v1/dda/subaccounts.
In the CR system, subledgers are first class citizens, meaning it supports all the operations available to accounts. 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. The CR system does this by giving it the same account number as the master.
With the use of an implicit subledger, master account subledgers always sum to the balance of the master account. It is virtually impossible for your master account and subledger to be out of balance.
The master account 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.
The subledger and master account balances are updated atomically and never out of sync. Funds posted to a subledger are immediately available
Subledger account numbers
Like all account numbers, subledger account numbers are globally unique within the bank. Subledger numbers are 12 digits and follow this format:
3 [10 digit random number] [check digit]
All subledger account numbers in COS start with 3.
Account Check Digit All accounts use a luhn check digit to validate the other digits in the account number.
The following example explains the relationship between subledgers and a master account.
A checking account is opened with an initial deposit of $500. An implicit subledger with the same number is created and is tracking the balance of the master.
Master Account # | Subledger Account # | Balance |
2000012345 | -- | $500 |
| 2000012345 (Implicit) | $500 |
Next, two subledgers are created at the request of the partner:
Master Account # | Subledger Account # | Balance |
2000012345 | -- | $500 |
| 2000012345 (Implicit) | $500 |
| 300007770001 | $0 |
| 300007770002 | $0 |
A wire for $500 is sent to each of the subledgers:
Master Account # | Subledger Account # | Balance |
2000012345 | -- | $1500 |
| 2000012345 (Implicit) | $500 |
| 300007770001 | $500 |
| 300007770002 | $500 |
$1,000 is pulled from the master account directly:
Master Account # | Subledger Account # | Balance |
2000012345 | -- | $500 |
| 2000012345 (Implicit) | ($500) |
| 300007770001 | $500 |
| 300007770002 | $500 |
The implicit subledger is now negative but the sum of the subledger still correctly reflects the master account balance.
Transfer subledger funds to the master account before spending the money. The implicit balance should match the master balance.
With passthrough subledger configuration, the master account balance is the true representation of value in the account when determining funds availability for transactions. Thus only the master account balance will be used in transaction decisions. The master account balance is not dependent on subledgers, and the master account balance can move above or below the aggregate value reflected in the subledger balances. Thus the sub ledger balance is ignored.
An individual subledger balance in this configuration can go negative, as can the implicit subledger balance. However, the master account must have a sufficient balance for a withdrawal to post.
Usually, with a passthrough configuration the partner maintains a ledger with end-user (customer) balances on its own systems. The partner can also maintain a customer ledger at CR with the passthrough configuration. However, that requires that the partner actively maintain a true balance by transferring funds to and from the master and subledgers as needed (for example, a withdrawal from the master account requires a corresponding transfer from a subledger to the master account).
For this reason, passthrough subledgers aren’t an optimal way to maintain a balance of all their customers’ dollars when compared to the direct subledger configuration.
With passthrough subledgers, partners can withdraw funds from the master account or directly from a subledger.
When funds are withdrawn from the master account, they are debited from the implicit subledger (which represents the true balance), as well as from the master account. This is because in the passthrough configuration the aggregate value in the non-implicit subledgers does not equal the total balance in the master account.
Partners can withdraw funds from the master account without first transferring funds from a subledger to the master account. In this case, the subledger will represent a balance which is not a true representation of available funds.
If a partner wants to withdraw funds directly from the subledger, there is a corresponding debit to the implicit subledger. If the master account is designated in the API as the account to withdraw from, funds will be debited from the master account and the implicit subledger. If a subledger is used in your transaction or payment request, the CR system will transact on the master by that amount.
In passthrough, when funds are deposited they are credited to the designated subledger, the implicit subledger, and the master ledger.
Under a direct ledger configuration the aggregate subledger balance will be used in transaction decisions. The implicit subledger cannot go negative, and neither can any of the individual sub ledger balances.
With direct subledgers, the aggregate sub ledger balance must equal the value in the master account. If the partner wishes to withdraw funds from the master account, the funds must be transferred from a sub ledger account to the master account.
With a direct subledger, when a partner makes a withdrawal, funds are debited from the subledger. Funds cannot be withdrawn from the master account without transferring them first from the subledger to the master account.
Regardless of what type of subledger is used, the balance of the subledgers including the implicit subledger add up to the master account balance.
For direct subledgers, the implicit subledger is only dealing with funds coming in and out of the master. The implicit subledger doesn’t float to balance the subledgers with the master as it does with passthrough subledgers. With direct, if the master account is funded directly, the implicit subledger will reflect that value. The rest of the value is in the other subledgers.
For instance, with direct, if a master account has 3 subledgers with $100 each and the implicit balance is at $0, the master will say $300. If $100 is deposited to the master account directly, then the implicit subledger will have a balance of $100, and the account will have a total balance of $400. If $400 was to then be withdrawn from the master, there would need to be a transfer of $300 ($100 from each subledger) to the master.
With a passthrough configuration, if the master account balance is $300, then $300 is withdrawn from the master without any corresponding debits from the subledgers.
With both passthrough and direct subledger configurations, all subledgers + implicit subledger = funds availability (master). The difference is that with a passthrough configuration, the implicit subledger and individual subledgers can be negative, whereas with direct configuration they cannot.
Passthrough is generally better for situations where a partner manages end-user deposits in multiple banks. For instance, a partner can manage customer funds at CR and two other banks, where the aggregate customer funds total $3 million, with 10 customers. With passthrough subledgers, there is no need for partners to specify which customer dollar is held in which subledger. With direct subledgers, it’s more tricky, because partners need to not only consider how much their deposit balance is at CR in general, but how much they have allocated for each of their customers in subledgers.
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 consider the use case and configure in a way that will best serve your needs.
Passthrough | Key Features | Direct |
Y | Instantaneous rollup of transactions to the master account balance | Y |
Y | Fully routable on all payment rails (i.e. ACH, Wires, RTP, etc.) | Y |
Y | Supports webhooks on subledger events (such as inbound transactions) | Y |
Y | Reflects balance of transactions cleared against account | Y |
Y | Subledger can carry a negative balance | N |
Y | Will allow transactions to clear against subledger when balance < $0 (as long as the master account has sufficient funds) | N |
N | Best for model where funds availability is managed at the subledger level | Y |
Y | Best for model where funds availability is managed outside of subledger with need for visibility and efficiency of transactional flows with co-mingled funds | N |
General Ledger (GL) accounts are internal accounts used for accounting purposes for internal reconciliation. COS processes each transaction through a GL account. A GL account must reconcile to zero (0) at the end of the day.
Although GL accounts are meant for CR-partner reconciliation, there are times when you might want to open a GL account for external purposes. For example, if you handle payroll deposits for a customer, you may need to overdraw on an account to be able to send salaries to the customers before the employer’s funds have been deposited into your account. A regular account can’t be overdrawn, but this GL can serve as the account that can be overdrawn.