New Custom Fields endpoints for Deel HR

Added

List all custom fields

Fetch all custom fields associated with People records, offering additional personalized information.

Endpoint: GET /rest/v2/contracts/contract_id/adjustments

Sample Request

curl --request GET \
     --url https://api.letsdeel.com/rest/v2/people/custom_fields \
     --header 'authorization: Token'

Retrieve a single custom field

Access details of a specific custom field by using the custom field ID to enrich individual personnel records.

Endpoint: GET /rest/v2/people/custom_fields/{field_id}

curl --request GET \
     --url https://api.letsdeel.com/rest/v2/people/custom_fields/field_id \
     --header 'accept: application/json' \
     --header 'authorization: Bearer Token'

Retrieve custom fields for a worker

Obtain all custom field values associated with a specific worker, facilitating detailed data retrieval for administrative or operational purposes.

Endpoint: GET /rest/v2/people/{worker_id}/custom_fields

curl --request GET \
     --url https://api.letsdeel.com/rest/v2/people/worker_id/custom_fields \
     --header 'accept: application/json' \
     --header 'authorization: Bearer Token'

Update custom field value

Add or update custom field values for a specific worker, ensuring their profile is up-to-date with the latest information.

Endpoint: PUT /rest/v2/people/{worker_id}/custom_fields

curl --request PUT \
     --url https://api.letsdeel.com/rest/v2/people/worker_id/custom_fields \
     --header 'accept: application/json' \
     --header 'authorization: Bearer Token' \
     --header 'content-type: application/json' \
     --data '
{
  "data": {
    "value": "Test"
  },
  "id": "4e5c8303-6368-4eff-9a50-df21018450e7"
}
'

Remove a custom field value

Delete a specific custom field value from a worker's profile, removing outdated or unnecessary information.

Endpoint: DELETE /rest/v2/people/{worker_id}/custom_fields/{field_id}

curl --request DELETE \
     --url https://api.letsdeel.com/rest/v2/people/5d4d076e-283e-461f-b492-94d043c1d21a/custom_fields/ba5af1fa-e0c1-474f-8e13-af5d08a8c32c \
     --header 'accept: application/json' \
     --header 'authorization: Bearer Token'

List all custom fields

Fetch all custom fields associated with contracts, providing additional data necessary for contract management.

Endpoint: GET /rest/v2/contracts/custom_fields

curl --request GET \
     --url https://api.letsdeel.com/rest/v2/contracts/custom_fields \
     --header 'accept: application/json' \
     --header 'authorization: Bearer Token'

Retrieve a specific custom

Access details of a specific custom field associated with a contract to manage contract-specific attributes effectively.

Endpoint: GET /rest/v2/contracts/custom_fields/{field_id}

curl --request GET \
     --url https://api.letsdeel.com/rest/v2/contracts/custom_fields/field_id \
     --header 'accept: application/json' \
     --header 'authorization: Bearer Token'

Retrieve custom fields for a contract

Obtain all custom field values for a specific contract, enhancing contract management with detailed, custom-configured data.

Endpoint: GET /rest/v2/contracts/{contract_id}/custom_fields

curl --request GET \
     --url https://api.letsdeel.com/rest/v2/contracts/ej3yko/custom_fields \
     --header 'accept: application/json' \
     --header 'authorization: Bearer Token'

Update custom field value

Add or update custom field values for a specific contract, ensuring all contract details are current and relevant.

Endpoint: PUT /rest/v2/contracts/{contract_id}/custom_fields

curl --request PUT \
     --url https://api.letsdeel.com/rest/v2/contracts/fke32a/custom_fields \
     --header 'accept: application/json' \
     --header 'authorization: Bearer Token' \
     --header 'content-type: application/json' \
     --data '
{
  "data": {
    "value": "Test"
  },
  "id": "3634384c-dcbd-4d22-a53c-82b6b35b9221"
}
'

Remove a custom field value

