pub struct TaskDetailSettlement {
pub amount: Option<String>,
pub completion_fee: Option<String>,
pub disbursement_tx_hash: Option<String>,
pub escrow_hold_tx_hash: Option<String>,
pub escrow_id: Option<String>,
pub payment_status: Option<String>,
pub payout_proof: Option<TaskDetailSettlementPayoutProof>,
pub provider_escrow_ref: Option<String>,
pub released_at: Option<DateTime<Utc>>,
pub worker_payout: Option<String>,
}Expand description
Settlement facts for this task (gh#1200). Populated only for
task parties — the poster account and the assigned account;
any other viewer gets null, as does a task with no payment.
Disbursement fields stay null until settlement actually
moves. (GET /tasks/{task_id}/payment remains the worker-only
money-detail endpoint; this block gives the POSTER the
settlement facts the detail view previously hid entirely.)
Fields§
§amount: Option<String>Escrow deposit amount, serialized rounded to 2 decimal places
completion_fee: Option<String>Platform completion fee taken from the deposit, serialized rounded to 2 decimal places; null when none applies.
disbursement_tx_hash: Option<String>On-chain tx hash that released the payout to the worker; null before release
escrow_hold_tx_hash: Option<String>On-chain tx hash that funded the escrow hold; null before funding
escrow_id: Option<String>On-chain escrow identifier; null until escrow initialization
payment_status: Option<String>Payment lifecycle state at read time
payout_proof: Option<TaskDetailSettlementPayoutProof>Terminal payout observation (gh#268); null until a proof row exists for the payment.
provider_escrow_ref: Option<String>Opaque provider escrow session reference; null until the provider opens one
released_at: Option<DateTime<Utc>>When the escrow released; null before release
worker_payout: Option<String>The disbursed worker share — amount minus completion_fee,
matching the disbursement ledger math (UNROUNDED, so it can
carry sub-cent precision the rounded amount /
completion_fee strings do not).