Commission Billing as a Service
CBaaS is our commission engine as an API. Your systems send it policy and payment events, and it sends journal entries and payouts to the accounting and payments systems you already use.
POST /v1/policy-events
{
"policy": "PC-24-10530",
"event": "bind",
"effective": "2026-11-03",
"premium": 100000.00
}201 Created
{
"ledger": { "entries": 8, "balanced": true },
"payables": [
{ "payee": "Carrier A", "amount": 24000.00 },
{ "payee": "Carrier B", "amount": 24000.00 },
{ "payee": "Carriers C–E", "amount": 12000.00 },
{ "payee": "Producer 1", "amount": 24000.00 },
{ "payee": "Producer 2", "amount": 16000.00 }
],
"journal_entry": "JE-2026-11-0412",
"payout_batch": "PB-2026-11-05"
}How it connects
- Your systems send events. Your policy system sends binds, endorsements, renewals and cancellations, and your payments system sends premium as it’s received, through a REST API.
- CBaaS applies your rules. Splits, tiers, overrides, bonuses, chargebacks and syndicates, attached at the hinge points your agreements need.
- Every result posts to a ledger. Both sides, against the transaction that caused it, so any payout can be traced and any closed period reproduced.
- Your books and payouts stay where they are. Journal entries go to the accounting system you already use, and payout instructions to your payments system, ready to reconcile.
- Each payee gets a statement. Their own business only: the total, every policy behind it, and every rule applied.
| Rule | Hinge point | Status |
|---|---|---|
| Splits | Bind | Active |
| Tiered rates | Period close | Active |
| Bonuses and top-ups | Year end | Active |
| Overrides | Bind | Active |
| Chargebacks | Cancellation | Active |
| Payout schedules | Payment received | Active |
| Syndicates | Bind | Active |
Where commission gets stuck
Most billing services stop at premium. Commission ends up in a legacy module nobody wants to touch, or in exports re-keyed into accounting, and every month-end means checking, correcting and answering disputes. Payees can’t tell what they’ve earned without tracking it themselves.
For most businesses, paying commission is a cost of doing business. For us, it’s the reason we’re in business.
| Producer | Commission |
|---|---|
| D. Ruiz | $4,175.50 |
| M. Hale | $27,168.00 |
| P. Nand | $17,447.50 |
Totals only. No policies, no rules, recalculated each time it runs.
What the engine handles
| Arrangement | Example |
|---|---|
| Splits | 60/40 between two producers, with a sub-agent share on one side |
| Tiered rates | 12% to $1M written, 14% above it, reset each January |
| Bonuses and top-ups | Profit commission paid on a program’s loss ratio at year end |
| Overrides | 2% to the managing agency on every policy its producers write |
| Chargebacks | Pro-rata clawback when a policy cancels mid-term |
| Payout schedules | Monthly, quarterly, or on receipt of premium, set per payee |
| Syndicates | On a $100,000 premium, 60% goes to five carriers in shares of 40/40/10/5/5 ($24,000, $24,000, $6,000, $3,000, $3,000). The other 40% is the commission pool, split 60/40 between two producers ($24,000 and $16,000). |
Illustrative rates. Every arrangement can sit on the same book, in the same month.
A ledger, not a report
Every commission is a ledger entry, posted against the policy transaction that caused it. The journal entries your accounting system receives are those same entries, so finance reconciles to one set of figures.
Change the premium and watch one syndicated policy divide among its seven payees, to the cent.
- Carrier A 40% of 60%$24,000.00
- Carrier B 40% of 60%$24,000.00
- Carrier C 10% of 60%$6,000.00
- Carrier D 5% of 60%$3,000.00
- Carrier E 5% of 60%$3,000.00
- Producer 1 60% of 40%$24,000.00
- Producer 2 40% of 40%$16,000.00
Five carriers share 60% of premium; two producers split the 40% commission pool. Sample syndicate.
Statements payees can read
Each payee sees only their own business: their total, then every policy behind it, then every rule applied to each policy. Fewer calls asking “where’s my money”, and fewer disputes to settle.
| Line | Payable |
|---|---|
| Net payable | $4,175.50 |
- Hinge point
- Bind
- Ledger
- Commission $2,760.00: D. Ruiz $1,656.00, J. Okafor $1,104.00
Billing too, if you want it
CBaaS can run billing in the same call: premium invoices, installment plans, surplus lines tax, stamping fees, policy fees and inspection fees, so premium and commission always agree. Or keep the billing you have and send CBaaS what it bills.
| Renewal premium, general liability | $9,250.00 |
| Policy fee | $150.00 |
| Inspection fee | $125.00 |
| Surplus lines tax, 4.85% of premium | $448.63 |
| Stamping fee, 0.04% of premium | $3.70 |
| Total due | $9,977.33 |
| December 3, 2026 | $2,494.33 |
| March 3, 2027 | $2,494.33 |
| June 3, 2027 | $2,494.33 |
| September 3, 2027 | $2,494.34 |
Not only insurance
Commission is a problem in any business that pays people on results, and an API doesn’t care which industry calls it.
$23M+in sales managed for a team outside insurance, on the same engine that runs our P&C commission.
Questions
Is CBaaS an API or a service?
Both. It’s an API your systems call, and a team that configures and maintains the commission rules with you, so your staff isn’t keeping them up to date.
Do we have to replace our policy system?
No. Your policy system sends events to the CBaaS API. If you’d rather have everything in one place, Propcot has CBaaS built in.
Does it replace our accounting or payments system?
No. CBaaS keeps its own commission ledger and sends journal entries to your accounting system and payout instructions to your payments system. Both stay the systems of record.
Can you bring over our history?
Yes. We built Propcot by migrating 15 years of real data from a legacy system, so migration is familiar ground.
How long does onboarding take?
Connecting is quick. Onboarding is planned for six months, from initial setup through refining your processes and tuning your workflows, because we’re building a relationship. We won’t have you live in a few weeks, then stop answering the phone once the invoices start.