Notifications

Info

Draft Documentation - This section is currently under review and may be subject to changes.

Notification Center Endpoints

This section displays all available endpoints for the notification center system. The notification center allows players to receive, view, and manage in-app notifications for various events such as bonuses, promotions, and account updates.

Service: go_marketing Routes: Configured in go_gateway

Features

  • Real-time notification delivery via SSE (Server-Sent Events)
  • Retrieve all player notifications or filter for unread only
  • Mark individual or multiple notifications as read
  • 90-day notification retention window
  • Flexible event data structure supporting various notification types

Available Operations

  • GET - Retrieve player notifications (all or unread only)
  • PATCH - Mark notifications as read

Note: POST (creating notifications) is an internal operation only and not exposed via the gateway.

Subsections of Notifications

Get Notifications

Info

Draft Documentation - This section is currently under review and may be subject to changes.

This method retrieves all notifications for a player, with an optional filter for unread notifications only. Notifications are retained for 90 days and returned in descending order (newest first).

Request (GET)

/gateway/notifications/{version}/{brand_id}

Parameters:

Name In Type Required Description
version path string true The API version to use (e.g., “1.0”).
brand_id path int true The ID of the casino brand.
only_unread query boolean false If true, returns only unread notifications. Defaults to false (all).

Headers:

Name Type Required Description
x-auth-token string true Player authentication token.

Response

Status 200

{
  "status": "Success",
  "data": {
    "notifications": [
      {
        "message_id": "a7f8c934-1b2d-4e5f-9c8a-7d6e5f4a3b2c",
        "brand_id": 1001,
        "player_id": 12345,
        "event": "bonus_granted",
        "event_details": {
          "bonus_amount": 100,
          "bonus_type": "welcome",
          "currency": "USD"
        },
        "is_read": false,
        "time": "2025-10-22 14:30:45"
      },
      {
        "message_id": "b8e9d045-2c3e-5f6g-0d9b-8e7f6g5b4c3d",
        "brand_id": 1001,
        "player_id": 12345,
        "event": "promotion_available",
        "event_details": {
          "promo_id": "PROMO123",
          "expires_at": "2025-11-15",
          "conditions": {
            "min_bet": 100,
            "multiplier": 3
          }
        },
        "is_read": true,
        "time": "2025-10-21 10:15:30"
      }
    ],
    "total_count": 2
  }
}

Response Parameters:

Name Type Description
notifications array Array of notification objects.
notifications.message_id string Unique notification identifier (UUID).
notifications.brand_id int Brand identifier.
notifications.player_id int Player identifier.
notifications.event string Event type (e.g., “bonus_granted”, “promotion_available”).
notifications.event_details object Event-specific data (flexible JSON object).
notifications.is_read boolean Whether the notification has been read.
notifications.time string Notification timestamp in format “YYYY-MM-DD HH:MM:SS”.
total_count int Total number of notifications returned.

Example: Get Unread Notifications Only

Request:

GET /notifications/1.0/1001/12345?only_unread=true
x-auth-token: e74af034-a346-4d5c-be97-f7ed83f373a7

Response:

{
  "status": "Success",
  "data": {
    "notifications": [
      {
        "message_id": "a7f8c934-1b2d-4e5f-9c8a-7d6e5f4a3b2c",
        "brand_id": 1001,
        "player_id": 12345,
        "event": "bonus_granted",
        "event_details": {
          "bonus_amount": 100,
          "bonus_type": "welcome"
        },
        "is_read": false,
        "time": "2025-10-22 14:30:45"
      }
    ],
    "total_count": 1
  }
}

Status 401

{
  "status": "error",
  "message": "Unauthorized - Invalid or missing authentication token"
}

Status 500

{
  "status": "error",
  "message": "Internal server error"
}

Notes

  • Notifications are automatically deleted after 90 days.
  • Results are ordered by time in descending order (newest first).
  • The event_details field is flexible and can contain any event-specific data as a JSON object.
  • Common event types include: bonus_granted, promotion_available, deposit_success, kyc_approved, account_update.

Mark Notifications as Read

Info

Draft Documentation - This section is currently under review and may be subject to changes.

This method marks one or more notifications as read for a player. Multiple notifications can be updated in a single request by providing an array of message IDs.

Request (PATCH)

/gateway/notifications/{version}/{brand_id}

{
  "message_ids": [
    "a7f8c934-1b2d-4e5f-9c8a-7d6e5f4a3b2c",
    "b8e9d045-2c3e-5f6g-0d9b-8e7f6g5b4c3d",
    "c9f0e156-3d4f-6g7h-1e0c-9f8g7h6c5d4e"
  ]
}

Parameters:

Name In Type Required Description
version path string true The API version to use (e.g., “1.0”).
brand_id path int true The ID of the casino brand.
message_ids body array true Array of notification message IDs (UUIDs) to mark as read.

Headers:

Name Type Required Description
x-auth-token string true Player authentication token.

Response

Status 200

{
  "status": "Success",
  "data": {
    "message": "notification was successfully updated"
  }
}

Response Parameters:

Name Type Description
status string Operation status (“Success”).
message string Confirmation message.

Example: Mark Single Notification as Read

Request:

{
  "message_ids": [
    "a7f8c934-1b2d-4e5f-9c8a-7d6e5f4a3b2c"
  ]
}

Response:

{
  "status": "Success",
  "data": {
    "message": "notification was successfully updated"
  }
}

Example: Mark Multiple Notifications as Read

Request:

{
  "message_ids": [
    "a7f8c934-1b2d-4e5f-9c8a-7d6e5f4a3b2c",
    "b8e9d045-2c3e-5f6g-0d9b-8e7f6g5b4c3d",
    "c9f0e156-3d4f-6g7h-1e0c-9f8g7h6c5d4e"
  ]
}

Response:

{
  "status": "Success",
  "data": {
    "message": "notification was successfully updated"
  }
}

Status 400

{
  "status": "error",
  "message": "Bad Request - Invalid request body or missing message_ids"
}

Status 401

{
  "status": "error",
  "message": "Unauthorized - Invalid or missing authentication token"
}

Status 500

{
  "status": "error",
  "message": "Internal server error"
}

Notes

  • This operation updates the is_read flag to true and sets the update_time to the current timestamp.
  • Marking an already-read notification as read again has no effect (idempotent operation).
  • The operation uses a database transaction with rollback handling to ensure data integrity.
  • Non-existent message IDs in the array are silently ignored.
  • Empty message_ids array will return a 400 error.