# Dispute packet exports

The six export formats a dispute packet is rendered in, with each interface’s limits, and which deliveries are files today and API feeds later.

Status: Live · Updated: 2026-09-13
For: seller
Source: https://enruta.ai/docs/dispute-packet-exports

A [dispute packet](https://enruta.ai/docs/dispute-packet) is one object rendered six ways, because every dispute interface has a different free-text slot, a different file limit and a different window. Every export is generated today; you paste or upload it. Direct delivery into the vendors’ APIs comes next.

## The exports

| Export | Goes into | Shape and limit |
|---|---|---|
| `stripe_evidence_text` | Stripe `evidence[uncategorized_text]` | Text headed “Agent purchase under a signed mandate”; all Stripe text fields together may not exceed 150,000 characters and can be submitted once; the PDF may be attached separately up to 4.5 MB |
| `shopify_uncategorized_text` | Shopify `disputeEvidenceUpdate.uncategorizedText` | Text |
| `chargeflow_payload` | Chargeflow order and evidence | `{ order: {…}, additional_notes, policies: [{ policy_type: "agent_mandate", … }], refunds: [] }`; PDF up to 5 MB |
| `justt_payload` | Justt upsert transaction | `{ transactionCustomerFrontUserId, transactionOrderDeviceId, transactionOrderIpAddress, transactionCustomerDisplayedTransactionDescription, … }`, the CE3.0 fields Justt exposes |
| `mastercard_context` | The merchant-held `agenticTransactionContext` of the Mastercard merchant playbook | `{ agentIdentity, consumerIdentity, signatureProof, agentSession, purchaseIntent }` plus a `pattern_templates` object with one template for each of the four agent dispute patterns (“I don’t remember buying this”, “this is not what I asked for”, a runaway agent, an agent mistake) |
| `klarna_pdf` | Klarna disputes | The representment PDF; Klarna accepts PDF only, within a 21-day window |
| Representment PDF | Any interface with a file slot; Adyen accepts JPG, TIFF and PDF and rejects material containing a card number | One or two Letter pages, text only, no images, no card number anywhere |

Every export names the record id and the verify command, so whoever reads it, an issuer, an acquirer, a vendor, can run `npx enruta-verify` on the record without an Enruta account. When an export would exceed its interface’s limit it is trimmed and the full packet is linked.

## Getting them

**Seller API**

```http
GET /v0/sellers/records/rec_01M25129GZMJXTNQ47TMZRDGHN/dispute-packet      Authorization: Bearer enruta_slr_…
→ { "id": "dsp_…", "generated_by": "seller", "ce30": { … }, "exports": { "stripe_evidence_text": "…", "chargeflow_payload": { … }, … }, "packet_record_id": "rec_…" }

GET /v0/sellers/records/rec_01M25129GZMJXTNQ47TMZRDGHN/representment.pdf
→ application/pdf
```

The seller’s packet goes on the seller’s chain with `chain.of` the buyer’s record id and hash. Your store can build a “Dispute packet” panel from these two calls; the reference merchant’s admin does.

**CLI**

```bash
enruta disputes packet rec_01M25129GZMJXTNQ47TMZRDGHN --export stripe      # prints stripe_evidence_text
enruta disputes packet rec_01M25129GZMJXTNQ47TMZRDGHN --export chargeflow  # prints the JSON payload
enruta disputes packet rec_01M25129GZMJXTNQ47TMZRDGHN --pdf ./representment.pdf
```

**Console**

`/disputes/{id}` shows the CE3.0 checklist, one copy button per export, the PDF download and the outcome form. Seller organizations see the same on the order’s page.

## Delivery

| Destination | Today | Planned |
|---|---|---|
| Stripe, Shopify | Copy the text into the dispute form; attach the PDF | Write-back with the PSP adapters (October 2026) |
| Chargeflow, Justt, Verifi | Paste the payload | A free field feed over their APIs from the first quarter of 2027 |
| Adyen, Checkout.com | Upload the PDF | Adyen Disputes API delivery with the Adyen adapter (January 2027) |
| Klarna | Upload the PDF within the 21-day window | Disputes API v4 delivery, unscheduled |
| Ethoca or Verifi alerts | When an alert arrives, the middleware’s labels already say whether the order was inside a signed limit and whether a person approved it | Automatic answer from the packet, unscheduled |

Nothing here claims to change the issuer’s decision. What changes is that a merchant has something to submit for an agent order that verifies, instead of a login timestamp and an address.
