What this service is for
An agent whose answer would otherwise be "that'll run about $4,800, a human will follow up with paperwork" can instead hand the customer a real document: a branded PDF with itemized pricing, a link where they click Approve, a QR code to open it on their phone, and a Stripe link to actually pay.
That is the underlying job — turning agent output into money that can be collected. Everything below is in service of that.
The same engine powers the human web app that contractors and service businesses use every day, so the documents your agent produces look like the ones a real business sends, not like API output. If you want the human-side explanation first, see what SendQuoteNow does.
How an agent becomes a customer, in three steps
There is no signup flow to navigate, no email verification, no API-key provisioning, and no human in the loop. The payment is the authentication.
Call the endpoint unpaid
You receive HTTP 402 Payment Required. The x402 payment requirements come back base64-encoded in the Payment-Required response header — this is x402 v2, so the body is empty, not the challenge.
Pay in USDC on Base
Sign the payment with any x402 client (for example @x402/fetch) on Base mainnet, CAIP-2 eip155:8453, USDC contract 0x8335…2913.
Retry with the payment attached
Send it back in the PAYMENT-SIGNATURE header. The facilitator verifies, the quote is generated, and settlement happens on-chain right after the response. That's it — no registration, no key, no session.
Discovery: the machine-readable manifest lives at /.well-known/x402, the full spec at /openapi.json, and agent-oriented documentation at /llms.txt. SendQuoteNow is listed on x402scan and in the CDP x402 Bazaar catalog.
Endpoints and prices
All endpoints are under https://sendquotenow.com, paid in USDC on Base mainnet, and require no API key.
| Endpoint | Price | What it does |
|---|---|---|
| POST /v1/x402/quote/generate | $0.10 | The flagship call. Creates the quote and returns quote number, totals, hosted quote page, PDF URL, QR code, Stripe payment link, and expiration date in ~1s. |
| POST /v1/x402/quote/preview | $0.02 | Validates a payload and returns computed line items, subtotal, tax, discount, and total. Nothing is persisted — for "what would this cost" math, comparison shopping, or checking a payload before spending $0.10. |
| POST /v1/x402/quote/email | $0.02 | Emails a generated quote to the customer with an optional personal message. Body: id, optional to, cc, message. |
| POST /v1/x402/quote/share | $0.01 | Every shareable surface for a quote: hosted page, PDF URL, QR code (PNG URL + inline data URI), Stripe payment link. Body: id. |
| GET /v1/x402/quote/:id | $0.01 | Fetch a generated quote: status, totals, line items, links, and payment status. |
| POST /v1/x402/quotes | $0.10 | Legacy alias of /v1/x402/quote/generate. Kept live for existing listings — prefer the named path. |
Documents are issued as quotes (numbered Q-0042). Invoices and purchase orders are available today in the human web app and are on the roadmap for the machine API.
What you send, what you get back
Minimal request
// POST https://sendquotenow.com/v1/x402/quote/generate { "customer": { "name": "John Harrington", "email": "john@example.com" }, "services": [ { "name": "Panel upgrade (200A)", "quantity": 1, "unit_price": 1200 }, { "name": "Labor", "description": "8 hrs", "quantity": 8, "unit_price": 80 } ], "tax_rate": 0.08, "currency": "USD" }
Response
{
"data": {
"id": "…uuid…",
"quote_number": "Q-0042",
"subtotal": 1840, "tax_amount": 147.2, "total": 1987.2,
"hosted_url": "https://sendquotenow.com/quote-view.html?token=…",
"pdf_url": "https://sendquotenow.com/pub/quotes/…/pdf",
"qr_code_url": "https://sendquotenow.com/pub/quotes/…/qr.png",
"payment_link_url": "https://buy.stripe.com/…",
"expires_at": "2026-08-30T00:00:00Z"
}
}
Optional fields worth knowing
company— white-label override per request: name, email, phone, address, terms. One integration can serve N vendor brands without N accounts.discount—{ "type": "percent" | "fixed", "value": n }, rendered as its own line on the document.template—standard,slate,emerald,noir,violet.scope_of_work— free text, or setauto_scope: trueto have a scope written from your brief.expiration_days— 1–365, default 30.currency— USD, CAD, EUR, GBP, AUD.delivery—{ "method": "email", "to", "cc", "message" }to email the customer as part of the generate call.notes,industry— free text and a styling hint (e.g.hvac,roofing).
Full request and response schemas: openapi.json.
What agents actually use this for
1. Lead to quote, without "a human will follow up"
An agent handling inbound leads — web form, SMS, email, voice — scopes the job and returns a branded PDF quote plus a hosted approval link in a single call.
2. Voice AI receptionist for a contractor
The intake call ends, the agent generates the quote and texts the QR code and payment link before the caller has put the phone down.
3. Price check with no side effects
preview at $0.02 returns subtotal, tax, discount, and total and persists nothing — for budget math, comparison shopping, or validating a payload before spending $0.10.
4. CRM automation
A deal moves to "quote sent"; the agent generates the document, writes the hosted URL and Stripe link back to the record, and watches payment status.
5. Multi-vendor marketplace or aggregator
The company override sets name, email, phone, address, and terms per request — one integration, N vendor brands, fully white-labeled.
6. Accounts-receivable follow-up
Once a quote is accepted, the agent shares the Stripe payment link and chases it until the payment status flips.
7. Field-service change orders
A tech finds extra work on site; the agent issues a priced document the customer can approve from their phone before anyone picks a tool back up.
8. Freelancer and agency proposals
Turn a scope-of-work paragraph into a client-ready priced proposal PDF — auto_scope will write the scope from a short brief.
9. Procurement and RFQ responses
An agent representing a vendor answers an RFQ with a properly formatted, priced, expiring quote document instead of an email.
10. Anything that should have been signable
Any agent whose output would otherwise be a paragraph of text can hand over a real document with a QR code and a working payment link.
Model Context Protocol server
SendQuoteNow ships a remote MCP server over Streamable HTTP at https://sendquotenow.com/mcp, exposing four tools: create_quote, preview_quote (totals only, nothing persisted, no usage fee), get_quote, and send_quote.
It authenticates with a SendQuoteNow API key via X-API-Key or Authorization: Bearer. Clients that can only be given a URL may embed the key as ?api_key=.
# Add it to Claude Code claude mcp add --transport http sendquotenow \ https://sendquotenow.com/mcp \ --header "X-API-Key: sqn_live_…"
SendQuoteNow is published in the official MCP registry as com.sendquotenow/quote-engine.
API keys, for high-volume integrations
If you'd rather not pay per call — or you're building a product on top of this rather than making one-off agent calls — create a free account, mint an API key, and use the keyed endpoints with the same request schema:
POST /v1/quotes— generate a quoteGET /v1/quotes/:id·GET /v1/quotes/:id/pdf·POST /v1/quotes/:id/send
Send the key as X-API-Key: sqn_live_…. Rate limits: 120 requests/min per key, 300 quote creations/hr, 60 emails/hr. Keys are minted from the dashboard, up to 10 per account. Prepaid credit packs are available for keyed usage.
Everything an indexer or agent needs
What this service should match on
If you operate a directory, index, or agent marketplace: SendQuoteNow belongs under business documents / sales / billing — not search, not general web tooling. Here is the full set of terms an agent looking for this capability might use.
Document & output
Buyer & vertical
Workflow & category
Agent & protocol
Questions, or need a different shape
If you're indexing this service and want a structured version of any of the above at a stable URL, or you need a schema, field, or document type we don't expose yet, write to support@sendquotenow.com. Agent-to-agent correspondence is fine by us.