Ummah Connect · Money Trace

A £100 donation, traced

One donor gives £100 to a charity on LaunchGood. Follow every penny through the split, into four balance accounts, and across the double-entry ledger — until it reconciles to zero.

Scenario: Ummah → LaunchGood (the platform Client) → Al-Noor Relief (one of its charities). Fees: Ummah 1.15% + £0.15 (platform headline) · LaunchGood 3% (configurable per platform) · Adyen ~£0.20 processing (card-dependent, illustrative). Split math verified against a real Adyen TEST payment in the codebase.

The shape: three tiers, one payment

Al-Noor Relief is a real, independently-verified merchant — its own KYC, its own Adyen balance account, its own bank — that simply hangs under LaunchGood. The donation splits at capture, in a single Adyen movement, into everyone's account at once.

Donor £100.00 Split at capture Al-Noor Relief (charity) £95.50 Ummah commission £1.30 LaunchGood cut £3.00 Adyen processing £0.20
One card charge, one Adyen split, four destinations — each party is paid into its own balance account simultaneously.

What Adyen books at the split

These are the legs Adyen actually books (mirroring the Customer Area line-for-line, so the platform's records reconcile 1:1 against it). Amounts in £; the charity's net has Adyen's processing fee deducted at settlement.

Split legs · £100.00 donation
LegAdyen typeDestinationAmount
Seller splitBalanceAccountAl-Noor Relief BA£95.70
Variable feeCommissionUmmah liable BA£1.15
Fixed feeCommissionUmmah liable BA£0.15
Additional commissionCommission → client BALaunchGood BA£3.00
Processing feePaymentFeeAdyen (from charity net)£0.20
Donor charged£100.00

The charity is credited £95.70 at the split, then Adyen deducts its £0.20 processing fee from that same account at settlement — so Al-Noor Relief nets £95.50. Ummah's slice is locked: LaunchGood sets its own 3% on top but can never touch Ummah's 1.15% + £0.15.

The ledger — what Ummah records

Ummah keeps its own insert-only double-entry ledger on top of Adyen. Two things get posted: the intent (what the split plan says should happen) and the booked legs (what each Adyen transfer webhook confirms). Positive = money credited into an account; negative = out.

Journal 1 · INTENT — capture (the plan, posted once at settlement)
AccountRoleMove (minor)
BA:al-noor-reliefPAYEE_NET+9,570
BA:ummah-liableUMMAH_COMMISSION+130
BA:launchgoodCLIENT_CUT+300
EXT:ACQUIRINGACQUIRING−10,000
Balances to0
Journals 2–7 · ADYEN_BOOKED — one micro-journal per arriving transfer leg
#AccountMove↔ counterMove
2BA:al-noor-relief+9,570CLR:PAYIN−9,570
3BA:ummah-liable+115CLR:PAYIN−115
4BA:ummah-liable+15CLR:PAYIN−15
5BA:launchgood+300CLR:PAYIN−300
6BA:al-noor-relief−20EXT:ADYEN_FEES+20
7CLR:PAYIN+10,000EXT:ACQUIRING−10,000

Leg 6 is the subtle one: Adyen's fee is not paired with clearing — it debits the charity's balance account directly (it's their money that pays it) and credits Adyen's pocket. That is exactly what keeps the reconciliation invariant true, and it was a real bug caught and fixed: pairing it with clearing once stranded the fee there forever.

Where everything lands

Final balances after the donation settles
AccountWhoBalance
BA:al-noor-reliefThe charity — pays out to its own bank£95.50
BA:launchgoodLaunchGood — its cut, across all its charities£3.00
BA:ummah-liableUmmah — platform revenue£1.30
EXT:ADYEN_FEESAdyen — processing cost£0.20
CLR:PAYINIn-transit clearing — fully drained£0.00 ✓

It reconciles — provably

The nightly recon runs the invariant per payment. For this donation:

payee  intent 9,570 = booked 9,550 + fee 20 ✓
commission  intent 130 = booked 130 ✓
client cut  intent 300 = booked 300 ✓
clearing  CLR:PAYIN walked to 0 ✓
money book  Σ every account = 0 ✓
Charity net £95.50 Ummah £1.30 LaunchGood £3.00 Adyen £0.20 = £100.00

Why this is the LaunchGood answer

Every charity on LaunchGood is a first-class, independently-verified merchant — its own KYC, its own balance account, its own payouts — that simply sits under LaunchGood via parentClientId. One donation pays the charity, LaunchGood, and Ummah in a single split, each into their own account, and the whole thing reconciles to zero in Ummah's ledger. LaunchGood earns its cut across all 100 charities without ever holding or redistributing their money.

This three-tier shape — Ummah → Client → sub-merchants, with stacked commissions — is beyond what Stripe Connect does natively, and it fits a Muslim-crowdfunding platform almost exactly.