TANITARDevelopers
WebhooksEvent catalogRewards

reward.payout-settled

Version 1 of the reward.payout-settled webhook event.

The reward.payout-settled event.

Event typereward.payout-settled
Schema version1
Routing keyevent.reward.payout-settled.v1
Produced byReward Management
Schemaurn:defendr:contract:reward:payout-settled:1

data fields

FieldTypeRequiredDescription
payoutIdstringyes
awardIdstringyes
playerIdstringyes
provider"stripe"yes
outcome"settled", "failed", "reversed"yes
currencystringyes
amountMinorintegeryes
transferIdstring or nullyes
failureCodestring or nullyes
settledAtstring (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-000000000025
webhook-timestamp: 1800000000
webhook-signature: v1,q8rGHyHFgOetKQqoAZ9QHbRG8cT0wgMQxK0L7ab1knc=
tanitar-event-type: reward.payout-settled
tanitar-schema-version: 1
tanitar-delivery-attempt: 1

{"messageId":"evt_00000000-0000-4000-8000-000000000025","kind":"event","type":"reward.payout-settled","schemaVersion":1,"occurredAt":"2027-01-15T10:00:00.000Z","producer":"reward-management-service","accountId":"acc_11111111-1111-4111-8111-111111111111","correlationId":"corr_00000000-0000-4000-8000-000000000025","data":{"payoutId":"pay_0123456789abcdef0123456789abcdef","awardId":"awd_prize","playerId":"player_1","provider":"stripe","outcome":"settled","currency":"usd","amountMinor":5000,"transferId":"tr_test","failureCode":null,"settledAt":"2026-09-19T12:00:00.000Z"}}

The same body, formatted:

{
  "messageId": "evt_00000000-0000-4000-8000-000000000025",
  "kind": "event",
  "type": "reward.payout-settled",
  "schemaVersion": 1,
  "occurredAt": "2027-01-15T10:00:00.000Z",
  "producer": "reward-management-service",
  "accountId": "acc_11111111-1111-4111-8111-111111111111",
  "correlationId": "corr_00000000-0000-4000-8000-000000000025",
  "data": {
    "payoutId": "pay_0123456789abcdef0123456789abcdef",
    "awardId": "awd_prize",
    "playerId": "player_1",
    "provider": "stripe",
    "outcome": "settled",
    "currency": "usd",
    "amountMinor": 5000,
    "transferId": "tr_test",
    "failureCode": null,
    "settledAt": "2026-09-19T12:00:00.000Z"
  }
}

JSON Schema

urn:defendr:contract:reward:payout-settled:1
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:defendr:contract:reward:payout-settled:1",
  "title": "Reward payout settled",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "payoutId",
    "awardId",
    "playerId",
    "provider",
    "outcome",
    "currency",
    "amountMinor",
    "transferId",
    "failureCode",
    "settledAt"
  ],
  "properties": {
    "payoutId": {
      "type": "string",
      "pattern": "^pay_[a-f0-9]{32}$"
    },
    "awardId": {
      "type": "string"
    },
    "playerId": {
      "type": "string"
    },
    "provider": {
      "const": "stripe"
    },
    "outcome": {
      "enum": [
        "settled",
        "failed",
        "reversed"
      ]
    },
    "currency": {
      "type": "string",
      "pattern": "^[a-z]{3}$"
    },
    "amountMinor": {
      "type": "integer",
      "minimum": 1
    },
    "transferId": {
      "type": [
        "string",
        "null"
      ]
    },
    "failureCode": {
      "type": [
        "string",
        "null"
      ]
    },
    "settledAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}

On this page