curl -sS -X POST "$FLUIDE_BASE_URL/api/v1/companies" \
-H "Authorization: Bearer $FLUIDE_ACCESS_TOKEN" \
-H "X-Fluide-Api-Key: $FLUIDE_API_KEY" \
-H "X-Fluide-Client-Id: fluide-developer" \
-H "Content-Type: application/json" \
-d '{}'const baseUrl = process.env.FLUIDE_BASE_URL;
const response = await fetch(`${baseUrl}/api/v1/companies`, {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.FLUIDE_ACCESS_TOKEN}`,
'X-Fluide-Api-Key': process.env.FLUIDE_API_KEY,
'X-Fluide-Client-Id': 'fluide-developer',
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
});
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
console.log(await response.json());import os
import requests
base_url = os.environ["FLUIDE_BASE_URL"]
headers = {
"Authorization": f"Bearer {os.environ['FLUIDE_ACCESS_TOKEN']}",
"X-Fluide-Api-Key": os.environ["FLUIDE_API_KEY"],
"X-Fluide-Client-Id": "fluide-developer",
}
response = requests.post(
f"{base_url}/api/v1/companies",
headers=headers,
json={},
timeout=30,
)
response.raise_for_status()
print(response.json())import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
String baseUrl = System.getenv("FLUIDE_BASE_URL");
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder builder = HttpRequest.newBuilder()
.uri(URI.create(baseUrl + "/api/v1/companies"))
.header("Authorization", "Bearer " + System.getenv("FLUIDE_ACCESS_TOKEN"))
.header("X-Fluide-Api-Key", System.getenv("FLUIDE_API_KEY"))
.header("X-Fluide-Client-Id", "fluide-developer")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("{}"))
.build();
HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
if (response.statusCode() >= 400) throw new RuntimeException("HTTP " + response.statusCode() + ": " + response.body());
System.out.println(response.body());<?php
$baseUrl = getenv("FLUIDE_BASE_URL");
$ch = curl_init($baseUrl . "/api/v1/companies");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('FLUIDE_ACCESS_TOKEN'),
'X-Fluide-Api-Key: ' . getenv('FLUIDE_API_KEY'),
'X-Fluide-Client-Id: fluide-developer',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => "{}",
]);
$response = curl_exec($ch);
if ($response === false) throw new RuntimeException(curl_error($ch));
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($status >= 400) throw new RuntimeException("HTTP $status: $response");
echo $response;{
"success": true,
"message": "Operation completed successfully",
"data": {}
}{
"success": false,
"message": "Validation failed",
"code": "VALIDATION_FAILED",
"statusCode": 400,
"timestamp": "2026-06-03T12:00:00.000Z",
"errors": {
"from": [
"from must be a valid date"
]
}
}{
"success": false,
"message": "Validation failed",
"code": "VALIDATION_FAILED",
"statusCode": 400,
"timestamp": "2026-06-03T12:00:00.000Z",
"errors": {
"from": [
"from must be a valid date"
]
}
}{
"success": false,
"message": "Validation failed",
"code": "VALIDATION_FAILED",
"statusCode": 400,
"timestamp": "2026-06-03T12:00:00.000Z",
"errors": {
"from": [
"from must be a valid date"
]
}
}{
"success": false,
"message": "Validation failed",
"code": "VALIDATION_FAILED",
"statusCode": 400,
"timestamp": "2026-06-03T12:00:00.000Z",
"errors": {
"from": [
"from must be a valid date"
]
}
}Create
curl -sS -X POST "$FLUIDE_BASE_URL/api/v1/companies" \
-H "Authorization: Bearer $FLUIDE_ACCESS_TOKEN" \
-H "X-Fluide-Api-Key: $FLUIDE_API_KEY" \
-H "X-Fluide-Client-Id: fluide-developer" \
-H "Content-Type: application/json" \
-d '{}'const baseUrl = process.env.FLUIDE_BASE_URL;
const response = await fetch(`${baseUrl}/api/v1/companies`, {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.FLUIDE_ACCESS_TOKEN}`,
'X-Fluide-Api-Key': process.env.FLUIDE_API_KEY,
'X-Fluide-Client-Id': 'fluide-developer',
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
});
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
console.log(await response.json());import os
import requests
base_url = os.environ["FLUIDE_BASE_URL"]
headers = {
"Authorization": f"Bearer {os.environ['FLUIDE_ACCESS_TOKEN']}",
"X-Fluide-Api-Key": os.environ["FLUIDE_API_KEY"],
"X-Fluide-Client-Id": "fluide-developer",
}
response = requests.post(
f"{base_url}/api/v1/companies",
headers=headers,
json={},
timeout=30,
)
response.raise_for_status()
print(response.json())import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
String baseUrl = System.getenv("FLUIDE_BASE_URL");
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder builder = HttpRequest.newBuilder()
.uri(URI.create(baseUrl + "/api/v1/companies"))
.header("Authorization", "Bearer " + System.getenv("FLUIDE_ACCESS_TOKEN"))
.header("X-Fluide-Api-Key", System.getenv("FLUIDE_API_KEY"))
.header("X-Fluide-Client-Id", "fluide-developer")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("{}"))
.build();
HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
if (response.statusCode() >= 400) throw new RuntimeException("HTTP " + response.statusCode() + ": " + response.body());
System.out.println(response.body());<?php
$baseUrl = getenv("FLUIDE_BASE_URL");
$ch = curl_init($baseUrl . "/api/v1/companies");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('FLUIDE_ACCESS_TOKEN'),
'X-Fluide-Api-Key: ' . getenv('FLUIDE_API_KEY'),
'X-Fluide-Client-Id: fluide-developer',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => "{}",
]);
$response = curl_exec($ch);
if ($response === false) throw new RuntimeException(curl_error($ch));
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($status >= 400) throw new RuntimeException("HTTP $status: $response");
echo $response;{
"success": true,
"message": "Operation completed successfully",
"data": {}
}{
"success": false,
"message": "Validation failed",
"code": "VALIDATION_FAILED",
"statusCode": 400,
"timestamp": "2026-06-03T12:00:00.000Z",
"errors": {
"from": [
"from must be a valid date"
]
}
}{
"success": false,
"message": "Validation failed",
"code": "VALIDATION_FAILED",
"statusCode": 400,
"timestamp": "2026-06-03T12:00:00.000Z",
"errors": {
"from": [
"from must be a valid date"
]
}
}{
"success": false,
"message": "Validation failed",
"code": "VALIDATION_FAILED",
"statusCode": 400,
"timestamp": "2026-06-03T12:00:00.000Z",
"errors": {
"from": [
"from must be a valid date"
]
}
}{
"success": false,
"message": "Validation failed",
"code": "VALIDATION_FAILED",
"statusCode": 400,
"timestamp": "2026-06-03T12:00:00.000Z",
"errors": {
"from": [
"from must be a valid date"
]
}
}Authorizations
Access token JWT. Use as Authorization: Bearer . In the API playground, paste the JWT only.
Developer API key (fl_dev_...). Required on every API call with a machine access token.
First-party client audience. Must match the fluide_client_id claim on the JWT. Use fluide-developer for Connect.
Body
Legal or display company name.
"Fluide SARL"
ISO 3166-1 alpha-2 country code.
"CM"
Primary company currency using ISO 4217 code.
"XAF"
Business legal creation/incorporation date.
"2021-04-12"
Business size bucket.
1"11-50"
Official company registration number.
1"RC-123456"
Tax identifier (e.g. NIU).
"NIU-7890"
Registered business address.
1"Bonanjo, Douala"
Business city.
"Douala"
Public URL for company logo.
1"https://cdn.fluide.com/company/logo.png"
Industry category.
1"Technology"
Organization structure details.
Show child attributes
Show child attributes
Configured payday(s).
Show child attributes
Show child attributes
Bank account details used for payroll funding.
Show child attributes
Show child attributes
Mobile money wallet details.
Show child attributes
Show child attributes
Signature assets for approvals and generated documents.
Show child attributes
Show child attributes
Payroll setup details including groups, allowances and deductions.
Show child attributes
Show child attributes
Employee number generation format.
Show child attributes
Show child attributes
Notification channel preferences.
Show child attributes
Show child attributes