Error
A valid request URL is required to generate request examples{
"id": "group-default",
"name": "Règles du réseau",
"description": "Le jeu appliqué à tout plan qui n'en nomme pas d'autre.",
"isDefault": true,
"ruleIds": [
"rule-exchange-ratio",
"rule-plan-cap"
],
"version": 1
}{
"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
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}Settings
Create a ruleset
Creates a named set of rules. ruleIds may be empty — a ruleset a merchant is still assembling is a legitimate state. Creating one with isDefault: true DEMOTES the current default in the same step rather than being refused: « the default is this one now » is what the operator meant, and refusing would leave them to unset the old one by hand and race themselves. Exactly one default exists at any moment, enforced by a unique index and not by application code.
POST
/
v1
/
rules
/
groups
Error
A valid request URL is required to generate request examples{
"id": "group-default",
"name": "Règles du réseau",
"description": "Le jeu appliqué à tout plan qui n'en nomme pas d'autre.",
"isDefault": true,
"ruleIds": [
"rule-exchange-ratio",
"rule-plan-cap"
],
"version": 1
}{
"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
}
}{
"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.
Body
application/json
Response
The ruleset as persisted, at version 1.
The ruleset as persisted, at version 1.

