Python
from kombo import Kombo
with Kombo(
integration_id="workday:HWUTwvyx2wLoSUHphiWVrp28",
api_key="<YOUR_BEARER_TOKEN_HERE>",
) as k_client:
res = k_client.hris.create_employee_with_form(properties={
"firstName": "John",
"startDate": "2025-01-01T00:00:00Z",
"workLocation": {
"site": "8e422bf8cav",
"keyNumbers": {
"0": 142,
"1": 525,
"2": 63,
},
},
}, staffing_entity_id="26vafvWSRmbhNcxJYqjCzuJg")
# Handle response
print(res)import { Kombo } from "@kombo-api/sdk";
const kombo = new Kombo({
integration_id: "workday:HWUTwvyx2wLoSUHphiWVrp28",
api_key: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
const result = await kombo.hris.createEmployeeWithForm({
staffing_entity_id: "26vafvWSRmbhNcxJYqjCzuJg",
properties: {
"firstName": "John",
"startDate": "2025-01-01T00:00:00Z",
"workLocation": {
"site": "8e422bf8cav",
"keyNumbers": {
"0": 142,
"1": 525,
"2": 63,
},
},
},
});
console.log(result);
}
run();require 'kombo'
Models = ::Kombo::Models
s = ::Kombo::Kombo.new(
integration_id: 'workday:HWUTwvyx2wLoSUHphiWVrp28',
security: Models::Shared::Security.new(
api_key: '<YOUR_BEARER_TOKEN_HERE>'
)
)
res = s.hris.create_employee_with_form(body: Models::Shared::PostHrisEmployeesFormRequestBody.new(
staffing_entity_id: '26vafvWSRmbhNcxJYqjCzuJg',
properties: {
'firstName' => 'John',
'startDate' => '2025-01-01T00:00:00Z',
'workLocation' => {
'keyNumbers' => {
'0' => 142.0,
'1' => 525.0,
'2' => 63.0,
},
'site' => '8e422bf8cav',
},
}
))
unless res.post_hris_employees_form_positive_response.nil?
# handle response
endcurl --request POST \
--url https://api.kombo.dev/v1/hris/employees/form \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Integration-Id: <x-integration-id>' \
--data '
{
"staffing_entity_id": "26vafvWSRmbhNcxJYqjCzuJg",
"properties": {
"firstName": "John",
"startDate": "2025-01-01",
"workLocation": {
"site": "8e422bf8cav",
"keyNumbers": [
142,
525,
63
]
}
}
}
'const options = {
method: 'POST',
headers: {
'X-Integration-Id': '<x-integration-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
staffing_entity_id: '26vafvWSRmbhNcxJYqjCzuJg',
properties: {
firstName: 'John',
startDate: '2025-01-01',
workLocation: {site: '8e422bf8cav', keyNumbers: [142, 525, 63]}
}
})
};
fetch('https://api.kombo.dev/v1/hris/employees/form', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.kombo.dev/v1/hris/employees/form",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'staffing_entity_id' => '26vafvWSRmbhNcxJYqjCzuJg',
'properties' => [
'firstName' => 'John',
'startDate' => '2025-01-01',
'workLocation' => [
'site' => '8e422bf8cav',
'keyNumbers' => [
142,
525,
63
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-Integration-Id: <x-integration-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kombo.dev/v1/hris/employees/form"
payload := strings.NewReader("{\n \"staffing_entity_id\": \"26vafvWSRmbhNcxJYqjCzuJg\",\n \"properties\": {\n \"firstName\": \"John\",\n \"startDate\": \"2025-01-01\",\n \"workLocation\": {\n \"site\": \"8e422bf8cav\",\n \"keyNumbers\": [\n 142,\n 525,\n 63\n ]\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Integration-Id", "<x-integration-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kombo.dev/v1/hris/employees/form")
.header("X-Integration-Id", "<x-integration-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"staffing_entity_id\": \"26vafvWSRmbhNcxJYqjCzuJg\",\n \"properties\": {\n \"firstName\": \"John\",\n \"startDate\": \"2025-01-01\",\n \"workLocation\": {\n \"site\": \"8e422bf8cav\",\n \"keyNumbers\": [\n 142,\n 525,\n 63\n ]\n }\n }\n}")
.asString();{
"status": "success",
"data": {
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "12345",
"prehire": {
"remote_id": null
}
},
"warnings": [
{
"message": "This is an example warning!"
}
]
}Employees
Create employee with form
Create an employee, based on the form schema.
POST
/
hris
/
employees
/
form
Python
from kombo import Kombo
with Kombo(
integration_id="workday:HWUTwvyx2wLoSUHphiWVrp28",
api_key="<YOUR_BEARER_TOKEN_HERE>",
) as k_client:
res = k_client.hris.create_employee_with_form(properties={
"firstName": "John",
"startDate": "2025-01-01T00:00:00Z",
"workLocation": {
"site": "8e422bf8cav",
"keyNumbers": {
"0": 142,
"1": 525,
"2": 63,
},
},
}, staffing_entity_id="26vafvWSRmbhNcxJYqjCzuJg")
# Handle response
print(res)import { Kombo } from "@kombo-api/sdk";
const kombo = new Kombo({
integration_id: "workday:HWUTwvyx2wLoSUHphiWVrp28",
api_key: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
const result = await kombo.hris.createEmployeeWithForm({
staffing_entity_id: "26vafvWSRmbhNcxJYqjCzuJg",
properties: {
"firstName": "John",
"startDate": "2025-01-01T00:00:00Z",
"workLocation": {
"site": "8e422bf8cav",
"keyNumbers": {
"0": 142,
"1": 525,
"2": 63,
},
},
},
});
console.log(result);
}
run();require 'kombo'
Models = ::Kombo::Models
s = ::Kombo::Kombo.new(
integration_id: 'workday:HWUTwvyx2wLoSUHphiWVrp28',
security: Models::Shared::Security.new(
api_key: '<YOUR_BEARER_TOKEN_HERE>'
)
)
res = s.hris.create_employee_with_form(body: Models::Shared::PostHrisEmployeesFormRequestBody.new(
staffing_entity_id: '26vafvWSRmbhNcxJYqjCzuJg',
properties: {
'firstName' => 'John',
'startDate' => '2025-01-01T00:00:00Z',
'workLocation' => {
'keyNumbers' => {
'0' => 142.0,
'1' => 525.0,
'2' => 63.0,
},
'site' => '8e422bf8cav',
},
}
))
unless res.post_hris_employees_form_positive_response.nil?
# handle response
endcurl --request POST \
--url https://api.kombo.dev/v1/hris/employees/form \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Integration-Id: <x-integration-id>' \
--data '
{
"staffing_entity_id": "26vafvWSRmbhNcxJYqjCzuJg",
"properties": {
"firstName": "John",
"startDate": "2025-01-01",
"workLocation": {
"site": "8e422bf8cav",
"keyNumbers": [
142,
525,
63
]
}
}
}
'const options = {
method: 'POST',
headers: {
'X-Integration-Id': '<x-integration-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
staffing_entity_id: '26vafvWSRmbhNcxJYqjCzuJg',
properties: {
firstName: 'John',
startDate: '2025-01-01',
workLocation: {site: '8e422bf8cav', keyNumbers: [142, 525, 63]}
}
})
};
fetch('https://api.kombo.dev/v1/hris/employees/form', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.kombo.dev/v1/hris/employees/form",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'staffing_entity_id' => '26vafvWSRmbhNcxJYqjCzuJg',
'properties' => [
'firstName' => 'John',
'startDate' => '2025-01-01',
'workLocation' => [
'site' => '8e422bf8cav',
'keyNumbers' => [
142,
525,
63
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-Integration-Id: <x-integration-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kombo.dev/v1/hris/employees/form"
payload := strings.NewReader("{\n \"staffing_entity_id\": \"26vafvWSRmbhNcxJYqjCzuJg\",\n \"properties\": {\n \"firstName\": \"John\",\n \"startDate\": \"2025-01-01\",\n \"workLocation\": {\n \"site\": \"8e422bf8cav\",\n \"keyNumbers\": [\n 142,\n 525,\n 63\n ]\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Integration-Id", "<x-integration-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kombo.dev/v1/hris/employees/form")
.header("X-Integration-Id", "<x-integration-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"staffing_entity_id\": \"26vafvWSRmbhNcxJYqjCzuJg\",\n \"properties\": {\n \"firstName\": \"John\",\n \"startDate\": \"2025-01-01\",\n \"workLocation\": {\n \"site\": \"8e422bf8cav\",\n \"keyNumbers\": [\n 142,\n 525,\n 63\n ]\n }\n }\n}")
.asString();{
"status": "success",
"data": {
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "12345",
"prehire": {
"remote_id": null
}
},
"warnings": [
{
"message": "This is an example warning!"
}
]
}Supported integrations
Supported integrations
This feature is currently available for the following integrations:
Personio
Workday
SAP SuccessFactors
UKG Pro
UKG Pro WFM
UKG Ready
ADP Workforce Now
BambooHR
Kenjo
HiBob
Microsoft Entra ID
Microsoft Azure AD
Deel
Remote
Humaans
Oracle HCM
HR WORKS
Zoho People
Gusto
AlexisHR
Simployer
Dayforce
Lattice
TriNet PEO
Paylocity
Paycor
Paycom
Insperity
Paychex
Planday
Leapsome
SD Worx
Absence.io
a3innuva Nómina
Sympa
Visma Raet - Youforce
Kombo Sandbox
This endpoint requires the permission Create and manage employees to be enabled in your scope config.
Example Request Body
{
"staffing_entity_id": "26vafvWSRmbhNcxJYqjCzuJg",
"properties": {
"firstName": "John",
"startDate": "2025-01-01",
"workLocation": {
"site": "8e422bf8cav",
"keyNumbers": [
142,
525,
63
]
}
}
}
Authorizations
Headers
ID of the integration you want to interact with.
Body
application/json
POST /hris/employees/form Request body
Response
POST /hris/employees/form Positive response
Allowed value:
"success"Show child attributes
Show child attributes
Example:
{
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "12345",
"prehire": { "remote_id": null }
}These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console.
Show child attributes
Show child attributes
Was this page helpful?
⌘I