{"version":1,"merchant":{"name":"AI Promo Services","website":"https://aipromoservices.com"},"service":"Business marketing and AI Transaction Readiness","discovery":{"productFacts":"https://aipromoservices.com/.well-known/aips-capabilities.json","documentation":"https://aipromoservices.com/llms.txt","mcp":"https://aipromoservices.com/mcp","openapi":"https://aipromoservices.com/openapi.json","pricing":"https://aipromoservices.com/#pricing"},"freeAudit":{"state":"available","mcp":{"endpoint":"https://aipromoservices.com/mcp","steps":["create_audit_session","request_free_report","get_free_report"],"instructions":"Save the returned private sessionToken before requesting. Supply the same sessionToken and caller-generated UUID requestId for an uncertain start; poll the original reportId until complete. The token is the same report capability used by the aips_audit_browser cookie for account handoff."},"entry":{"method":"GET","url":"https://app.aipromoservices.com/api/public-audits"},"start":{"method":"POST","url":"https://app.aipromoservices.com/api/public-audits","body":{"website":"https://business.example/","email":"owner@business.example","requestId":"caller-generated-id"}},"status":{"method":"GET","urlTemplate":"https://app.aipromoservices.com/api/public-audits/{reportId}"},"instructions":"For direct HTTP, retain the aips_audit_browser cookie from entry and use one UUID requestId. POST application/json with Origin set to the application origin. Read the returned reportId and status; a queued response is not a completed audit. Respect retryAt and never submit a second start after an uncertain response without checking the original. MCP provides equivalent session, request and read tools without requiring a cookie jar."},"paidService":{"state":"agent_subscription_available","nextStep":"Use the verified business owner's delegated account session to claim the audit, confirm business setup and the current terms, and submit a recurring-capable Stripe card PaymentMethod through the subscription API. Stripe must confirm the card, subscription and invoice before service is available.","agentSubscription":{"available":true,"interface":"HTTPS JSON using the existing account, setup and billing APIs","account":{"signIn":"https://app.aipromoservices.com/api/session","signup":"https://app.aipromoservices.com/api/account/signup","verifySignup":"https://app.aipromoservices.com/api/account/signup/verify","signupBody":{"email":"buyer's authorized email","password":"12-256 characters"},"verificationBody":{"email":"same email","password":"same password","code":"code received through the buyer's authorized inbox"},"signInBody":{"email":"verified account email","password":"account password"},"instructions":"Use the buyer's delegated credentials and verified email access. Keep the returned aips_session cookie and csrfToken. Mutation requests require application/json, Origin set to this application origin, X-AIPS-CSRF and X-AIPS-Tenant set to activeTenantId. Never submit account passwords or card credentials to public discovery tools."},"setup":{"create":"https://app.aipromoservices.com/api/setup-drafts","commands":"https://app.aipromoservices.com/api/setup-drafts/{draftId}/commands","claimAudit":{"method":"POST","urlTemplate":"https://app.aipromoservices.com/api/public-audits/{reportId}/claim","body":{"reportId":"original reportId","expectedVersion":"current audit version","requestId":"caller-generated-id"}},"createBody":{"reportId":"claimed original reportId","selectedPlan":"monthly or annual","requestId":"caller-generated-id"},"read":"https://app.aipromoservices.com/api/setup-drafts/{draftId}","commandFields":{"requestId":"new stable ID for this command; reuse exactly on uncertain transport","expectedRevision":"current draft.revision"},"steps":[{"kind":"save","step":1,"values":{"website":"confirmed business URL matching the original audit"}},{"kind":"save","step":2,"values":{"market":"business service area","language":"en or another supported language","timeZone":"IANA time zone"}},{"kind":"save","step":3,"values":{"businessName":"confirmed business name","description":"confirmed business description","audiences":["confirmed audience"],"offer":"actual offer","difference":"supported distinction","primaryGoal":"business goal","boundaries":"business restrictions"}},{"kind":"skip","step":4},{"kind":"skip","step":5},{"kind":"skip","step":6},{"kind":"prepare_trial","selectedPlan":"monthly or annual"}],"completeAfterConfirmedSubscription":{"kind":"complete","requestId":"caller-generated-id","expectedRevision":"current draft.revision"},"instructions":"Claim the completed original audit using its cookie session and account session. Create a setup draft with reportId, selectedPlan monthly or annual, and requestId. Save confirmed business details in steps 1-3, complete or skip optional steps 4-6, then prepare_trial. Use returned revision numbers. No appointment scheduling connection is required to subscribe to AIPS."},"subscription":{"method":"POST","urlTemplate":"https://app.aipromoservices.com/api/properties/{propertyId}/billing","state":"https://app.aipromoservices.com/api/properties/{propertyId}","command":{"kind":"begin_trial_checkout","requestId":"caller-generated-id","expectedVersion":"current projection.billing.version","expectedReadinessRevision":"current projection.billing.trialStart.readinessRevision","priceKey":"selected base_monthly or base_annual","choice":{"family":"social","destinationRefs":[],"mode":"manual"},"acceptTerms":"Copy version, contentHash and offerHash only after accepting the returned terms and offer for the buyer.","agentPayment":{"paymentMethodId":"Authorized recurring-capable pm_ credential tokenized for AIPS's Stripe account","authorizeRecurring":true}},"prices":{"monthly":{"amountCents":9900,"currency":"usd"},"annual":{"amountCents":90000,"currency":"usd"}},"trialHours":72,"tokenizeCard":{"method":"GET","url":"https://app.aipromoservices.com/api/agent-card","authentication":"verified_owner_session_required","instructions":"An authorized browser-capable agent can enter its delegated card into the Stripe-hosted fields and read the returned pm_ ID. Stripe collects the card details directly. Submit that ID with the accepted recurring terms in the subscription command. A headless HTTP client needs a compatible credential already tokenized for AIPS; arbitrary wallet tokens cannot be substituted."},"payment":"Provide a Stripe card PaymentMethod issued for this merchant, unattached or attached to the exact AIPS Customer. Raw card numbers, other merchants' PaymentMethods and single-use shared-payment tokens are not accepted. No immediate subscription fee is charged during the trial; the selected recurring price applies afterward unless canceled.","verification":{"method":"GET","urlTemplate":"https://app.aipromoservices.com/api/properties/{propertyId}/agent-payment","instructions":"Only the original verified owner can retrieve the private original SetupIntent verification data. If Stripe requires cardholder authentication, use the bank-verification control on /api/agent-card with the propertyId, or Stripe.js confirmCardSetup with the original client secret, then check the same request. A bank may require the actual cardholder. Client secrets must not be logged, shared or placed in URLs."},"check":{"kind":"check_card_setup","requestId":"new-id-for-this-check","expectedVersion":"current billing version"},"recovery":"Checks never create another card setup. Read the original status after uncertain results. Only if cardSetup.agentPayment.canReplaceCard is true may an explicit new begin_trial_checkout supply another authorized card; it reuses the original customer, eligibility and trial reservation. If trialStart.canContinue is true, continue_trial_start references trialStart.originalStartReceiptId. Never replace an uncertain original or restart its trial clock.","completion":"Require the original trial/subscription and invoice confirmation, then complete the saved setup draft and read back the active business and service eligibility. A URL, accepted request or pending status is not completion. Existing account billing and cancellation controls remain available."}},"claimPathTemplate":"https://app.aipromoservices.com/signup?report={reportId}","status":{"method":"GET","url":"https://app.aipromoservices.com/api/bootstrap","authentication":"account_session_required"},"propertyStatus":{"method":"GET","urlTemplate":"https://app.aipromoservices.com/api/properties/{propertyId}","authentication":"account_session_required"}},"customerTransactions":{"state":"business_owned","explanation":"AI Promo Services checks a customer's connected commerce and scheduling paths. The customer business owns its orders, appointments and payments. A visible path or read-only connection is not a completed agent transaction."}}