{
  "schema": "varexis-public-evidence-record/0.3",
  "generated_at_utc": "2026-10-22T21:15:08.873Z",
  "record_id": "VXI-EXT-PROCUREMENT-STRIPE-V1-IDEMPOTENCY-EXPIRY-CACHED-FAILURE-01-v1",
  "record_kind": "external_reference",
  "title": "Stripe API v1: Retry keys, cached failures and expiry",
  "system": "Stripe",
  "evidence_family": "vendor_evidence_review",
  "index_status": "PUBLIC_SAFE_SOURCE_REVIEW",
  "evidence_state": "PRIMARY_DOCUMENTATION_REVIEW_ONLY",
  "canonical_question": "Does reusing a Stripe API v1 idempotency key guarantee that a payment retry is safe indefinitely?",
  "near_questions": [
    "Can a Stripe retry return the same cached 500 error?",
    "What happens when a Stripe idempotency key has been pruned?",
    "Can I change payment parameters under the same Stripe retry key?",
    "What evidence should I reconcile before retrying an uncertain Stripe payment?"
  ],
  "supported_claims": [
    {
      "claim": "Stripe API v1 retains the first executed response for a key, including a 500 response. Keys may be pruned after at least 24 hours; reuse after pruning starts a new request. Parameter mismatches fail, while validation or concurrent-execution conflicts may leave no cached result. These rules do not establish the payment outcome.",
      "reliance": "DOCUMENTED_CAPABILITY_ONLY"
    }
  ],
  "not_demonstrated_claims": [
    "Indefinite deduplication, API v2 equivalence or proof of payment settlement",
    "Buyer deployment testing, live runtime enforcement, certification or permission to act",
    "Expanded capabilities or licences for existing INDEX executables"
  ],
  "public_summary": "Stripe API v1 retains the first executed response for a key, including a 500 response. Keys may be pruned after at least 24 hours; reuse after pruning starts a new request. Parameter mismatches fail, while validation or concurrent-execution conflicts may leave no cached result. These rules do not establish the payment outcome.",
  "related_record_ids": [],
  "source_review": {
    "source_type": "official_external_documentation",
    "source_title": "Idempotent requests",
    "source_url": "https://docs.stripe.com/api/idempotent_requests",
    "checked_on": "2026-10-22",
    "candidate_record_id": "VXI-EXT-PROCUREMENT-STRIPE-V1-IDEMPOTENCY-EXPIRY-CACHED-FAILURE-01-v1",
    "candidate_record_sha256": "200a98ca5d7071ffa3a9d239f45e1b3140d96ad0a119548922175fec80057f5c",
    "method": "Primary documentation reviewed for the published bounded statement.",
    "deployment_tested_by_varexis": false,
    "revalidation": "The delivered snapshot preserves the review date shown. Recheck current primary documentation and deployment context before relying on present applicability; payment does not trigger fresh research."
  },
  "answer_policy": {
    "classification": "DOCUMENTED_WITH_DEPLOYMENT_BOUNDARY",
    "bounded_answer": "Stripe API v1 retains the first executed response for a key, including a 500 response. Keys may be pruned after at least 24 hours; reuse after pruning starts a new request. Parameter mismatches fail, while validation or concurrent-execution conflicts may leave no cached result. These rules do not establish the payment outcome.",
    "required_buyer_context": "API version, operation and original request identity; Key age, parameter equality and retained response; Provider object state and application retry history. Buyer deployment not inspected.",
    "missing_evidence": "A broader claim needs evidence matching the intended use. Payment does not upgrade the evidence state."
  },
  "private_boundary": "Raw logs, thresholds, private paths, source code, protected mechanisms and reconstruction-level details are excluded from public and paid delivery.",
  "decision_profile": {
    "schema": "varexis-vendor-evidence-review/1",
    "review_status": "documentation_review_only",
    "checked_on": "2026-10-22",
    "claim_to_check": "Does reusing a Stripe API v1 idempotency key guarantee that a payment retry is safe indefinitely?",
    "documented_statement": {
      "status": "documented",
      "statement": "Stripe API v1 retains the first executed response for a key, including a 500 response. Keys may be pruned after at least 24 hours; reuse after pruning starts a new request. Parameter mismatches fail, while validation or concurrent-execution conflicts may leave no cached result. These rules do not establish the payment outcome.",
      "source_ids": [
        "stripe-idempotency"
      ]
    },
    "review_inference": {
      "status": "review_inference",
      "statement": "A retry decision needs both operation identity and provider-state reconciliation.",
      "source_ids": [
        "stripe-idempotency"
      ]
    },
    "buyer_evidence_required": [
      "API version, operation and original request identity",
      "Key age, parameter equality and retained response",
      "Provider object state and application retry history"
    ],
    "review_condition": {
      "status": "varexis_review_policy",
      "statement": "Do not infer non-payment from a 500 or replay an expired key without reconciling the original operation."
    },
    "unknowns": "Actual key retention, payment state and application duplicate protection are unobserved.",
    "unknown_finding": {
      "status": "unknown",
      "statement": "Actual key retention, payment state and application duplicate protection are unobserved."
    },
    "evidence_sources": [
      {
        "source_id": "stripe-idempotency",
        "url": "https://docs.stripe.com/api/idempotent_requests",
        "final_url": "https://docs.stripe.com/api/idempotent_requests",
        "title": "Idempotent requests",
        "checked_on": "2026-10-22",
        "captured_at_utc": "2026-10-22T21:06:11.175Z",
        "version_context": "Stripe public documentation retrieved by official CLI 1.55.1 on review date; API v1 unless otherwise stated; no account accessed.",
        "sha256": "a19a94570ab4205fcefd9b026234356a944bef7ea346ba3dfc606ba8ead9e4e1",
        "bytes": 5338,
        "hash_basis": "Exact stdout bytes from official Stripe CLI 1.55.1 public docs command; identifies captured content, not truth or certification",
        "reviewed_sections": [
          "Idempotency",
          "API v1 execution and pruning"
        ],
        "capture_status": "cli_success",
        "rights_review": "Factual paraphrase and source metadata only; response body retained privately and not redistributed.",
        "capture_method": "stripe docs",
        "cli_version": "1.55.1",
        "cli_exit_code": 0
      }
    ],
    "observed_deployment": false,
    "commercial_reliance_boundary": "Documentation review only; the buyer must establish applicability and actual outcomes. INDEX does not inspect or control the deployment.",
    "paid_value": {
      "decision_context": "Avoid a second charge when recovering an ambiguous API request.",
      "free": "Complete review, sources, practical questions and limitations; may be saved locally.",
      "single_request": "Existing server-saved version-bound route snapshot for later authenticated retrieval.",
      "evidence_receipt": "The same snapshot plus the existing unsigned delivery receipt.",
      "excluded": [
        "Fresh vendor research",
        "Continuous monitoring or change alerts",
        "Testing the buyer configuration",
        "Private evidence or vendor certification"
      ],
      "integrity": "Hashes identify content versions; they do not prove truth or provide a signature."
    },
    "revalidation": {
      "trigger": "A saved purchase does not recheck the source or buyer configuration.",
      "specific_watch": "Recheck the documented behavior, product version and buyer evidence before relying on a current outcome."
    },
    "buyer_relevance": "Avoid a second charge when recovering an ambiguous API request.",
    "refusal_conditions": [
      "Do not infer non-payment from a 500 or replay an expired key without reconciling the original operation."
    ]
  },
  "niche": {
    "niche_id": "agent-authority-action-evidence",
    "label": "Agent Authority & Action Evidence",
    "classification_id": "payments",
    "classification_label": "Agent Payments, Authority & Transaction Evidence",
    "topic_id": "payments",
    "buyer_intent": "Avoid a second charge when recovering an ambiguous API request.",
    "comparison_role": "supplementary_discovery"
  },
  "paid_access_note": "The full published answer and boundaries are free. Paid access saves the selected route and source versions, with an unsigned receipt when purchased. Preview coverage before paying. Fresh research, bespoke assessment and protected evidence are excluded.",
  "service_route": {
    "request_guide": "/varexis-index/request.html",
    "request_workflow": "/varexis-index/request-workflow.json",
    "service_id": "single_request",
    "service_routes_url": "/varexis-index/service-routes.json",
    "payment_required": true,
    "availability_endpoint": "/api/index/capabilities",
    "operational_status": "AUTOMATIC_SERVICE_CAPABILITIES_GATED",
    "checkout_url": "/index-access"
  },
  "authority_boundary": "VAREXIS-INDEX informs evidence reliance. It does not provide advice, certification, deployment authority, security assurance, production approval, or guarantee.",
  "human_page": "/varexis-index/catalog.html#stripe-v1-idempotency-expiry-cached-failure",
  "machine_readable_record": "/varexis-index/records/stripe-v1-idempotency-expiry-cached-failure.json"
}
