{
  "payment_type": "hotel_deposit",
  "ledger_entry_type": "hotel_deposit_apply",
  "authorization": "Confirm the reservation, authorized payer, and deposit terms before creating the booking's Payment.",
  "amounts": "Positive integer strings in USD cents, resolved server-side from approved records.",
  "identity": "Authenticate the payer and resolve the Ledger and business record server-side.",
  "idempotency": "Persist one stable key and exact payload per operation. Recover existing operations after timeouts.",
  "concurrency": "Serialize application approvals per record; the apply entry condition prevents a negative available balance.",
  "settlement": "Verify Payment status on the server. Never post native settlement entries manually.",
  "domain_rules": {
    "Booking modification": "Approve changes to dates, rooms, or guests before changing the booking's financial obligation.",
    "Incidentals": "Authorize additional charges separately; the original deposit does not approve every incidental.",
    "No-show policy": "Apply the hotel's approved policy before allocating any deposit to a no-show charge."
  }
}
