DPP Agent docs

Suppliers — registry with journey-block overlay

The supplier registry mirrors certifications. A supplier (mill, component-maker, assembler, recycler, packaging vendor, logistics partner) is registered once at the tenant level and applies automatically to matching DPPs via a scope filter — same model as certifications.

The supplier rows then surface on the public DPP's Journey block: who made what, where, when.

Industry-agnostic on purpose: this same model handles textile mills, battery cathode suppliers, semiconductor fabs, raw cotton growers, plastic resin suppliers, leather tanneries, packaging companies, recyclers, freight forwarders, and end-of-life processors.

Object shape

{
  "id": "sup_3f2a9b1c-…",
  "tenant_id": "tnt_…",
  "name": "Hangzhou Cotton Mills",
  "country": "CN",
  "facility_id": "DUNS:445566778",
  "tier": "T2",
  "activity": "Spinning",
  "year": 2026,
  "category_scope": ["textile"],
  "scope_filter": {
    "category": ["textile"],
    "material_family": ["cotton"]
  },
  "source_category": "textile_voluntary",
  "verified_at": null
}

tier follows the textile / battery / electronics convention:

  • T0 — the brand itself (assembler / packager)
  • T1 — confection / final assembly
  • T2 — sub-component manufacturing
  • T3 — material processing (spinning, smelting, refining)
  • T4 — raw material (fibre, ore, plant-based precursor)

activity is a free-text descriptor that surfaces on the Journey block ("Spinning", "Cell coating", "Dyeing", "Final assembly").

List suppliers

GET /api/v1/tenants/{id}/suppliers

Register a supplier

POST /api/v1/tenants/{id}/suppliers
{
  "name": "Bavaria Cell Coating GmbH",
  "country": "DE",
  "tier": "T2",
  "activity": "Cell coating",
  "year": 2026,
  "category_scope": ["battery"],
  "scope_filter": { "category": ["battery"] }
}

Bulk import

POST /api/v1/tenants/{id}/suppliers/import
Content-Type: multipart/form-data

Upload XLSX or CSV. Header row is auto-mapped per category (textile, battery, electronics each have category-aware header detection — no LLM required for standard exports).

Preview matches

GET /api/v1/tenants/{id}/suppliers/{sup_id}/preview-matches

Same as for certifications. Verifies the scope_filter covers the DPPs you expect before committing.

Templates

GET /api/v1/tenants/{id}/suppliers/template?category=textile

Downloads a category-specific XLSX template with the right columns

  • example rows for the operator to fill out.

Auto-apply on read

Resolver evaluates each DPP read against the tenant's supplier registry and overlays matching rows onto the Journey block. No per-DPP write.