ONE VERDICT- Policy
- Returns and deliveryVersion active when the dispute occurred.
- Evidence
- 3 recordsOrder, carrier update and customer claim.
- Verdict
- Manual reviewWas safe-place delivery authorised?
Verdicting as a service
Submit policy, claim and evidence. Get one verdict with a structured proof.
npm@dispution/sdk
planned interface
Approved / Manual review / Rejected
ONE VERDICT// The decision system
Four bounded stages. Uncertainty never becomes a guess.
Authenticate, validate, count and reserve before inference.
Verified sources are captured passively. Each dispute pins the version active at occurrence.
Each seat gets a three-attempt cross-provider chain. Degradation is named and confidence is capped.
Persist proof; deliver by polling or signed webhook.
Reject before evidence is dropped.
Every live plan + scrutiny; no surcharge.
One pollable verdict resource.
Proof includes the human question.
// Integration surface
One typed contract for submission, polling and results.
import { Dispution } from "@dispution/sdk";
const client = new Dispution({
apiKey: process.env.DISPUTION_API_KEY
});
const verdict = await client.disputes.create({
occurredAt: "2026-08-16T10:04:00Z",
claim: {
summary: "Order arrived at the wrong address."
},
evidence: [{
id: "ev_01", type: "record", content: record
}]
});
if (verdict.state === "manual_review") {
queueForReview(verdict.proof.reviewReason);
}
from dispution import Dispution
client = Dispution()
verdict = client.disputes.create(
occurred_at="2026-08-16T10:04:00Z",
claim={
"summary": "Order arrived at the wrong address."
},
evidence=[{
"id": "ev_01",
"type": "record",
"content": record
}]
)
if verdict.state == "manual_review":
queue_for_review(verdict.proof.review_reason)
# Illustrative, non-routable request shape
curl --request POST
"https://api.example.invalid/v1/disputes"
--header "Authorization: Bearer $DISPUTION_API_KEY"
--header "Idempotency-Key: case_0192"
--header "Content-Type: application/json"
--data '{
"occurred_at": "2026-08-16T10:04:00Z",
"claim": { "summary": "Wrong address." },
"evidence": [{ "id": "ev_01", "type": "record" }]
}'
{
"verdict_id": "vd_01K3M9...",
"schema_version": "1",
"state": "manual_review",
"confidence": 0.84,
"threshold": 0.90,
"proof": {
"review_reason": "material_fact_missing",
"review_question": "Was safe-place delivery authorised?",
"evidence_manifest": ["ev_01"]
}
}
// Structured proof
Verdict, evidence trail, policy references and uncertainty.
Summaryconfidence 0.94
Filed on time. Carrier data confirms the wrong postcode.
Order timeline + customer claim.
Carrier postcode differs.
Delivery event recorded at postcode 101 00, not the destination postcode 186 00.
// Subscription tiers
Same benches and proof rules on every plan.
Dispution Free simulation
$0
Deterministic integration testing.
Metered usage
$0 idle
$3 active month, then $0.05 / unit.
Professional prepaid
$39 / month
Live capacity for small teams.
Team prepaid
$129 / month
Shared production capacity.
Business prepaid
$399 / month
Largest self-serve allowance.
Usage stops before surprise spend.
$0.05 each; no expiry while open.
Real bench + deterministic simulation.
// Privacy / data standards
Where case data may exist - and for how long.
Synchronous evidence
Policy, claim and evidence.
No storage, queues or telemetry.
Asynchronous evidence
Deleted on completion; 48-hour worst-case lifecycle backstop.
Pointer, nonce, key and hash only.
Durable result
Findings, provenance and usage facts.
No excerpts, prompts or model output.
Generated reports
Generated for authorised viewers.
No durable report bytes.
// Start with the shape
Start with deterministic simulation.