When a dispute lands
A dispute response for one order
One PDF answering a quality chargeback. It carries the lot recorded for each line and how it was determined, the laboratory result for that lot, and the consent record from the checkout session.
Two dispute conditions turn on product evidence. The cardholder says that what arrived was not as described or was defective, or that they never agreed to the terms. One response answers both. The cardholder is not denying the purchase. The answer is a documented chain: this order, this lot, the laboratory result published for it, and the terms accepted before payment.
The response is assembled from records the store already holds, rather than gathered from separate systems while a deadline is running. The link between the order and the laboratory result is in the data, not asserted in the document.
Starting from the order, not from a folder
It is generated from the order itself. Open the order and select the reason code from the processor’s notice; the document is then built from what the store recorded at the time.
The reason code is supplied by the merchant and printed as such. It is on the processor's notice. Provkeep has no way of knowing it, and a document implying otherwise would invent a fact in front of the one reader who can check it.
The same screen is where a gap is closed. A line that was never tied to a lot is flagged on the row itself. The reason is stated: the SKU is not in the catalog, so there is no product to look up a batch for.
It always generates, and it says what it cannot show
A gap that cannot be closed does not block generation. The document is produced either way, and a section headed What this packet does not show names the line it could not account for.
That is the decision the document turns on. A response that quietly omits a weak line is worth less than one that names it, because the processor holds the order data as well. A declared limit reads as one gap in an otherwise complete submission.
Consent is held to the same standard. Where a consent record exists, the response states what it fixes: the terms version, the minimum age shown, the acceptance timestamp. Where one does not, it makes no claim of acceptance at all. Where a lot was bound by a person rather than matched automatically, the response says so, with the date and the original answer.
Two documents, not one with a switch
A reason code this document does not answer is refused rather than answered under a different heading. A fraud dispute rests on identity linkage across the cardholder's earlier orders, not on laboratory results, and a submission padded with certificates reads as noise. That is a separate document with a separate argument.
Every response is also kept as it was generated. Regenerating builds from today's data, which may differ once a lot has been corrected or a certificate published. Both are available, and they are labelled as the different things they are.

