WebhooksEvent catalogRewards
reward.payout-settled
Version 1 of the reward.payout-settled webhook event.
The reward.payout-settled event.
| Event type | reward.payout-settled |
| Schema version | 1 |
| Routing key | event.reward.payout-settled.v1 |
| Produced by | Reward Management |
| Schema | urn:defendr:contract:reward:payout-settled:1 |
data fields
| Field | Type | Required | Description |
|---|---|---|---|
payoutId | string | yes | |
awardId | string | yes | |
playerId | string | yes | |
provider | "stripe" | yes | |
outcome | "settled", "failed", "reversed" | yes | |
currency | string | yes | |
amountMinor | integer | yes | |
transferId | string or null | yes | |
failureCode | string or null | yes | |
settledAt | string (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"
}
}
}