Managing task-based contractors
Organizations with workforces consisting of independent contractors who perform task-based work can face significant operational challenges when it comes to hiring, tracking, paying, and offboarding contractors. This is common in organizations that hire translators, designers, or other professionals engaged in project-based work.
This article illustrates how organizations with such characteristics can build applications that leverage the Deel API to automate the contractor working relationship throughout their lifecycle, including hiring, task tracking, payments, offboarding, and reporting.
In this guide
- Part 1: Hiring contractors
- Part 2: Tracking work
- Part 3: Handling payments
- Part 4: Accounting and reporting
- Part 5: Offboarding contractors
Part 1: Hiring contractors
To begin, you need to hire contractors by creating and signing contracts.

Step 1: Creating the contract
When a contractor joins your platform, you can automatically initiate the contract creation process using the Deel API.
This can be done using the Create a new contract (POST) endpoint to create a task-based pay as you go contract.
For more information, visit Create a contract.
Step 2: Signing the contract
After the contract is created, the next step is to sign the contract. The signature is usually done first by the manager, then the contractor.
Manager signature
You can build your system to sign the contract as the employer:
- (Optional) Show a preview of the contract using Preview a contract agreement (GET) endpoint.
- Sign the contract using Sign a contract (POST) endpoint.
- Send the contract to the contractor using Send contract to worker (POST) endpoint.
Contractor signature
Once the contractor receives the invite to sign the contract, they can do so through Deel's UI. They will be prompted to sign up and then sign the contract.
For more information, visit Contractor account overview.

Keeping the signature status in sync
Once the contractor signs the contract, you can build your system to keep the signature status in sync.
This can be done using the signature
object returned for each contract through the List of contracts (GET) or the Retrieve a single contract (GET) endpoints.
"signatures": {
"client_signature": "string",
"client_signed_at": "2022-05-24T09:38:46.235Z",
"worker_signature": "string",
"worker_signed_at": "2022-05-24T09:38:46.235Z",
"signed_at": "2022-05-24T09:38:46.235Z"
},
Part 2: Tracking work
Once the contract becomes effective, both parties can start tracking work. Tracking work is done through tasks.
Tasks can either be submitted by the manager or by the contractor.

Step 3: Submitting tasks
You can build your system so that, once contractors complete their work, they can submit tasks using the Create new task (POST) endpoint.
Tasks that are submitted by the contractor must be approved by the manager.
Tasks that are submitted by the manager are automatically approved.
The status of a task is defined using the status
parameter in the task object.
Step 4: Reviewing tasks
If tasks were submitted by the contractor, they must be approved by the manager to be paid out.
Depending on your workflow:
- Managers can review and approve submitted tasks through your system. The approval can be done either in bulk or for single tasks using the dedicated endpoints.
- Alternatively, tasks can be automatically marked as approved upon submission if your business logic allows it.
Part 3: Handling payments
Once tasks are approved, contractors can be paid for their work.

Step 5: Paying workers
Managers must initiate payments through Deel's UI using one of the available payment methods.
Deel also offers bulk-payment options to pay multiple contractors at once and supports several payment methods.
Contractors can be paid at the end of the payroll cycle or with a one-time payment.
Part 4: Accounting and reporting
After processing payments, you can use Deel's APIs also for accounting and reporting purposes, so that your system is in sync regarding payments and invoices.

Step 6: Retrieving invoiced tasks
For example, if you're looking to understand which tasks have been invoiced,
you can use the Detailed payments report (GET) endpoint, where each task is listed as a line item and linked to an invoice.
Other invoicing endpoints
There are additional endpoints that you can use to track invoices and payments between your organization and Deel.
- Retrieve invoices (GET) to get data about the invoices related to your workforce
- Retrieve Deel invoices (GET) to get data about the invoices related to Deel fees
- Download invoice PDF (GET) to download an invoice in PDF
- Download payment receipts (GET) to retrieve the payment receipts
- Retrieve a payment breakdown (GET) to get the details of a specific payment
For more information, visit Accounting API.
Part 5: Offboarding contractors
When a contractor's services are no longer required, you can trigger the contract termination directly from your system.

Step 7: Terminating the contract
To terminate a contract, you can use the Terminate contract (POST) endpoint.
The data structure allows to terminate a contract immediately or schedule it for a future date.
Updated 3 months ago