Create Salary
curl --request POST \
--url https://api-{region}.sesametime.com/contract/v1/salaries \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"employeeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"currency": "EUR",
"grossSalary": 123,
"payments": 123,
"contributionGroupId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"startDate": "2023-12-25",
"prorated": true,
"grossPeriod": "yearly",
"endDate": "2023-12-25",
"comments": "<string>"
}
'import requests
url = "https://api-{region}.sesametime.com/contract/v1/salaries"
payload = {
"employeeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"currency": "EUR",
"grossSalary": 123,
"payments": 123,
"contributionGroupId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"startDate": "2023-12-25",
"prorated": True,
"grossPeriod": "yearly",
"endDate": "2023-12-25",
"comments": "<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({
employeeId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
currency: 'EUR',
grossSalary: 123,
payments: 123,
contributionGroupId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
startDate: '2023-12-25',
prorated: true,
grossPeriod: 'yearly',
endDate: '2023-12-25',
comments: '<string>'
})
};
fetch('https://api-{region}.sesametime.com/contract/v1/salaries', 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-{region}.sesametime.com/contract/v1/salaries",
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([
'employeeId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'currency' => 'EUR',
'grossSalary' => 123,
'payments' => 123,
'contributionGroupId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'startDate' => '2023-12-25',
'prorated' => true,
'grossPeriod' => 'yearly',
'endDate' => '2023-12-25',
'comments' => '<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://api-{region}.sesametime.com/contract/v1/salaries"
payload := strings.NewReader("{\n \"employeeId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"currency\": \"EUR\",\n \"grossSalary\": 123,\n \"payments\": 123,\n \"contributionGroupId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"startDate\": \"2023-12-25\",\n \"prorated\": true,\n \"grossPeriod\": \"yearly\",\n \"endDate\": \"2023-12-25\",\n \"comments\": \"<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://api-{region}.sesametime.com/contract/v1/salaries")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"employeeId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"currency\": \"EUR\",\n \"grossSalary\": 123,\n \"payments\": 123,\n \"contributionGroupId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"startDate\": \"2023-12-25\",\n \"prorated\": true,\n \"grossPeriod\": \"yearly\",\n \"endDate\": \"2023-12-25\",\n \"comments\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-{region}.sesametime.com/contract/v1/salaries")
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 \"employeeId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"currency\": \"EUR\",\n \"grossSalary\": 123,\n \"payments\": 123,\n \"contributionGroupId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"startDate\": \"2023-12-25\",\n \"prorated\": true,\n \"grossPeriod\": \"yearly\",\n \"endDate\": \"2023-12-25\",\n \"comments\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"payPeriod": "daily",
"currency": "EUR",
"grossSalary": 35000,
"payments": 12,
"contributionGroup": "Oficiales administrativos",
"startDate": "2023-12-25",
"endDate": "2023-12-25",
"comments": "<string>",
"prorated": false,
"monthlyGrossSalary": 2917,
"remuneration": 2916.67,
"createdAt": "2020-01-01T10:00:00+01:00",
"updatedAt": "2020-01-01T10:00:00+01:00"
},
"warnings": [
{
"code": "salary_coverage_gap",
"previousEndDate": "2024-06-30",
"newStartDate": "2024-08-01"
}
]
}{
"message": "Validation failed",
"errors": [
{
"field": "questionId",
"message": "This value is not a valid UUID."
},
{
"field": "answer",
"message": "This field is required for text-based questions."
}
]
}{
"message": "Invalid or missing API Key",
"code": "UNAUTHORIZED"
}Salaries
Create Salary
Creates a new salary for an employee. The previous active salary is automatically closed (its end date is set to the day before the new start date). The response always includes a warnings array that may contain a salary_coverage_gap entry when the new salary’s start date is not contiguous with the previous salary’s end date.
POST
/
contract
/
v1
/
salaries
Create Salary
curl --request POST \
--url https://api-{region}.sesametime.com/contract/v1/salaries \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"employeeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"currency": "EUR",
"grossSalary": 123,
"payments": 123,
"contributionGroupId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"startDate": "2023-12-25",
"prorated": true,
"grossPeriod": "yearly",
"endDate": "2023-12-25",
"comments": "<string>"
}
'import requests
url = "https://api-{region}.sesametime.com/contract/v1/salaries"
payload = {
"employeeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"currency": "EUR",
"grossSalary": 123,
"payments": 123,
"contributionGroupId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"startDate": "2023-12-25",
"prorated": True,
"grossPeriod": "yearly",
"endDate": "2023-12-25",
"comments": "<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({
employeeId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
currency: 'EUR',
grossSalary: 123,
payments: 123,
contributionGroupId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
startDate: '2023-12-25',
prorated: true,
grossPeriod: 'yearly',
endDate: '2023-12-25',
comments: '<string>'
})
};
fetch('https://api-{region}.sesametime.com/contract/v1/salaries', 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-{region}.sesametime.com/contract/v1/salaries",
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([
'employeeId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'currency' => 'EUR',
'grossSalary' => 123,
'payments' => 123,
'contributionGroupId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'startDate' => '2023-12-25',
'prorated' => true,
'grossPeriod' => 'yearly',
'endDate' => '2023-12-25',
'comments' => '<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://api-{region}.sesametime.com/contract/v1/salaries"
payload := strings.NewReader("{\n \"employeeId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"currency\": \"EUR\",\n \"grossSalary\": 123,\n \"payments\": 123,\n \"contributionGroupId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"startDate\": \"2023-12-25\",\n \"prorated\": true,\n \"grossPeriod\": \"yearly\",\n \"endDate\": \"2023-12-25\",\n \"comments\": \"<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://api-{region}.sesametime.com/contract/v1/salaries")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"employeeId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"currency\": \"EUR\",\n \"grossSalary\": 123,\n \"payments\": 123,\n \"contributionGroupId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"startDate\": \"2023-12-25\",\n \"prorated\": true,\n \"grossPeriod\": \"yearly\",\n \"endDate\": \"2023-12-25\",\n \"comments\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-{region}.sesametime.com/contract/v1/salaries")
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 \"employeeId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"currency\": \"EUR\",\n \"grossSalary\": 123,\n \"payments\": 123,\n \"contributionGroupId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"startDate\": \"2023-12-25\",\n \"prorated\": true,\n \"grossPeriod\": \"yearly\",\n \"endDate\": \"2023-12-25\",\n \"comments\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"payPeriod": "daily",
"currency": "EUR",
"grossSalary": 35000,
"payments": 12,
"contributionGroup": "Oficiales administrativos",
"startDate": "2023-12-25",
"endDate": "2023-12-25",
"comments": "<string>",
"prorated": false,
"monthlyGrossSalary": 2917,
"remuneration": 2916.67,
"createdAt": "2020-01-01T10:00:00+01:00",
"updatedAt": "2020-01-01T10:00:00+01:00"
},
"warnings": [
{
"code": "salary_coverage_gap",
"previousEndDate": "2024-06-30",
"newStartDate": "2024-08-01"
}
]
}{
"message": "Validation failed",
"errors": [
{
"field": "questionId",
"message": "This value is not a valid UUID."
},
{
"field": "answer",
"message": "This field is required for text-based questions."
}
]
}{
"message": "Invalid or missing API Key",
"code": "UNAUTHORIZED"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Salary object that needs to be created
The ID of the employee
Payment period of contract
Available options:
daily, weekly, biweekly, monthly, yearly Currency of contract
Example:
"EUR"
Salary amount
Number of payments
Contribution group id
Salary start date
Defines whether the salary is prorated or not
Period of gross salary. Defaults to 'yearly' if not specified
Available options:
daily, monthly, yearly Salary end date
Comments
Was this page helpful?