payments - better error handling