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