Standards & APIs
What we actually output.
Three honest claims you can verify in a few clicks: UNTP-aligned JSON-LD, GS1 Digital Link-compliant URLs, and role-based access views.
UNTP-aligned JSON-LD
Every published passport produces JSON-LD that aligns with the UN Transparency Protocol vocabulary[UNTP] and uses the schema.org core for product fields.
The UNTP specifications are deliberately framed by UN/CEFACT as suitable for pre-production pilot implementations. We treat that as a feature, not a bug — we ship the parts that are ready and clearly mark the parts that aren't (see What we don't claim below).
{
"@context": [
"https://vocabulary.uncefact.org/untp/",
"https://schema.org/",
{ "ss": "https://schema.sellsafely.ai/" }
],
"type": ["DigitalProductPassport", "Product"],
"id": "https://sellsafely.ai/01/01234567890128",
"name": "Classic Crew Neck Tee — Forest Green",
"materialProvenance": [
{ "materialName": "Organic Cotton", "massFraction": 0.95 },
{ "materialName": "Elastane", "massFraction": 0.05 }
],
"certification": [ /* ... */ ],
"ss:gs1DigitalLink": "https://sellsafely.ai/01/01234567890128",
"ss:isSample": true
}GS1 Digital Link
One product ID, one URL, multiple views. GS1 Digital Link[GS1 Digital Link] is the standards-based way to encode a GS1 identifier (GTIN, batch, serial) in a Web URI that resolves to the right content for the right audience.
Resolver URL pattern
https://sellsafely.ai/01/{gtin14}/21/{serial}/01/ is the GS1 Application Identifier for GTIN. /21/ is the AI for serial number — optional. Hit the URL with Accept: application/ld+json to get JSON-LD; default text/html renders the human passport. Future work: linkset routing per RFC 9264[RFC 9264].
Resolver & view model
The same passport URL can serve different views to different audiences. Today the public viewer is at /p/{gtin}; the canonical GS1 path (id.sellsafely.ai/01/...) ships when the DPP CDN goes live. See the access model on /security for what each tier sees.
Material allocation vs material ledger
Two different problems. We solve one of them.
Material Allocation
Allocate certified material quantities and evidence coverage across shipment lines, products, and claims with explicit allocation methods (BOM-weight, unit-weight, equal-split with confirmation, manual).
- Shipment-coverage support — “does this evidence cover this product line?”
- Claim support allocation with reasoning recorded on every allocation
- Evidence-linked claim records (per-product, with provenance)
Material Ledger
A certified balance-reconciliation system that tracks volumes of certified material available for sale — bank-account-style accounting against scope and transaction certificates.
- Certified balance reconciliation (e.g., Textile Exchange Trackit)[Textile Exchange Trackit]
- Volume-tracking ledger across organizations + transactions
- Trackit-style certified-balance accounting
Material allocation supports shipment-level claim records — recording which evidence backs which product line. It is not a substitute for certified material-ledger accounting. If you need certified-volume reconciliation across transactions, that's Trackit's domain[Textile Exchange Trackit].
Developer docs
Want to see this on your products?
Bring 1–2 supplier files. We'll show you UNTP-aligned JSON-LD on real SKUs in 15 minutes.