Classification
Triple classifies disputes for you. You don't need to decide whether a case is fraud, service-not-received, processing-duplicate, or cancelled before calling the API. The classifier reads the evidence and picks the category itself.
Why automatic
Classifying a dispute correctly is hard:
- Cardholders describe the same situation many ways.
- The category drives what evidence a scheme expects — get it wrong and your case is weak.
- Hints from front-line staff or menus cardholders pick from are often inaccurate.
Putting the classifier behind the API means:
- Callers don't need scheme expertise to integrate.
- Incorrect hints don't silently weaken the evaluation — we flag when we reclassify.
- We can improve the classifier without every integrator redeploying.
Categories
The categories currently supported are:
| Category | When it applies |
|---|---|
fraud | The cardholder did not authorize the transaction |
service_not_received | Goods or services paid for but not delivered |
processing_duplicate | The same transaction was charged more than once |
cancelled | The cardholder cancelled and the merchant didn't refund, retained fees, or mismatched their own policy |
More categories will come online over time — no integration changes needed on your side.
How we pick one
Classification runs on whatever case data we have, regardless of entry point:
- From intake: the cardholder's answers and uploads inside the hosted form or chatbot. The flow itself narrows the case as it goes.
- From a direct evaluation call: the
transaction,card,dispute, andevidencesyou sent toPOST /evaluations/.
The final category appears on the evaluation result as category.
Category hints
You may send a category along with your request. Triple treats it as a hint, not a directive:
- If the evidence supports it, we use it and proceed.
- If the evidence points elsewhere, we reclassify and flag it on the result.
- We surface the original hint and the final classification so you can reconcile the two (useful if your internal system needs to update the case).
In the transitional period described in Getting Started and How Evaluations Work, sending a category is still required by the API Reference. That requirement goes away once the backend schema update lands; the classifier logic above already runs today.
What's on the result
{
"id": "eval_7d9e1f",
"category": "fraud",
"confidence": "high",
"reason_code": "4837",
"failed_checks": []
}
category— the final classification Triple settled onreason_code— the scheme-facing reason code we propose, when the evidence is precise enough to map to one;nullotherwisefailed_checks— any missing or weak evidence, including cases where the classifier wanted specific evidence that was not provided
Reclassification signals
When Triple overrides a category hint, the response makes that explicit. (Final field shapes are still settling — refer to the API Reference when relying on these for automation.)
classified_from_hint: false— the category on the result doesn't match the hint you sentoriginal_hint: "service_not_received"— the category you sent, preserved for your records
See also
- Intake overview — the easiest way to get a case classified
- Evaluation payload — what goes into a direct evaluation call
- How Evaluations Work — the result fields end-to-end