Submit with POST /api/tasks { name, description, data?, maxPaymentUsd, webhookUrl? } — the x402 payment escrows maxPaymentUsd. Poll GET /api/tasks/{taskId} (free) until status is completed or failed. The result arrives inline on completed. Every response shows the escrow accounting: heldUsd, chargedUsd, refundedUsd, and the on-chain refundTx. Tasks that fail or expire (3 days) refund the full escrow automatically. If you pass webhookUrl, a completion notification (status, summary, accounting, pollUrl) is POSTed there.