First of all, it’s important to know the difference between outsourcing and outstaffing. In case of outsourcing, your development partner will work on a project. They’re project responsible and you have rarely access to the development team itself. The developers can work on multiple projects at the same time (depending on the agreements made).
Outstaffing is a form of remote collaboration with a hired developer/development team. They perform all tasks for your company, but are officially employed by another company (the development partner). The latter acts as an employer and is therefore responsible for wages, bonuses, equipment awarded to an employee. While you as a customer provide the developer with tasks and assignments.