E-commerce enrichment
Evidence fields for physical-goods disputes: order products, fulfillment tracking, shipping address, and subscription data sent via the PATCH dispute endpoint.
E-commerce merchants selling physical goods face disputes most commonly around not_received, not_as_described, and fraud reason codes. Winning these disputes requires proving what was ordered, that it was shipped to the correct address, and that it was delivered. This guide covers the evidence fields that move outcomes most for e-commerce businesses.
Order data
Order data establishes what the customer purchased and at what price. It counters not_as_described claims and demonstrates that the customer had access to accurate product information.
Key fields (order.products[] via the Enrich Dispute endpoint):
| Field | API path | Description |
|---|---|---|
| Product name | products[].name | The name of the product |
| Product description | products[].description | Detailed description matching what was advertised |
| Product image URL | products[].image_url | URL to the product image shown at time of purchase |
| Price | products[].price | Unit price at time of purchase |
| Quantity | products[].quantity | Number of units ordered |
| Product type | products[].type | physical_good or digital_good |
Tip
Always include the product image URL when available. Issuers reviewing disputes are not familiar with your catalog: a clear product image alongside the description makes the evidence immediately compelling.
Fulfillment information
Fulfillment data is the core evidence for not_received disputes. A tracking number with a confirmed delivery scan is often sufficient to resolve these cases.
Key fields (order.fulfillments[] via the Enrich Dispute endpoint):
| Field | API path | Description |
|---|---|---|
| Tracking number | fulfillments[].tracking_number | Carrier tracking number |
| Courier | fulfillments[].courier | Carrier name (e.g., FedEx, UPS, USPS) |
| Shipped at | fulfillments[].shipped_at | ISO 8601 timestamp when the item shipped |
| Shipping method | fulfillments[].shipping_line_title | Description of the shipping service |
For high-value shipments, also upload a proof of delivery document using the Upload Evidence endpoint with evidenceUploadCategory: "tracking_information".
Subscription information (if applicable)
If your e-commerce business uses a subscription or auto-ship model, include subscription data to demonstrate the customer consented to recurring charges.
Key fields (subscription object):
| Field | Description |
|---|---|
frequency / frequency_count | Billing cadence |
status | Current subscription status |
start_date | When the subscription began |
| Charge history | Past successful charges on the same subscription - link them via transaction enrichment with the subscription_id reference |
See SaaS enrichment for a full description of subscription fields; the same fields apply here.
Customer communication
Screenshots or records of conversations with the customer, particularly where shipping updates were provided, a refund was offered, or the customer acknowledged receipt, are strong corroborating evidence.
Options:
- Structured messages: Use the Customer communication endpoint to send helpdesk conversations programmatically.
- File upload: Use the Upload evidence endpoint with
evidenceUploadCategory: "customer_communication"to attach a screenshot.
Example: full e-commerce enrichment payload
{
"order": {
"products": [
{
"name": "Wireless Headphones",
"id": "prod_12345",
"type": "physical_good",
"quantity": 1,
"description": "Noise-canceling wireless headphones with Bluetooth 5.2 connectivity and 30-hour battery life.",
"image_url": "https://example.com/images/products/headphones.jpg",
"price": 150
}
],
"fulfillments": [
{
"product_id": "prod_12345",
"shipped_at": "2025-01-26T18:00:00Z",
"shipping_line_title": "FedEx 2-Day Express",
"shipping_method_price": 0,
"tracking_number": "1Z999AA10123456789",
"courier": "FedEx"
}
],
"shipping_address": {
"name": "John Doe",
"line1": "123 Main Street",
"line2": "Apt 4B",
"city": "New York",
"country": "US",
"state": "NY",
"zip_code": "10001"
}
}
}How to send this data
All of the above data is sent via the Enrich Dispute endpoint:
PATCH https://api.chargeflow.io/public/2025-04-01/disputes/{disputeId}See the Enrich a Dispute guide for full details on the PATCH endpoint, upsert semantics, and the array merge behavior that applies to products[] and fulfillments[].