data will contain a CSV of destination id and amount transferred on success and an error tag on failure.
I would interpret this to mean that on success there would just be 2 items in the cvs list and on failure there would be a third, currently on failure you just get the error tag. I think that both the destination id and a amount transfered should also be included on failure. This will allow the script to more easily retry a failed payment.
example:
transaction_result(key transaction_id, integer success, string data) { list data = llParseString2List(data,[","],[]); string error = llList2String(data,2); if(error != "") llTransferLindenDollars(llList2Key(data,0),llList2Integer(data,1)); }