I'm in favor of using the surrogate key (autonumber) as the primary key, and the combination of either company and invoice or the combination of user and invoice for the unique constraint.
I try to always have a PK that is used solely by and for my system. The database, app server, web server, etc. use my PK. The user never even sees the PK if I can help it, and they are NEVER allowed to change it.
-PatP