Commercial rules
Pricing Rules
Pricing rules define discount policies that can be automatically applied to eligible customers (e.g. employee meals, student discounts). They group grants (subsidies), entrance fees, and channel restrictions into a single configuration.
List Pricing Rules
GET/pricing_rulesList All Pricing Rules
Returns the full list of pricing rules for a given brand, optionally filtered by guest group.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | Brand identifier. |
| guestGroupId | integer | No | Optional guest group filter. |
Response
{
"status": 200,
"code": "pricing_rules_found",
"message": "Pricing rules found.",
"data": [
{
"pricingRuleId": 1,
"brandId": 22,
"code": "EMPLOYEE_DISCOUNT",
"applyScope": [
"PRODUCT"
],
"isUrssafEnabled": false,
"grants": [
{
"grantId": 10,
"position": 1
}
],
"entranceFees": [],
"blockedChannels": []
}
]
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "pricing_rules_found" | Machine-readable application code for the result. |
| message | string | "Pricing rules found." | Human-readable result message. Do not use this value for program logic. |
| data | array | […] | Endpoint-specific response payload. |
| data[] | object | {…} | Endpoint-specific response payload. |
| data[].pricingRuleId | integer | 1 | Identifier of the associated pricing rule. |
| data[].brandId | integer | 22 | Identifier of the brand. |
| data[].code | string | "EMPLOYEE_DISCOUNT" | Machine-readable application code for the result. |
| data[].applyScope | array | […] | List of apply scope entries. |
| data[].applyScope[] | string | "PRODUCT" | The apply scope value. |
| data[].isUrssafEnabled | boolean | false | Whether urssaf enabled is enabled or applies. |
| data[].grants | array | […] | List of grants entries. |
| data[].grants[] | object | {…} | Object containing grants fields. |
| data[].grants[].grantId | integer | 10 | Identifier of the associated grant. |
| data[].grants[].position | integer | 1 | The position value. |
| data[].entranceFees | array | [] | List of entrance fees entries. |
| data[].blockedChannels | array | [] | List of blocked channels entries. |
List (Minimal)
Retrieve a lightweight list of pricing rules containing only essential fields. Useful for dropdowns or quick lookups.
GET/pricing_rules/minimalList Pricing Rules (Minimal)
Returns a minimal representation of pricing rules for a brand.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | Brand identifier. |
Response
{
"status": 200,
"code": "pricing_rules_found",
"message": "Pricing rules found.",
"data": [
{
"pricingRuleId": 1,
"code": "EMPLOYEE_DISCOUNT"
}
]
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "pricing_rules_found" | Machine-readable application code for the result. |
| message | string | "Pricing rules found." | Human-readable result message. Do not use this value for program logic. |
| data | array | […] | Endpoint-specific response payload. |
| data[] | object | {…} | Endpoint-specific response payload. |
| data[].pricingRuleId | integer | 1 | Identifier of the associated pricing rule. |
| data[].code | string | "EMPLOYEE_DISCOUNT" | Machine-readable application code for the result. |
List (View)
Retrieve pricing rules in a list-view format. Returns summary data suitable for table-based UIs.
GET/pricing_rules/listList Pricing Rules (List View)
Returns pricing rules as a flat list for a given brand.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | Brand identifier. |
Response
{
"status": 200,
"code": "pricing_rules_found",
"message": "Pricing rules found.",
"data": [
{
"pricingRuleId": 1,
"code": "EMPLOYEE_DISCOUNT",
"applyScope": [
"PRODUCT"
],
"isUrssafEnabled": false
}
]
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "pricing_rules_found" | Machine-readable application code for the result. |
| message | string | "Pricing rules found." | Human-readable result message. Do not use this value for program logic. |
| data | array | […] | Endpoint-specific response payload. |
| data[] | object | {…} | Endpoint-specific response payload. |
| data[].pricingRuleId | integer | 1 | Identifier of the associated pricing rule. |
| data[].code | string | "EMPLOYEE_DISCOUNT" | Machine-readable application code for the result. |
| data[].applyScope | array | […] | List of apply scope entries. |
| data[].applyScope[] | string | "PRODUCT" | The apply scope value. |
| data[].isUrssafEnabled | boolean | false | Whether urssaf enabled is enabled or applies. |
Get Pricing Rule
Retrieve a single pricing rule by its ID, including all associated grants, entrance fees, and blocked channels.
GET/pricing_rules/{pricingRuleId}Get Pricing Rule by ID
Returns a pricing rule with its full associations. Supports optional include parameters for related entities.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| pricingRuleId | integer | Yes | ID of the pricing rule. |
Response
{
"status": 200,
"code": "pricing_rule_found",
"message": "Pricing rule found.",
"data": {
"pricingRuleId": 1,
"brandId": 22,
"code": "EMPLOYEE_DISCOUNT",
"applyScope": [
"PRODUCT"
],
"isUrssafEnabled": false,
"grants": [
{
"grantId": 10,
"position": 1
}
],
"entranceFees": [
{
"entranceFeeId": 5
}
],
"blockedChannels": [
{
"channelId": 3
}
]
}
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "pricing_rule_found" | Machine-readable application code for the result. |
| message | string | "Pricing rule found." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.pricingRuleId | integer | 1 | Identifier of the associated pricing rule. |
| data.brandId | integer | 22 | Identifier of the brand. |
| data.code | string | "EMPLOYEE_DISCOUNT" | Machine-readable application code for the result. |
| data.applyScope | array | […] | List of apply scope entries. |
| data.applyScope[] | string | "PRODUCT" | The apply scope value. |
| data.isUrssafEnabled | boolean | false | Whether urssaf enabled is enabled or applies. |
| data.grants | array | […] | List of grants entries. |
| data.grants[] | object | {…} | Object containing grants fields. |
| data.grants[].grantId | integer | 10 | Identifier of the associated grant. |
| data.grants[].position | integer | 1 | The position value. |
| data.entranceFees | array | […] | List of entrance fees entries. |
| data.entranceFees[] | object | {…} | Object containing entrance fees fields. |
| data.entranceFees[].entranceFeeId | integer | 5 | Identifier of the associated entrance fee. |
| data.blockedChannels | array | […] | List of blocked channels entries. |
| data.blockedChannels[] | object | {…} | Object containing blocked channels fields. |
| data.blockedChannels[].channelId | integer | 3 | Identifier of the associated channel. |
GET/pricing_rules/{pricingRuleId}/count_related_customersCount Related Customers
Returns the number of customers associated with the given pricing rule. Useful for impact analysis before modifying or deleting a rule.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| pricingRuleId | integer | Yes | ID of the pricing rule. |
Response
{
"status": 200,
"code": "pricing_rule_count_found",
"message": "Pricing rule count found.",
"data": {
"count": 142
}
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "pricing_rule_count_found" | Machine-readable application code for the result. |
| message | string | "Pricing rule count found." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.count | integer | 142 | Total number of matching records. |
Create Pricing Rule
Create a new pricing rule for a brand. A pricing rule groups grants (subsidies), entrance fees, and channel restrictions into a single configuration that can be assigned to customers.
POST/pricing_rulesCreate Pricing Rule
Creates a pricing rule and associates it with grants, entrance fees, other pricing rules, and blocked channels.
Request Body
{
"brandId": 22,
"code": "EMPLOYEE_DISCOUNT",
"applyScope": [
"PRODUCT"
],
"isUrssafEnabled": false,
"grants": [
{
"grantId": 10,
"position": 1
}
],
"entranceFees": [
{
"entranceFeeId": 5
}
],
"pricingRules": [],
"blockedChannels": [
{
"channelId": 3
}
]
}Request Body Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| brandId | integer | 22 | Identifier of the brand. |
| code | string | "EMPLOYEE_DISCOUNT" | Machine-readable application code for the result. |
| applyScope | array | […] | List of apply scope entries. |
| applyScope[] | string | "PRODUCT" | The apply scope value. |
| isUrssafEnabled | boolean | false | Whether urssaf enabled is enabled or applies. |
| grants | array | […] | List of grants entries. |
| grants[] | object | {…} | Object containing grants fields. |
| grants[].grantId | integer | 10 | Identifier of the associated grant. |
| grants[].position | integer | 1 | The position value. |
| entranceFees | array | […] | List of entrance fees entries. |
| entranceFees[] | object | {…} | Object containing entrance fees fields. |
| entranceFees[].entranceFeeId | integer | 5 | Identifier of the associated entrance fee. |
| pricingRules | array | [] | List of pricing rules entries. |
| blockedChannels | array | […] | List of blocked channels entries. |
| blockedChannels[] | object | {…} | Object containing blocked channels fields. |
| blockedChannels[].channelId | integer | 3 | Identifier of the associated channel. |
Response
{
"status": 200,
"code": "pricing_rule_created",
"message": "Pricing rule created.",
"data": {
"pricingRuleId": 42,
"brandId": 22,
"code": "EMPLOYEE_DISCOUNT",
"applyScope": [
"PRODUCT"
],
"isUrssafEnabled": false
}
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "pricing_rule_created" | Machine-readable application code for the result. |
| message | string | "Pricing rule created." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.pricingRuleId | integer | 42 | Identifier of the associated pricing rule. |
| data.brandId | integer | 22 | Identifier of the brand. |
| data.code | string | "EMPLOYEE_DISCOUNT" | Machine-readable application code for the result. |
| data.applyScope | array | […] | List of apply scope entries. |
| data.applyScope[] | string | "PRODUCT" | The apply scope value. |
| data.isUrssafEnabled | boolean | false | Whether urssaf enabled is enabled or applies. |
Field Reference
| Field | Type | Required | Description |
|---|---|---|---|
| brandId | Integer | Yes | The brand this pricing rule belongs to. |
| code | String | Yes | A unique identifier code for this pricing rule (e.g. "EMPLOYEE_DISCOUNT"). |
| applyScope | Array<String> | Yes | Scopes to which the rule applies. Values: PRODUCT, FEE. |
| isUrssafEnabled | Boolean | No | Whether URSSAF employer meal contribution rules apply. |
| grants | Array<Object> | Yes | List of grants (subsidies) to attach. Each object requires grantId (integer) and optional position (integer or null). |
| entranceFees | Array<Object> | No | Entrance fees to associate. Each object requires entranceFeeId (integer). |
| pricingRules | Array<Object> | No | Other pricing rules to link. Each object requires pricingRuleId (integer). |
| blockedChannels | Array<Object> | No | Channels on which this rule is blocked. Each object requires channelId (integer). |
Update Pricing Rule
Update an existing pricing rule. The full configuration (code, scope, grants, entrance fees, blocked channels) must be provided.
PUT/pricing_rules/{pricingRuleId}Update Pricing Rule
Replaces the pricing rule configuration identified by pricingRuleId.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| pricingRuleId | integer | Yes | ID of the pricing rule to update. |
Request Body
{
"code": "EMPLOYEE_DISCOUNT_V2",
"applyScope": [
"PRODUCT",
"FEE"
],
"isUrssafEnabled": true,
"grants": [
{
"grantId": 10,
"position": 1
},
{
"grantId": 11,
"position": 2
}
],
"entranceFees": [
{
"entranceFeeId": 5
}
],
"pricingRules": [],
"blockedChannels": []
}Request Body Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| code | string | "EMPLOYEE_DISCOUNT_V2" | Machine-readable application code for the result. |
| applyScope | array | […] | List of apply scope entries. |
| applyScope[] | string | "PRODUCT" | The apply scope value. |
| isUrssafEnabled | boolean | true | Whether urssaf enabled is enabled or applies. |
| grants | array | […] | List of grants entries. |
| grants[] | object | {…} | Object containing grants fields. |
| grants[].grantId | integer | 10 | Identifier of the associated grant. |
| grants[].position | integer | 1 | The position value. |
| entranceFees | array | […] | List of entrance fees entries. |
| entranceFees[] | object | {…} | Object containing entrance fees fields. |
| entranceFees[].entranceFeeId | integer | 5 | Identifier of the associated entrance fee. |
| pricingRules | array | [] | List of pricing rules entries. |
| blockedChannels | array | [] | List of blocked channels entries. |
Response
{
"status": 200,
"code": "pricing_rule_updated",
"message": "Pricing rule updated.",
"data": {
"pricingRuleId": 42,
"code": "EMPLOYEE_DISCOUNT_V2",
"applyScope": [
"PRODUCT",
"FEE"
],
"isUrssafEnabled": true
}
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "pricing_rule_updated" | Machine-readable application code for the result. |
| message | string | "Pricing rule updated." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.pricingRuleId | integer | 42 | Identifier of the associated pricing rule. |
| data.code | string | "EMPLOYEE_DISCOUNT_V2" | Machine-readable application code for the result. |
| data.applyScope | array | […] | List of apply scope entries. |
| data.applyScope[] | string | "PRODUCT" | The apply scope value. |
| data.isUrssafEnabled | boolean | true | Whether urssaf enabled is enabled or applies. |
Delete Pricing Rule
Permanently delete a pricing rule. All associations (grants, entrance fees, blocked channels) will be removed.
DELETE/pricing_rules/{pricingRuleId}Delete Pricing Rule
Deletes the pricing rule identified by pricingRuleId.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| pricingRuleId | integer | Yes | ID of the pricing rule to delete. |
Response
{
"status": 200,
"code": "pricing_rule_deleted",
"message": "Pricing rule deleted."
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "pricing_rule_deleted" | Machine-readable application code for the result. |
| message | string | "Pricing rule deleted." | Human-readable result message. Do not use this value for program logic. |
Import Pricing Rules
Bulk import pricing rules from an uploaded file. The file is validated before being processed. On validation error the response contains detailed error information; on success the pricing rules are created or updated.
POST/pricing_rules/importImport Pricing Rules from File
Accepts a multipart file upload containing pricing rule data. Requires brandId as a query parameter. The io-locale header (fr/en) controls validation message language.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | Brand identifier (query parameter). |
Request Body
multipart/form-data with a single file fieldResponse
{
"status": 200,
"code": "pricing_rules_imported",
"message": "Pricing rules imported.",
"data": {
"created": 5,
"updated": 3
}
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "pricing_rules_imported" | Machine-readable application code for the result. |
| message | string | "Pricing rules imported." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.created | integer | 5 | The created value. |
| data.updated | integer | 3 | The updated value. |
Default Pricing Policy
Manage the default pricing policy for a brand. The default pricing policy determines which entrance fee, pricing rule, and group are applied to new customers by default.
GET/brands/{brandId}/default_pricing_policyGet Default Pricing Policy
Retrieve the default pricing policy configured for a brand.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Response
{
"status": 200,
"code": "default_pricing_policy_found",
"message": "The default pricing policy has been found",
"data": {
"defaultPricingPolicy": {
"entranceFeeId": 201,
"pricingRuleId": 301,
"group": "default"
}
}
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "default_pricing_policy_found" | Machine-readable application code for the result. |
| message | string | "The default pricing policy has been found" | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.defaultPricingPolicy | object | {…} | Object containing default pricing policy fields. |
| data.defaultPricingPolicy.entranceFeeId | integer | 201 | Identifier of the associated entrance fee. |
| data.defaultPricingPolicy.pricingRuleId | integer | 301 | Identifier of the associated pricing rule. |
| data.defaultPricingPolicy.group | string | "default" | The group value. |
PUT/brands/{brandId}/default_pricing_policyUpdate Default Pricing Policy
Create or update the default pricing policy for a brand.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Request Body
{
"defaultPricingPolicy": {
"entranceFeeId": 201,
"pricingRuleId": 301,
"group": "default"
}
}Request Body Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| defaultPricingPolicy | object | {…} | Object containing default pricing policy fields. |
| defaultPricingPolicy.entranceFeeId | integer | 201 | Identifier of the associated entrance fee. |
| defaultPricingPolicy.pricingRuleId | integer | 301 | Identifier of the associated pricing rule. |
| defaultPricingPolicy.group | string | "default" | The group value. |
Response
{
"status": 200,
"code": "default_pricing_policy_updated",
"message": "The default pricing policy has been updated",
"data": {
"defaultPricingPolicy": {
"entranceFeeId": 201,
"pricingRuleId": 301,
"group": "default"
}
}
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "default_pricing_policy_updated" | Machine-readable application code for the result. |
| message | string | "The default pricing policy has been updated" | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.defaultPricingPolicy | object | {…} | Object containing default pricing policy fields. |
| data.defaultPricingPolicy.entranceFeeId | integer | 201 | Identifier of the associated entrance fee. |
| data.defaultPricingPolicy.pricingRuleId | integer | 301 | Identifier of the associated pricing rule. |
| data.defaultPricingPolicy.group | string | "default" | The group value. |
URSSAF Minimum Amount
When a pricing rule has isUrssafEnabled set to true, order verification applies a minimum URSSAF employer contribution amount to eligible orders. The endpoints below expose the URSSAF minimum configuration in read-only mode. They do not require authentication.
GET/minimum_urssaf/currentGet Current URSSAF Minimum Amount
Returns the URSSAF minimum amount currently in effect: the most recent configuration of the current calendar year whose start validity date is in the past. This is the value applied during order verification when the customer's pricing rule has isUrssafEnabled set to true. No authentication is required.
Response
{
"status": 200,
"code": "minimum_urssaf_success",
"message": "minimum urssaf current value",
"data": {
"minimumUrssafConfigId": 3,
"amount": 253,
"startValidityDate": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z",
"version": "5f2a9c1e8b7d4a3f6e0c2b1a9d8e7f60"
}
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "minimum_urssaf_success" | Machine-readable application code for the result. |
| message | string | "minimum urssaf current value" | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.minimumUrssafConfigId | integer | 3 | Identifier of the associated minimum urssaf config. |
| data.amount | integer | 253 | The amount value. |
| data.startValidityDate | string | "2026-01-01T00:00:00.000Z" | Date or timestamp for start validity. |
| data.updatedAt | string | "2026-01-15T09:30:00.000Z" | Timestamp when this resource was last updated. |
| data.version | string | "5f2a9c1e8b7d4a3f6e0c2b1a9d8e7f60" | The version value. |
GET/minimum_urssaf/{minimumUrssafId}Get URSSAF Minimum Configuration by ID
Returns one historical URSSAF minimum configuration by its numeric identifier. No authentication is required. The data value is null when no configuration has that identifier.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| minimumUrssafId | integer | Yes | URSSAF minimum configuration identifier. |
Response
{
"status": 200,
"code": "minimum_urssaf_success",
"message": "minimum urssaf current value",
"data": {
"minimumUrssafConfigId": 3,
"startValidityDate": "2026-01-01T00:00:00.000Z",
"amount": 253,
"created_at": "2025-12-10T14:00:00.000Z",
"updated_at": "2026-01-15T09:30:00.000Z",
"deleted_at": null,
"version": "5f2a9c1e8b7d4a3f6e0c2b1a9d8e7f60"
}
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "minimum_urssaf_success" | Machine-readable application code for the result. |
| message | string | "minimum urssaf current value" | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.minimumUrssafConfigId | integer | 3 | Identifier of the associated minimum urssaf config. |
| data.startValidityDate | string | "2026-01-01T00:00:00.000Z" | Date or timestamp for start validity. |
| data.amount | integer | 253 | The amount value. |
| data.created_at | string | "2025-12-10T14:00:00.000Z" | Timestamp when this resource was created. |
| data.updated_at | string | "2026-01-15T09:30:00.000Z" | Timestamp when this resource was last updated. |
| data.deleted_at | null | null | Timestamp when this resource was deleted, or null when it is active. |
| data.version | string | "5f2a9c1e8b7d4a3f6e0c2b1a9d8e7f60" | The version value. |
Current Calendar Year Only
The lookup is restricted to the current calendar year (January 1st to December 31st). A configuration from a previous year is never returned: until a configuration has been created for the new year, the endpoint returns data with amount: 0 and startValidityDate set to the current date (without minimumUrssafConfigId or version). Treatamount: 0 as "no minimum applicable", not as an error.
GET/minimum_urssaf/List URSSAF Minimum Configurations
Returns the full history of URSSAF minimum configurations, sorted by start validity date in descending order (most recent first). No authentication is required and no pagination is applied.
Response
{
"status": 200,
"code": "minimum_urssaf_success",
"message": "minimum urssaf current value",
"data": [
{
"minimumUrssafConfigId": 3,
"startValidityDate": "2026-01-01T00:00:00.000Z",
"amount": 253,
"created_at": "2025-12-10T14:00:00.000Z",
"updated_at": "2026-01-15T09:30:00.000Z",
"deleted_at": null,
"version": "5f2a9c1e8b7d4a3f6e0c2b1a9d8e7f60"
},
{
"minimumUrssafConfigId": 2,
"startValidityDate": "2025-01-01T00:00:00.000Z",
"amount": 247,
"created_at": "2024-12-05T10:00:00.000Z",
"updated_at": null,
"deleted_at": null,
"version": "1c3b5a7d9e2f4a6c8b0d1e3f5a7c9b20"
}
]
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "minimum_urssaf_success" | Machine-readable application code for the result. |
| message | string | "minimum urssaf current value" | Human-readable result message. Do not use this value for program logic. |
| data | array | […] | Endpoint-specific response payload. |
| data[] | object | {…} | Endpoint-specific response payload. |
| data[].minimumUrssafConfigId | integer | 3 | Identifier of the associated minimum urssaf config. |
| data[].startValidityDate | string | "2026-01-01T00:00:00.000Z" | Date or timestamp for start validity. |
| data[].amount | integer | 253 | The amount value. |
| data[].created_at | string | "2025-12-10T14:00:00.000Z" | Timestamp when this resource was created. |
| data[].updated_at | string | "2026-01-15T09:30:00.000Z" | Timestamp when this resource was last updated. |
| data[].deleted_at | null | null | Timestamp when this resource was deleted, or null when it is active. |
| data[].version | string | "5f2a9c1e8b7d4a3f6e0c2b1a9d8e7f60" | The version value. |
Do Not Use the First Item as the Current Value
Unlike /minimum_urssaf/current, this list also includes future configurations (with a startValidityDate in the future) and configurations from past years. Do not assume the first element is the value currently in effect - use /minimum_urssaf/current for that. Also note a field naming inconsistency: this list returns timestamps in snake_case (created_at, updated_at, deleted_at) while/minimum_urssaf/current exposes updatedAt in camelCase.
In both endpoints, amount is an integer expressed in cents, and version is an MD5 hash derived from the configuration's last update timestamp and identifier, which can be used as a configuration version marker.