AI Provenance
merchi.ai implements the AI Provenance Protocol (APP), an open standard for recording, embedding, and verifying the origin of AI-generated content. Every piece of content generated by merchi.ai includes provenance metadata that proves it was created by AI, which model was used, and whether it has been reviewed by a human.
Why AI Provenance Matters
EU AI Act Compliance
The EU AI Act (Article 50) requires that AI-generated content is clearly marked as such. Businesses operating in or selling to the EU must be able to demonstrate that AI-generated product descriptions, metadata, and other content are transparently labelled. merchi.ai’s provenance system helps you meet these obligations by automatically embedding provenance data into every generated output.
Key compliance dates:
- August 2, 2026: Transparency obligations for AI-generated content come into force
- merchi.ai’s provenance system is designed to satisfy these requirements out of the box
Trust and Transparency
Beyond regulation, provenance metadata builds trust with your customers, partners, and downstream systems. Any recipient of your product data can independently verify that the content was AI-generated and check its review status.
What’s Included
Every AI-generated product in merchi.ai automatically receives an _ai_provenance block in its output data. This block contains:
| Field | Description |
|---|---|
| ai_generated | Confirms the content was created by AI |
| generator.model | The AI model used to generate the content |
| generated_at | Timestamp of when the content was generated |
| generation_id | A unique identifier for this specific generation |
| review.human_reviewed | Whether a human has reviewed the content |
| review.review_type | Current review status: pending, approved_without_changes, edited, or rejected |
| review.reviewed_at | When the human review took place (if applicable) |
| verification_uri | URL to independently verify the provenance |
| app_version | Version of the AI Provenance Protocol |
Review types explained
| Type | When it’s set |
|---|---|
pending | Content has been generated but not yet reviewed |
approved_without_changes | Workflow status changed to Approved without any manual edits |
edited | Content was manually edited before or during approval |
rejected | Workflow status changed to Rejected |
Viewing Provenance in the UI
When you open a product in the Product Detail view, the AI Provenance card appears below the Metadata section. It shows:
- The AI model used to generate the content
- When the content was generated
- The current review status
- The generation ID
- A Verify link that opens the public verification endpoint directly in your browser
How Human Review Tracking Works
merchi.ai automatically tracks human review of AI-generated content through the Workflow Status system:
- When content is generated, the review status is set to Pending Review
- If you manually edit and save any content field before approving, the review type is set to
editedto record that the AI output was human-modified - When a user changes the workflow status from “Pending” to any other status (Review, Approved, or Rejected), the provenance record is updated to reflect that a human has reviewed the content
- The reviewer’s action and timestamp are recorded
This creates a clear audit trail showing that AI-generated content has been reviewed by a person before being published or exported.
Provenance in Exports and Webhooks
The _ai_provenance metadata is automatically included in:
- Webhook payloads — downstream systems receiving product data via webhooks always get the provenance metadata
- API responses — the provenance block is part of the product output returned by the API
- CSV exports — provenance fields are included in exported data
This ensures that provenance information follows your content wherever it goes, maintaining compliance throughout your content supply chain.
Verifying Provenance
Any person or system with a generation ID can independently verify the provenance of AI-generated content using the public verification API. No authentication is required.
Verification API
GET https://app.merchi.ai/api/functions/v1/verify/{generation_id}
Example Request
curl https://app.merchi.ai/api/functions/v1/verify/11cab0ef-aff1-4ac7-9fd9-0d8ff74e4603
Example Response
{
"found": true,
"app_version": "1.0.0",
"ai_generated": true,
"generator": {
"model": "google/gemini-3-flash-preview-20251217"
},
"generated_at": "2026-03-07T11:15:21.989Z",
"review": {
"human_reviewed": false,
"review_type": "pending"
}
}
If the generation ID is not found, the API returns:
{
"found": false
}
How to Use Verification
- Find the generation ID — it’s in the
_ai_provenance.generation_idfield of any product output, webhook payload, or API response - Call the verification endpoint — make a GET request with the generation ID
- Check the response — confirms whether the content was AI-generated, which model was used, and its review status
This allows your customers, partners, or regulatory bodies to independently confirm the origin and review status of any AI-generated content produced by merchi.ai.
Provenance Data Structure
Content provenance
A top-level _ai_provenance block is embedded alongside the locale keys and covers the AI content generation event:
{
"en-GB": {
"title": "Product Title",
"description": "Product description..."
},
"_ai_provenance": {
"ai_generated": true,
"app_version": "1.0.0",
"generated_at": "2026-03-07T11:15:21.989Z",
"generation_id": "11cab0ef-aff1-4ac7-9fd9-0d8ff74e4603",
"generator": {
"model": "google/gemini-3-flash-preview"
},
"review": {
"human_reviewed": false,
"review_type": "pending"
},
"verification_uri": "https://app.merchi.ai/api/functions/v1/verify"
}
}
Per-image provenance
AI-generated images and images processed with AI background replacement each carry their own _ai_provenance block inside the imageMetadata entry. This makes every image independently verifiable:
{
"en-GB": {
"imageMetadata": [
{
"imageName": "product-studio-render",
"imagePath": "tenant/product/image.jpg",
"imageAltTag": "Studio render of the product on a white background",
"_ai_provenance": {
"ai_generated": true,
"app_version": "1.0.0",
"generated_at": "2026-07-13T14:20:25.592Z",
"generation_id": "dc2b2f8b-5c15-49a3-9eb4-e6d9f2706d11",
"generator": {
"model": "google/gemini-3.1-flash-image"
},
"review": {
"human_reviewed": false,
"review_type": "pending"
},
"verification_uri": "https://app.merchi.ai/api/functions/v1/verify"
}
}
]
}
}
When a product is approved or rejected, the review status cascades to all per-image provenance records automatically.
Frequently Asked Questions
Can I remove the provenance data?
The _ai_provenance block is always included in webhook payloads and API exports to ensure EU AI Act compliance. It cannot be stripped or made opt-in.
Does this affect my product content? No. The provenance metadata is stored separately from your locale content and does not appear in product titles, descriptions, or other fields. It is only visible in the raw JSON output and in the AI Provenance card in the product detail view.
What happens when I re-generate a product? A new generation ID is created and the previous generation ID is recorded as a parent, creating a chain of provenance. This allows you to trace the full history of re-generations.
Do AI-generated images have their own provenance?
Yes. Every image created using the AI Image Generation feature or processed with AI background replacement has its own generation_id and can be independently verified. Approving or rejecting a product updates the review status on both the content provenance and all per-image provenance records.