Delete a specific custom field’s value from a contract, streamlining contract data management by removing redundant or outdated information.

Endpoint: DELETE /rest/v2/contracts/{contract_id}/custom_fields/{field_id}

curl --request DELETE \
     --url https://api.letsdeel.com/rest/v2/contracts/rk43an/custom_fields/581b0c3e-02d4-4d81-afe7-5bdce64632b1 \
     --header 'accept: application/json' \
     --header 'authorization: Bearer Token'

We add support for EOR Adjustments

Added

Retrieve adjustments

Get all adjustments (GP + EOR) for your organization.

Endpoint: POST /rest/v2/contracts/contract_id/adjustments

Sample request

curl --request GET \
     --url https://api.letsdeel.com/rest/v2/contracts/contract_id/adjustments \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token'

New employee_number field in GP endpoints

Added

Employee Number

Our customers can specify the employee_number when they create a new GP contract.

Endpoint: POST rest/v1/contracts/gp

Sample request

curl --request POST \
     --url https://api.letsdeel.com/rest/v1/contracts/gp \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "data": {
    "employee": {
      "first_name": "Jane",
      "last_name": "Doe",
      "email": "[email protected]",
      "work_email": "[email protected]",
      "nationality": "US",
      "employee_number": "100",
      "address": {
        "street": "Deel Street 500",
        "city": "Denver",
        "state": "CO",
        "zip": "44000",
        "country": "US"
      }
    },
    ...
}
'

Our customers can update the employee_number.

Endpoint: PATCH rest/v1/gp/workers/{worker_id}/employee-information

Sample request

curl --request PATCH \
     --url https://api.letsdeel.com/rest/v1/gp/workers/worker_id/employee-information \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "data": {
    "employee_number": "100"
  }
}
'

New GP endpoints

Added

List payroll events by legal entity

Get list of global payroll events by legal entities.

Endpoint: GET rest/v1/gp/legal-entities/{legal_entity_id}/reports

Sample request

curl --request GET \
     --url https://api.letsdeel.com/rest/v1/gp/legal-entities/legal_entity_id/reports \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token'

List gross-to-net report

Get list of global payroll reports detailing gross-to-net calculations.

Endpoint: GET rest/v1/gp/reports/{gp_report_id}/gross_to_net

Sample request

curl --request GET \
     --url https://api.letsdeel.com/rest/v1/gp/reports/gp_report_id/gross_to_net \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token'

Download gross-to-net report

Download global payroll reports detailing gross-to-net calculations.

Endpoint: GET rest/v1/gp/reports/{gp_report_id}/gross_to_net/csv

Sample request

curl --request GET \
     --url https://api.letsdeel.com/rest/v1/gp/reports/gp_report_id/gross_to_net/csv \
     --header 'accept: text/csv' \
     --header 'authorization: Bearer token'

Request termination

Request a termination for a global payroll employee. A successful call starts the termination process and does not confirm termination.

Endpoint: POST rest/v1/gp/workers/{worker_id}/terminations

Sample request

curl --request POST \
     --url https://api.letsdeel.com/rest/v1/gp/workers/worker_id/terminations \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token' \
     --header 'content-type: application/json' \
     --data '
{
  "data": {
    "desired_end_date": "2023-12-31T00:00:00.000Z",
    "last_date_of_work": "2023-12-31T00:00:00.000Z",
    "message": "Termination reason",
    "is_voluntary": true,
    "severance": {
      "amount": 100,
      "type": "TIME",
      "time_unit": "MONTHS",
      "currency": "GBP"
    }
  }
}
'

New Adjustments endpoints

Added

Retrieve adjustments

Get all adjustments for your organization.

Endpoint: POST rest/v1/adjustments

Sample request

curl --request GET \
     --url https://api.letsdeel.com/rest/v1/adjustments \
     --header 'accept: application/json' \
     --header 'authorization: Bearer toke'

Create new adjustment

