Description
n8n-nodes-tracepass
This is an n8n community node. It lets you automate
TracePass — the EU Digital Product
Passport platform — in your n8n workflows.
TracePass generates compliant Digital Product Passports (DPPs) for EU
regulations (ESPR, the Battery Regulation, and more). This node lets
you create and manage products, passports, and GS1 EPCIS 2.0
supply-chain events directly from n8n — no code.
n8n is a fair-code licensed workflow automation
platform.
Installation ·
Operations ·
Credentials ·
Example workflows ·
Resources
Installation
Follow the
community nodes installation guide
in the n8n documentation.
In n8n: Settings → Community Nodes → Install, then enter
n8n-nodes-tracepass.
Operations
The operations below mirror the node’s nodes/TracePass/*Description.ts
files; if they ever disagree, the code is right.
Product
- Create — add a product to the catalogue
- Create Batch — create up to 100 products in one call, with partial
- Archive — soft-archive a product (reversible, not deletion); blocked
- Get — retrieve a product by ID
- Get Many — list products, with category / search filters
- Update — update a product’s name, model, or description
- Create — create a Digital Product Passport as a draft (a draft
- Create Batch — create up to 100 passport shells in one call (each
- Capture Measurements / Capture Measurements by Serial — push
- Get Measurements / Get Latest Measurements (and their *by
- Get / Get by Serial — retrieve a passport by ID or by its
- Get Many — list passports, with status / product filters
- Get QR / Get QR by Serial — render the passport QR code
- Get Snapshots — list a passport’s immutability snapshots, newest
- Get Snapshot — the full archival record of one snapshot: the complete
- Compliance — get a three-tier compliance verdict (compliant /
- Registry Readiness — check whether a passport would pass the EU DPP
- Get Registry Address — prepare the address (UPI) to paste into the EU
- Create Registry Upload File — build the EU DPP Registry upload file
- Record Registry Result — record what the operator reports after acting
- Undo Registry Result — remove a mistakenly recorded production or
- Place on Market — register a published battery passport through an
- Get Condition Flags / Get Condition Flags by Serial — read the
- Set Condition Flags / Set Condition Flags by Serial — set or
- Set Party — create or replace the economic operator for one role
- Remove Party — remove the party for one role; safe to repeat
- Update Field / Update Field by Serial — set the value of one
- Suspend / Suspend by Serial — suspend a published passport
- Archive / Archive by Serial — archive a passport
- Mark for Deletion / Mark for Deletion by Serial — the first of
- Delete — on a passport marked for deletion, the second step: a soft
- Export / Export by Serial — export a passport’s events as a
- Capture — submit EPCIS 2.0 events (requires the EPCIS add-on)
- Get Capture Job — poll an async capture job
- Query — query the EPCIS event store with the standard EPCIS
- Check — ask what EU law says for a product type matching the
- Get Catalogue Report — get the company-wide scope report: for
- Start Catalogue Run — re-check every passport in the catalogue
- Get Catalogue Run — the status and counts of a run; once
status - Get Many — list the DPP category templates with their field
- Get — get the full regulatory field schema for one category
- TracePass API documentation
- TracePass
- n8n community nodes documentation
success per item; the whole batch is counted against the daily write cap
upfront (if it would exceed the cap, nothing is created — 429). Products
are not billable on their own
with 409 while any non-archived passport still references it
Passport
takes no plan DPP slot and is not billed; the slot, and any overage,
is taken when it is published in the TracePass dashboard). For a repurposed, remanufactured or reused battery, add
Lineage (JSON) under Additional Options to link the new passport
to the original(s) (Battery Regulation Art. 77(7))
item: a product ID plus a GS1 GTIN + serial or an EN 18219 identifier
scheme; battery passports accept only GS1 or ISO 15459). Field values are
not accepted here — set them afterwards with Update Field. Partial
success per item; consumes one plan DPP slot per passport
over-life battery data from your own equipment (state of health, cycle
counts and the other Battery Regulation Annex XIII point 4 values) into a
published battery passport; metered against the plan’s monthly measurement
allowance, and paid plans keep counting past it at no charge
Serial* forms) — read a battery passport’s measurement history, or the
newest value per field
serial number
(SVG / PNG / JSON), optionally in the company brand colour or an
explicit colour, by ID or by serial
first (one is written on publish and after every change to a non-draft
passport), each with version, reason, actor, content hash and a
re-verified hashValid; set As Of to get the version valid at a given
moment instead
JSON-LD the passport asserted at that time, plus its content hash
(re-verified on read)
compliantwithwarnings / incomplete) with regulation-cited findings —
missing required fields/parties, format issues, and per-category
conditional rules
Registry’s formal submission gate (mandatory fields present, correct
formatting, a resolvable public link). The registry’s mechanical
pre-submission check, not the substantive compliance verdict. Battery only
DPP Registry’s online form for a published battery passport. The economic
operator registers the passport itself on the Registry website under its
own EU Login; TracePass prepares the address and records the preparation,
and never submits. Returns { upi, preparedAt }; refused with 409
(notabattery, notpublished, registeredin_production,
registrynotready with findingDetails, invalid_upi). Battery only,
paid plans
for 1–100 battery passports (Passport IDs, comma-separated), for the
operator to upload on the Registry website. Only passports that would pass
go in; the rest come back in excluded with a reason, because the Registry
rejects the whole file over one bad entry. Returns
{ xml, filename, included, excluded } — save xml under filename.
Paid plans
on the Registry website. Production: the passport is registered
(optional Date of Placing on the Market and Registration ID); the
operator parties lock. Acceptance: a test result (Passed / Failed,
optional Error Code) with no legal effect. The operator’s statement —
TracePass does not verify it with the Registry. Paid plans
acceptance result (TracePass’s record only, never the Registry; a
registration made through an EN 18222 registry API is not undone here).
Paid plans
EN 18222 registry API under your account’s own registry access. The EU DPP
Registry does not accept this path — for it, use Get Registry Address or
Create Registry Upload File, register on the Registry website, then
Record Registry Result. Asynchronous: returns 202 (placing); read the passport to see
placed (with registrationId) or rejected (with
registrationRejectionReason), and run it again to retry a rejection.
Refused with 409 and a code (notabattery, not_published,
alreadyplaced, operatoridmissing, registrynot_configured,
registrynotready with findings). After placement the operator and
facility identifiers are locked. Battery only
condition-classification flags for a passport — approved yes/no facts
(e.g. battery: hasBMS, rechargeable, externalStorageOnly,
isStationaryBess) that gate conditional legal duties
clear condition flags (flag → true / false / null to remove).
Warning: approving a flag may make additional fields required — an
empty required field will block publishing with a conditional_missing
error
(manufacturer, importer, authorised representative, distributor,
recycler, producer responsibility organisation): a legal name plus at
least one identifier (GLN, legacy operator ID, or an EN 18219 operator
identifier; an LEI is checked against the GLEIF register). After a
battery passport is placed on the market, its operator and facility
identifiers are locked (409 operator_locked)
passport field, by ID or by serial
(reversible), by ID or by serial
(irreversible — the public QR permanently 404s), by ID or by serial.
The optional Reason (Recycled, Never Placed, Duplicate or Error) is
required for battery passports: a battery passport ends only when the
battery has been recycled, was never placed on the market or put into
service, or is a duplicate or erroneous record. A passport marked for
deletion cannot be archived (409)
the two steps that delete a passport: the passport can no longer be
edited, and a published one frees its plan slot. Takes the same
Reason, required for battery passports. Refused (409) while a newer
second-life passport names this one as its predecessor. Paid plans
delete that erases nothing (the QR shows that the passport has ended).
On a never-published draft or in-review passport, a permanent delete.
Any other status answers 409. Paid plans
The by-serial operations address a passport by your own serial number.
A serial is unique only within a GTIN, so if the same serial exists under
two GTINs in your account a serial-only call returns 409 — set the
optional GTIN (Disambiguator) field to resolve the passport exactly.
EPCIS Event
GS1 EPCIS 2.0 document, by ID or by serial (included on Starter plans
and up; the by-serial form takes the same optional GTIN disambiguator)
query filters (requires the EPCIS add-on)
Scope
facts given: whether it needs a Digital Product Passport, from when,
at which level, under which act and article, and the duties of each
supply-chain role (manufacturer, importer, distributor). Not legal
advice.
Accepts an optional product category, role, act-namespaced facts
(e.g. battery.use), placing date and precision, locale, and
optional product ID / passport ID to pull in saved facts. Available
on every plan, Free included. Counted against the scope-answer cap
(≈100/day, 30/min burst), not the v1 daily read cap. 429
scopeanswercap with Retry-After past it.
every product and every distinct fact set among its passports,
whether a passport is needed, from when, at which level and under
which act. Filter by classification, category or Changed Only to
see only rows whose answer changed in the most recent run. Use
nextCursor to page through the full report (up to 500 rows per
page). Requires Growth plan or above (scopeCatalogueEnabled); 403
planupgraderequired below that. Counts one v1 daily read per
page.
against the current scope rules. Returns 202 with a runId; 409 while a
run is in progress, 429 run_cooldown when one finished too recently.
Growth plan or above
is done, Get Catalogue Report returns the fresh results
Template
count, required-field count, governing regulation and version
(every field with its key, label, type, required flag, access
level and governing regulation reference)
Templates are read-only reference data — use them to discover what a
compliant passport in a category requires before creating products
and passports.
Credentials
The node supports both of TracePass’s auth methods. On the node, pick
one in the Authentication dropdown — n8n then shows the matching
credential type (you only fill in the one you chose):
| Authentication | Credential type | Best for |
|—|—|—|
| Access Token | TracePass API | A key you own — single user, server-to-server automation |
| OAuth2 | TracePass OAuth2 API | Acting on a specific user’s behalf, with scoped + revocable access |
Access Token (API key) — the simplest. In the TracePass dashboard,
go to Developer → API Keys, create a key (it starts with tp_),
then create a TracePass API credential in n8n and paste it. Use
Test to verify the key before building a workflow. The whole
workspace is reachable (all-or-nothing).
OAuth2 — for when the workflow should act as a particular user with
only the access they granted. Register an OAuth app in the TracePass
dashboard under Developer → OAuth Apps (a public/PKCE client works —
no secret needed), then create a TracePass OAuth2 API credential in
n8n and click Connect: you approve the requested scopes on a
TracePass consent screen, and n8n stores + auto-refreshes the tokens.
Request only the scopes the workflow needs (e.g.
passports:read passports:write offlineaccess — keep offlineaccess
so n8n can refresh). The user can revoke the connection any time under
Developer → OAuth Apps → Connected Apps.
For both, the Base URL defaults to https://app.tracepass.eu —
change it only for a self-hosted or staging deployment.
Example workflows
Shopify → TracePass — on a new Shopify order, create a passport
(product mapped by SKU, serial = order ID), then email the QR code
to the customer.
Daily analytics digest — a Schedule trigger lists yesterday’s
passports and posts a summary to Slack.
CSV → passports — read a CSV of serial numbers and create a
passport per row.
Compatibility
Requires n8n 1.x. Tested against the current n8n community-node API
(n8nNodesApiVersion: 1).


