Context
All payout lifecycle events use payload_type: payout.status_updated. After a successful POST /payouts, events are emitted in the following sequence. The payout_id and idempotency_key are present on every event.
Event Sequence
| # | sub_status | Payout status |
|---|---|---|
| 1 | null (initial) | pending |
| 2 | payor.payor.submitted | pending |
| 3 | payor.payor.approved | pending |
| 3a | payor.payor.rejected | rejected |
| 4 | beneficiary.submitted | pending |
| 5 | beneficiary.approved | pending |
| 5a | beneficiary.pending_approval | pending |
| 5b | beneficiary.rejected | rejected |
| 6 | beneficiary.external_account.submitted | pending |
| 7 | beneficiary.external_account.approved | pending |
| 7a | beneficiary.external_account.rejected | rejected |
| 8 | payment.submitted | pending |
| 9 | payment.posted | pending |
| 10 | payment.settled | completed |
| 10a | payment.failed | failed |
Event payloads
Payout pending (initial)
{
"payout_id": "payout_abc123",
"idempotency_key": "your-idempotency-key",
"status": "pending",
"sub_status": null,
"previous_sub_status": null,
"resources": {
"payor": { "participant_code": "PAYOR1", "payor": { "status": null } },
"beneficiary": { "participant_code": null, "status": null, "external_account": { "external_account_id": null, "status": null } },
"payment": { "payment_id": null, "on_chain_transaction_id": null, "status": null }
},
"timestamp": "2026-05-06T12:01:30Z",
"failure_reason": null
}Ultimate Payor submitted
{
"payout_id": "payout_abc123",
"idempotency_key": "your-idempotency-key",
"status": "pending",
"sub_status": "payor.payor.submitted",
"previous_sub_status": null,
"resources": {
"payor": { "participant_code": "PAYOR1", "payor": { "status": "submitted", "participant_code": "UPAYOR1" } },
"beneficiary": { "participant_code": null, "status": null, "external_account": { "external_account_id": null, "status": null } },
"payment": { "payment_id": null, "on_chain_transaction_id": null, "status": null }
},
"timestamp": "2026-05-06T12:01:30Z",
"failure_reason": null
}Ultimate Payor approved
{
"payout_id": "payout_abc123",
"idempotency_key": "your-idempotency-key",
"status": "pending",
"sub_status": "payor.payor.approved",
"previous_sub_status": "payor.payor.submitted",
"resources": {
"payor": { "participant_code": "PAYOR1", "payor": { "status": "approved", "participant_code": "UPAYOR1" } },
"beneficiary": { "participant_code": null, "status": null, "external_account": { "external_account_id": null, "status": null } },
"payment": { "payment_id": null, "on_chain_transaction_id": null, "status": null }
},
"timestamp": "2026-05-06T12:01:30Z",
"failure_reason": null
}Ultimate Payor rejected
{
"payout_id": "payout_abc123",
"idempotency_key": "your-idempotency-key",
"status": "rejected",
"sub_status": "payor.payor.rejected",
"previous_sub_status": null,
"resources": {
"payor": { "participant_code": "PAYOR1", "payor": { "status": "rejected", "participant_code": "UPAYOR1" } },
"beneficiary": { "participant_code": null, "status": null, "external_account": { "external_account_id": null, "status": null } },
"payment": { "payment_id": null, "on_chain_transaction_id": null, "status": null }
},
"timestamp": "2026-05-06T12:01:30Z",
"failure_reason": null
}Beneficiary submitted
{
"payout_id": "payout_abc123",
"idempotency_key": "your-idempotency-key",
"status": "pending",
"sub_status": "beneficiary.submitted",
"previous_sub_status": "payor.payor.approved",
"resources": {
"payor": { "participant_code": "PAYOR1", "payor": { "status": "approved", "participant_code": "UPAYOR1" } },
"beneficiary": { "participant_code": "BENE1", "status": "submitted", "external_account": { "external_account_id": null, "status": null } },
"payment": { "payment_id": null, "on_chain_transaction_id": null, "status": null }
},
"timestamp": "2026-05-06T12:01:30Z",
"failure_reason": null
}Beneficiary approved
{
"payout_id": "payout_abc123",
"idempotency_key": "your-idempotency-key",
"status": "pending",
"sub_status": "beneficiary.approved",
"previous_sub_status": "beneficiary.submitted",
"resources": {
"payor": { "participant_code": "PAYOR1", "payor": { "status": "approved", "participant_code": "UPAYOR1" } },
"beneficiary": { "participant_code": "BENE1", "status": "approved", "external_account": { "external_account_id": null, "status": null } },
"payment": { "payment_id": null, "on_chain_transaction_id": null, "status": null }
},
"timestamp": "2026-05-06T12:01:30Z",
"failure_reason": null
}Beneficiary pending approval
{
"payout_id": "payout_abc123",
"idempotency_key": "your-idempotency-key",
"status": "pending",
"sub_status": "beneficiary.pending_approval",
"previous_sub_status": "beneficiary.submitted",
"resources": {
"payor": { "participant_code": "PAYOR1", "payor": { "status": "approved", "participant_code": "UPAYOR1" } },
"beneficiary": { "participant_code": "BENE1", "status": "pending_approval", "external_account": { "external_account_id": null, "status": null } },
"payment": { "payment_id": null, "on_chain_transaction_id": null, "status": null }
},
"timestamp": "2026-05-06T12:01:30Z",
"failure_reason": null
}Beneficiary rejected
{
"payout_id": "payout_abc123",
"idempotency_key": "your-idempotency-key",
"status": "rejected",
"sub_status": "beneficiary.rejected",
"previous_sub_status": "beneficiary.pending_approval",
"resources": {
"payor": { "participant_code": "PAYOR1", "payor": { "status": "approved", "participant_code": "UPAYOR1" } },
"beneficiary": { "participant_code": "BENE1", "status": "rejected", "external_account": { "external_account_id": null, "status": null } },
"payment": { "payment_id": null, "on_chain_transaction_id": null, "status": null }
},
"timestamp": "2026-05-06T12:01:30Z",
"failure_reason": null
}Beneficiary external account submitted
{
"payout_id": "payout_abc123",
"idempotency_key": "your-idempotency-key",
"status": "pending",
"sub_status": "beneficiary.external_account.submitted",
"previous_sub_status": "beneficiary.approved",
"resources": {
"payor": { "participant_code": "PAYOR1", "payor": { "status": "approved", "participant_code": "UPAYOR1" } },
"beneficiary": { "participant_code": "BENE1", "status": "approved", "external_account": { "external_account_id": "ea_xyz789", "status": "submitted" } },
"payment": { "payment_id": null, "on_chain_transaction_id": null, "status": null }
},
"timestamp": "2026-05-06T12:01:30Z",
"failure_reason": null
}Beneficiary external account approved
{
"payout_id": "payout_abc123",
"idempotency_key": "your-idempotency-key",
"status": "pending",
"sub_status": "beneficiary.external_account.approved",
"previous_sub_status": "beneficiary.external_account.submitted",
"resources": {
"payor": { "participant_code": "PAYOR1", "payor": { "status": "approved", "participant_code": "UPAYOR1" } },
"beneficiary": { "participant_code": "BENE1", "status": "approved", "external_account": { "external_account_id": "ea_xyz789", "status": "approved" } },
"payment": { "payment_id": null, "on_chain_transaction_id": null, "status": null }
},
"timestamp": "2026-05-06T12:01:30Z",
"failure_reason": null
}Beneficiary external account rejected
{
"payout_id": "payout_abc123",
"idempotency_key": "your-idempotency-key",
"status": "rejected",
"sub_status": "beneficiary.external_account.rejected",
"previous_sub_status": "beneficiary.external_account.submitted",
"resources": {
"payor": { "participant_code": "PAYOR1", "payor": { "status": "approved", "participant_code": "UPAYOR1" } },
"beneficiary": { "participant_code": "BENE1", "status": "approved", "external_account": { "external_account_id": "ea_xyz789", "status": "rejected" } },
"payment": { "payment_id": null, "on_chain_transaction_id": null, "status": null }
},
"timestamp": "2026-05-06T12:01:30Z",
"failure_reason": null
}Payment submitted
{
"payout_id": "payout_abc123",
"idempotency_key": "your-idempotency-key",
"status": "pending",
"sub_status": "payment.submitted",
"previous_sub_status": "beneficiary.external_account.approved",
"resources": {
"payor": { "participant_code": "PAYOR1", "payor": { "participant_code": "UPAYOR1", "status": "approved" } },
"beneficiary": { "participant_code": "BENE1", "status": "approved", "external_account": { "external_account_id": "ea_xyz789", "status": "approved" } },
"payment": {
"payment_id": "pmt_abc123",
"description": "Contractor payout",
"asset": "USDC",
"quoted_asset": "USD",
"total": "100.00",
"status": "submitted",
"network": "SOL",
"payment_details": {
"withdrawal_request_id": null,
"trade_id": "tr_abc123",
"on_chain_transaction_id": null,
"network_fee_notional": null,
"network_fee_quantity": null
}
}
},
"timestamp": "2026-05-06T12:06:00Z",
"failure_reason": null
}Payment posted
{
"payout_id": "payout_abc123",
"idempotency_key": "your-idempotency-key",
"status": "pending",
"sub_status": "payment.posted",
"previous_sub_status": "payment.submitted",
"resources": {
"payor": { "participant_code": "PAYOR1", "payor": { "participant_code": "UPAYOR1", "status": "approved" } },
"beneficiary": { "participant_code": "BENE1", "status": "approved", "external_account": { "external_account_id": "ea_xyz789", "status": "approved" } },
"payment": {
"payment_id": "pmt_abc123",
"description": "Contractor payout",
"asset": "USDC",
"quoted_asset": "USD",
"total": "100.00",
"status": "posted",
"network": "SOL",
"payment_details": {
"withdrawal_request_id": "wr_xyz456",
"trade_id": "tr_abc123",
"on_chain_transaction_id": null,
"network_fee_notional": null,
"network_fee_quantity": null
}
}
},
"timestamp": "2026-05-06T12:07:15Z",
"failure_reason": null
}Payment settled
{
"payout_id": "payout_abc123",
"idempotency_key": "your-idempotency-key",
"status": "completed",
"sub_status": "payment.settled",
"previous_sub_status": "payment.posted",
"resources": {
"payor": { "participant_code": "PAYOR1", "payor": { "participant_code": "UPAYOR1", "status": "approved" } },
"beneficiary": { "participant_code": "BENE1", "status": "approved", "external_account": { "external_account_id": "ea_xyz789", "status": "approved" } },
"payment": {
"payment_id": "pmt_abc123",
"description": "Contractor payout",
"asset": "USDC",
"quoted_asset": "USD",
"total": "100.00",
"status": "settled",
"network": "SOL",
"payment_details": {
"withdrawal_request_id": "wr_xyz456",
"trade_id": "tr_abc123",
"on_chain_transaction_id": "0xabc123...",
"network_fee_notional": "0.01",
"network_fee_quantity": "0.0000000384712"
}
}
},
"timestamp": "2026-05-06T12:08:45Z",
"failure_reason": null
}Payment failed
{
"payout_id": "payout_abc123",
"idempotency_key": "your-idempotency-key",
"status": "failed",
"sub_status": "payment.failed",
"previous_sub_status": "payment.posted",
"resources": {
"payor": { "participant_code": "PAYOR1", "payor": { "participant_code": "UPAYOR1", "status": "approved" } },
"beneficiary": { "participant_code": "BENE1", "status": "approved", "external_account": { "external_account_id": "ea_xyz789", "status": "approved" } },
"payment": {
"payment_id": "pmt_abc123",
"on_chain_transaction_id": "0xabc123...",
"status": "failed"
}
},
"timestamp": "2026-05-06T12:01:30Z",
"failure_reason": "on_chain_transaction_failed"
}