Иностранный заказчик не хочет подписывать акт выполненных работ. Есть ли альтернатива?
В договоре пишите: Факт оплаты инвойса свидетельсвует, что заказчик принял работу (по этапу) в полном объеме и претензий не имеет. Данная формулировка принимается валютным контролем. Т.о. вы освобождаетесь от написания всяких актов и их заверения со стороны заказчика.
Далее, если хотите, пропишите такое: гарантии на разработанное ПО составляют 2 недели. В течении этого периода разработчик обязуется исправить недочеты представленные заказчиком за свой счет.
Можно ещё попытаться попросить указывать в назначении платежа (payment details) все подробности. Типа:
"$ for software development services from  to , X hours at $Y/hour, NET30"
И настаивать что уведомление о поступлении валюты это и есть первичный документ. Там указан плательщик и его адрес подтвержденный банком. Этот документ в куче баз по пути откладывается, налоговая его видит. Eго существование потом ни в каком суде не оспоришь и не будешь доказывать что это кредитование или что ещё а не оплата за работу.
Надо ещё следить чтобы не делать ничего такого что может принести доказываемые в суде убытки чтобы не понести ответственность своим имуществом (впрочем это очень маловероятно).
Суммы ещё должны проходить рыночные тесты. Т.е. эти выплаты дожны быть соразмерны тому что наёмный работник получает в той же сфере.
По-моему, для сумм меньше бездокументарного лимита ($1000 до марта и 200т.р. после) должно пойти. Но попробовать пока не пришлось. :)
Платить с формулировкой "за услуги" по моему опыту никто не отказывается. А акт сдачи-приемки это действительно незнакомый для западных бухгалтерий документ. Как я понимаю, в Upwork его сделали для своих собственных работников из России, а потом оно сарафанным радио распространилось.