curl --request POST \
--url https://api-{region}.sesametime.com/contract/v1/compensations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Comision por ventas",
"currency": "MXN",
"quantity": 1500,
"percentage": 10.5,
"recurrence": 1,
"code": "<string>",
"comment": "<string>"
}
'import requests
url = "https://api-{region}.sesametime.com/contract/v1/compensations"
payload = {
"name": "Comision por ventas",
"currency": "MXN",
"quantity": 1500,
"percentage": 10.5,
"recurrence": 1,
"code": "<string>",
"comment": "<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({
name: 'Comision por ventas',
currency: 'MXN',
quantity: 1500,
percentage: 10.5,
recurrence: 1,
code: '<string>',
comment: '<string>'
})
};
fetch('https://api-{region}.sesametime.com/contract/v1/compensations', 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/compensations",
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([
'name' => 'Comision por ventas',
'currency' => 'MXN',
'quantity' => 1500,
'percentage' => 10.5,
'recurrence' => 1,
'code' => '<string>',
'comment' => '<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/compensations"
payload := strings.NewReader("{\n \"name\": \"Comision por ventas\",\n \"currency\": \"MXN\",\n \"quantity\": 1500,\n \"percentage\": 10.5,\n \"recurrence\": 1,\n \"code\": \"<string>\",\n \"comment\": \"<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/compensations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Comision por ventas\",\n \"currency\": \"MXN\",\n \"quantity\": 1500,\n \"percentage\": 10.5,\n \"recurrence\": 1,\n \"code\": \"<string>\",\n \"comment\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-{region}.sesametime.com/contract/v1/compensations")
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 \"name\": \"Comision por ventas\",\n \"currency\": \"MXN\",\n \"quantity\": 1500,\n \"percentage\": 10.5,\n \"recurrence\": 1,\n \"code\": \"<string>\",\n \"comment\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"companyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "Comision por ventas",
"compensationType": "fixed",
"quantity": 1500,
"percentage": 10.5,
"period": "weekly",
"currency": "MXN",
"recurrence": 1,
"status": "active",
"origin": "payroll",
"code": "<string>",
"comment": "<string>",
"createdAt": "2020-01-01T10:00:00+01:00",
"updatedAt": "2020-01-01T10:00:00+01:00"
},
"meta": {
"currentPage": 1,
"lastPage": 1,
"total": 1,
"perPage": 1
}
}{
"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"
}{
"message": "Cannot submit answers for an evaluation that has already been completed",
"code": "EVALUATION_ALREADY_COMPLETED",
"conflictDetails": {
"currentState": "completed",
"completedAt": "2024-01-15T10:30:00Z"
}
}Create a new compensation
Creates a new compensation (complemento) for the authenticated company.
Compensation Types:
fixed: Fixed amount (quantity required)variable: Variable amount or percentage (quantity OR percentage required)additional: Additional complement (quantity OR percentage required)
Valid Periods for Payroll:
weekly: Weekly paymentbiweekly: Every two weeksfortnightly: First and second half of monthmonthly: Monthly payment
Note: yearly period is NOT valid for payroll compensations.
Important: When assigning to employees, the compensation’s period and currency must match the employee’s active salary.
curl --request POST \
--url https://api-{region}.sesametime.com/contract/v1/compensations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Comision por ventas",
"currency": "MXN",
"quantity": 1500,
"percentage": 10.5,
"recurrence": 1,
"code": "<string>",
"comment": "<string>"
}
'import requests
url = "https://api-{region}.sesametime.com/contract/v1/compensations"
payload = {
"name": "Comision por ventas",
"currency": "MXN",
"quantity": 1500,
"percentage": 10.5,
"recurrence": 1,
"code": "<string>",
"comment": "<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({
name: 'Comision por ventas',
currency: 'MXN',
quantity: 1500,
percentage: 10.5,
recurrence: 1,
code: '<string>',
comment: '<string>'
})
};
fetch('https://api-{region}.sesametime.com/contract/v1/compensations', 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/compensations",
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([
'name' => 'Comision por ventas',
'currency' => 'MXN',
'quantity' => 1500,
'percentage' => 10.5,
'recurrence' => 1,
'code' => '<string>',
'comment' => '<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/compensations"
payload := strings.NewReader("{\n \"name\": \"Comision por ventas\",\n \"currency\": \"MXN\",\n \"quantity\": 1500,\n \"percentage\": 10.5,\n \"recurrence\": 1,\n \"code\": \"<string>\",\n \"comment\": \"<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/compensations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Comision por ventas\",\n \"currency\": \"MXN\",\n \"quantity\": 1500,\n \"percentage\": 10.5,\n \"recurrence\": 1,\n \"code\": \"<string>\",\n \"comment\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-{region}.sesametime.com/contract/v1/compensations")
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 \"name\": \"Comision por ventas\",\n \"currency\": \"MXN\",\n \"quantity\": 1500,\n \"percentage\": 10.5,\n \"recurrence\": 1,\n \"code\": \"<string>\",\n \"comment\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"companyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "Comision por ventas",
"compensationType": "fixed",
"quantity": 1500,
"percentage": 10.5,
"period": "weekly",
"currency": "MXN",
"recurrence": 1,
"status": "active",
"origin": "payroll",
"code": "<string>",
"comment": "<string>",
"createdAt": "2020-01-01T10:00:00+01:00",
"updatedAt": "2020-01-01T10:00:00+01:00"
},
"meta": {
"currentPage": 1,
"lastPage": 1,
"total": 1,
"perPage": 1
}
}{
"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"
}{
"message": "Cannot submit answers for an evaluation that has already been completed",
"code": "EVALUATION_ALREADY_COMPLETED",
"conflictDetails": {
"currentState": "completed",
"completedAt": "2024-01-15T10:30:00Z"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Compensation name
"Comision por ventas"
Type: fixed requires quantity; variable/additional require quantity OR percentage
fixed, variable, additional Payment period (yearly is NOT valid for payroll)
weekly, biweekly, fortnightly, monthly Currency code (ISO 4217)
"MXN"
Compensation status
active, inactive Fixed amount (required for fixed type, mutually exclusive with percentage)
1500
Percentage of gross salary (mutually exclusive with quantity)
10.5
Payment recurrence (default: 1)
External code (for Contpaqi integration)
Optional comment
Was this page helpful?