curl --request POST \
--url https://dev.intermezzo.ai/gb/organizations/{organization_id}/employees \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"valid_from": "2023-12-25",
"core": {
"title": "Mr",
"first_name": "Sarah",
"middle_name": "Anne",
"last_name": "van der Vaart",
"maiden_name": "<string>",
"birth_date": "2023-12-25",
"personal_email": "jsmith@example.com",
"work_email": "jsmith@example.com",
"phone_numbers": [
{
"phone_number": "<string>",
"is_primary": true
}
]
},
"external_ref": "<string>"
}
'import requests
url = "https://dev.intermezzo.ai/gb/organizations/{organization_id}/employees"
payload = {
"valid_from": "2023-12-25",
"core": {
"title": "Mr",
"first_name": "Sarah",
"middle_name": "Anne",
"last_name": "van der Vaart",
"maiden_name": "<string>",
"birth_date": "2023-12-25",
"personal_email": "jsmith@example.com",
"work_email": "jsmith@example.com",
"phone_numbers": [
{
"phone_number": "<string>",
"is_primary": True
}
]
},
"external_ref": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
valid_from: '2023-12-25',
core: {
title: 'Mr',
first_name: 'Sarah',
middle_name: 'Anne',
last_name: 'van der Vaart',
maiden_name: '<string>',
birth_date: '2023-12-25',
personal_email: 'jsmith@example.com',
work_email: 'jsmith@example.com',
phone_numbers: [{phone_number: '<string>', is_primary: true}]
},
external_ref: '<string>'
})
};
fetch('https://dev.intermezzo.ai/gb/organizations/{organization_id}/employees', 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://dev.intermezzo.ai/gb/organizations/{organization_id}/employees",
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([
'valid_from' => '2023-12-25',
'core' => [
'title' => 'Mr',
'first_name' => 'Sarah',
'middle_name' => 'Anne',
'last_name' => 'van der Vaart',
'maiden_name' => '<string>',
'birth_date' => '2023-12-25',
'personal_email' => 'jsmith@example.com',
'work_email' => 'jsmith@example.com',
'phone_numbers' => [
[
'phone_number' => '<string>',
'is_primary' => true
]
]
],
'external_ref' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://dev.intermezzo.ai/gb/organizations/{organization_id}/employees"
payload := strings.NewReader("{\n \"valid_from\": \"2023-12-25\",\n \"core\": {\n \"title\": \"Mr\",\n \"first_name\": \"Sarah\",\n \"middle_name\": \"Anne\",\n \"last_name\": \"van der Vaart\",\n \"maiden_name\": \"<string>\",\n \"birth_date\": \"2023-12-25\",\n \"personal_email\": \"jsmith@example.com\",\n \"work_email\": \"jsmith@example.com\",\n \"phone_numbers\": [\n {\n \"phone_number\": \"<string>\",\n \"is_primary\": true\n }\n ]\n },\n \"external_ref\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://dev.intermezzo.ai/gb/organizations/{organization_id}/employees")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"valid_from\": \"2023-12-25\",\n \"core\": {\n \"title\": \"Mr\",\n \"first_name\": \"Sarah\",\n \"middle_name\": \"Anne\",\n \"last_name\": \"van der Vaart\",\n \"maiden_name\": \"<string>\",\n \"birth_date\": \"2023-12-25\",\n \"personal_email\": \"jsmith@example.com\",\n \"work_email\": \"jsmith@example.com\",\n \"phone_numbers\": [\n {\n \"phone_number\": \"<string>\",\n \"is_primary\": true\n }\n ]\n },\n \"external_ref\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dev.intermezzo.ai/gb/organizations/{organization_id}/employees")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"valid_from\": \"2023-12-25\",\n \"core\": {\n \"title\": \"Mr\",\n \"first_name\": \"Sarah\",\n \"middle_name\": \"Anne\",\n \"last_name\": \"van der Vaart\",\n \"maiden_name\": \"<string>\",\n \"birth_date\": \"2023-12-25\",\n \"personal_email\": \"jsmith@example.com\",\n \"work_email\": \"jsmith@example.com\",\n \"phone_numbers\": [\n {\n \"phone_number\": \"<string>\",\n \"is_primary\": true\n }\n ]\n },\n \"external_ref\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"external_ref": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"deleted_at": "2023-11-07T05:31:56Z",
"organization_id": "<string>",
"status": {},
"core": {
"edition": 123,
"valid_from": "2023-12-25",
"valid_to": "2023-12-25",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"title": "<string>",
"first_name": "",
"middle_name": "<string>",
"last_name": "",
"maiden_name": "<string>",
"gender": "M",
"marital_status": "SINGLE",
"birth_date": "2023-12-25",
"personal_email": "jsmith@example.com",
"work_email": "jsmith@example.com",
"phone_numbers": [
{
"phone_number": "<string>",
"phone_type": "MOBILE",
"is_primary": false
}
]
},
"address": {
"edition": 123,
"valid_from": "2023-12-25",
"valid_to": "2023-12-25",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"address": "<string>"
},
"job": {
"edition": 123,
"valid_from": "2023-12-25",
"valid_to": "2023-12-25",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"start_date": "2023-12-25",
"contracted_weekly_hours": 40,
"department": "<string>",
"pay_group_id": "<string>",
"contracted_weekdays": [
"MONDAY"
],
"worker_type": "EMPLOYEE",
"director_since": "2023-12-25",
"pay_basis": "SALARIED",
"apprenticeship": {
"start_date": "2023-12-25",
"expected_end_date": "2023-12-25",
"level": 4
},
"p45_issued": false,
"irregular_payment_pattern": false,
"ordinarily_works_in_uk": true,
"uk_work_exclusion_reason": "NOT_APPLICABLE",
"proration_basis": {
"mode": "CALENDAR_DAY",
"business_days_per_year": "<string>"
},
"end_date": "2023-12-25"
},
"tax": {
"starter_details": {
"basis": "DECLARATION",
"declaration": "A"
},
"edition": 123,
"valid_from": "2023-12-25",
"valid_to": "2023-12-25",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"rti_id": "<string>",
"tax_code": "<string>",
"student_loan_type": "PLAN_1",
"postgraduate_loan": false,
"p45_gross_pay": "0.00",
"p45_tax_amount": "0.00"
},
"insurance": {
"edition": 123,
"valid_from": "2023-12-25",
"valid_to": "2023-12-25",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"national_insurance_number": "<string>",
"nic_category": "A",
"overseas_national_awaiting_nino": true
},
"compensation": {
"edition": 123,
"valid_from": "2023-12-25",
"valid_to": "2023-12-25",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"earnings": [
{
"wage_type_code": "<string>",
"amount": "<string>",
"external_ref": "<string>",
"earning_type": "AMOUNT",
"earning_frequency": "MONTH",
"is_lumpsum": false,
"sacrificed_amount": "<string>"
}
],
"benefits": [
{
"wage_type_code": "<string>",
"external_ref": "<string>",
"amount": "0.00",
"make_good_amount": "0.00",
"foregone_amount": "0.00",
"cash_alternative_amount": "0.00"
}
],
"deductions": [
{
"wage_type_code": "<string>",
"amount": "<string>",
"external_ref": "<string>",
"sacrificed_amount": "<string>"
}
],
"reimbursements": [
{
"wage_type_code": "<string>",
"amount": "<string>",
"external_ref": "<string>"
}
]
},
"bank": {
"edition": 123,
"valid_from": "2023-12-25",
"valid_to": "2023-12-25",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"accounts": [
{
"account_number": "<string>",
"sort_code": "<string>",
"financial_institution_name": "<string>",
"is_primary": false,
"is_active": true,
"allocation_percentage": "<string>"
}
]
}
}Create Employee
curl --request POST \
--url https://dev.intermezzo.ai/gb/organizations/{organization_id}/employees \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"valid_from": "2023-12-25",
"core": {
"title": "Mr",
"first_name": "Sarah",
"middle_name": "Anne",
"last_name": "van der Vaart",
"maiden_name": "<string>",
"birth_date": "2023-12-25",
"personal_email": "jsmith@example.com",
"work_email": "jsmith@example.com",
"phone_numbers": [
{
"phone_number": "<string>",
"is_primary": true
}
]
},
"external_ref": "<string>"
}
'import requests
url = "https://dev.intermezzo.ai/gb/organizations/{organization_id}/employees"
payload = {
"valid_from": "2023-12-25",
"core": {
"title": "Mr",
"first_name": "Sarah",
"middle_name": "Anne",
"last_name": "van der Vaart",
"maiden_name": "<string>",
"birth_date": "2023-12-25",
"personal_email": "jsmith@example.com",
"work_email": "jsmith@example.com",
"phone_numbers": [
{
"phone_number": "<string>",
"is_primary": True
}
]
},
"external_ref": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
valid_from: '2023-12-25',
core: {
title: 'Mr',
first_name: 'Sarah',
middle_name: 'Anne',
last_name: 'van der Vaart',
maiden_name: '<string>',
birth_date: '2023-12-25',
personal_email: 'jsmith@example.com',
work_email: 'jsmith@example.com',
phone_numbers: [{phone_number: '<string>', is_primary: true}]
},
external_ref: '<string>'
})
};
fetch('https://dev.intermezzo.ai/gb/organizations/{organization_id}/employees', 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://dev.intermezzo.ai/gb/organizations/{organization_id}/employees",
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([
'valid_from' => '2023-12-25',
'core' => [
'title' => 'Mr',
'first_name' => 'Sarah',
'middle_name' => 'Anne',
'last_name' => 'van der Vaart',
'maiden_name' => '<string>',
'birth_date' => '2023-12-25',
'personal_email' => 'jsmith@example.com',
'work_email' => 'jsmith@example.com',
'phone_numbers' => [
[
'phone_number' => '<string>',
'is_primary' => true
]
]
],
'external_ref' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://dev.intermezzo.ai/gb/organizations/{organization_id}/employees"
payload := strings.NewReader("{\n \"valid_from\": \"2023-12-25\",\n \"core\": {\n \"title\": \"Mr\",\n \"first_name\": \"Sarah\",\n \"middle_name\": \"Anne\",\n \"last_name\": \"van der Vaart\",\n \"maiden_name\": \"<string>\",\n \"birth_date\": \"2023-12-25\",\n \"personal_email\": \"jsmith@example.com\",\n \"work_email\": \"jsmith@example.com\",\n \"phone_numbers\": [\n {\n \"phone_number\": \"<string>\",\n \"is_primary\": true\n }\n ]\n },\n \"external_ref\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://dev.intermezzo.ai/gb/organizations/{organization_id}/employees")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"valid_from\": \"2023-12-25\",\n \"core\": {\n \"title\": \"Mr\",\n \"first_name\": \"Sarah\",\n \"middle_name\": \"Anne\",\n \"last_name\": \"van der Vaart\",\n \"maiden_name\": \"<string>\",\n \"birth_date\": \"2023-12-25\",\n \"personal_email\": \"jsmith@example.com\",\n \"work_email\": \"jsmith@example.com\",\n \"phone_numbers\": [\n {\n \"phone_number\": \"<string>\",\n \"is_primary\": true\n }\n ]\n },\n \"external_ref\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dev.intermezzo.ai/gb/organizations/{organization_id}/employees")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"valid_from\": \"2023-12-25\",\n \"core\": {\n \"title\": \"Mr\",\n \"first_name\": \"Sarah\",\n \"middle_name\": \"Anne\",\n \"last_name\": \"van der Vaart\",\n \"maiden_name\": \"<string>\",\n \"birth_date\": \"2023-12-25\",\n \"personal_email\": \"jsmith@example.com\",\n \"work_email\": \"jsmith@example.com\",\n \"phone_numbers\": [\n {\n \"phone_number\": \"<string>\",\n \"is_primary\": true\n }\n ]\n },\n \"external_ref\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"external_ref": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"deleted_at": "2023-11-07T05:31:56Z",
"organization_id": "<string>",
"status": {},
"core": {
"edition": 123,
"valid_from": "2023-12-25",
"valid_to": "2023-12-25",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"title": "<string>",
"first_name": "",
"middle_name": "<string>",
"last_name": "",
"maiden_name": "<string>",
"gender": "M",
"marital_status": "SINGLE",
"birth_date": "2023-12-25",
"personal_email": "jsmith@example.com",
"work_email": "jsmith@example.com",
"phone_numbers": [
{
"phone_number": "<string>",
"phone_type": "MOBILE",
"is_primary": false
}
]
},
"address": {
"edition": 123,
"valid_from": "2023-12-25",
"valid_to": "2023-12-25",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"address": "<string>"
},
"job": {
"edition": 123,
"valid_from": "2023-12-25",
"valid_to": "2023-12-25",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"start_date": "2023-12-25",
"contracted_weekly_hours": 40,
"department": "<string>",
"pay_group_id": "<string>",
"contracted_weekdays": [
"MONDAY"
],
"worker_type": "EMPLOYEE",
"director_since": "2023-12-25",
"pay_basis": "SALARIED",
"apprenticeship": {
"start_date": "2023-12-25",
"expected_end_date": "2023-12-25",
"level": 4
},
"p45_issued": false,
"irregular_payment_pattern": false,
"ordinarily_works_in_uk": true,
"uk_work_exclusion_reason": "NOT_APPLICABLE",
"proration_basis": {
"mode": "CALENDAR_DAY",
"business_days_per_year": "<string>"
},
"end_date": "2023-12-25"
},
"tax": {
"starter_details": {
"basis": "DECLARATION",
"declaration": "A"
},
"edition": 123,
"valid_from": "2023-12-25",
"valid_to": "2023-12-25",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"rti_id": "<string>",
"tax_code": "<string>",
"student_loan_type": "PLAN_1",
"postgraduate_loan": false,
"p45_gross_pay": "0.00",
"p45_tax_amount": "0.00"
},
"insurance": {
"edition": 123,
"valid_from": "2023-12-25",
"valid_to": "2023-12-25",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"national_insurance_number": "<string>",
"nic_category": "A",
"overseas_national_awaiting_nino": true
},
"compensation": {
"edition": 123,
"valid_from": "2023-12-25",
"valid_to": "2023-12-25",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"earnings": [
{
"wage_type_code": "<string>",
"amount": "<string>",
"external_ref": "<string>",
"earning_type": "AMOUNT",
"earning_frequency": "MONTH",
"is_lumpsum": false,
"sacrificed_amount": "<string>"
}
],
"benefits": [
{
"wage_type_code": "<string>",
"external_ref": "<string>",
"amount": "0.00",
"make_good_amount": "0.00",
"foregone_amount": "0.00",
"cash_alternative_amount": "0.00"
}
],
"deductions": [
{
"wage_type_code": "<string>",
"amount": "<string>",
"external_ref": "<string>",
"sacrificed_amount": "<string>"
}
],
"reimbursements": [
{
"wage_type_code": "<string>",
"amount": "<string>",
"external_ref": "<string>"
}
]
},
"bank": {
"edition": 123,
"valid_from": "2023-12-25",
"valid_to": "2023-12-25",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"accounts": [
{
"account_number": "<string>",
"sort_code": "<string>",
"financial_institution_name": "<string>",
"is_primary": false,
"is_active": true,
"allocation_percentage": "<string>"
}
]
}
}Authorizations
Get token from Auth0 and paste it here
Headers
The person acting through the access credential, recorded as created_by of what the request writes. Audit only: access is checked on the credential.
1 - 255Path Parameters
Body
Creating an employee: the hub, valid_from, core, and any other satellites.
Each satellite sent starts on [valid_from, 9999-12-31). One not sent is not
created: it reads as null until a PUT writes it, so an employee created without
job is in no pay group until then.
The first day every satellite's data is valid at
Identity of the person, as payroll and filing need it.
Each name field holds one name: a person with several middle names sends the one that
should appear on HMRC returns. If only initials are known, they go one per field
(first_name "J", middle_name "M"). An optional name the person does not have is
null.
Show child attributes
Show child attributes
The integrator's own stable key, unique within the organization. Generated when absent.
1 - 255The person's residence address, as filed to HMRC.
Show child attributes
Show child attributes
The terms of the employment as a client writes them.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Standing pay elements.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
Successful Response
The employee with every satellite as it reads on one date. A satellite never written, or with no slice on an explicit date, is null.
Who created the hub: the acting user (X-Acting-User, else the access credential), system for our own writes, or <authority>:<notice> for a write on an authority's behalf, e.g. hmrc:P6.
When the hub was closed
The read-only status satellite. It carries no fields; it exists so that every
employee read has a status object.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes