The XRP Ledger Protocol has several protocol-related things to check in your app/implementation to make the experience for end users better. Please take these things into account:
Partial Payments: if you are processing received payments: make sure to check the delivered_amount (meta) field for the transaction outcome, and not the Amount field. Amount is the instruction, Delivered Amount is the actual delivered amount, which may be lower.
Use WebSockets over HTTP RPC (JSON POST) if you want realtime status updates from the ledger using the subscribe method. You can subsribe to ledger closes, transaction stream and account activity: https://xrpl.org/subscribe.html