Vertical SaaS, B2B marketplaces, and fintech startups increasingly rely on embedded payment experiences. For instance, Settle brings an all-in-one AP/AR, lending, and cash flow analytics services to small businesses. Modern B2B marketplaces can offer vendors in their platform the ability to execute, receive, track, and categorize payments, while fintechs can offer fully integrated Bill Pay experiences, all in-app.
In this article, we’ll talk about how companies that facilitate payments of any kind can use a ledgering database to track balances and transactions at scale.
Facilitating Payments at Scale
A company facilitating payments needs to:
- Give customers the ability to instantly access detailed reporting on historical transactions and what accounts they impact. Accounts can represent vendors, suppliers, or simply segregated pools of funds;
- Track user wallets and credit balances;
- Initiate programmatic payouts at scale.
An application ledger is the in-app infrastructure that addresses these needs.
The diagram above shows a ledgering system. A ledger is a central source of truth, between all financial data sources and destinations. To illustrate how these pieces come together we’ll look at a fictitious AP/AR platform, Modern Billing, that needs to process payments in their platform and offer detailed, instant reporting for their users.
- Data sources: Data on transactions happening in-app can be pooled from external providers, in-house systems, or manual processes. External providers could be payment processors, card issuers, or banks. When a user of Modern Billing executes a payment, the payment processor will send a transaction record via webhook that can be stored in the ledger. If the Modern Billing ops team needs to make any adjustments, they can make changes to the ledger via an internal dashboard. The number of sources can vary: as long as Modern Billing has a clear, unifying logic for categorizing transactions, it can organize transaction data in a single application ledger.
- Data destinations: A single ledger is needed to display balances in-app, feed internal dashboards, or push information into a data warehouse for analytics. Modern Billing can use its ledger to display a detailed transaction history panel, outstanding balances for vendors, any credits, and detailed information around counterparties directly to its users.
Within the ledger, the following classes of objects need to be represented:
- Ledger accounts representing every counterparty with which a company is transacting. At scale, this number can rise to the hundreds of thousands, or even millions, which makes it impractical to manage manually.
- Every single transaction that occurs on the platform, enriched with metadata and timestamped. The ledger also must guarantee idempotency, immutability, and concurrency controls to make sure nothing breaks at scale.
- A system of accounts (a ledger), each typically corresponding to a single currency or unit of value. Companies can also hold entire ledger structures on behalf of users in their platform. For example, a B2B marketplace like Alibaba can see all of their vendors (each represented by a ledger account) and transactions, fully enriched with metadata.
Building Instant Reporting
Any embedded payments product requires consolidating transaction data from multiple sources into multiple destinations. A real-time database allows companies to gather and report on transaction data in the platform instantly.
Many of our customers create internal and user-facing dashboards based on transaction data: volume, most active counterparties, payment history, balance history, returns, reversals, and so on. It’s non-trivial to build transparency into a platform that powers payments, and that requires a robust application ledger.
If you are looking to add payments to your platform—or payments is the core service you provide—you might benefit from using a scalable ledger.