Integrations / Deel
Deel
Global hiring and payroll: contracts, people and invoices.
7 actions
API key
7 read0 write
Calls api.letsdeel.com
Connect
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "deel" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();Permissions requested
This toolkit uses a single credential and requests no scopes.
Actions
Get contractreaddeel.get_contractGet one contract by id with status, dates, worker and job title.
| Input | Type | Description | |
|---|---|---|---|
contract_id | string | Required | Contract id |
await setu.execute({
userId: "user_1",
action: "deel.get_contract",
input: {
"contract_id": "<contract_id>"
},
});Get invoicereaddeel.get_invoiceGet one invoice by id with total, currency, status, dates and line items.
| Input | Type | Description | |
|---|---|---|---|
invoice_id | string | Required | Invoice id |
await setu.execute({
userId: "user_1",
action: "deel.get_invoice",
input: {
"invoice_id": "<invoice_id>"
},
});Get organizationreaddeel.get_organizationGet the Deel organization the token belongs to (id and name).
No input.
await setu.execute({
userId: "user_1",
action: "deel.get_organization",
input: {},
});Get personreaddeel.get_personGet one person's profile: name, job title, hiring status, start date and manager.
| Input | Type | Description | |
|---|---|---|---|
person_id | string | Required | Person (HRIS profile) id |
await setu.execute({
userId: "user_1",
action: "deel.get_person",
input: {
"person_id": "<person_id>"
},
});List contractsreaddeel.list_contractsList contracts (contractors, EOR, employees) with title, type, status and worker. Filter by status, type or a name search.
| Input | Type | Description | |
|---|---|---|---|
status | string | Optional | One status, e.g. in_progress, waiting_for_client_sign, completed |
type | string | Optional | One contract type, e.g. ongoing_time_based, eor, global_payroll |
search | string | Optional | Match on contract or worker name |
limit | integer | Optional | Page size (default 50) |
after_cursor | string | Optional | Cursor from page.cursor |
await setu.execute({
userId: "user_1",
action: "deel.list_contracts",
input: {},
});List invoicesreaddeel.list_invoicesList Deel invoices with label, total, currency and status. Only paid ones by default; pass status all for every status.
| Input | Type | Description | |
|---|---|---|---|
status | string | Optional | Pass all to include unpaid invoices |
issued_from_date | string | Optional | Issued on or after (YYYY-MM-DD) |
issued_to_date | string | Optional | Issued before (YYYY-MM-DD) |
limit | integer | Optional | Page size (default 25) |
offset | integer | Optional | Offset |
await setu.execute({
userId: "user_1",
action: "deel.list_invoices",
input: {},
});List peoplereaddeel.list_peopleList people in the organization with name, job title, country and hiring status. Supports name search and hiring status filter.
| Input | Type | Description | |
|---|---|---|---|
search | string | Optional | Name search |
hiring_status | string | Optional | One status, e.g. active, onboarding, onboarded |
limit | integer | Optional | Page size |
offset | integer | Optional | Offset |
await setu.execute({
userId: "user_1",
action: "deel.list_people",
input: {},
});