Ezaz never holds player money
Each booking says how it is paid: PAY_AT_VENUE (the player pays at the venue's desk; their membership discount applies), PREPAID_BY_PARTNER (you took the money in your app, send what you collected, and settle the court price with the venue: it shows on the venue's partner statement), or PACKAGE (minutes from the player's package at that venue, given back if the booking is cancelled). A package pays only when you set customer.phoneVerified to true: your word that the player proved that phone to you, for example with a one-time code. Ezaz records it with the booking.