Create and onboard contractors

Creating a contractor engagement involves two sequential phases: you create and sign the contract, then the worker signs and completes KYC. This guide walks through both phases in order.

For an overview of IC contract types and the Embedded model, see IC embedded overview. For ongoing management of active contracts, see Manage contracts.

Prerequisites

  • Employer steps: Admin-scoped API token. See Getting started for authentication setup.
  • Worker steps: Worker token or magic link generation capability. See Getting started for how to generate each type.

Employer phase

1

Populate form data

Before rendering the contract creation form, fetch the lookup data needed for dropdowns and selectors.

MethodEndpointPurpose
GET/lookups/job-titlesJob titles for dropdown
GET/lookups/currenciesSupported currencies
2

Create the contract

Submit the contract creation request with the worker details, group assignment, and payment terms.

POST /contracts

The contract_type field determines the billing model: fixed, pay_as_you_go, milestones, or tasks. Required fields: worker details (first_name, last_name, email, country), client.team (group ID), job_title, start_date, currency, and payment terms appropriate to the contract type.

The response includes the contract id and initial status. Store the id; it is required for all subsequent operations.

3

Attach documents (optional)

Attach a Statement of Work, NDA, or other exhibit to the contract before signing.

POST /contracts/{contract_id}/documents

Send as multipart/form-data. Multiple documents can be attached to a single contract.

4

Set custom fields (optional)

Attach platform-specific metadata to the contract: internal project codes, cost centre IDs, or other identifiers.

MethodEndpointPurpose
GET/contracts/{contract_id}/custom_fieldsRetrieve defined custom fields
PUT/contracts/{contract_id}/custom_fieldsSet or update field values
5

Sign the contract

Sign the contract on behalf of the end customer. The contract advances to the worker signing stage.

POST /contracts/{contract_id}/signatures

Required fields: signature, signer_title.

6

Send the worker invitation

Dispatch the worker signing invitation.

POST /contracts/{contract_id}/invitations

This sends the worker a Deel-branded email with a hosted signing URL. To handle the signing experience in your own platform, use this step to trigger worker token generation instead.

Worker phase

Generate a worker token via POST /workers/session and call these endpoints directly, or use POST /magic-link to redirect the worker to Deel’s hosted experience.

1

Worker authenticates

Generate a worker-scoped token to enable direct API calls on the worker’s behalf.

2

Worker signs the contract

The worker signs the employment agreement using the worker token. The contract advances to active status.

POST /contracts/{contract_id}/signatures

3

Worker completes KYC

Start an identity verification session through Veriff and redirect the worker to the returned URL. Once the worker finishes, read the resulting kyc_status via the KYC details endpoint.

EndpointPurpose
POST /veriff/sessionCreate a Veriff session; returns the worker redirect URL
GET /screenings/kyc/detailsRetrieve the contractor’s current kyc_status

The kyc_status field returns one of APPROVED, REJECTED, EXPIRED, EXPIRING_SOON, PENDING_REVIEW, NOT_REQUESTED, or NOT_SUBMITTED. Subscribe to onboarding.status.updated to know when the step completes rather than polling.

Tax form completion (W-8, W-9, and equivalents) is not available via API. Workers must complete tax forms through the Deel-hosted UI. This applies to all Embedded integrations.

Webhook events

EventTrigger
contract.createdIC contract submitted successfully
contract.status.updatedContract status changed (e.g. pending_signature to active)
employee.created.contractorContractor HRIS profile created after signing
onboarding.status.updatedOnboarding step completed or status changed (covers KYC)

See the Webhooks guide for event payload structure and signature verification.

Next steps