CallsHandled agent commerce
Integration preview. Live agent purchasing remains disabled pending payment and end-to-end verification. The no-charge sandbox path uses @example.com addresses and is available only when its separate test configuration is ready. This page does not announce directory acceptance.
CallsHandled answers forwarded business calls and captures requests. Booking needs a supported connected calendar and provider confirmation. Activation timing is confirmed after configuration, forwarding and testing.
Portfolio connector endpoints and readiness
Discover plans
GET /.well-known/agent-catalog.json returns the version 1.0 catalog when purchasing is available. While unavailable it returns HTTP 503 with a machine-readable explanation. Receptionist is $297/month and Service Desk is $497/month. Approved new-connector allowances are 150 connected minutes for Receptionist and 300 for Service Desk per subscription billing period. Automatic messages are held; principals send reviewed drafts. Live connector purchasing stays disabled. Existing customers retain their accepted agreements. Read the new connector purchase terms and check the current packages for service details.
Purchase
POST /api/agent/purchase. No API key. The principal must approve. Payment happens in Stripe Checkout; this response never provisions service.
{
"sku_id": "ch-receptionist",
"idempotency_key": "550e8400-e29b-41d4-a716-446655440000",
"customer": {
"business_name": "Demo business",
"contact_name": "Jane Smith",
"email": "jane@example.com",
"phone": "+15615550123",
"timezone": "America/New_York"
},
"metadata": { "agent": "muse", "principal_consent": true },
"payment": {
"mode": "stripe_checkout",
"success_url": "https://callshandled.ai/thanks",
"cancel_url": "https://callshandled.ai/pricing"
}
}Use a new UUID v4 for each distinct intended purchase. Retry the identical request with its original key. Replays return the original checkout with idempotent_replay: true; changed requests return HTTP 409. Maximum five reserved purchases per email per rolling hour. Return URLs must use https://callshandled.ai.
Status
GET /api/agent/purchase/:token returns awaiting_payment, active, expired or failed. Paid purchases also expose provisioning_status. Keep the purchase token private: it grants access to that purchase's status and receipt. Never put it in public logs.
MCP
POST https://callshandled.ai/mcp using stateless Streamable HTTP. Supported protocol versions: 2025-06-18 and 2025-03-26. Send Accept: application/json, text/event-stream and Content-Type: application/json. Tools: list_plans, start_purchase, purchase_status. Full schemas are returned by tools/list. The MCP and REST transports share the same purchase logic.
No-charge testing
Addresses ending exactly in @example.com can use only a configured Stripe test environment. Use the sample request above with an @example.com address and explicit principal consent. If the sandbox is absent or not ready, the API returns a machine-readable unavailable response; a published sample is not proof of availability. It never falls back to live Stripe. Test payments never allocate a phone number or provision a live receptionist. Only use Stripe test payment details in a test checkout; never use a real card for this demo. Sandbox status may describe a paid test checkout, but it never means a live phone or receptionist was provisioned. Publishing these instructions is not evidence that an end-to-end test passed.
Data and terms
The purchase path stores the business/contact fields above, consent assertion, agent label and payment references in the service database. It does not read email or bank accounts. Card details are entered at Stripe. Privacy policy · New connector purchase terms · General terms.