This page details the specific data formats for events sent via our webhook system. For information on configuring endpoints, batching, delivery, and authentication, please see the Webhooks Introduction.
Important Note on Field Omission
Nullable and optional fields are omitted entirely when they have no value, rather than being included with null
values. This means your webhook handling code should check for field presence rather than checking for null
values. For example, a dream without an account will omit the account
field completely rather than setting it to null
.
This will be the general format for all event batches object:
{
"batch_id": "uuid",
"timestamp": "2024-03-21T10:00:00Z",
"count": 3,
"events": [
{
"id": "uuid",
"createdAt": "2024-03-21T10:00:00Z",
"type": "string" ,
"data": { ... }
},
...
]
}
Below are details of each of the possible event types:
- UserCreated
- UserDestroyed
- PageView
- DepositRequested
- DepositSettled
- DepositFailed
- WithdrawalRequested
- WithdrawalSettled
- WithdrawalFailed
- InternalTransferRequested
- InternalTransferSettled
- InternalTransferFailed
- DreamCreated
- DreamUpdated
- DreamDeleted
- DreamAchieved
- SavehackLaunched
- SavehackLaunchUpdated
- DreamMilestone
Below are details of each of the possible event objects sent from DES:
UserCreated / UserDestroyed
Field Name | Field Type | Possible Values |
---|
type | string | User |
id | uuid | |
externalId | string | |
givenName | string | |
familyName | string | |
provisioningInitiatedAt | RFC3339 | |
unreadMessagesCount | integer | |
PageView
Field Name | Field Type | Possible Values |
---|
path | string | |
timestamp | RFC3339 | |
user | object | Field Name | Field Type |
---|
type | string | id | string | externalId | string |
|
DepositRequested / DepositSettled / DepositFailed
Note: Optional fields like toAccount
and toDream
will be omitted entirely when not present, rather than being included with null
values.
Field Name | Field Type | Possible Values |
---|
type | string | Deposit |
id | uuid | |
externalId | string | |
transferConsentId | uuid | |
amountCents | integer | |
state | string | requested, settled, failed |
requestedAt | RFC3339 | |
settledAt | RFC3339 | |
failedAt | RFC3339 | |
user | object | Field Name | Field Type |
---|
type | string | id | string | externalId | string |
|
toAccount | object | Field Name | Field Type |
---|
type | string | id | string | externalId | string |
|
toDream | object | Field Name | Field Type |
---|
id | uuid | targetCents | integer | type | string | expiresAt | RFC3339 | achievedAt | RFC3339 | name | string | balanceCents | integer | deletedAt | RFC3339 | imageUrl | string | activeSavehacksCount | integer | user | object | groupDream | object | account | object | dreamInspiration | object |
|
State Mapping: The state
field maps internal transaction states as follows:
success
→ settled
failed
→ failed
pending
→ pending
created
→ requested
WithdrawalRequested / WithdrawalSettled / WithdrawalFailed
Field Name | Field Type | Possible Values |
---|
type | string | Withdrawal |
id | uuid | |
externalId | string | |
transferConsentId | uuid | |
amountCents | integer | |
state | string | requested, settled, failed |
requestedAt | RFC3339 | |
settledAt | RFC3339 | |
failedAt | RFC3339 | |
user | object | Field Name | Field Type |
---|
type | string | id | string | externalId | string |
|
fromAccount | object | Field Name | Field Type |
---|
type | string | id | string | externalId | string |
|
fromDream | object | Field Name | Field Type |
---|
type | string | id | string | name | string |
|
toAccount | object | Field Name | Field Type |
---|
type | string | id | string | externalId | string |
|
toDream | object | Field Name | Field Type |
---|
id | uuid | targetCents | integer | type | string | expiresAt | RFC3339 | achievedAt | RFC3339 | name | string | balanceCents | integer | deletedAt | RFC3339 | imageUrl | string | activeSavehacksCount | integer | user | object | groupDream | object | account | object | dreamInspiration | object |
|
InternalTransferRequested / InternalTransferSettled / InternalTransferFailed
Field Name | Field Type | Possible Values |
---|
type | string | Internal |
id | uuid | |
externalId | string | |
transferConsentId | uuid | |
amountCents | integer | |
state | string | requested, settled, failed |
requestedAt | RFC3339 | |
settledAt | RFC3339 | |
failedAt | RFC3339 | |
user | object | Field Name | Field Type |
---|
type | string | id | string | externalId | string |
|
fromAccount | object | Field Name | Field Type |
---|
type | string | id | string | externalId | string |
|
fromDream | object | Field Name | Field Type |
---|
type | string | id | string | name | string |
|
toAccount | object | Field Name | Field Type |
---|
type | string | id | string | externalId | string |
|
toDream | object | Field Name | Field Type |
---|
type | string | id | string | name | string |
|
DreamCreated / DreamUpdated / DreamDeleted / DreamAchieved
Note: Optional fields like expiresAt
, achievedAt
, deletedAt
, account
, groupDream
, and dreamInspiration
will be omitted entirely when not present, rather than being included with null
values.
Field Name | Field Type | Possible Values | Notes |
---|
type | string | | |
id | uuid | | |
targetCents | integer | | |
expiresAt | RFC3339 | | |
achievedAt | RFC3339 | | |
deletedAt | RFC3339 | | Only present for DreamDeleted |
name | string | | |
balanceCents | integer | | |
imageUrl | string | | |
activeSavehacksCount | integer | | |
user | object | Field Name | Field Type |
---|
type | string | id | string | externalId | string |
| |
account | object | Field Name | Field Type |
---|
type | string | id | string | externalId | string |
| |
groupDream | object | Field Name | Field Type |
---|
type | string | id | string |
| |
dreamInspiration | object | Field Name | Field Type |
---|
id | uuid | translatedName | object | targetCents | integer | durationSeconds | integer | imageUrl | string | type | string |
| Nullable |
DreamMilestone
Field Name | Field Type | Possible Values |
---|
percentage | integer | 25,50,75,100 |
balanceCents | integer | |
balanceCentsBefore | integer | |
user | object | Field Name | Field Type |
---|
type | string | id | string |
|
dream | object | Field Name | Field Type |
---|
type | string | id | string |
|
toDream | object | Field Name | Field Type |
---|
type | string | id | string |
|
fromDream | object | Field Name | Field Type |
---|
type | string | id | string |
|
SavehackLaunched / SavehackLaunchUpdated
These differ per SavehackLaunch type. The details for each type is as follows:
AutopilotLaunch
Field Name | Field Type | Possible Values |
---|
type | string | AutopilotLaunch |
id | uuid | |
stoppedAt | RFC3339 | |
pausedAt | RFC3339 | |
dream | object | Field Name | Field Type |
---|
type | string | id | string |
|
savehack | object | Field Name | Field Type |
---|
type | string | id | string |
|
dreamInspiration | object | Dream Inspiration object structure (See DreamCreated section for details) |
DailyLaunch
Field Name | Field Type | Possible Values |
---|
type | string | DailyLaunch |
id | uuid | |
stoppedAt | RFC3339 | |
pausedAt | RFC3339 | |
cents | integer | 1 <=> 9223372036854776000 |
dream | object | Field Name | Field Type |
---|
type | string | id | string |
|
savehack | object | Field Name | Field Type |
---|
type | string | id | string |
|
dreamInspiration | object | Dream Inspiration object structure (See DreamCreated section for details) |
WeeklyLaunch / EverestLaunch
Field Name | Field Type | Possible Values |
---|
type | string | WeeklyLaunch / EverestLaunch |
id | uuid | |
stoppedAt | RFC3339 | |
pausedAt | RFC3339 | |
cents | integer | 1 <=> 9223372036854776000 |
dayOfWeek | integer | 0 <=> 6 |
dream | object | Field Name | Field Type |
---|
type | string | id | string |
|
savehack | object | Field Name | Field Type |
---|
type | string | id | string |
|
dreamInspiration | object | Dream Inspiration object structure (See DreamCreated section for details) |
MonthlyLaunch / PercentageLaunch
Field Name | Field Type | Possible Values |
---|
type | string | MonthlyLaunch / PercentageLaunch |
id | uuid | |
stoppedAt | RFC3339 | |
pausedAt | RFC3339 | |
cents | integer | 1 <=> 9223372036854776000 |
dayOfMonth | integer | 1 <=> 31 |
dream | object | Field Name | Field Type |
---|
type | string | id | string |
|
savehack | object | Field Name | Field Type |
---|
type | string | id | string |
|
dreamInspiration | object | Dream Inspiration object structure (See DreamCreated section for details) |
ThiefLaunch
Field Name | Field Type | Possible Values |
---|
type | string | ThiefLaunch |
id | uuid | |
stoppedAt | RFC3339 | |
pausedAt | RFC3339 | |
minCents | integer | >= 1 |
maxCents | integer | <= 9223372036854776000 |
dream | object | Field Name | Field Type |
---|
type | string | id | string |
|
savehack | object | Field Name | Field Type |
---|
type | string | id | string |
|
dreamInspiration | object | Dream Inspiration object structure (See DreamCreated section for details) |
RocketLaunch / OneTimeLaunch / RouletteLaunch / MoonstruckLaunch / CalendarChaosLaunch / CopycatLaunch / EurocupLaunch
Field Name | Field Type | Possible Values |
---|
type | string | RocketLaunch / OneTimeLaunch / RouletteLaunch / MoonstruckLaunch / CalendarChaosLaunch / CopycatLaunch / EurocupLaunch |
id | uuid | |
stoppedAt | RFC3339 | |
pausedAt | RFC3339 | |
cents | integer | 1 <=> 9223372036854776000 |
dream | object | Field Name | Field Type |
---|
type | string | id | string |
|
savehack | object | Field Name | Field Type |
---|
type | string | id | string |
|
dreamInspiration | object | Dream Inspiration object structure (See DreamCreated section for details) |
SaveLeagueLaunch
Field Name | Field Type | Possible Values |
---|
type | string | SaveLeagueLaunch |
id | uuid | |
stoppedAt | RFC3339 | |
pausedAt | RFC3339 | |
cents | integer | 1 <=> 9223372036854776000 |
reference | string | |
dream | object | Field Name | Field Type |
---|
type | string | id | string |
|
savehack | object | Field Name | Field Type |
---|
type | string | id | string |
|
dreamInspiration | object | Dream Inspiration object structure (See DreamCreated section for details) |