Webhook event
payout.unknown
The outcome could not be established (for example a broadcast timed out). Do not request it again. Reconciliation keeps reading the chain and will send .confirmed or .failed.
- Type
payout.unknown- The object it carries
- the
payoutobject - Subscribe with
payout.unknown,payout.*or*
Example payload
The body of the request your endpoint receives, shown here over several lines. On the wire it is compact JSON; check its signature over the bytes exactly as they arrive.
Example payload
{
"id": "evt_skmf5p8ax5eapa75by7ewb8q",
"object": "event",
"livemode": true,
"created": "2026-10-12T10:12:40.000Z",
"type": "payout.unknown",
"api_version": "2026-10-11",
"data": {
"object": {
"id": "po_351ggq5kz6kxwpfrhp5qh3b0",
"object": "payout",
"livemode": true,
"created": "2026-10-12T09:30:00.000Z",
"updated": "2026-10-12T10:12:40.000Z",
"kind": "payout",
"status": "unknown",
"pending_reason": null,
"batch": null,
"source": {
"wallet": "wal_bsfw07hymawmda7gg8jsyy3g",
"asset": "base:usdc",
"amount": "250.000000"
},
"destination": {
"saved_address": "dst_92jw0br3z1bzkk45ddjqcm6q",
"address": "0xD1220A0cf47c7B9Be7A2E6BA89F429762e7b9aDb",
"network": "base",
"asset": "base:usdc"
},
"delivery": {
"rail": "direct",
"amount_estimated": "250.000000",
"route_fee": null,
"fee_bearer": null
},
"value": {
"amount": "250.00",
"currency": "USD"
},
"description": "October green beans",
"reference": "PO-2210",
"network_fee": null,
"requested_by": {
"type": "api_key",
"id": "key_6e3gg2c6ea176xxdek2nar6v"
},
"approved_by": "mem_ceh1wpzdrpk13cnpcjy9w0fa",
"approval_url": null,
"approval_expires_at": "2026-10-19T09:30:00.000Z",
"transaction_hash": null,
"failure_code": "broadcast_outcome_unknown",
"cancellation_reason": null,
"approved_at": "2026-10-12T10:12:00.000Z",
"sent_at": null,
"confirmed_at": null,
"metadata": {
"supplier_id": "s_19"
}
},
"previous_attributes": {
"status": "signed",
"failure_code": null
}
},
"request": {
"id": null,
"idempotency_key": null
},
"pending_webhooks": 1
}Fields of data.object
| Field | In this example |
|---|---|
id | "po_ |
object | "payout" |
livemode | true |
created | "2026-10-12T09: |
updated | "2026-10-12T10: |
kind | "payout" |
status | "unknown" |
pending_reason | null |
batch | null |
source | An object with wallet, asset, amount |
destination | An object with saved_address, address, network, asset |
delivery | An object with rail, amount_estimated, route_fee, fee_bearer |
value | An object with amount, currency |
description | "October green beans" |
reference | "PO-2210" |
network_fee | null |
requested_by | An object with type, id |
approved_by | "mem_ |
approval_url | null |
approval_expires_at | "2026-10-19T09: |
transaction_hash | null |
failure_code | "broadcast_ |
cancellation_reason | null |
approved_at | "2026-10-12T10: |
sent_at | null |
confirmed_at | null |
metadata | An object with supplier_id |
What each field means is on the page of the payout object. data.previous_attributes holds the old values of exactly the fields that changed: here status, failure_code.
Endpoints behind it
Calls that change payouts. An event is also sent when a payer, the network, a timer or a person in the dashboard causes the change; the sentence above says which.