https://github.com/indra-labs/indra has a heap of code around accounting and the layered encryption required
the sender provides the keys as the payment preimage over lightning
ah yes, it does require you to run somewhat unconventionally configured lightning nodes that can receive keysend/AMP payments, this isolates the payment from the user's location via TLV onions of LN