The existence of a money event (even an empty one) in the current state enables the "Pay" entry in the PieMenu when right-clicking the object and allows users to pay the object's owner. Note that this gives you control of when the "Pay" entry is shown, by switching between states with and without a money event handler.

The amount is chosen via an input field by the giver, or by the amounts specified in the "Fast Pay" buttons (to customize the values of these, use llSetPayPrice).

Under some circumstances, a linked object may display the "Pay" option in the pie menu for other prims, even when the script containing the money event has moved to a different state. This is an old bug, but it's not clear on how to predict when this will happen. To avoid this sort of problem, use a single state in the payment script and simply refund the money when the object would otherwise have switched into another state. (See this thread for more.)

Money cannot be paid to an attachment; while there is a "Pay" option on the pie menu, paying money to an attachment will not cause the money() event to be triggered.

Q:Someone said they paid my object, but they didn't get anything. I see the transaction in my account's transaction history, though. What gives?A:Under high database or sim load, there appears to be a bug where the money event is not triggered. The Lindens are aware of the problem, but there's not yet any word on a fix. In the meantime, it can help to add a list to your script containing a log of users (using llKey2Name) to pay your object money (from the script's perspective, at least, meaning the money event was triggered) and the time at which they paid. Then, if you receive a complaint, you can easily check against your log to see if the customer is telling the truth.

Q:Is there a way to find out when money is paid into a user's account?A:No, the money() event can only be triggered when money is paid directly to the object containing the money() event. There is no way for an LSL script to check a user's money, nor be triggered when it changes.In theory, one could run a script on an external server that parsed the contents of the SL Account page on the SL website, then coordinated payment data with scripts in SL. This would naturally depend on several factors, such as the rate at which the SL Account page is actually updated, the amount of transactions from different sources you're likely to have, and of course, how much the Lindens do or do not want your bot to hammer their server.