Handle bad amount input: rethrow as 400