Postgres developers disagree and recommend numeric. It was once deprecated and then un-deprecated.
http://www.postgresql.org/message-id/b42b73150805270629h309f...
http://www.postgresql.org/message-id/b42b73150805270629h309f...
I use it a lot, and yes, it is missing some casts but you can cast to decimal and go from there:
select '42.00'::money::decimal;
I've also used stripe, and maybe it's a javascript thing, but they represent all their money in cents. Personally, I'd rather use the money type, it is easy for me to reason about.