{
  "_comment": "OUTPUT - webhook, Luminetric-Event: request.duplicate. Sent when a request carries a file the client already sent (same bytes, same client): the file is NOT extracted again, and this names the earlier request whose statements are the answer. It is sent at once, whether that request has finished, is still running or failed, so the client joins the two by duplicate_of.request_id (or document_id, which is the same for both) and follows the earlier request's own events. Only for files the client uploads; a scraped re-download is not answered. duplicate_id is the idempotency key, and a request is answered once. Built by CanonicalDuplicate.body(); CanonicalDeliveryLocalTest holds that method to this file's shape.",
  "schema_version": "1.0.0",
  "event": "request.duplicate",
  "duplicate_id": "dup_6e2b9f14-8c37-4a50-b1d2-5f09c3e7a846",
  "request_id": "req_9d15a3e8-4f27-4b61-8c09-2e7d5b1f6a43",
  "client_reference": "invoice-433193-resend",
  "duplicate_of": {
    "request_id": "req_0a4d6e82-9c37-4b15-a8f2-3e7b1d5c9042",
    "client_reference": "invoice-433193"
  },
  "document_id": "doc_b72e4f18-6a93-4d51-8027-3e9c1b5d8a64",
  "detected_at": "2026-09-30T18:02:44Z",
  "message": "This request carries a file you already sent. It was not extracted again: its statements are delivered under the earlier request named in duplicate_of."
}
