{"openapi": "3.1.0", "info": {"title": "Dollea UCP booking service", "version": "2026-10-09"}, "servers": [{"url": "https://www.dollea.de/ucp/v1/bookings"}], "paths": {"/salon/price": {"post": {"operationId": "salon_price", "security": [], "parameters": [{"name": "UCP-Agent", "in": "header", "required": true, "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"service_ids": {"type": "array", "items": {"type": "integer", "minimum": 1}, "minItems": 1, "maxItems": 12, "uniqueItems": true}, "start_at": {"type": "string", "format": "date-time"}, "staff_id": {"type": "integer", "minimum": 1}, "customer": {"type": "object", "properties": {"first_name": {"type": "string", "minLength": 1, "maxLength": 100}, "last_name": {"type": "string", "minLength": 1, "maxLength": 100}, "email": {"type": "string", "format": "email", "maxLength": 254}, "phone": {"type": "string", "minLength": 6, "maxLength": 50}}, "required": ["email", "phone"], "additionalProperties": false}, "promo_code": {"type": "string", "maxLength": 64}, "language": {"type": "string", "enum": ["de", "en", "ru"], "default": "de"}}, "required": ["service_ids", "start_at"], "additionalProperties": false}}}}, "responses": {"200": {"description": "Current booking state", "content": {"application/json": {"schema": {"type": "object", "properties": {"ucp": {"type": "object"}, "booking": {"type": "object", "properties": {"contract_version": {"type": "string"}, "business": {"type": "string", "enum": ["salon", "coworking"]}, "language": {"type": "string", "enum": ["de", "en", "ru"]}, "timezone": {"type": "string"}, "local_date": {"type": "string", "format": "date"}, "slot": {"type": "object"}, "pricing": {"type": "object"}, "subtotal": {"type": ["object", "null"], "properties": {"amount_cents": {"type": "integer", "minimum": 0}, "amount": {"type": "string", "pattern": "^[0-9]+\\.[0-9]{2}$"}, "currency": {"type": "string", "const": "EUR"}, "display": {"type": "string"}}, "required": ["amount_cents", "amount", "currency", "display"]}, "discount": {"type": ["object", "null"], "properties": {"amount_cents": {"type": "integer", "minimum": 0}, "amount": {"type": "string", "pattern": "^[0-9]+\\.[0-9]{2}$"}, "currency": {"type": "string", "const": "EUR"}, "display": {"type": "string"}}, "required": ["amount_cents", "amount", "currency", "display"]}, "total": {"type": ["object", "null"], "properties": {"amount_cents": {"type": "integer", "minimum": 0}, "amount": {"type": "string", "pattern": "^[0-9]+\\.[0-9]{2}$"}, "currency": {"type": "string", "const": "EUR"}, "display": {"type": "string"}}, "required": ["amount_cents", "amount", "currency", "display"]}}, "required": ["contract_version", "business", "language", "timezone", "local_date", "slot", "pricing", "subtotal", "discount", "total"], "additionalProperties": true}}, "required": ["ucp", "booking"]}}}}, "400": {"description": "Input or consent required"}, "401": {"description": "Authentication required"}, "403": {"description": "Insufficient permissions"}, "409": {"description": "Price or availability changed"}}}}, "/salon/prepare": {"post": {"operationId": "salon_prepare_booking", "security": [{"oauth2": ["salon:book"]}], "parameters": [{"name": "UCP-Agent", "in": "header", "required": true, "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"service_ids": {"type": "array", "items": {"type": "integer", "minimum": 1}, "minItems": 1, "maxItems": 12, "uniqueItems": true}, "start_at": {"type": "string", "format": "date-time"}, "staff_id": {"type": "integer", "minimum": 1}, "customer": {"type": "object", "properties": {"first_name": {"type": "string", "minLength": 1, "maxLength": 100}, "last_name": {"type": "string", "minLength": 1, "maxLength": 100}, "email": {"type": "string", "format": "email", "maxLength": 254}, "phone": {"type": "string", "minLength": 6, "maxLength": 50}}, "required": ["first_name", "last_name", "email", "phone"], "additionalProperties": false}, "promo_code": {"type": "string", "maxLength": 64}, "language": {"type": "string", "enum": ["de", "en", "ru"], "default": "de"}}, "required": ["service_ids", "start_at", "customer"], "additionalProperties": false}}}}, "responses": {"200": {"description": "Current booking state", "content": {"application/json": {"schema": {"type": "object", "properties": {"ucp": {"type": "object"}, "booking": {"type": "object", "properties": {"contract_version": {"type": "string"}, "business": {"type": "string", "enum": ["salon", "coworking"]}, "language": {"type": "string", "enum": ["de", "en", "ru"]}, "timezone": {"type": "string"}, "local_date": {"type": "string", "format": "date"}, "quote_id": {"type": "string", "format": "uuid"}, "status": {"type": "string"}, "expires_at": {"type": "string", "format": "date-time"}, "offer": {"type": "object"}, "requires_confirmation": {"type": "boolean"}}, "required": ["contract_version", "business", "language", "timezone", "local_date", "quote_id", "status", "expires_at", "offer", "requires_confirmation"], "additionalProperties": true}}, "required": ["ucp", "booking"]}}}}, "400": {"description": "Input or consent required"}, "401": {"description": "Authentication required"}, "403": {"description": "Insufficient permissions"}, "409": {"description": "Price or availability changed"}}}}, "/salon/quote": {"post": {"operationId": "salon_get_quote", "security": [{"oauth2": ["salon:read"]}], "parameters": [{"name": "UCP-Agent", "in": "header", "required": true, "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"quote_id": {"type": "string", "format": "uuid"}, "quote_token": {"type": "string", "minLength": 32, "maxLength": 128}, "language": {"type": "string", "enum": ["de", "en", "ru"], "default": "de"}}, "required": ["quote_id", "quote_token"], "additionalProperties": false}}}}, "responses": {"200": {"description": "Current booking state", "content": {"application/json": {"schema": {"type": "object", "properties": {"ucp": {"type": "object"}, "booking": {"type": "object", "properties": {"contract_version": {"type": "string"}, "business": {"type": "string", "enum": ["salon", "coworking"]}, "language": {"type": "string", "enum": ["de", "en", "ru"]}, "timezone": {"type": "string"}, "local_date": {"type": "string", "format": "date"}, "quote_id": {"type": "string", "format": "uuid"}, "status": {"type": "string"}, "expires_at": {"type": "string", "format": "date-time"}, "offer": {"type": "object"}, "requires_confirmation": {"type": "boolean"}}, "required": ["contract_version", "business", "language", "timezone", "local_date", "quote_id", "status", "expires_at", "offer", "requires_confirmation"], "additionalProperties": true}}, "required": ["ucp", "booking"]}}}}, "400": {"description": "Input or consent required"}, "401": {"description": "Authentication required"}, "403": {"description": "Insufficient permissions"}, "409": {"description": "Price or availability changed"}}}}, "/salon/confirm": {"post": {"operationId": "salon_confirm_booking", "security": [{"oauth2": ["salon:book"]}], "parameters": [{"name": "UCP-Agent", "in": "header", "required": true, "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"quote_id": {"type": "string", "format": "uuid"}, "quote_token": {"type": "string", "minLength": 32, "maxLength": 128}, "accept_privacy": {"type": "boolean", "const": true}, "accept_terms": {"type": "boolean", "const": true}, "accept_cancellation": {"type": "boolean", "const": true}, "confirm_partial_series": {"type": "boolean", "default": false}, "language": {"type": "string", "enum": ["de", "en", "ru"], "default": "de"}}, "required": ["quote_id", "quote_token", "accept_privacy", "accept_cancellation"], "additionalProperties": false}}}}, "responses": {"200": {"description": "Current booking state", "content": {"application/json": {"schema": {"type": "object", "properties": {"ucp": {"type": "object"}, "booking": {"type": "object", "properties": {"contract_version": {"type": "string"}, "business": {"type": "string", "enum": ["salon", "coworking"]}, "language": {"type": "string", "enum": ["de", "en", "ru"]}, "timezone": {"type": "string"}, "local_date": {"type": "string", "format": "date"}, "quote_id": {"type": "string", "format": "uuid"}, "status": {"type": "string", "const": "confirmed"}, "booking": {"type": "object"}}, "required": ["contract_version", "business", "language", "timezone", "local_date", "quote_id", "status", "booking"], "additionalProperties": true}}, "required": ["ucp", "booking"]}}}}, "400": {"description": "Input or consent required"}, "401": {"description": "Authentication required"}, "403": {"description": "Insufficient permissions"}, "409": {"description": "Price or availability changed"}}}}, "/salon/booking": {"post": {"operationId": "salon_get_booking", "security": [{"oauth2": ["salon:read"]}], "parameters": [{"name": "UCP-Agent", "in": "header", "required": true, "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"booking_token": {"type": "string", "minLength": 16, "maxLength": 128}, "language": {"type": "string", "enum": ["de", "en", "ru"], "default": "de"}}, "required": ["booking_token"], "additionalProperties": false}}}}, "responses": {"200": {"description": "Current booking state", "content": {"application/json": {"schema": {"type": "object", "properties": {"ucp": {"type": "object"}, "booking": {"type": "object", "properties": {"contract_version": {"type": "string"}, "business": {"type": "string", "enum": ["salon", "coworking"]}, "language": {"type": "string", "enum": ["de", "en", "ru"]}, "timezone": {"type": "string"}, "local_date": {"type": "string", "format": "date"}}, "required": ["contract_version", "business", "language", "timezone", "local_date"], "additionalProperties": true}}, "required": ["ucp", "booking"]}}}}, "400": {"description": "Input or consent required"}, "401": {"description": "Authentication required"}, "403": {"description": "Insufficient permissions"}, "409": {"description": "Price or availability changed"}}}}, "/salon/change": {"post": {"operationId": "salon_request_change", "security": [{"oauth2": ["salon:manage"]}], "parameters": [{"name": "UCP-Agent", "in": "header", "required": true, "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"booking_token": {"type": "string", "minLength": 16, "maxLength": 128}, "submission_key": {"type": "string", "format": "uuid"}, "new_start_at": {"type": "string", "format": "date-time"}, "reason": {"type": "string", "maxLength": 2000}, "language": {"type": "string", "enum": ["de", "en", "ru"], "default": "de"}}, "required": ["booking_token", "submission_key", "new_start_at"], "additionalProperties": false}}}}, "responses": {"200": {"description": "Current booking state", "content": {"application/json": {"schema": {"type": "object", "properties": {"ucp": {"type": "object"}, "booking": {"type": "object", "properties": {"contract_version": {"type": "string"}, "business": {"type": "string", "enum": ["salon", "coworking"]}, "language": {"type": "string", "enum": ["de", "en", "ru"]}, "timezone": {"type": "string"}, "local_date": {"type": "string", "format": "date"}}, "required": ["contract_version", "business", "language", "timezone", "local_date"], "additionalProperties": true}}, "required": ["ucp", "booking"]}}}}, "400": {"description": "Input or consent required"}, "401": {"description": "Authentication required"}, "403": {"description": "Insufficient permissions"}, "409": {"description": "Price or availability changed"}}}}, "/salon/cancel": {"post": {"operationId": "salon_request_cancellation", "security": [{"oauth2": ["salon:manage"]}], "parameters": [{"name": "UCP-Agent", "in": "header", "required": true, "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"booking_token": {"type": "string", "minLength": 16, "maxLength": 128}, "submission_key": {"type": "string", "format": "uuid"}, "reason": {"type": "string", "maxLength": 2000}, "language": {"type": "string", "enum": ["de", "en", "ru"], "default": "de"}}, "required": ["booking_token", "submission_key"], "additionalProperties": false}}}}, "responses": {"200": {"description": "Current booking state", "content": {"application/json": {"schema": {"type": "object", "properties": {"ucp": {"type": "object"}, "booking": {"type": "object", "properties": {"contract_version": {"type": "string"}, "business": {"type": "string", "enum": ["salon", "coworking"]}, "language": {"type": "string", "enum": ["de", "en", "ru"]}, "timezone": {"type": "string"}, "local_date": {"type": "string", "format": "date"}}, "required": ["contract_version", "business", "language", "timezone", "local_date"], "additionalProperties": true}}, "required": ["ucp", "booking"]}}}}, "400": {"description": "Input or consent required"}, "401": {"description": "Authentication required"}, "403": {"description": "Insufficient permissions"}, "409": {"description": "Price or availability changed"}}}}, "/coworking/price": {"post": {"operationId": "coworking_price", "security": [{"oauth2": ["coworking:read"]}], "parameters": [{"name": "UCP-Agent", "in": "header", "required": true, "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"workspace_id": {"type": "integer", "minimum": 1}, "dates": {"type": "array", "items": {"type": "string", "format": "date"}, "minItems": 1, "maxItems": 180, "uniqueItems": true}, "language": {"type": "string", "enum": ["de", "en", "ru"], "default": "de"}}, "required": ["workspace_id", "dates"], "additionalProperties": false}}}}, "responses": {"200": {"description": "Current booking state", "content": {"application/json": {"schema": {"type": "object", "properties": {"ucp": {"type": "object"}, "booking": {"type": "object", "properties": {"contract_version": {"type": "string"}, "business": {"type": "string", "enum": ["salon", "coworking"]}, "language": {"type": "string", "enum": ["de", "en", "ru"]}, "timezone": {"type": "string"}, "local_date": {"type": "string", "format": "date"}, "workspace_id": {"type": "integer", "minimum": 1}, "dates": {"type": "array", "items": {"type": "string", "format": "date"}}, "rejected_dates": {"type": "array", "items": {"type": "string", "format": "date"}}, "partial_series": {"type": "boolean"}, "lines": {"type": "array", "items": {"type": "object", "properties": {"date": {"type": "string", "format": "date"}, "price": {"type": ["object", "null"], "properties": {"amount_cents": {"type": "integer", "minimum": 0}, "amount": {"type": "string", "pattern": "^[0-9]+\\.[0-9]{2}$"}, "currency": {"type": "string", "const": "EUR"}, "display": {"type": "string"}}, "required": ["amount_cents", "amount", "currency", "display"]}}, "required": ["date", "price"]}}, "total": {"type": ["object", "null"], "properties": {"amount_cents": {"type": "integer", "minimum": 0}, "amount": {"type": "string", "pattern": "^[0-9]+\\.[0-9]{2}$"}, "currency": {"type": "string", "const": "EUR"}, "display": {"type": "string"}}, "required": ["amount_cents", "amount", "currency", "display"]}, "additional_booking_total": {"type": ["object", "null"], "properties": {"amount_cents": {"type": "integer", "minimum": 0}, "amount": {"type": "string", "pattern": "^[0-9]+\\.[0-9]{2}$"}, "currency": {"type": "string", "const": "EUR"}, "display": {"type": "string"}}, "required": ["amount_cents", "amount", "currency", "display"]}, "monthly_agreement": {"type": ["object", "null"], "properties": {"amount_cents": {"type": "integer", "minimum": 0}, "amount": {"type": "string", "pattern": "^[0-9]+\\.[0-9]{2}$"}, "currency": {"type": "string", "const": "EUR"}, "display": {"type": "string"}}, "required": ["amount_cents", "amount", "currency", "display"]}, "billing_mode": {"type": "string", "enum": ["per_day", "monthly_agreement"]}, "existing_price_changes": {"type": "array", "items": {"type": "object"}}}, "required": ["contract_version", "business", "language", "timezone", "local_date", "workspace_id", "dates", "rejected_dates", "partial_series", "lines", "total", "additional_booking_total", "monthly_agreement", "billing_mode", "existing_price_changes"], "additionalProperties": true}}, "required": ["ucp", "booking"]}}}}, "400": {"description": "Input or consent required"}, "401": {"description": "Authentication required"}, "403": {"description": "Insufficient permissions"}, "409": {"description": "Price or availability changed"}}}}, "/coworking/prepare": {"post": {"operationId": "coworking_prepare_booking", "security": [{"oauth2": ["coworking:book"]}], "parameters": [{"name": "UCP-Agent", "in": "header", "required": true, "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"workspace_id": {"type": "integer", "minimum": 1}, "dates": {"type": "array", "items": {"type": "string", "format": "date"}, "minItems": 1, "maxItems": 180, "uniqueItems": true}, "recurrence": {"type": "object", "properties": {"rule": {"type": "string", "enum": ["weekly", "monthly"]}, "until": {"type": "string", "format": "date"}}, "required": ["rule", "until"], "additionalProperties": false}, "notes": {"type": "string", "maxLength": 2000}, "language": {"type": "string", "enum": ["de", "en", "ru"], "default": "de"}}, "required": ["workspace_id", "dates"], "additionalProperties": false}}}}, "responses": {"200": {"description": "Current booking state", "content": {"application/json": {"schema": {"type": "object", "properties": {"ucp": {"type": "object"}, "booking": {"type": "object", "properties": {"contract_version": {"type": "string"}, "business": {"type": "string", "enum": ["salon", "coworking"]}, "language": {"type": "string", "enum": ["de", "en", "ru"]}, "timezone": {"type": "string"}, "local_date": {"type": "string", "format": "date"}, "quote_id": {"type": "string", "format": "uuid"}, "status": {"type": "string"}, "expires_at": {"type": "string", "format": "date-time"}, "offer": {"type": "object"}, "requires_confirmation": {"type": "boolean"}}, "required": ["contract_version", "business", "language", "timezone", "local_date", "quote_id", "status", "expires_at", "offer", "requires_confirmation"], "additionalProperties": true}}, "required": ["ucp", "booking"]}}}}, "400": {"description": "Input or consent required"}, "401": {"description": "Authentication required"}, "403": {"description": "Insufficient permissions"}, "409": {"description": "Price or availability changed"}}}}, "/coworking/quote": {"post": {"operationId": "coworking_get_quote", "security": [{"oauth2": ["coworking:read"]}], "parameters": [{"name": "UCP-Agent", "in": "header", "required": true, "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"quote_id": {"type": "string", "format": "uuid"}, "quote_token": {"type": "string", "minLength": 32, "maxLength": 128}, "language": {"type": "string", "enum": ["de", "en", "ru"], "default": "de"}}, "required": ["quote_id", "quote_token"], "additionalProperties": false}}}}, "responses": {"200": {"description": "Current booking state", "content": {"application/json": {"schema": {"type": "object", "properties": {"ucp": {"type": "object"}, "booking": {"type": "object", "properties": {"contract_version": {"type": "string"}, "business": {"type": "string", "enum": ["salon", "coworking"]}, "language": {"type": "string", "enum": ["de", "en", "ru"]}, "timezone": {"type": "string"}, "local_date": {"type": "string", "format": "date"}, "quote_id": {"type": "string", "format": "uuid"}, "status": {"type": "string"}, "expires_at": {"type": "string", "format": "date-time"}, "offer": {"type": "object"}, "requires_confirmation": {"type": "boolean"}}, "required": ["contract_version", "business", "language", "timezone", "local_date", "quote_id", "status", "expires_at", "offer", "requires_confirmation"], "additionalProperties": true}}, "required": ["ucp", "booking"]}}}}, "400": {"description": "Input or consent required"}, "401": {"description": "Authentication required"}, "403": {"description": "Insufficient permissions"}, "409": {"description": "Price or availability changed"}}}}, "/coworking/confirm": {"post": {"operationId": "coworking_confirm_booking", "security": [{"oauth2": ["coworking:book"]}], "parameters": [{"name": "UCP-Agent", "in": "header", "required": true, "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"quote_id": {"type": "string", "format": "uuid"}, "quote_token": {"type": "string", "minLength": 32, "maxLength": 128}, "accept_privacy": {"type": "boolean", "const": true}, "accept_terms": {"type": "boolean", "const": true}, "accept_cancellation": {"type": "boolean", "const": true}, "confirm_partial_series": {"type": "boolean", "default": false}, "language": {"type": "string", "enum": ["de", "en", "ru"], "default": "de"}}, "required": ["quote_id", "quote_token", "accept_privacy", "accept_terms"], "additionalProperties": false}}}}, "responses": {"200": {"description": "Current booking state", "content": {"application/json": {"schema": {"type": "object", "properties": {"ucp": {"type": "object"}, "booking": {"type": "object", "properties": {"contract_version": {"type": "string"}, "business": {"type": "string", "enum": ["salon", "coworking"]}, "language": {"type": "string", "enum": ["de", "en", "ru"]}, "timezone": {"type": "string"}, "local_date": {"type": "string", "format": "date"}, "quote_id": {"type": "string", "format": "uuid"}, "status": {"type": "string", "const": "confirmed"}, "booking": {"type": "object"}}, "required": ["contract_version", "business", "language", "timezone", "local_date", "quote_id", "status", "booking"], "additionalProperties": true}}, "required": ["ucp", "booking"]}}}}, "400": {"description": "Input or consent required"}, "401": {"description": "Authentication required"}, "403": {"description": "Insufficient permissions"}, "409": {"description": "Price or availability changed"}}}}, "/coworking/booking": {"post": {"operationId": "coworking_get_booking", "security": [{"oauth2": ["coworking:read"]}], "parameters": [{"name": "UCP-Agent", "in": "header", "required": true, "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"booking_id": {"type": "integer", "minimum": 1}, "language": {"type": "string", "enum": ["de", "en", "ru"], "default": "de"}}, "required": ["booking_id"], "additionalProperties": false}}}}, "responses": {"200": {"description": "Current booking state", "content": {"application/json": {"schema": {"type": "object", "properties": {"ucp": {"type": "object"}, "booking": {"type": "object", "properties": {"contract_version": {"type": "string"}, "business": {"type": "string", "enum": ["salon", "coworking"]}, "language": {"type": "string", "enum": ["de", "en", "ru"]}, "timezone": {"type": "string"}, "local_date": {"type": "string", "format": "date"}}, "required": ["contract_version", "business", "language", "timezone", "local_date"], "additionalProperties": true}}, "required": ["ucp", "booking"]}}}}, "400": {"description": "Input or consent required"}, "401": {"description": "Authentication required"}, "403": {"description": "Insufficient permissions"}, "409": {"description": "Price or availability changed"}}}}, "/coworking/change": {"post": {"operationId": "coworking_request_change", "security": [{"oauth2": ["coworking:manage"]}], "parameters": [{"name": "UCP-Agent", "in": "header", "required": true, "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"booking_id": {"type": "integer", "minimum": 1}, "submission_key": {"type": "string", "format": "uuid"}, "new_date": {"type": "string", "format": "date"}, "reason": {"type": "string", "minLength": 1, "maxLength": 2000}, "language": {"type": "string", "enum": ["de", "en", "ru"], "default": "de"}}, "required": ["booking_id", "submission_key", "new_date", "reason"], "additionalProperties": false}}}}, "responses": {"200": {"description": "Current booking state", "content": {"application/json": {"schema": {"type": "object", "properties": {"ucp": {"type": "object"}, "booking": {"type": "object", "properties": {"contract_version": {"type": "string"}, "business": {"type": "string", "enum": ["salon", "coworking"]}, "language": {"type": "string", "enum": ["de", "en", "ru"]}, "timezone": {"type": "string"}, "local_date": {"type": "string", "format": "date"}}, "required": ["contract_version", "business", "language", "timezone", "local_date"], "additionalProperties": true}}, "required": ["ucp", "booking"]}}}}, "400": {"description": "Input or consent required"}, "401": {"description": "Authentication required"}, "403": {"description": "Insufficient permissions"}, "409": {"description": "Price or availability changed"}}}}, "/coworking/cancel": {"post": {"operationId": "coworking_request_cancellation", "security": [{"oauth2": ["coworking:manage"]}], "parameters": [{"name": "UCP-Agent", "in": "header", "required": true, "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"booking_id": {"type": "integer", "minimum": 1}, "submission_key": {"type": "string", "format": "uuid"}, "reason": {"type": "string", "minLength": 1, "maxLength": 2000}, "language": {"type": "string", "enum": ["de", "en", "ru"], "default": "de"}}, "required": ["booking_id", "submission_key", "reason"], "additionalProperties": false}}}}, "responses": {"200": {"description": "Current booking state", "content": {"application/json": {"schema": {"type": "object", "properties": {"ucp": {"type": "object"}, "booking": {"type": "object", "properties": {"contract_version": {"type": "string"}, "business": {"type": "string", "enum": ["salon", "coworking"]}, "language": {"type": "string", "enum": ["de", "en", "ru"]}, "timezone": {"type": "string"}, "local_date": {"type": "string", "format": "date"}}, "required": ["contract_version", "business", "language", "timezone", "local_date"], "additionalProperties": true}}, "required": ["ucp", "booking"]}}}}, "400": {"description": "Input or consent required"}, "401": {"description": "Authentication required"}, "403": {"description": "Insufficient permissions"}, "409": {"description": "Price or availability changed"}}}}}, "components": {"securitySchemes": {"oauth2": {"type": "oauth2", "flows": {"authorizationCode": {"authorizationUrl": "https://coworking.dollea.de/agent-auth/authorize/", "tokenUrl": "https://coworking.dollea.de/agent-auth/token/", "scopes": {"salon:read": "Salonleistungen und eigene Termine lesen", "salon:book": "Salontermine buchen", "salon:manage": "Änderung oder Stornierung eigener Salontermine anfragen", "coworking:read": "Eigene Coworking-Preise, Buchungen und Rechnungen lesen", "coworking:book": "Coworking-Ressourcen zu den eigenen Konditionen buchen", "coworking:manage": "Änderung oder Stornierung eigener Coworking-Buchungen anfragen", "staff:read": "Berechtigte eigene Verfügbarkeiten lesen", "staff:write": "Berechtigte eigene Verfügbarkeiten und Blockzeiten verwalten", "account:read": "Eigenes Dollea-Konto und Freigabestatus lesen"}}}}}}}