Create a new adjustment.

Endpoint: POST rest/v1/adjustments

Sample request

curl --request POST \
     --url https://api.letsdeel.com/rest/v1/adjustments \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token' \
     --header 'content-type: application/json' \
     --data '
{
  "data": {
    "contract_id": "m3jk2j",
    "amount": 100.25,
    "date_of_adjustment": "1999-12-31",
    "title": "Your title here",
    "description": "Your description here",
    "cycle_reference": "my_cycle_reference",
    "adjustment_category_id": "c9cf4c2c0165f48f494415390c3b49",
    "move_next_cycle": true
  }
}
'

Retrieve an adjustment

Retrieve an adjustment.

Endpoint: GET rest/v1/adjustments/{adjustment_id}

Sample request

curl --request GET \
     --url https://api.letsdeel.com/rest/v1/adjustments/adjustment_id \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token'

Update an adjustment

Update an adjustment.

Endpoint: PATCH rest/v1/adjustments/{adjustment_id}

Sample request

curl --request PATCH \
     --url https://api.letsdeel.com/rest/v1/adjustments/adjustment_id \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token' \
     --header 'content-type: application/json' \
     --data '
{
  "data": {
    "amount": 100.25,
    "title": "Your title here",
    "description": "Your description here",
    "cycle_reference": "my_cycle_reference"
  }
}
'

Delete an adjustment

Delete an adjustment.

Endpoint: DELETE rest/v1/adjustments/{adjustment_id}

Sample request

curl --request DELETE \
     --url https://api.letsdeel.com/rest/v1/adjustments/adjustment_id \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token'

Retrieve categories

Get all categories for your organization.

Endpoint: GET rest/v1/adjustments/categories

Sample request

curl --request GET \
     --url https://api.letsdeel.com/rest/v1/adjustments/categories \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token'

New Global Payroll endpoints

Added

Add bank account

Add a new bank account for an employee.

Endpoint: POST rest/v1/gp/workers/{worker_id}/banks

Sample request

curl --request POST \
     --url https://api.letsdeel.com/rest/v1/gp/workers/worker_id/banks \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token' \
     --header 'content-type: application/json' \
     --data '
{
  "data": {
    "full_name": "John Doe",
    "phone": "+1234567890",
    "address_line1": "1234 Main St",
    "address_line2": "Apartment 101",
    "city": "Springfield",
    "province_state": "Ontario",
    "postal": "12345",
    "bank_name": "Bank of Examples",
    "country_code": "US",
    "bank_country_code": "US",
    "swift_bic": "EXAMPLEBIC",
    "account_number": "123456789012",
    "bank_code": "123",
    "original_name": "Johnathan Doe",
    "tax_id": "123-45-6789",
    "branch_code": "001",
    "currency_code": "USD",
    "bank_branch_name": "Main Street Branch",
    "iban": "GB29NWBK60161331926819",
    "email": "[email protected]",
    "rib_number": "12345678901",
    "account_type": "12345678901",
    "ach_routing_number": "12345678901"
  }
}
'

Retrieve bank accounts

Retrieve all bank accounts for an employee.

Endpoint: GET rest/v1/gp/workers/{worker_id}/banks

Sample request

curl --request GET \
     --url https://api.letsdeel.com/rest/v1/gp/workers/worker_id/banks \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token'

Modify bank account

Modify bank account for an employee.

Endpoint: PATCH rest/v1/gp/workers/{worker_id}/banks/{bank_id}

Sample request

