Booking Service API Changes - v1.61.0

Release: v1.61.0 Date: 2026-04-06


Summary

Backward Compatible: YES New Endpoints: 0 Modified Responses: 2 Deprecations: 0

Migration Required: NO - existing API consumers are not affected


Modified Responses

Distinct Event Error Responses

Status: Changed (additive)

Description: The booking API now returns specific HTTP status codes and error codes for different event states. Previously, all non-available events returned a generic HTTP 404 response. The new behavior provides more granular error information for host apps.

Error response format:

{
  "errorCode": "EVENT_ARCHIVED",
  "message": "Event {uuid} is archived"
}

Response mapping:

Scenario HTTP Status Error Code Previous Behavior
Event does not exist 404 Not Found ENTITY_NOT_FOUND 404 (unchanged)
Event is archived 410 Gone EVENT_ARCHIVED 404 (generic)
Event is not published 422 Unprocessable Entity EVENT_NOT_PUBLISHED 422 (unchanged)

New: EventArchivedException – thrown when a request targets an archived event. Returns HTTP 410 with error code EVENT_ARCHIVED.

Impact: LOW – the 404 -> 410 change only affects archived events. Host apps that treated all non-2xx as “event not found” will continue to work. Apps that check specific status codes can now distinguish between missing and archived events.

Example – handling in host app:

try {
  const event = await fetch(`${bookingApiUrl}/event/?id=${eventId}&publicKey=${key}`);
  if (!event.ok) {
    if (event.status === 410) {
      // Event was archived -- show "event ended" message
    } else if (event.status === 404) {
      // Event doesn't exist -- show "not found" message
    } else if (event.status === 422) {
      // Event not published -- show "coming soon" message
    }
  }
} catch (error) {
  // Network error
}

Affected endpoints:

  • GET /event/?id={eventId}&publicKey={key}
  • GET /event/schema/?id={schemaId}&publicKey={key}
  • GET /event/prices/?id={eventId}&publicKey={key}
  • GET /event/schema/rows/?id={eventId}&publicKey={key}

Related Files:

  • pro.seatmap.booking.exception.EventArchivedException – New exception class
  • pro.seatmap.booking.dao.EventRepository – Removed IS_ARCHIVED filter from queries

GA Shape Fill Color (SEAT-829)

Status: New field (additive)

Description: The fill color of GA section shapes is now returned in the booking API response. This allows host apps to render GA section colors in their own UI without loading the full renderer.

New field: sectors[].shapes[].fill (string, hex color code)

Example response:

{
  "sectors": [
    {
      "id": 1,
      "name": "Floor A",
      "isGa": true,
      "shapes": [
        {
          "text": "Floor A",
          "textColor": "#FFFFFF",
          "fill": "#3498db",
          "width": 250,
          "height": 250
        }
      ]
    }
  ]
}

Impact: NONE – the new field is additive. Existing consumers that do not read fill are unaffected.

Use cases:

  • Rendering GA section color swatches in venue pickers
  • Color-coding event cards by section
  • Building section legends in custom UIs

Affected endpoints:

  • GET /event/?id={eventId}&publicKey={key} (schema response)
  • GET /venue/schema/?id={venueId}&publicKey={key} (venue response)

Migration Guide

No API Incompatibilities

All existing API consumers work without modification.

Optional improvements for host apps:

  1. Handle HTTP 410: If your app displays error messages for failed event loads, you can now distinguish archived events (410) from missing events (404) and show appropriate messaging
  2. Use GA fill color: Read sectors[].shapes[].fill to display GA section colors in your UI without loading the renderer


Support

Questions or Issues?