Wissensbasis/Escrow und Finance/Escrow Fees Engine: atomare Splits bei jeder Transition
03Escrow und Finance3 Min. Lesezeit

Escrow Fees Engine: atomare Splits bei jeder Transition

Wie Seller Payout, Platform Fee und Buyer Refund bei jedem Release, Refund oder Split berechnet und gesnapshot werden - ohne Race Conditions.

Eine Escrow Transition, die Money bewegt, muss das atomically tun. Wenn der Seller Payout schreibt, aber die Platform Fee nicht, hast du eine Inconsistency, die manuell repariert werden muss. Der H6 Fees Engine verhindert das, indem er alle Splits in einer Transaction berechnet und als eine Settlement Row schreibt.

Die Fee Structure

Fees sind tenant-configurable per Outcome und Category. Eine typische Config: release nimmt einen Flat Percentage vom Seller (die Platform Fee), refund waives die Platform Fee (oder berechnet eine kleinere Dispute-handling Fee), split nimmt die Platform Fee proportional zum Share jeder Party. Tiered Volume Pricing wird unterstützt: Deals über einem Threshold bekommen einen niedrigeren Percentage. Die Engine liest die Policy von der H7 Policies Page im Moment der Transition.

Die Split Calculation

Für Release: total = held amount, platform_fee = total × fee_rate, seller_payout = total − platform_fee, buyer_refund = 0. Für Refund: platform_fee = 0 (oder dispute_fee), seller_payout = 0, buyer_refund = total. Für einen Split mit 70/30 Result: platform_fee = total × fee_rate, payable = total − platform_fee, seller_payout = payable × 0.7, buyer_refund = payable × 0.3. Alle drei Numbers gehen auf die Settlement Row.

Atomicity

Der Settlement Write passiert in derselben Database Transaction wie die Escrow State Transition. Wenn etwas fehlschlägt — fee policy not found, settlement table constraint violation — rollt die gesamte Transaction zurück. Das Escrow bleibt im previous state. Keine half-released Funds. Der User bekommt einen spezifischen Error und kann retryen, sobald das underlying issue gefixt ist.

Currency snapshot

Die Settlement Row speichert die Exchange Rate im Moment der Transition (mit den daily rates, die vom H/exchange-rates Cron refreshed werden). Wenn die Deal Currency von der Platform Reporting Currency abweicht, werden beide Amounts gespeichert. Ein Settlement, das in USD an einem Tag geschlossen wurde, an dem EUR/USD 1.08 war, wird mit dieser Rate recorded; Financial Reports sechs Monate später re-translaten nicht still.