openapi: 3.2.0 info: title: Zoca Platform Scheduling - Booking Rules API description: 'The Zoca platform API behind the Zoca web app and mobile apps: scheduling, website generation, Google Business Profile, discovery/local SEO, social media, booking enquiries, offers, clients, staff, billing and the Zoca "brain" agent layer.' version: 3.20.10 contact: {} x-apievangelist-note: Harvested verbatim from https://api.zoca.ai/swagger.json. The provider ships the default NestJS Swagger metadata (title "API Documentation", empty servers[]); title/description/servers were set by API Evangelist for identification and the unmodified original is preserved at openapi/_original/zoca-platform-swagger.json. Every path, operation, summary, parameter and response is exactly as published. servers: - url: https://api.zoca.ai description: Production tags: - name: Scheduling - Booking Rules paths: /scheduling/booking-rules: post: operationId: t_value parameters: [] responses: '201': description: Booking rule created content: application/json: schema: $ref: '#/components/schemas/e' summary: Create a new booking rule tags: - Scheduling - Booking Rules get: operationId: t_value parameters: [] responses: '200': description: List of booking rules content: application/json: schema: type: array items: $ref: '#/components/schemas/e' summary: List all booking rules tags: - Scheduling - Booking Rules /scheduling/booking-rules/{id}: get: operationId: t_value parameters: - name: id required: true in: path description: Booking rule ID schema: {} responses: '200': description: Booking rule found content: application/json: schema: $ref: '#/components/schemas/e' '404': description: Booking rule not found summary: Get a booking rule by ID tags: - Scheduling - Booking Rules put: operationId: t_value parameters: - name: id required: true in: path description: Booking rule ID schema: {} responses: '200': description: Booking rule updated content: application/json: schema: $ref: '#/components/schemas/e' '404': description: Booking rule not found summary: Update a booking rule tags: - Scheduling - Booking Rules delete: operationId: t_value parameters: - name: id required: true in: path description: Booking rule ID schema: {} responses: '204': description: Booking rule deleted '404': description: Booking rule not found summary: Delete a booking rule (soft delete) tags: - Scheduling - Booking Rules /scheduling/booking-rules/{id}/payment-exemptions: get: operationId: t_value parameters: - name: id required: true in: path description: Booking rule ID schema: {} responses: '200': description: Exemption set for the rule content: application/json: schema: example: exemptClientTypes: - RETURNING exemptClientIds: - 3fa85f64-5717-4562-b3fc-2c963f66afa6 summary: Get F2 payment exemptions for a booking rule (segments + specific clients) tags: - Scheduling - Booking Rules /scheduling/booking-rules/entity/{entityId}: get: operationId: t_value parameters: - name: entityType required: true in: query description: Entity type schema: enum: - BUSINESS - LOCATION - PROVIDER - SERVICE type: string - name: entityId required: true in: path description: Entity ID schema: {} responses: '200': description: List of booking rules content: application/json: schema: type: array items: $ref: '#/components/schemas/e' summary: Get booking rules for an entity tags: - Scheduling - Booking Rules /scheduling/booking-rules/{id}/tax: patch: operationId: t_value parameters: - name: id required: true in: path description: Booking rule ID schema: {} responses: '200': description: Tax status updated content: application/json: schema: $ref: '#/components/schemas/e' '404': description: Booking rule not found summary: Toggle tax enabled status (master switch) tags: - Scheduling - Booking Rules /scheduling/booking-rules/tap-to-pay: patch: operationId: t_value parameters: [] responses: '200': description: Tap to Pay status updated content: application/json: schema: $ref: '#/components/schemas/e' '404': description: No booking rule mapped to location summary: Toggle Tap to Pay for a location entity tags: - Scheduling - Booking Rules /scheduling/booking-rules/{id}/map: post: operationId: t_value parameters: - name: id required: true in: path description: Booking rule ID schema: {} responses: '201': description: Mapping created summary: Map a booking rule to an entity tags: - Scheduling - Booking Rules /scheduling/booking-rules/{id}/map/{entityId}: delete: operationId: t_value parameters: - name: entityType required: true in: query description: Entity type schema: enum: - BUSINESS - LOCATION - PROVIDER - SERVICE type: string - name: entityId required: true in: path description: Entity ID schema: {} - name: id required: true in: path description: Booking rule ID schema: {} responses: '204': description: Mapping removed summary: Remove a booking rule mapping from an entity tags: - Scheduling - Booking Rules /scheduling/booking-rules/{id}/mappings: get: operationId: t_value parameters: - name: id required: true in: path description: Booking rule ID schema: {} responses: '200': description: List of mappings summary: Get all mappings for a booking rule tags: - Scheduling - Booking Rules components: schemas: e: type: object properties: id: type: number entityId: type: string attribute: type: string value: type: - object - 'null' metadata: type: - object - 'null' createdAt: type: - object - 'null' required: - id - entityId - attribute securitySchemes: access-token: scheme: bearer bearerFormat: JWT type: http name: Authorization description: Enter JWT token in the format Bearer in: header