Skip to content

Dispute Resolution

Resource access in RAMP operates at $0.01—$0.10 per transaction. A single human reviewer spending 5 minutes costs $2.50 — 25x to 250x the transaction value. 100% of routine disputes must be automated. Manual review is reserved for aggregate fraud patterns, not individual transactions.

The agent is the paying party. The burden of proof for delivery is on the provider/Exchange. No proof of delivery = no payment. The inverse also applies: the agent cannot fabricate disputes without evidence.

Every dispute must reference a complete evidence chain. The agent MUST file a usage report BEFORE filing a dispute.

Offer
-> ExecuteTransaction (transaction_id, billing_id)
-> ReportUsage (UsageReport)
-> UsageReportResponse (report_id)
-> DisputeTransaction (transaction_id + report_id)
-> DisputeResponse (dispute_id, status, resolution)

DisputeRequest.report_id is required — the Exchange rejects any dispute without a prior usage report. This prevents fire-and-forget disputes and fabricated usage data.

The attestation level determines what evidence is available and what can be resolved automatically.

Evidence TypeLevel 0Level 1Level 2
CDN delivery failure (4xx/5xx)AUTO-CREDITAUTO-CREDITAUTO-CREDIT
Signed URL expired before fetchAUTO-CREDITAUTO-CREDITAUTO-CREDIT
Content hash mismatchN/AAUTO-CREDITN/A
Token discrepancy + CDN corroborationFLAGAUTO-CREDITAUTO-CREDIT
Token discrepancy aloneNot creditableNot creditableNot creditable
Subjective quality claimsNot creditableNot creditableNot creditable

Agent-reported token count alone is NEVER auto-creditable. The agent can fabricate any number. Independent corroboration from CDN response size is required.

Tier 1 — Automated (< 1 second, ~99% of disputes)

Section titled “Tier 1 — Automated (< 1 second, ~99% of disputes)”

Evidence is independently verifiable from CDN logs or cryptographic comparison.

ConditionEvidence SourceResolution
CDN returned 4xx/5xxCDN access logCREDIT
Signed URL expired before fetchCDN log timestampCREDIT
Content hash mismatch (Level 1)Agent hash vs catalog hashCREDIT
CDN response size anomalyCDN log bytes vs token claimCREDIT
Freshness race (Level 1)New attestation arrived within minutesCREDIT

State transition: FILED -> AUTO_RESOLVED

Tier 2 — Rule-Based Review (< 24 hours, ~0.9%)

Section titled “Tier 2 — Rule-Based Review (< 24 hours, ~0.9%)”

Deterministic rules applied when Tier 1 evidence is inconclusive.

ConditionRuleResolution
CDN 200 OK, agent reports 0 tokensCDN response < 1KBCREDIT
Token count < 50% of estimate (Level 0)Pattern: 3+ occurrences, same providerCREDIT
Quality dispute, Level 2 attestation freshAttestation < 24h, measurements alignREJECTED
WRONG_CONTENT with hash evidenceCompare agent hash against catalogCREDIT or REJECTED

State transition: FILED -> EVIDENCE_NEEDED -> UNDER_REVIEW -> RESOLVED

Tier 3 — Pattern Investigation (async, ~0.1%)

Section titled “Tier 3 — Pattern Investigation (async, ~0.1%)”

Triggered by aggregate patterns indicating systematic abuse.

MetricThresholdIndicates
Agent dispute rate> 5% of transactions/monthAgent gaming the system
Provider token discrepancy rate> 2% of transactionsProvider inflating counts
Reconciliation discrepancy> 10% (IAB standard)Systemic problem

State transition: ESCALATED -> SETTLED -> FINAL

┌─────────────────┐
v |
┌────────┐ ┌───────────┐ ┌─────────┐
Dispute -> │ FILED │--->│ AUTO_ │---->│ FINAL │
│ │ │ RESOLVED │ │ │
└───┬────┘ └───────────┘ └─────────┘
│ ^
│ ┌───────────┐ |
├-------->│ EVIDENCE │ |
│ │ NEEDED │ ┌────────┐
│ └─────┬─────┘ │SETTLED │
│ v └────┬───┘
│ ┌───────────┐ |
│ │ UNDER_ │<--┐ |
│ │ REVIEW │ | |
│ └─────┬─────┘ | |
│ v | |
│ ┌───────────┐ ┌─┴─────┐ |
│ │ RESOLVED │>│APPEALED│ |
│ └───────────┘ └───────┘ |
│ |
│ ┌───────────┐ |
└-------->│ ESCALATED │-----------┘
└───────────┘

Terminal state is FINAL. The resolution field is populated at RESOLVED, SETTLED, or FINAL.

TypeWhen Applied
CREDITCDN failure confirmed, hash mismatch, CDN size corroborates discrepancy, timing issues
REDELIVERYTransient CDN error, content still available, new signed URL issued
REJECTEDAgent claim not corroborated, duplicate dispute, missing report_id
INVESTIGATIONEscalated to Tier 3 pattern analysis

Resource Mutability and Dispute Rules (v1.0)

Section titled “Resource Mutability and Dispute Rules (v1.0)”

The ResourceMutability field on ResourceIdentity affects how disputes are evaluated:

MutabilityHash VerificationDispute Behavior
STATICAgent SHOULD verify content_hash. Mismatch is disputableStandard hash mismatch auto-credit applies
DYNAMICAgent MUST NOT auto-dispute hash mismatchHash changes are expected between offer and fetch. Use data_as_of for freshness disputes instead
LIVENo content_hash applicableMetering is time-based. Disputes are limited to delivery failure and session duration discrepancies

For DYNAMIC content (e.g., stock quotes, credit reports, drug databases), a content hash mismatch is expected behavior — the content updates between offer generation and agent fetch. Agents should use the data_as_of timestamp on the Offer to evaluate freshness rather than hash comparison. Disputes for DYNAMIC content should use WRONG_CONTENT reason only when the delivered content is categorically different from what was offered (e.g., wrong article entirely), not when the content has been updated.

MetricThresholdConsequence
Dispute rate> 3%Warning
Dispute rate> 5%Rate limiting on future transactions
Same reason across 5+ providersPattern thresholdFlagged for review
MetricThresholdConsequence
Token discrepancy rate> 2%Investigation opened
CDN delivery failure rate> 1%CDN health investigation
Content hash mismatches (Level 1)> 0.5%Attestation pipeline investigation

Month 1—2 above threshold: warning. Month 3: remediation plan required. Month 4+: rate limiting. Month 12+: termination consideration.