curl --request PATCH \
     --url https://api.letsdeel.com/rest/v1/gp/workers/worker_id/banks/bank_id \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token' \
     --header 'content-type: application/json' \
     --data '
{
  "data": {
    "full_name": "John Doe",
    "phone": "+1234567890",
    "address_line1": "1234 Main St",
    "address_line2": "Apartment 101",
    "city": "Springfield",
    "province_state": "Ontario",
    "postal": "12345",
    "bank_name": "Bank of Examples",
    "country_code": "US",
    "bank_country_code": "US",
    "swift_bic": "EXAMPLEBIC",
    "account_number": "123456789012",
    "bank_code": "123",
    "original_name": "Johnathan Doe",
    "tax_id": "123-45-6789",
    "branch_code": "001",
    "currency_code": "USD",
    "bank_branch_name": "Main Street Branch",
    "iban": "GB29NWBK60161331926819",
    "email": "[email protected]",
    "rib_number": "12345678901",
    "account_type": "12345678901",
    "ach_routing_number": "12345678901"
  }
}
'

Retrieve bank guide

Retrieve the bank form guide for employee.

Endpoint: GET rest/v1/gp/workers/{worker_id}/banks/{bank_id}

Sample request

curl --request GET \
     --url https://api.letsdeel.com/rest/v1/gp/workers/worker_id/banks/guide \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token'

Remove

Webhook Events

We have removed the contract.archived webhoook.

New EOR endpoints

Added

Employee Cost Calculator

Determine EOR employee costs across the globe.

Endpoint: POST /rest/v1/eor/employment_cost

Sample request

curl --request POST \
     --url https://api.letsdeel.com/rest/v1/eor/employment_cost \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token' \
     --header 'content-type: application/json' \
     --data '
{
  "data": {
    "salary": 50000,
    "country": "Germany",
    "currency": "EUR"
  }
}
'

New fields in Tasks endpoints

Added

POST /contracts/{contract_id}/tasks

We added id and status properties in the response of POST /contracts/{contract_id}/tasks endpoint.

Sample response

{
  "data": {
    "created": true,
    "id": "0d636d0d-a869-4e29-8f64-889869a444d9",
    "status": "approved"
  }
}

New Accounting V2 endpoints

Added

Retrieve invoices

Retrieve a list of paid invoices for your workforce.

Endpoint: GET /rest/v2/invoices

Sample request

curl --request GET \
     --url https://api.letsdeel.com/rest/v2/invoices \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token'

Retrieve Deel invoices

Retrieve a list of invoices related to Deel fees.
Endpoint: GET /rest/v2/invoices/deel

Sample request

curl --request GET \
     --url https://api.letsdeel.com/rest/v2/invoices/deel \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token'

Download invoice

Get link to download the invoice PDF.

Endpoint: GET /rest/v2/invoices/{invoice_id}/download

Sample request

curl --request GET \
     --url https://api.letsdeel.com/rest/v2/invoices/invoice_id/download \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token'

New People endpoints

Added

Retrieve Departments

Retrieve the list of departments in your organization.

Endpoint: GET /rest/v1/departments

Sample request

curl --request GET \
     --url https://api.letsdeel.com/rest/v1/departments \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token'

Update Department

Update department for a specific worker using the worker's ID.
Endpoint: PUT /rest/v1/people/worker_id/department

Sample request

curl --request PUT \
     --url https://api.letsdeel.com/rest/v1/people/worker_id/department \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token' \
     --header 'content-type: application/json' \
     --data '
{
  "data": {
    "department_id": "123e4567-e89b-12d3-a456-426614174000"
  }
}
'

Retrieve Working Locations

Retrieve the list of working locations in your organization.

Endpoint: GET /rest/v1/working-locations

Sample request

curl --request GET \
     --url https://api.letsdeel.com/rest/v1/working-locations \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token'

Update Working Location

Update working location for a specific worker using the worker's ID.
Endpoint: PUT /rest/v1/people/worker_id/working-location

Sample request

curl --request PUT \
     --url https://api.letsdeel.com/rest/v1/people/worker_id/working-location \
     --header 'accept: application/json' \
     --header 'authorization: Bearer token' \
     --header 'content-type: application/json' \
     --data '
{
  "data": {
    "working_location_id": "123e4567-e89b-12d3-a456-426614174000"
  }
}
'