encoded in no-spaces json.
Paying to a txout is more featureful.
or simply list receiving address
Fastest: client signs TX, hands to server (no bitcoin network involved). Server can selectively run various checks, including submitting to the bitcoin network and waiting, or trusting valid signature and recent balance.
Post of signed TX is optional. If donation/suggested, one option is to submit the payment and do nothing.