A valid request URL is required to generate request examples{
"entity": {
"id": "le-solya",
"country": "FR",
"currentVersion": 1
},
"current": {
"legalEntityId": "le-solya",
"version": 1,
"effectiveFrom": "2026-02-01T09:00:00.000Z",
"fingerprint": "9f2c1a5b7e0d4c3f8a6b2e1d9c0f7a4b5e3d2c1f0a9b8c7d6e5f4a3b2c1d0e9f",
"identity": {
"legalName": "Solya Retail",
"legalForm": "SAS",
"registrationNumber": "732829320",
"vatNumber": "FR44732829320",
"shareCapitalCents": 1000000,
"registryLabel": "RCS Paris 732 829 320",
"address": {
"lines": [
"12 rue de Rivoli"
],
"postalCode": "75001",
"city": "Paris",
"country": "FR"
},
"statutoryMentions": [
"TVA non applicable, art. 293 B du CGI"
]
}
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123,
"fieldErrors": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}Create a company (société)
Creates a legal entity together with version 1 of its fiscal identity. id is caller-supplied — pick a stable, URL-safe slug; 409s when one already carries it. country is ISO-3166-1 alpha-2 and selects the profile that VALIDATES the identifiers: France is an instance, not the model. Identifiers are checked including their CHECK DIGITS — a SIREN that fails Luhn or a VAT number that is not the one built on that SIREN is a 400 with a field error, never a stored value. Every field except legalName and address.country is optional: an incomplete société is a legitimate state, reported through gaps, and is strictly better than an invented identifier.
A valid request URL is required to generate request examples{
"entity": {
"id": "le-solya",
"country": "FR",
"currentVersion": 1
},
"current": {
"legalEntityId": "le-solya",
"version": 1,
"effectiveFrom": "2026-02-01T09:00:00.000Z",
"fingerprint": "9f2c1a5b7e0d4c3f8a6b2e1d9c0f7a4b5e3d2c1f0a9b8c7d6e5f4a3b2c1d0e9f",
"identity": {
"legalName": "Solya Retail",
"legalForm": "SAS",
"registrationNumber": "732829320",
"vatNumber": "FR44732829320",
"shareCapitalCents": 1000000,
"registryLabel": "RCS Paris 732 829 320",
"address": {
"lines": [
"12 rue de Rivoli"
],
"postalCode": "75001",
"city": "Paris",
"country": "FR"
},
"statutoryMentions": [
"TVA non applicable, art. 293 B du CGI"
]
}
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123,
"fieldErrors": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}Authorizations
Authorization: Bearer <token>. Accepts EITHER a Keycloak access token (scopes-in-token) OR an opaque POS session token; both resolve to the same pos.* scope vocabulary the route guards enforce.

