← BACK TO USE CASES
USE CASENEW TOOLS, FAST

Vendor Onboarding & Tool Provisioning

Let agents trial new vendors and provision tools quickly while keeping spend isolated, reviewable, and easy to revoke.

The Problem

New tools are bought in a hurry: someone wants to try a new SaaS, add a plugin, purchase seats, or pay for a trial. When agents help, the risk is that “trial spend” becomes “evergreen spend” or leaks onto a shared corporate card with messy attribution.

The Solution

Issue a dedicated trial card per vendor or per workflow with a strict cap and merchant lock. Require an intent for every purchase, attach receipts, and revoke instantly if the trial ends or the vendor is rejected.

Key Features

Trial budgets by default

Start with small caps (e.g., $25–$100). Require approval to raise limits or add new merchants.

Merchant allowlists

Lock the card to the exact vendor domain so the trial can’t drift to unrelated merchants.

Seat and plan reconciliation

Persist evidence logs that tie charges to the tool name, plan tier, and who requested the trial.

Instant revocation

If the trial ends, freeze the card and stop renewals immediately.

How It Works

01

Agent proposes tool

Agent identifies a tool and drafts a short “why this tool” intent with an expected budget.

02

Trial policy applies

System auto-approves low budgets and escalates anything above your threshold.

03

Vendor-locked card

A dedicated card is issued/unlocked for the vendor’s checkout and renewal window.

04

Verify and decide

Transaction is verified against intent; trial outcomes determine whether to keep or revoke.

Code Example

// Trial card for a new vendor
const trialCard = await signets.cards.create({
  agent_id: "tooling-agent",
  spending_limit: 5000, // $50.00 trial budget
  merchant_lock: "newvendor.com",
});

const intent = await signets.intents.create({
  purpose: "Trial NewVendor for analytics (14-day trial)",
  expectedAmount: 5000,
  expectedMerchant: "newvendor.com",
});

// After purchase:
await signets.transactions.list_for_card({ cardId: trialCard.id });

Ready to get started?

Issue your first card and start building.