## ADDED Requirements ### Requirement: Withdrawal review and commission configuration The platform console SHALL list withdrawal applications and approve or reject each pending application through the shared API contract, surfacing review outcomes and conflicts (409 on a repeated review) without silent failure. It SHALL expose the platform commission rate as an integer basis-point setting that admins can read and update. #### Scenario: reject returns funds - **WHEN** an admin rejects a pending withdrawal application - **THEN** the console shows the rejected status and the buyer's wallet reflects the amount back in available balance #### Scenario: approve deducts frozen funds - **WHEN** an admin approves a pending withdrawal application - **THEN** the console shows the approved status and the frozen balance decreases by the requested amount #### Scenario: set commission rate - **WHEN** an admin updates the commission rate - **THEN** settlement statements generated afterwards snapshot the new rate ### Requirement: Settlement statement confirmation The platform console SHALL list settlement statements across shops with their amount snapshots and statuses, allow manual generation for a shop and closed period, and confirm payout exactly once per statement through the shared API contract, surfacing a 409 on repeated confirmation. #### Scenario: confirm payout - **WHEN** an admin confirms a pending statement - **THEN** the console shows the statement confirmed and the shop owner's ledger records the payout #### Scenario: manual generation is idempotent - **WHEN** an admin generates a statement for a shop and period that already has one - **THEN** the existing statement is shown and no duplicate is created