TANITARDevelopers
WebhooksEvent catalogGamification

gamification.battle-pass.tier-claimed

Version 1 of the gamification.battle-pass.tier-claimed webhook event.

A player claimed a tier reward on one track of the active season. Published once the reward settled: xp and chest settle inside the claim transaction, a badge through the badge intent, and a currency reward when Reward Management applied (settled) or refused (rejected) its grant — a rejected or timed-out claim releases the tier, and the next claim is a new attempt with its own grant identity. (seasonId, playerId, tier, track, attempt) is the claim identity.

Event typegamification.battle-pass.tier-claimed
Schema version1
Routing keyevent.gamification.battle-pass.tier-claimed.v1
Produced byGamification
Schemaurn:defendr:contract:gamification:battle-pass-tier-claimed:1

data fields

FieldTypeRequiredDescription
accountIdstringyes
playerIdstringyes
seasonIdstringyes
tierintegeryes
track"free", "premium"yes
attemptintegeryes
rewardobjectyes
reward.rewardType"xp", "currency", "chest", "badge"yes
reward.amountinteger or nullyes
reward.keystring or nullyes
reward.settlement"settled", "rejected"yes
claimedAtstring (date-time)yes

Some fields are required only in particular states. The JSON Schema below is authoritative.

Example delivery

Signed with the example secret whsec_placeholder_example_webhooks_signing_secret, so you can check your verifier against it. See Verifying signatures.

POST /your/webhook/endpoint HTTP/1.1
content-type: application/json
webhook-id: whd_00000000-0000-4000-8000-000000000015
webhook-timestamp: 1800000000
webhook-signature: v1,AegN1UT9tRnHnlte4v9EvMZrCdQwsAPHTtFDpOKzCx0=
tanitar-event-type: gamification.battle-pass.tier-claimed
tanitar-schema-version: 1
tanitar-delivery-attempt: 1

{"messageId":"evt_00000000-0000-4000-8000-000000000015","kind":"event","type":"gamification.battle-pass.tier-claimed","schemaVersion":1,"occurredAt":"2027-01-15T10:00:00.000Z","producer":"gamification-service","accountId":"acc_11111111-1111-4111-8111-111111111111","correlationId":"corr_00000000-0000-4000-8000-000000000015","data":{"accountId":"acct_demo","playerId":"player_demo","seasonId":"66e0a1b2c3d4e5f6a7b8c9d1","tier":2,"track":"free","attempt":1,"reward":{"rewardType":"currency","amount":50,"key":"red","settlement":"settled"},"claimedAt":"2026-09-11T00:00:00.000Z"}}

The same body, formatted:

{
  "messageId": "evt_00000000-0000-4000-8000-000000000015",
  "kind": "event",
  "type": "gamification.battle-pass.tier-claimed",
  "schemaVersion": 1,
  "occurredAt": "2027-01-15T10:00:00.000Z",
  "producer": "gamification-service",
  "accountId": "acc_11111111-1111-4111-8111-111111111111",
  "correlationId": "corr_00000000-0000-4000-8000-000000000015",
  "data": {
    "accountId": "acct_demo",
    "playerId": "player_demo",
    "seasonId": "66e0a1b2c3d4e5f6a7b8c9d1",
    "tier": 2,
    "track": "free",
    "attempt": 1,
    "reward": {
      "rewardType": "currency",
      "amount": 50,
      "key": "red",
      "settlement": "settled"
    },
    "claimedAt": "2026-09-11T00:00:00.000Z"
  }
}

JSON Schema

urn:defendr:contract:gamification:battle-pass-tier-claimed:1
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:defendr:contract:gamification:battle-pass-tier-claimed:1",
  "title": "Gamification battle pass tier claimed event payload",
  "description": "A player claimed a tier reward on one track of the active season. Published once the reward settled: `xp` and `chest` settle inside the claim transaction, a `badge` through the badge intent, and a `currency` reward when Reward Management applied (`settled`) or refused (`rejected`) its grant — a rejected or timed-out claim releases the tier, and the next claim is a new `attempt` with its own grant identity. `(seasonId, playerId, tier, track, attempt)` is the claim identity.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "accountId",
    "playerId",
    "seasonId",
    "tier",
    "track",
    "attempt",
    "reward",
    "claimedAt"
  ],
  "properties": {
    "accountId": {
      "type": "string",
      "minLength": 1
    },
    "playerId": {
      "type": "string",
      "minLength": 1
    },
    "seasonId": {
      "type": "string",
      "minLength": 1
    },
    "tier": {
      "type": "integer",
      "minimum": 1
    },
    "track": {
      "enum": [
        "free",
        "premium"
      ]
    },
    "attempt": {
      "type": "integer",
      "minimum": 1
    },
    "reward": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "rewardType",
        "amount",
        "key",
        "settlement"
      ],
      "properties": {
        "rewardType": {
          "enum": [
            "xp",
            "currency",
            "chest",
            "badge"
          ]
        },
        "amount": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 1
        },
        "key": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1
        },
        "settlement": {
          "enum": [
            "settled",
            "rejected"
          ]
        }
      }
    },
    "claimedAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}

On this page