After the server confirms payment. A browser success message is not enough.
From the current matrix plan version in the database. Editing a plan publishes a new version and leaves older transactions unchanged.
Each commission and wallet credit has a unique event key. Repeating the same payment event does not create a second credit.
A request reserves the amount on the ledger. It is paid only after an administrator approves it. Rejecting the request releases the reserve.
Only if the compensation route says so. The default keeps both engines and applies each one to its own product.