Webhook events
payout.account_required
Sent when a scheduled run creates no payout for a partner because the schedule waits for a Stripe account and the partner has none. Sent once per wait: later runs that skip the same partner send nothing until the partner is paid or has nothing payable at a run. The amounts are what the run would have paid. The rewards stay payable and roll over.
Example payload
This illustrative payload follows the current event validator. Amounts use minor units.
json
{
"id": "00000000-0000-4000-8000-000000000001",
"companyId": "company-example",
"type": "payout.account_required",
"data": {
"partnerId": "partner-example",
"partnerExternalId": "merchant-partner-001",
"currency": "CAD",
"amountCents": 500,
"nettedDebtCents": 500,
"netAmountCents": 500,
"integrationId": "integrationId-example",
"schedule": {
"dueOn": "2026-10-11",
"approvedBefore": "2026-10-11T12:00:00.000Z"
}
},
"createdAt": "2026-10-11T12:00:00.000Z"
}Payload fields
| Field | Type | Required | Details |
|---|---|---|---|
partnerId | string | Yes | |
partnerExternalId | string | Yes | |
currency | "CAD", "USD", "EUR", "GBP" | Yes | |
amountCents | integer | Yes | minimum 0. maximum 1000000000000 |
nettedDebtCents | integer | Yes | minimum 0. maximum 1000000000000 |
netAmountCents | integer | Yes | minimum 0. maximum 1000000000000 |
integrationId | string | Yes | |
schedule | object | Yes |
schedule
| Field | Type | Required | Details |
|---|---|---|---|
schedule.dueOn | string | Yes | |
schedule.approvedBefore | string | Yes | date-time |
Payload schema
json
{
"type": "object",
"properties": {
"partnerId": {
"type": "string",
"minLength": 1
},
"partnerExternalId": {
"type": "string",
"minLength": 1
},
"currency": {
"type": "string",
"enum": [
"CAD",
"USD",
"EUR",
"GBP"
]
},
"amountCents": {
"type": "integer",
"minimum": 0,
"maximum": 1000000000000
},
"nettedDebtCents": {
"type": "integer",
"minimum": 0,
"maximum": 1000000000000
},
"netAmountCents": {
"type": "integer",
"minimum": 0,
"maximum": 1000000000000
},
"integrationId": {
"type": "string",
"minLength": 1
},
"schedule": {
"type": "object",
"properties": {
"dueOn": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"approvedBefore": {
"type": "string",
"format": "date-time"
}
},
"required": [
"dueOn",
"approvedBefore"
],
"additionalProperties": true
}
},
"required": [
"partnerId",
"partnerExternalId",
"currency",
"amountCents",
"nettedDebtCents",
"netAmountCents",
"integrationId",
"schedule"
],
"additionalProperties": true
}Handle delivery
Verify the signature over the raw body before parsing JSON. Check that the body ID matches Grizzlee-Event-Id. Process each ID once, since delivery can repeat.