From the repository
The standard is the source
SIGNET is published as an open, CC0 repository of JSON Schemas, codelists, worked examples, and reference tools. The website renders from it; you build against it directly.
git clone https://github.com/concerthq/signet-standard.git
cd signet-standard && npm install
npm run validate # validate examples against the JSON Schemas
npm run transform # project the invoice to Peppol BIS Billing 3.0 UBL
npm run verify-ubl # reconcile the UBL against the source invoice
npm run conformance # run the conformance suite (reference adapter → Full)
npm run conformance:broken # run it against the broken adapter (→ none)Schemas carry stable $ids under https://concert.foundation/signet/v0.1/, so you can $ref them directly — they resolve to the pinned artifacts in a browser.
Architecture overview
Five layers, one harness
Integration patterns
Three ways to build
Connect a tool (MCP Server)
Expose your procurement tool — ERP, CLM, risk platform, analytics engine — as an MCP server. SIGNET agents discover and use your tool through the standard Model Context Protocol interface. Authentication, rate limiting, and permission boundaries are handled by the harness.
{
"name": "acme-clm",
"version": "1.0",
"description": "Contract lifecycle management",
"capabilities": [
"contract.search",
"contract.extract",
"obligation.list"
],
"auth": { "type": "oauth2", "scopes": ["read:contracts"] }
}Deploy an agent (Agent Card)
Register your AI agent in the SIGNET agent registry. Agents declare their capabilities via A2A Agent Cards, are governed by the rules engine, and produce immutable audit trails. All agents operate within sandbox boundaries determined by their category and entity scope.
{
"name": "procurement-negotiation-agent",
"description": "Negotiates within governed parameters",
"capabilities": ["negotiate.price", "negotiate.terms"],
"constraints": {
"max_discount": "15%",
"requires_approval_above": "£500K"
},
"audit": true
}Build an integration (Workato Recipe)
Use Workato's 1,200+ pre-built connectors or build custom recipes to bridge your systems with SIGNET. Event-driven architecture: subscribe to procurement events (supplier.registered, bid.submitted, contract.awarded) and trigger downstream actions in your systems.
// Subscribe to SIGNET events
on("contract.awarded", async (event) => {
await erp.createPurchaseOrder({
supplier: event.supplierId,
value: event.awardValue,
terms: event.contractTerms,
});
});Standards references