A dispute is a formal challenge against a settled transaction. Useful when goods don’t arrive, the merchant overcharges, or the agent paid for something unauthorized despite the policy. Each transaction can have at most one open dispute. Dispute lifecycle is plan-tier-gated.Documentation Index
Fetch the complete documentation index at: https://docs.getovra.com/llms.txt
Use this file to discover all available pages before exploring further.
Reason codes
| Code | Meaning |
|---|---|
unauthorized | Spend wasn’t authorized by policy |
fraud | Suspected fraudulent transaction |
not_received | Goods or service never delivered |
not_as_described | Delivered but doesn’t match agreement |
duplicate | Charged more than once |
incorrect_amount | Amount differs from agreed price |
canceled | Cancelled but still charged |
credit_not_processed | Refund wasn’t applied |
File a dispute
Attach evidence
receipt · shipping · communication · cancellation · refund_policy · product_description · other. File URLs must be HTTPS and SSRF-safe (no private IPs).
Resolve
resolved or rejected. Once closed, no further mutation is allowed.
Webhooks
| Event | When |
|---|---|
dispute.created | Filed |
dispute.updated | Evidence added or fields changed |
dispute.resolved | Closed (resolved or rejected) |
Plan-tier gating
| Plan | Dispute management |
|---|---|
| Free | – |
| Starter | View only |
| Business | Full (file + manage + resolve) |
| Enterprise | Full + automated workflows |
Surfaces
| Surface | Capability |
|---|---|
| REST | /disputes, /disputes/:id/evidence |
| SDK | ovra.disputes.* |
| MCP | ovra_dispute (action: get · file) |
| Dashboard | /dashboard/disputes |
Next
Transactions
What you’re disputing.
Intelligence
Audit trail and access events for dispute investigations.
