{
  "manifestVersion": 1,
  "process": {
    "slug": "set-up-subscription-billing",
    "title": "Set up subscription billing",
    "phase": "growth",
    "description": "Configure subscription plans, pricing, and a customer portal for SaaS billing. Stripe is the canonical route; alternatives are ranked in the payments arena."
  },
  "manifestUrl": "https://ultrametric.ai/productarena/processes/set-up-subscription-billing/manifest.json",
  "steps": [
    {
      "id": "n1",
      "title": "Create products",
      "kind": "api",
      "route": "agent",
      "toolCall": null,
      "calls": [
        {
          "method": "POST /v1/products",
          "type": "rest",
          "description": "Create Stripe products"
        }
      ],
      "vendorOptions": [
        {
          "vendor": "stripe",
          "name": "Stripe",
          "productId": "stripe",
          "arena": "payments",
          "agentReady": 88.9,
          "mcpEndpoint": "https://mcp.stripe.com/",
          "paProductUrl": "https://ultrametric.ai/productarena/arena/payments/product/stripe"
        }
      ],
      "approvalRequired": true,
      "riskLevel": "medium",
      "estimatedMinutes": 10,
      "async": false
    },
    {
      "id": "n2",
      "title": "Configure pricing plans",
      "kind": "api",
      "route": "agent",
      "toolCall": null,
      "calls": [
        {
          "method": "POST /v1/prices",
          "type": "rest",
          "description": "Create pricing for each plan"
        }
      ],
      "vendorOptions": [
        {
          "vendor": "stripe",
          "name": "Stripe",
          "productId": "stripe",
          "arena": "payments",
          "agentReady": 88.9,
          "mcpEndpoint": "https://mcp.stripe.com/",
          "paProductUrl": "https://ultrametric.ai/productarena/arena/payments/product/stripe"
        }
      ],
      "approvalRequired": true,
      "riskLevel": "medium",
      "estimatedMinutes": 10,
      "async": false
    },
    {
      "id": "n3",
      "title": "Set up customer portal",
      "kind": "api",
      "route": "agent",
      "toolCall": null,
      "calls": [
        {
          "method": "POST /v1/billing_portal/configurations",
          "type": "rest",
          "description": "Configure billing portal"
        }
      ],
      "vendorOptions": [
        {
          "vendor": "stripe",
          "name": "Stripe",
          "productId": "stripe",
          "arena": "payments",
          "agentReady": 88.9,
          "mcpEndpoint": "https://mcp.stripe.com/",
          "paProductUrl": "https://ultrametric.ai/productarena/arena/payments/product/stripe"
        }
      ],
      "approvalRequired": true,
      "riskLevel": "medium",
      "estimatedMinutes": 10,
      "async": false
    },
    {
      "id": "n4",
      "title": "Configure webhooks",
      "kind": "api",
      "route": "agent",
      "toolCall": null,
      "calls": [
        {
          "method": "POST /v1/webhook_endpoints",
          "type": "rest",
          "description": "Register subscription webhooks"
        }
      ],
      "vendorOptions": [
        {
          "vendor": "stripe",
          "name": "Stripe",
          "productId": "stripe",
          "arena": "payments",
          "agentReady": 88.9,
          "mcpEndpoint": "https://mcp.stripe.com/",
          "paProductUrl": "https://ultrametric.ai/productarena/arena/payments/product/stripe"
        }
      ],
      "approvalRequired": true,
      "riskLevel": "medium",
      "estimatedMinutes": 5,
      "async": false
    },
    {
      "id": "n5",
      "title": "Test subscriptions",
      "kind": "api",
      "route": "agent",
      "toolCall": null,
      "calls": [
        {
          "method": "POST /v1/subscriptions (test mode)",
          "type": "rest",
          "description": "Create test subscription"
        }
      ],
      "vendorOptions": [
        {
          "vendor": "stripe",
          "name": "Stripe",
          "productId": "stripe",
          "arena": "payments",
          "agentReady": 88.9,
          "mcpEndpoint": "https://mcp.stripe.com/",
          "paProductUrl": "https://ultrametric.ai/productarena/arena/payments/product/stripe"
        }
      ],
      "approvalRequired": true,
      "riskLevel": null,
      "estimatedMinutes": 10,
      "async": false
    },
    {
      "id": "n6",
      "title": "Configure dunning",
      "kind": "api",
      "route": "agent",
      "toolCall": null,
      "calls": [
        {
          "method": "POST /v1/subscription_schedules",
          "type": "rest",
          "description": "Configure retry logic"
        }
      ],
      "vendorOptions": [
        {
          "vendor": "stripe",
          "name": "Stripe",
          "productId": "stripe",
          "arena": "payments",
          "agentReady": 88.9,
          "mcpEndpoint": "https://mcp.stripe.com/",
          "paProductUrl": "https://ultrametric.ai/productarena/arena/payments/product/stripe"
        }
      ],
      "approvalRequired": true,
      "riskLevel": "medium",
      "estimatedMinutes": 5,
      "async": false
    }
  ],
  "provenance": {
    "source": "productarena",
    "url": "https://ultrametric.ai/productarena",
    "generatedFrom": "data/processes.json + data/process-chains.json (the ProductArena founder-process corpus), resolved against live arena leaderboards at build time. Regenerate by refetching this manifest URL — it always reflects the currently deployed data, not a pinned data commit.",
    "license": "ProductArena Data License (DATA-LICENSE in github.com/ultrametricai/productarena): querying and quoting with attribution to \"ProductArena by Ultrametric Inc\" is fine; bulk redistribution or use to build competing datasets requires written permission."
  }
}