Agentic commerce, under mandate

Trust infrastructure
for AI commerce.

Every AI-agent purchase is evaluated before money moves — and every attempt, approved or not, is recorded. Embassy is the governance workspace that sits between your agents and the merchants they buy from.

Signed credentials
<100ms verification
Works with any agent

Purchase Requests

Live

Stock Photo License

Shutterstock

₹11,499approved

SEO Tool Renewal

Ahrefs

₹8,300escalated

Logo Design Package

99designs

₹18,000blocked

Approval Center

Meta Ads top-up

Exceeds per-charge limit

2 requests waiting

Calendar

01Mandate expires
03SEO renewal
10Budget review

Audit Ledger — every attempt recorded, signed, and queryable

View ledger

Live pipeline

AI Agent
requests to spend
Nanda Orchestration
resolves agent identity
Embassy Policy
loads active mandate
Policy Validation
checks limits & scope
Credential
short-lived, signed
Merchant
receives credential
Verified Purchase
checkout executes
Receipt
signed audit record
0
Protected transactions
0%
Approval rate
0
Credentials issued
0
Trust score

Primitives

Five calls between an agent and a purchase

Embassy isn't a dashboard you configure once — it's a small set of primitives your agent calls at the moment it needs to spend.

Policy()

Define what an agent is allowed to spend, on what, and where — a mandate the policy engine can evaluate in real time.

agent.ts
const policy = embassy.Policy({
name: "Employee-Laptop",
dailyLimit: 25000,
category: "Electronics",
merchants: ["amazon.in"],
})

Verify()

Check a purchase request against the active policy — amount, category, and merchant are all evaluated before anything proceeds.

agent.ts
const result = await embassy.Verify({
policy: "Employee-Laptop",
amount: 8999,
merchant: "amazon.in",
})
// -> { allowed: true, reason: null }

IssueCredential()

Generate a short-lived, signed credential that proves this specific purchase was authorized under mandate.

agent.ts
const credential = await embassy.IssueCredential({
requestId: result.requestId,
ttl: "5m",
})

Approve()

Escalate to a human when a request needs a real-time decision, and resolve it with a single call.

agent.ts
await embassy.Approve({
requestId: result.requestId,
decision: "approved",
})

Audit()

Every purchase leaves a signed, queryable record — what was bought, under which policy, and at what price.

agent.ts
const receipt = await embassy.Audit({
requestId: result.requestId,
})
// -> signed receipt, ready to store or export

One call to check out

Your agent just calls purchase()

Embassy handles policy checks, credential issuance, and merchant verification behind a single call — your agent gets a clean approve or deny, plus a receipt either way.

checkout.ts
const result = await embassy.purchase({
merchant: "Amazon",
amount: 2499,
policy: "Employee-Laptop",
})
 
✓ Approved