List committed expenses
curl --request GET \
--url https://pre-partners-api.cobee.io/api/v3/committed-expenses \
--header 'Authorization: Bearer <token>'import requests
url = "https://pre-partners-api.cobee.io/api/v3/committed-expenses"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://pre-partners-api.cobee.io/api/v3/committed-expenses', 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://pre-partners-api.cobee.io/api/v3/committed-expenses",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://pre-partners-api.cobee.io/api/v3/committed-expenses"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://pre-partners-api.cobee.io/api/v3/committed-expenses")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://pre-partners-api.cobee.io/api/v3/committed-expenses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"company": {
"id": "a1b2c3d4-e5f6-7890-a1b2-c3d4e5f67890",
"legalId": "B12345678",
"currency": "EUR",
"employees": [
{
"employeeId": "dd3de3a0-f903-42a0-b729-4cb16f185bc6",
"internalId": "12345",
"legalId": "129387655X",
"committedExpenses": [
{
"id": "dd3de3a0-f903-42a0-b729-4cb16f185bc6",
"fiscalYear": "2026",
"category": "nursery-benefit",
"committedAmountInCents": 30000,
"paidAmountInCents": 10000,
"numberOfPayments": 3,
"recipient": {
"id": "8a1b2c3d-4e5f-6789-a0b1-c2d3e4f56789"
},
"pendingPayments": 2
}
]
}
]
}
}{
"message": "Provide exactly one of employee or company"
}{
"message": "Resource not found"
}{
"message": "Internal server error"
}Committed Expenses
[DRAFT] Find committed expenses
Retrieves the committed expenses of an employee or of a whole company, grouped by fiscal year and benefit. Provide exactly one of employee or company.
GET
/
committed-expenses
List committed expenses
curl --request GET \
--url https://pre-partners-api.cobee.io/api/v3/committed-expenses \
--header 'Authorization: Bearer <token>'import requests
url = "https://pre-partners-api.cobee.io/api/v3/committed-expenses"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://pre-partners-api.cobee.io/api/v3/committed-expenses', 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://pre-partners-api.cobee.io/api/v3/committed-expenses",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://pre-partners-api.cobee.io/api/v3/committed-expenses"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://pre-partners-api.cobee.io/api/v3/committed-expenses")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://pre-partners-api.cobee.io/api/v3/committed-expenses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"company": {
"id": "a1b2c3d4-e5f6-7890-a1b2-c3d4e5f67890",
"legalId": "B12345678",
"currency": "EUR",
"employees": [
{
"employeeId": "dd3de3a0-f903-42a0-b729-4cb16f185bc6",
"internalId": "12345",
"legalId": "129387655X",
"committedExpenses": [
{
"id": "dd3de3a0-f903-42a0-b729-4cb16f185bc6",
"fiscalYear": "2026",
"category": "nursery-benefit",
"committedAmountInCents": 30000,
"paidAmountInCents": 10000,
"numberOfPayments": 3,
"recipient": {
"id": "8a1b2c3d-4e5f-6789-a0b1-c2d3e4f56789"
},
"pendingPayments": 2
}
]
}
]
}
}{
"message": "Provide exactly one of employee or company"
}{
"message": "Resource not found"
}{
"message": "Internal server error"
}Coming soon: this endpoint is still under review and may change before release.
Overview
Retrieves the committed expenses — amounts an employee has committed to spend over several payroll cycles (for example, nursery) — either for a single employee (?employee={id}) or for a whole company (?company={id}). Provide exactly one of the two.
Results are grouped by fiscal year and benefit (for example, “300 € committed in nursery for 2026”). You can optionally narrow the results to a single fiscalYear.
Important: use this endpoint to know how much an employee has committed so you can adjust their limits. Committed expenses count against the employee’s flexible-benefit limit from the moment they are committed. Nursery has an annual limit, so its committed expenses are reported per fiscal year.
Important: each individual monthly charge of a committed expense is charged at the start of its payroll cycle and is reported as a regular consumption by the consumptions endpoints and by the employee.consumption.registered webhook event. This endpoint reports the committed expense itself: the total committed and how much is still pending.
Important: theemployee.committed-expense.*andemployee.committed-expense.payment.*webhook events notify you when a committed expense is requested, finished, or cancelled (as a whole or one payment at a time). Like every other webhook, they only identify what changed — call this endpoint after receiving one to get the currentcommittedAmountInCents/pendingAmountInCentsand compute the employee’s remaining limit.
Important:recipientidentifies the person the committed expense applies to when that person is different from the employee. It is omitted when the committed expense applies directly to the employee, so the employee’s identifier is not duplicated. When present,recipient.idcontains the dependent’s identifier.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
The unique identifier of the employee. Provide either employee or company, not both.
The unique identifier of the company. Provide either employee or company, not both.
Restrict the results to a single fiscal year (e.g. 2026). If not provided, all fiscal years with committed expenses are returned.
Pattern:
^[0-9]{4}$Example:
"2026"
Response
Committed expenses successfully retrieved. The response is scoped to an employee or to a company depending on the filter used.
Show child attributes
Show child attributes