# Banking en facturatie

Roleplay Core 0.9.0 breidt de immutable double-entry ledger uit met een
server-authoritative bank-NUI. `/bank` toont alleen data die de server voor het
actieve character heeft opgehaald.

## Functies

- contant geld storten en opnemen;
- overboeken naar een bestaand character;
- rekeninghistorie met saldo na iedere boeking;
- facturen en boetes bekijken en betalen;
- dagelijkse, wekelijkse en maandelijkse betalingen plannen of stoppen;
- societybetalingen met een opnieuw gecontroleerde `society.withdraw`-gradepermission;
- leningen met rente, termijnbedragen, idempotente aflossingen en default na drie gemiste termijnen;
- velocity- en bedragdetectie voor verdachte transfers.

Bedragen worden uitsluitend in gehele kleinste valuta-eenheden verwerkt.
Doelcharacters, rekeningbezit, invoice-eigendom, societyrechten, saldo,
idempotency keys en ingestelde limieten worden op de server gecontroleerd.

## Fraudedetectie

De runtime controleert transferbedrag, vijfminutenvolume en aantal transacties.
Een kritieke transfer wordt geblokkeerd; middelhoge en hoge signalen worden
append-only opgeslagen. Het fraudeevent wordt via dezelfde lokale outbox naar de
cloud geprojecteerd en verschijnt realtime in de economyweergave van het paneel.
Bevoegde beheerders handelen een alert af in een bevestigingsmodal met verplichte
reden; oplostijd, actor en reden blijven in de organisatie-audit bewaard.

Limieten zijn instelbaar via:

- `platform_bank_transfer_warning_minor`;
- `platform_bank_transfer_block_minor`;
- `platform_bank_velocity_warning_minor`;
- `platform_bank_velocity_count_warning`.

## Offline gedrag

Banking, schedules, invoices, loans en alerts gebruiken uitsluitend de lokale
InnoDB-database. Een cloudstoring blokkeert geen gameplay. Cloudprojecties zijn
afgeleide observabilitydata en kunnen idempotent worden hersteld uit de outbox.
Een periodieke betaling wordt na vijf opeenvolgende fouten automatisch
uitgeschakeld. Een lening gaat na drie gemiste termijnen naar `DEFAULTED`.
