Disputes
Disputes are a formal process for resolving disagreements between developers and workers about task completion. This guide covers when disputes can be opened, how evidence is submitted, and how resolutions work.
When Can Disputes Be Opened?
Disputes can be opened from certain task states, within specific time windows:
| Who | Can Dispute From | Time Window |
|---|---|---|
| Developer | proof_submitted, completed | Within 48 hours of the triggering event |
| Worker | proof_submitted, completed, proof_rejected | Within 72 hours of the triggering event |
Developer Disputes
A developer might open a dispute when:
- The submitted proof does not match the task requirements
- The proof appears to be fraudulent or taken at the wrong location
- The task was marked complete but the work quality is unacceptable
Worker Disputes
A worker might open a dispute when:
- Their proof was rejected but they believe it meets the requirements
- Payment was not released after a valid completion
- The task description was misleading or impossible to complete as described
Opening a Dispute
Via the API (Developer)
curl -X POST https://api.workfunder.com/v1/tasks/a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4/dispute \
-H "Authorization: Bearer wf_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"reason": "The submitted photos do not show the correct storefront. The address number in the photos does not match the task location."
}'
Response
{
"id": "disp_a1b2c3d4e5f6",
"task_id": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
"opened_by": "developer",
"reason": "The submitted photos do not show the correct storefront. The address number in the photos does not match the task location.",
"evidence_deadline": "2026-02-26T16:00:00.000Z",
"created_at": "2026-02-24T16:00:00.000Z"
}
When a dispute is opened:
- Task status changes to
disputed - Funds are frozen -- no transfers are processed while the dispute is active
- Both parties are notified via email
- A 48-hour evidence submission window begins
- The
task.disputedwebhook fires
Evidence Submission
Both parties have 48 hours from the dispute opening to submit evidence.
What Counts as Evidence
Developer evidence:
- The original task requirements and instructions
- Screenshots or descriptions of what was expected
- Comparison between expected and received proof
- Any relevant communication
Worker evidence:
- Additional photos or videos from the task location
- Screenshots showing GPS at the task location
- Explanation of circumstances (e.g., location was different from description)
- Timestamps and context
Evidence Guidelines
- Evidence must be relevant to the dispute
- Both parties can submit multiple pieces of evidence
- Evidence submitted after the 48-hour deadline may not be considered
- All evidence is visible to both parties and the admin reviewer
Resolution Process
After the evidence window closes (or both parties have submitted their evidence), a WorkFunder admin reviews the dispute.
What the Admin Reviews
The admin has access to:
- Task details: Original title, description, instructions, location, and budget
- Proof files: All submitted photos/videos with full-resolution access
- GPS data: Worker's GPS coordinates at proof submission vs. task location, displayed on a map
- Distance calculation: Exact distance between worker and task location
- Worker history: Worker's reputation score, task completion history, past disputes
- Evidence from both parties
- Task status history: Full timeline of state transitions with timestamps
Resolution Types
| Resolution | Description | Financial Outcome |
|---|---|---|
resolved_developer | Developer wins the dispute | Full refund to the developer |
resolved_worker | Worker wins the dispute | Worker receives full payout |
resolved_split | Partial resolution | Custom split (e.g., 60% developer / 40% worker) |
resolved_developer
The admin determines the work was not completed satisfactorily. The developer receives a full refund of the escrowed budget.
{
"id": "disp_a1b2c3d4e5f6",
"resolution": "resolved_developer",
"resolution_reason": "The photos submitted show a different storefront than the one at the task address. GPS data confirms the worker was 1.2km from the task location.",
"resolved_by": "admin_user_id",
"resolved_at": "2026-02-26T10:00:00.000Z"
}
resolved_worker
The admin determines the work was completed correctly. The worker receives their full payout.
{
"id": "disp_a1b2c3d4e5f6",
"resolution": "resolved_worker",
"resolution_reason": "The photos match the task requirements. GPS confirms the worker was 89m from the task location. The task description was ambiguous about which storefront.",
"resolved_by": "admin_user_id",
"resolved_at": "2026-02-26T10:00:00.000Z"
}
resolved_split
The admin determines both parties share responsibility. The escrowed budget is split according to specified percentages.
{
"id": "disp_a1b2c3d4e5f6",
"resolution": "resolved_split",
"resolution_reason": "The worker was at the correct location but only completed 2 of the 3 required photos. Splitting 40% to developer, 60% to worker.",
"split_developer_percent": 40,
"split_worker_percent": 60,
"resolved_by": "admin_user_id",
"resolved_at": "2026-02-26T10:00:00.000Z"
}
Dispute Timeline
Day 0: Dispute opened
│
├── Both parties notified via email
├── Task status → disputed
├── Funds frozen
│
│ 48-hour evidence window
│
Day 2: Evidence deadline
│
├── Admin reviews dispute
├── Admin examines proof, GPS, evidence from both sides
│
Day 2-3: Resolution
│
├── Admin selects resolution type
├── Both parties notified of outcome
├── Funds disbursed accordingly
└── Task status updated (completed or refunded)
Target Resolution Time
WorkFunder targets dispute resolution within 24 hours of the evidence deadline. Most disputes are resolved within the same business day.
Dispute Limits
- One dispute per task. Once resolved, a task cannot be disputed again.
- No appeals in v1. Admin decisions are final. This may change in future versions for high-value disputes.
- Dispute window is firm. After 48 hours (developer) or 72 hours (worker), the right to dispute expires.
Impact on Reputation
Disputes affect worker reputation scores:
| Outcome | Impact on Worker Score |
|---|---|
| Any dispute opened (regardless of outcome) | -5 points |
| Dispute lost (resolved for developer) | Additional -10 points |
| Dispute won (resolved for worker) | No additional penalty |
The -5 point penalty for any dispute (even when the worker wins) is intentional. It encourages clear communication and high-quality proof submission to avoid disputes altogether. Workers with high reputation scores have a track record of dispute-free completions.
Best Practices
For Developers
- Write clear task descriptions. Ambiguous tasks lead to disputes. Be specific about what you need.
- Use the
instructionsfield. Provide detailed, private instructions for the worker. - Review proofs promptly. Waiting too long to review proofs can lead to worker disputes.
- Provide evidence quickly. If you open a dispute, submit your evidence as soon as possible.
For Dispute Prevention
Most disputes stem from:
- Unclear requirements -- Task description does not match expectations
- GPS inaccuracy -- Worker was at the right place but GPS drifted
- Photo quality -- Blurry or poorly composed photos
Investing time in clear task descriptions and instructions prevents the majority of disputes.
Webhook Events
| Event | When |
|---|---|
task.disputed | Dispute is opened |
task.completed | Dispute resolved for worker |
task.refunded | Dispute resolved for developer |