eudr.dev is one agent on the wire, not a walled garden. It reads the formats your supply chain already speaks, hands back signed Annex II receipts any system can verify offline, and exposes agent-native surfaces other tools call directly.
This page is the reference for every integration point: what it ingests, what it exports, which surfaces other tools call, and what is live today versus on the roadmap. Each endpoint path below is the real one served by the engine.
Unimplemented stub; the dashboard shows a "Notify me" affordance, not a "Configure" path, so it never implies a capability that is not there.| Node | Wire format | State |
|---|---|---|
| Earth-memory backbone | emem /v1/ (content-addressed, ed25519-signed facts) | live |
| Data in — CSV / webhook | multipart upload, one row per scenario | live |
| Data in — GS1 EPCIS 2.0 | application/ld+json, one ObjectEvent per scenario | live |
| TRACES NT out — export | eudr export-traces / eudr.traces.export → official v2 XML or SOAP envelope | live |
| TRACES NT out — submit | authenticated POST under operator EU Login | roadmap |
| ERP adapters (6) | SAP S/4HANA, Dynamics 365 BC, NetSuite, Odoo, Sage Intacct, Infor M3 | planned |
| Your AI agents | MCP (4 tools), A2A v1.0 /a2a/rpc, /v1/ HTTP | live |
| Monitoring & supplier platforms | their exports → CSV / EPCIS / A2A; our receipts anchor their evidence | works alongside |
| Legality & land-tenure providers | LegalityProvider trait | pluggable |
Every per-cell deforestation, legality, and site-context fact eudr.dev cites is read from emem, the open-source Earth-memory protocol, over its /v1/ HTTP surface. emem facts are content-addressed and ed25519-signed; eudr.dev anchors them into the receipt so the verdict is reproducible from the signed evidence chain rather than trusted on our say-so.
eudr.dev sends emem only plot geometry, HS code, country, and quantity — never operator or supplier identity. The engine runtime is closed; the per-cell facts it stands on are produced by the open protocol, so an auditor can replay them independently.
Push or upload a CSV (or JSON) file with one row per shipment. The universal fallback for cooperatives and any operator without an ERP.
POST /app/api/orgs/:org_id/connectors/:connector_id/uploadmultipart/form-data, 5 MB limitGET /app/api/orgs/:org_id/connectors/:connector_id/sample-csvsamples/connectors/csv-schema.md (sample file: samples/connectors/csv-sample.csv)Each row becomes one eudr_core::Scenario, tagged with the connector id and row number so the compiled receipt records its lineage under source_receipts.connector (Art. 9(1)(a) traceability).
The cleanest standards-based pipe, recommended where the supply chain already publishes EPCIS "Origin Declaration" events.
POST /app/api/orgs/:org_id/connectors/:connector_id/epcisapplication/ld+json (EPCIS 2.0 JSON-LD), 5 MB limitGET /app/api/orgs/:org_id/connectors/:connector_id/epcis-samplesamples/connectors/epcis-mapping.md (sample document: samples/connectors/epcis-sample.json)Each ObjectEvent in the document maps to one scenario, tagged with its event index for receipt-side provenance. The @context must include the GS1 EPCIS 2.0 context; org-specific contexts alongside it are tolerated.
Six vendor adapters are scaffolded but not yet wired. They are honest stubs: typed Unimplemented, no OAuth flow, no scheduler, no ingest path. The dashboard keeps each on state: "planned" and offers a "Notify me" affordance rather than a "Configure" one, so the UI never implies an ingest path that does not exist.
| Adapter | Documented integration |
|---|---|
| SAP S/4HANA Cloud | OData V4; OAuth2 client credentials (Communication Arrangement scope). Pulls Vendors, Purchase Orders, Inbound Deliveries. |
| Dynamics 365 BC | Microsoft Entra ID OAuth2; v2.0 API. Reads purchaseOrders, vendors, items. |
| Oracle NetSuite | OAuth 2.0 JWT against SuiteTalk REST; HS code auto-discovered from a custitem_ field. |
| Odoo | API key against XML-RPC / JSON-RPC. Common across EU SME coffee and cocoa roasters. |
| Sage Intacct / X3 | OAuth2 (Intacct) or SData REST (X3); country of origin on item master. |
| Infor M3 / LN | ION API gateway, BOD-based. Strong in Nordic / Benelux food and timber. |
Each planned adapter ships with a documented OAuth flow and four field maps (vendor, purchase order, item, country-of-origin) so the work that remains is implementation, not discovery.
Export is live. Convert a signed DDS receipt into the shape the EU Information System expects:
eudr export-traces <receipt.json> --format official|soap --activity IMPORT|EXPORT|DOMESTIC|TRADE
--format official emits the EU Information System v2 XML (namespace http://ec.europa.eu/tracesnt/certificate/eudr/submission/v2).--format soap wraps that official shape in a complete SOAP 1.1 + WS-Security UsernameToken-Digest envelope, ready to POST.--format engine emits the engine's annotated XML for inspection.The same conversion is exposed to agents as the eudr.traces.export skill on the A2A surface.
Direct submission — the authenticated POST to TRACES NT — is on the roadmap, pending each deployer's own EU Login credentials. eudr.dev never files on the operator's behalf silently: TRACES submission is the operator's act under their own EU Login identity, and the operator remains the filer of record.
eudr.dev is agent-native on three surfaces that return byte-identical evidence anchors; pick the cheapest integration path.
crates/eudr-mcp speaks JSON-RPC 2.0 over stdio and exposes four tools: eudr_check_polygon, eudr_generate_statement, eudr_lookup_reference, eudr_verify_receipt. Wire it into any MCP host (Claude Desktop, Continue, Cline, Cursor).POST /a2a/rpc, with a signed agent card at /.well-known/agent-card.json and an SSE event stream per task./v1/ — stateless, semantically-named endpoints with no auth: /v1/spatial/verify, /v1/dds/generate, /v1/receipt/verify, /v1/reference/countries, /v1/reference/commodities.Runnable recipes (LangChain, CrewAI, MCP raw stdio) live in docs/agents/.
eudr.dev works alongside continuous-monitoring and supplier-management platforms without claiming any partnership. The interoperability runs both ways:
This is a description of a data path, not an endorsement. We name no vendors and make no partnership claims; any tool that speaks these wire formats can sit on either end.
Legality checking is an extension point. Implement the LegalityProvider trait (crates/eudr-pipeline/src/legality.rs) and supply it to the pipeline via .with_legality(...) to swap in your own national-registry, tenure, or certification integration.
The shipped baseline (BaselineLegality) derives a country tier from Implementing Reg. (EU) 2025/1093 and records supplier-identifier presence and declared certifications. It explicitly does not verify land tenure, harvest permits, or FPIC: those require national-registry or partner-legality-module integration and are recorded on the receipt as Unknown with source = "out_of_scope" rather than silently passed.
docs/agents/README.mdsamples/connectors/csv-schema.mdsamples/connectors/epcis-mapping.md/docs/audit/verify-offline/.well-known/agent-card.json · OpenAPI: /openapi.jsoneudr.dev is an independent AI agent operated by Vortx AI Private Limited. It is not affiliated with, endorsed by, or sponsored by the European Commission, the European Union, or any EU institution, agency, or Member-State authority. The "works alongside" and "pluggable" labels above describe interoperability only; they imply no partnership, certification, or endorsement by any third party. The Regulation's official text is the authoritative source; eudr.dev produces evidence summaries, not legal advice, and the operator remains responsible for the due-diligence statement they file.