naive.forUser(id).
quote returns accepts[].amount in ATOMIC units (USDC has 6 decimals, so 500000 = 0.50 USDC); everything else here is decimal. receipts returns a bare array and accepts { direction, origin, since, limit }.
There is no approval flow — a payment is bounded by the wallet balance and its perTxMax (enforced in the custody plane at signing time). See wallet.
Gated by the payments primitive in the user’s AccountKit (opt-in — off by default).