# Sales Message QA for Agents An agent-native QA microservice that judges outbound sales messages. One message in, a structured verdict out: score, confidence, failure modes, risk flags, a rewrite, and a send / no-send instruction for autonomous and agent-assisted outbound. Status: private_beta / staging Backend status: implemented_tested_staging Price: 19 EUR (one_time) Current purchase flow: self_serve_api_key Billing mode: self_serve_api_key_metered_after_free_quota (20 free audits per API key, then metered) Live billing: gated (Stripe test mode only) Audit endpoint: implemented — authenticate with an API key (Authorization: Bearer ) or a one-time audit_token Provisioning endpoint: POST /api/provision — self-serve, instant API key, no human approval (test mode) Optional monthly spend cap: set max_monthly_spend_eur at provisioning; exceeding it returns agent_next_action "spend_cap_reached" Agent next action: provision_api_key Beta access: beta@salesmessageqa.dev ## Resources - Human overview: https://agent-sales-message-score.lovable.app/ - Machine-readable product page: https://agent-sales-message-score.lovable.app/agent - Raw JSON spec: https://agent-sales-message-score.lovable.app/agent.json ## Endpoints - POST /audit-message (implemented): POST a message payload and receive a structured QA verdict. Authenticate either with 'Authorization: Bearer ' (20 free audits, then metered billing; returns a 'billing' block, 402 with agent_next_action 'spend_cap_reached' when a monthly cap is hit) or with a one-time 'audit_token' in the body. - POST /api/setup-intent (implemented_test_mode): Creates a Stripe SetupIntent (test mode). Returns { client_secret, setup_intent_id }. Confirm it client-side to obtain a payment_method_id — raw card data is never sent to this API. - POST /api/provision (implemented_test_mode): Self-serve API key provisioning, no human approval. Input: { org_identifier: string, email?: string, payment_method_id: string (from a SetupIntent), max_monthly_spend_eur?: number }. Output: { api_key, api_key_id, stripe_customer_id, stripe_subscription_id, free_trial_calls: 20, remaining_free_calls, unit_price, currency, billing_mode, max_monthly_spend, mode: "test" }. The api_key is returned once and stored hashed. Live billing is gated pending go-ahead. - POST /checkout (test_mode_only): Stripe checkout for one one-time audit. Implemented and tested in test mode; gated behind ?checkout_test=1 and not publicly live. - GET /success (implemented): Verifies a completed checkout session and returns the one-time audit token (idempotent on reload). - GET /agent.json (implemented): Raw machine-readable product spec. - GET /llms.txt (implemented): Plain-text overview for LLM agents.