Warranty Intelligence

Classify a warranty claim, check it against the warranty terms you supply, and get the next workflow step.

Endpoint
POST https://kovca.io/api/v1/warranty/triage

Authenticate with your API key in the Authorization: Bearer header. Send JSON with Content-Type: application/json; bodies are limited to 16 KB.

The warranty period and proof-of-purchase requirement are checked in code from your dates and terms. The claim is classified and tested against each covered item and exclusion you supply. Results are advisory, not a legal warranty determination: a likely exclusion goes to review rather than being denied. Kovca never assumes manufacturer terms, never authorizes repairs or replacements, and never labels a customer as fraudulent.

Request body

FieldTypeDescription
claim_descriptionstring, requiredThe customer's description, up to 4,000 characters.
productobject, requiredname, and optional model_number and serial_number.
purchase_date, claim_datestring, optionalYYYY-MM-DD. claim_date defaults to today (UTC).
warranty_termsobject, optionalcoverage_months (required), covered and exclusions (up to 20 each, in plain language), requires_proof_of_purchase. Without terms, coverage is not_evaluated.
proof_of_purchaseobject, optional{ provided, type? }.
product_conditionstring, optionalAn inspection or intake note.
previous_serviceobject[], optionalUp to 10 earlier repairs: { date?, description }.
Example request
{
  "claim_description": "The left hinge on my laptop cracked while opening the lid normally. It was never dropped. Now the screen wobbles.",
  "product": {
    "name": "Example 14-inch Laptop",
    "model_number": "EX-14"
  },
  "purchase_date": "2025-06-12",
  "claim_date": "2026-03-02",
  "warranty_terms": {
    "coverage_months": 24,
    "covered": [
      "Defects in materials and workmanship under normal use"
    ],
    "exclusions": [
      "Damage caused by drops, impacts, or liquid",
      "Normal wear and tear, including cosmetic wear"
    ],
    "requires_proof_of_purchase": true
  },
  "proof_of_purchase": {
    "provided": true,
    "type": "receipt"
  }
}

Response

200 OK
{
  "request_id": "req_Bv6kN1pRm8TzQ4wE",
  "claim_type": "manufacturing_defect",
  "coverage_status": "covered",
  "priority": "medium",
  "recommended_action": "process_claim",
  "requires_human_review": false,
  "required_information": [],
  "signals": [
    "within_warranty_period"
  ],
  "matched_terms": [
    {
      "term": "Defects in materials and workmanship under normal use",
      "kind": "covered",
      "evidence": "warranty_terms.covered[0]"
    }
  ]
}
FieldTypeDescription
request_idstringUnique ID for this request.
claim_type"manufacturing_defect" | "premature_failure" | "accidental_damage" | "wear_and_tear" | "missing_components" | "performance_issue" | "other"See below.
coverage_status"covered" | "not_covered" | "requires_review" | "insufficient_information" | "not_evaluated"See below.
priority"low" | "medium" | "high"high for safety concerns, low for claims outside the warranty period, otherwise medium.
recommended_action"process_claim" | "troubleshoot" | "request_information" | "manual_review" | "inform_not_covered"process_claim routes the claim for processing; it doesn't authorize a repair.
requires_human_reviewbooleanTrue for requires_review and not_evaluated coverage, conflicting information, vague claims, and safety concerns.
required_information"warranty_terms" | "purchase_date" | "proof_of_purchase" | "claim_details"[]What to collect before coverage can be decided.
signals"within_warranty_period" | "outside_warranty_period" | "exclusion_may_apply" | "proof_of_purchase_missing" | "prior_service" | "conflicting_information" | "safety_concern" | "claim_type_uncertain"[]Facts that drove the result.
matched_termsobject[]Covered items and exclusions that matched, quoted exactly from your terms, with their request field.

Coverage (first match wins)

  • not_evaluated: No warranty_terms were sent.
  • not_covered: The claim date is after the warranty period. This is the only automatic not-covered result.
  • insufficient_information: The purchase date is missing, or required proof of purchase wasn't provided.
  • requires_review: An exclusion may apply, the information conflicts, the claim is vague, or no covered item matches.
  • covered: Within the period, proof satisfied, and a covered item (or a defect-type claim when no covered list is sent) matches.

Claim types

  • manufacturing_defect: A fault in how the product was made, such as a broken part, bad seam, or component that never worked.
  • premature_failure: The product stopped working or wore out much sooner than expected under normal use.
  • accidental_damage: Damage from an accident or external event, such as a drop, spill, impact, or fire.
  • wear_and_tear: Normal deterioration from age and use, such as faded finish, worn soles, or reduced battery life over years.
  • missing_components: Parts, accessories, or pieces were missing from the box.
  • performance_issue: The product works but not as expected, such as slow, noisy, inaccurate, or intermittent behavior.
  • other: None of the above.

A possible exclusion

Request
{
  "claim_description": "I dropped my laptop down the stairs and now the screen is cracked.",
  "product": {
    "name": "Example 14-inch Laptop",
    "model_number": "EX-14"
  },
  "purchase_date": "2025-06-12",
  "claim_date": "2026-03-02",
  "warranty_terms": {
    "coverage_months": 24,
    "covered": [
      "Defects in materials and workmanship under normal use"
    ],
    "exclusions": [
      "Damage caused by drops, impacts, or liquid",
      "Normal wear and tear, including cosmetic wear"
    ],
    "requires_proof_of_purchase": true
  },
  "proof_of_purchase": {
    "provided": true,
    "type": "receipt"
  },
  "product_condition": "Cracked display, dented corner."
}

Code

curl https://kovca.io/api/v1/warranty/triage \
  -H "Authorization: Bearer $KOVCA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "claim_description": "The left hinge on my laptop cracked while opening the lid normally. It was never dropped. Now the screen wobbles.",
  "product": {
    "name": "Example 14-inch Laptop",
    "model_number": "EX-14"
  },
  "purchase_date": "2025-06-12",
  "claim_date": "2026-03-02",
  "warranty_terms": {
    "coverage_months": 24,
    "covered": [
      "Defects in materials and workmanship under normal use"
    ],
    "exclusions": [
      "Damage caused by drops, impacts, or liquid",
      "Normal wear and tear, including cosmetic wear"
    ],
    "requires_proof_of_purchase": true
  },
  "proof_of_purchase": {
    "provided": true,
    "type": "receipt"
  }
}'

Errors

  • 400 INVALID_REQUEST: a field is missing, too long, the wrong type, or not allowed. The message names the field.
  • 413 PAYLOAD_TOO_LARGE: the body is larger than 16 KB.
  • 401 UNAUTHORIZED, 429 RATE_LIMITED, 503 SERVICE_UNAVAILABLE, 504 TIMEOUT: see Errors and limits.

Limitations

  • Coverage is evaluated only against the terms you send. Kovca doesn't know any manufacturer's warranty.
  • Without a covered list, claims classified as defects, premature failures, missing components, or performance issues within the period are treated as covered; other types go to review.
  • Advisory only. Not a legal determination of warranty rights.
  • Request data is processed to produce the result and is not stored by Kovca.