Escrow fees engine: één regel, berekend wanneer het geld beweegt
Hoe uitbetaling aan de verkoper, aandelen in de platformfee en terugbetaling aan de koper bij elke release, refund of split berekend en weggeschreven worden - vanuit één platformbrede regel.
Een escrowtransitie die geld verplaatst, moet dat atomisch doen. Als de uitbetaling aan de verkoper wél wegschrijft en de platformfee niet, heb je een inconsistentie die op een vrijdagnamiddag met de hand hersteld moet worden. De fees engine voorkomt dat door elk aandeel in één transactie te berekenen en één settlementrij per geldbeweging weg te schrijven vóór de escrow van status mag wisselen.
Eén regel voor het hele platform
Er is precies één feeconfiguratie, ingesteld door ReVend. Ze heeft een type — percentage, vast bedrag, of hybride (percentage plus vast bedrag) — en een verdeling: koper betaalt, verkoper betaalt, 50/50, of een eigen koper/verkoperverdeling. Tenants configureren geen fees, niet per categorie, niet per uitkomst, niet per volumeschijf. Wat een tenant wél krijgt, is /escrow/fees: een alleen-lezen weergave van de huidige regel, de aandelen van koper en verkoper, een uitgewerkt voorbeeld op een fictieve deal en de datum waarop de regel voor het laatst wijzigde. Een feescherm dat iedereen kan aanpassen, zou democratisch, energiek en financieel rampzalig zijn.
Wanneer de fee berekend wordt
Bij de release — niet bij het aanmaken van de escrow. De reden is de split: wanneer compliance een betwist bedrag verdeelt, moet de fee berekend worden op wat elke partij echt ontvangt, niet op het oorspronkelijke totaal. Vroeg rekenen zou later herrekenen betekenen, en geld herrekenen is hoe reconciliatievergaderingen geboren worden.
De splitberekening
Voor een gewone release: de fee is het bedrag maal het percentage, of het vaste bedrag, of allebei; eerst afgerond, dan begrensd zodat hij het escrowbedrag nooit kan overschrijden. De hele fee komt uit het bedrag dat de koper gestort heeft, en de uitbetaling aan de verkoper is wat overblijft. Het aandeel van de koper en dat van de verkoper zijn boekhoudkundige toewijzing, geen twee aparte aanrekeningen: samen vormen ze dezelfde totale fee, en ze bestaan zodat finance de opbrengst per kant kan boeken. De engine schrijft een rij seller_payout, een rij platform_fee_buyer en een rij platform_fee_seller.
Voor een refund: de koper krijgt het volledige bedrag terug en er wordt helemaal geen fee aangerekend. Eén rij buyer_refund. Dat is een bewuste keuze — een koper die gelijk had, hoort niet te betalen voor dat gelijk, en een fee op terugbetalingen zou net de disputes ontmoedigen die het indienen waard zijn. Dezelfde regel geldt wanneer een outbound geannuleerd wordt voor er iets verzonden was en de vastgehouden escrow automatisch wordt terugbetaald.
Voor een split: de fee wordt alleen berekend op het deel dat naar de verkoper vrijgegeven wordt, en het deel dat naar de koper terugvloeit draagt er niets van. De compliance officer ziet beide bedragen voordat hij de beslissing bevestigt.
Fail-closed
Eerst worden de settlementrijen geschreven, dan pas de statuswissel, allebei in dezelfde databasetransactie. Ontbreekt de feeconfiguratie, dan gooit de write een fout en rolt de hele transactie terug: de escrow blijft held (of in dispute), en de volgende poging probeert het opnieuw zodra de configuratie bestaat. Een geblokkeerde escrow is vervelend. Een gereleasede escrow zonder uitbetalingsrij is een incident.
Valuta
Bedragen dragen de valuta van de escrow. Wanneer een deal over valutagrenzen gaat, wordt de wisselkoers bij aanvaarding op de escrow zelf vastgezet — koers, tijdstip en bron — met de dagkoersen die om 07:00 ververst worden, zodat een dispute zes maanden later de exacte koers reconstrueert in plaats van die van vandaag. Op de settlementspagina worden uitbetalingen in gemengde valuta nooit tot één getal opgeteld; finance krijgt één batchknop per valuta.