application · active

Topolo Pay

Payment worker handling orders, webhooks, admin APIs, and static-asset-backed application behavior.

Documentation map

  • TopoloCommerce — Public overview of the multi-vertical commerce platform for venue operations, guest runtimes, and staff execution.
  • Topolo Pay — Public overview of the payment worker that handles orders, refunds, and payment operations.

Authority and runtime

System ID
topolo-pay
App IDs
app_topolo_pay
Owners
commerce
Repositories
apps/TopoloPay
Hosts
https://pay.topolo.app, https://pay.topolo.app, https://pay.stg.topolo.us
Dependencies
topolo-auth, topolo-nexus, topolo-p2p, applications-packages

Security and data ownership

Risk tier
critical
Tenant isolation
organization_scoped
Privacy classification
restricted
Storage
d1, durable_object, external_provider, kv, r2
Export and deletion
planned
Enterprise ready
no

Source-derived capability inventory

Source revisions: apps/TopoloPay@f7f8d29b3072c92900c77c0b64022b013d1e02f8

Declared actions: 58 · API routes: 32 · UI routes: 9

{
  "id": "topolo-pay",
  "name": "Topolo Pay",
  "slug": "topolo-pay",
  "kind": "application",
  "visibility": "public",
  "repo_paths": [
    "apps/TopoloPay"
  ],
  "source_revisions": [
    {
      "source_path": "apps/TopoloPay",
      "repository": "apps/TopoloPay",
      "revision": "f7f8d29b3072c92900c77c0b64022b013d1e02f8",
      "ref": "origin/staging"
    }
  ],
  "source_counts": {
    "source_files": 102,
    "test_files": 52,
    "test_cases": 0,
    "migration_files": 0,
    "database_tables": 0,
    "manifests": 1,
    "deploy_targets": 2,
    "actions": 58,
    "mobile_contracts": 1,
    "notifications": 17,
    "package_manifests": 2,
    "deployment_configs": 0
  },
  "manifests": [
    {
      "source_path": "apps/TopoloPay/topolo.app.json",
      "service_slug": "topolo-pay",
      "name": "topolo-pay",
      "app_id": "app_topolo_pay",
      "compatibility_date": "2026-05-01",
      "primary_target": "web",
      "environments": [
        "development",
        "production",
        "staging"
      ],
      "targets": [
        {
          "name": "api",
          "kind": "worker",
          "directory": "apps/api",
          "main": "src/index.ts",
          "worker_name": "topolo-pay-api",
          "subdomain": null,
          "healthcheck_path": "/health",
          "variable_names": [
            "API_VERSION",
            "AUTH_API_URL",
            "ENVIRONMENT",
            "NEXUS_GATEWAY_URL",
            "NODE_ENV",
            "PAY_APP_URL",
            "TOPOLO_NOTIFY_URL",
            "TOPOLO_P2P_URL"
          ],
          "secret_names": [],
          "bindings": [
            {
              "kind": "d1",
              "binding": "PAY_CORE_DB",
              "target": null
            },
            {
              "kind": "d1",
              "binding": "PAY_LEDGER_DB",
              "target": null
            },
            {
              "kind": "d1",
              "binding": "PAY_P2P_DB",
              "target": null
            },
            {
              "kind": "d1",
              "binding": "PAY_WEBHOOK_DB",
              "target": null
            },
            {
              "kind": "d1",
              "binding": "PAY_ANALYTICS_DB",
              "target": null
            },
            {
              "kind": "d1",
              "binding": "PAY_USAGE_DB",
              "target": null
            },
            {
              "kind": "d1",
              "binding": "PAY_AUDIT_DB",
              "target": null
            },
            {
              "kind": "secretsStore",
              "binding": "PLATFORM_AT_REST_MASTER_ENCRYPTION_KEY_STORE",
              "target": null
            },
            {
              "kind": "secretsStore",
              "binding": "PLATFORM_AT_REST_MASTER_ENCRYPTION_KEY_PREVIOUS_STORE",
              "target": null
            }
          ]
        },
        {
          "name": "web",
          "kind": "worker",
          "directory": "apps/web",
          "main": "src/worker.ts",
          "worker_name": "topolo-pay",
          "subdomain": "pay",
          "healthcheck_path": "/health",
          "variable_names": [
            "INSIGHTS_SITE_KEY"
          ],
          "secret_names": [],
          "bindings": [
            {
              "kind": "services",
              "binding": "API",
              "target": null
            },
            {
              "kind": "services",
              "binding": "API",
              "target": null
            },
            {
              "kind": "services",
              "binding": "API",
              "target": null
            }
          ]
        }
      ],
      "notifications": [
        "billing.dunning.day14",
        "billing.dunning.day3",
        "billing.dunning.day7",
        "billing.invoice.created",
        "billing.invoice.paid",
        "billing.payment.failed",
        "billing.payment.succeeded",
        "billing.subscription.cancel_requested",
        "billing.subscription.cancelled",
        "billing.subscription.reactivated",
        "billing.subscription.renewal_upcoming",
        "billing.subscription.renewed",
        "billing.trial.ended",
        "billing.trial.ending_soon",
        "billing.winback.followup",
        "pay.payout.failed",
        "pay.settlement.completed"
      ],
      "notification_contract": {
        "source_path": "topolo.notification-contracts.json",
        "role": "producer",
        "schema_version": 1,
        "owner_app_id": "app_topolo_pay",
        "events": [
          {
            "type": "billing.dunning.day14",
            "version": 1,
            "description": "Invoice unpaid for 14 days",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "thread_key",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "high"
                },
                "severity": {
                  "const": "warning"
                },
                "category": {
                  "const": "billing"
                },
                "object_type": {
                  "const": "invoice"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "thread_key": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "amount_minor": {
                  "type": "integer",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "action_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            "examples": [
              {
                "title": "Invoice unpaid for 14 days",
                "body": "Invoice unpaid for 14 days.",
                "surface": "notification",
                "priority": "high",
                "severity": "warning",
                "category": "billing",
                "object_type": "invoice",
                "object_id": "invoice_123",
                "thread_key": "billing:invoice:invoice_123",
                "occurred_at": "2026-07-20T12:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-pay:(?:dunning-day14):"
            }
          },
          {
            "type": "billing.dunning.day3",
            "version": 1,
            "description": "Invoice unpaid for 3 days",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "thread_key",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "high"
                },
                "severity": {
                  "const": "warning"
                },
                "category": {
                  "const": "billing"
                },
                "object_type": {
                  "const": "invoice"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "thread_key": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "amount_minor": {
                  "type": "integer",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "action_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            "examples": [
              {
                "title": "Invoice unpaid for 3 days",
                "body": "Invoice unpaid for 3 days.",
                "surface": "notification",
                "priority": "high",
                "severity": "warning",
                "category": "billing",
                "object_type": "invoice",
                "object_id": "invoice_123",
                "thread_key": "billing:invoice:invoice_123",
                "occurred_at": "2026-07-20T12:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-pay:(?:dunning-day3):"
            }
          },
          {
            "type": "billing.dunning.day7",
            "version": 1,
            "description": "Invoice unpaid for 7 days",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "thread_key",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "high"
                },
                "severity": {
                  "const": "warning"
                },
                "category": {
                  "const": "billing"
                },
                "object_type": {
                  "const": "invoice"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "thread_key": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "amount_minor": {
                  "type": "integer",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "action_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            "examples": [
              {
                "title": "Invoice unpaid for 7 days",
                "body": "Invoice unpaid for 7 days.",
                "surface": "notification",
                "priority": "high",
                "severity": "warning",
                "category": "billing",
                "object_type": "invoice",
                "object_id": "invoice_123",
                "thread_key": "billing:invoice:invoice_123",
                "occurred_at": "2026-07-20T12:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-pay:(?:dunning-day7):"
            }
          },
          {
            "type": "billing.invoice.created",
            "version": 1,
            "description": "Subscription invoice created",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "thread_key",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "normal"
                },
                "severity": {
                  "const": "info"
                },
                "category": {
                  "const": "billing"
                },
                "object_type": {
                  "const": "invoice"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "thread_key": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "amount_minor": {
                  "type": "integer",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "action_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            "examples": [
              {
                "title": "Subscription invoice created",
                "body": "Subscription invoice created.",
                "surface": "notification",
                "priority": "normal",
                "severity": "info",
                "category": "billing",
                "object_type": "invoice",
                "object_id": "invoice_123",
                "thread_key": "billing:invoice:invoice_123",
                "occurred_at": "2026-07-20T12:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-pay:(?:invoice-created):"
            }
          },
          {
            "type": "billing.invoice.paid",
            "version": 1,
            "description": "Subscription invoice paid",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "thread_key",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "normal"
                },
                "severity": {
                  "const": "success"
                },
                "category": {
                  "const": "billing"
                },
                "object_type": {
                  "const": "invoice"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "thread_key": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "amount_minor": {
                  "type": "integer",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "action_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            "examples": [
              {
                "title": "Subscription invoice paid",
                "body": "Subscription invoice paid.",
                "surface": "notification",
                "priority": "normal",
                "severity": "success",
                "category": "billing",
                "object_type": "invoice",
                "object_id": "invoice_123",
                "thread_key": "billing:invoice:invoice_123",
                "occurred_at": "2026-07-20T12:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-pay:(?:invoice-paid):"
            }
          },
          {
            "type": "billing.payment.failed",
            "version": 1,
            "description": "Payment failed",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "thread_key",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "high"
                },
                "severity": {
                  "const": "critical"
                },
                "category": {
                  "const": "payments"
                },
                "object_type": {
                  "const": "payment"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "thread_key": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "amount_minor": {
                  "type": "integer",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "action_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            "examples": [
              {
                "title": "Payment failed",
                "body": "Payment failed.",
                "surface": "notification",
                "priority": "high",
                "severity": "critical",
                "category": "payments",
                "object_type": "payment",
                "object_id": "payment_123",
                "thread_key": "payments:payment:payment_123",
                "occurred_at": "2026-07-20T12:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-pay:(?:(?:invoice-)?payment-failed|payment-failed):"
            }
          },
          {
            "type": "billing.payment.succeeded",
            "version": 1,
            "description": "Payment succeeded",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "thread_key",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "normal"
                },
                "severity": {
                  "const": "success"
                },
                "category": {
                  "const": "payments"
                },
                "object_type": {
                  "const": "payment"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "thread_key": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "amount_minor": {
                  "type": "integer",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "action_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            "examples": [
              {
                "title": "Payment succeeded",
                "body": "Payment succeeded.",
                "surface": "notification",
                "priority": "normal",
                "severity": "success",
                "category": "payments",
                "object_type": "payment",
                "object_id": "payment_123",
                "thread_key": "payments:payment:payment_123",
                "occurred_at": "2026-07-20T12:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-pay:(?:payment-succeeded):"
            }
          },
          {
            "type": "billing.subscription.cancel_requested",
            "version": 1,
            "description": "Subscription cancellation requested",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "thread_key",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "normal"
                },
                "severity": {
                  "const": "warning"
                },
                "category": {
                  "const": "billing"
                },
                "object_type": {
                  "const": "subscription"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "thread_key": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "amount_minor": {
                  "type": "integer",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "action_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            "examples": [
              {
                "title": "Subscription cancellation requested",
                "body": "Subscription cancellation requested.",
                "surface": "notification",
                "priority": "normal",
                "severity": "warning",
                "category": "billing",
                "object_type": "subscription",
                "object_id": "subscription_123",
                "thread_key": "billing:subscription:subscription_123",
                "occurred_at": "2026-07-20T12:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-pay:(?:cancel-requested):"
            }
          },
          {
            "type": "billing.subscription.cancelled",
            "version": 1,
            "description": "Subscription cancelled",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "thread_key",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "normal"
                },
                "severity": {
                  "const": "warning"
                },
                "category": {
                  "const": "billing"
                },
                "object_type": {
                  "const": "subscription"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "thread_key": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "amount_minor": {
                  "type": "integer",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "action_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            "examples": [
              {
                "title": "Subscription cancelled",
                "body": "Subscription cancelled.",
                "surface": "notification",
                "priority": "normal",
                "severity": "warning",
                "category": "billing",
                "object_type": "subscription",
                "object_id": "subscription_123",
                "thread_key": "billing:subscription:subscription_123",
                "occurred_at": "2026-07-20T12:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-pay:(?:cancelled):"
            }
          },
          {
            "type": "billing.subscription.reactivated",
            "version": 1,
            "description": "Subscription reactivated",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "thread_key",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "normal"
                },
                "severity": {
                  "const": "success"
                },
                "category": {
                  "const": "billing"
                },
                "object_type": {
                  "const": "subscription"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "thread_key": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "amount_minor": {
                  "type": "integer",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "action_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            "examples": [
              {
                "title": "Subscription reactivated",
                "body": "Subscription reactivated.",
                "surface": "notification",
                "priority": "normal",
                "severity": "success",
                "category": "billing",
                "object_type": "subscription",
                "object_id": "subscription_123",
                "thread_key": "billing:subscription:subscription_123",
                "occurred_at": "2026-07-20T12:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-pay:(?:reactivated):"
            }
          },
          {
            "type": "billing.subscription.renewal_upcoming",
            "version": 1,
            "description": "Subscription renewal upcoming",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "thread_key",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "normal"
                },
                "severity": {
                  "const": "info"
                },
                "category": {
                  "const": "billing"
                },
                "object_type": {
                  "const": "subscription"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "thread_key": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "amount_minor": {
                  "type": "integer",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "action_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            "examples": [
              {
                "title": "Subscription renewal upcoming",
                "body": "Subscription renewal upcoming.",
                "surface": "notification",
                "priority": "normal",
                "severity": "info",
                "category": "billing",
                "object_type": "subscription",
                "object_id": "subscription_123",
                "thread_key": "billing:subscription:subscription_123",
                "occurred_at": "2026-07-20T12:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-pay:(?:renewal-upcoming):"
            }
          },
          {
            "type": "billing.subscription.renewed",
            "version": 1,
            "description": "Subscription renewed",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "thread_key",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "normal"
                },
                "severity": {
                  "const": "success"
                },
                "category": {
                  "const": "billing"
                },
                "object_type": {
                  "const": "subscription"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "thread_key": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "amount_minor": {
                  "type": "integer",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "action_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            "examples": [
              {
                "title": "Subscription renewed",
                "body": "Subscription renewed.",
                "surface": "notification",
                "priority": "normal",
                "severity": "success",
                "category": "billing",
                "object_type": "subscription",
                "object_id": "subscription_123",
                "thread_key": "billing:subscription:subscription_123",
                "occurred_at": "2026-07-20T12:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-pay:(?:renewed):"
            }
          },
          {
            "type": "billing.trial.ended",
            "version": 1,
            "description": "Subscription trial ended",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "thread_key",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "normal"
                },
                "severity": {
                  "const": "info"
                },
                "category": {
                  "const": "billing"
                },
                "object_type": {
                  "const": "subscription"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "thread_key": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "amount_minor": {
                  "type": "integer",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "action_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            "examples": [
              {
                "title": "Subscription trial ended",
                "body": "Subscription trial ended.",
                "surface": "notification",
                "priority": "normal",
                "severity": "info",
                "category": "billing",
                "object_type": "subscription",
                "object_id": "subscription_123",
                "thread_key": "billing:subscription:subscription_123",
                "occurred_at": "2026-07-20T12:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-pay:(?:trial-ended):"
            }
          },
          {
            "type": "billing.trial.ending_soon",
            "version": 1,
            "description": "Subscription trial ending soon",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "thread_key",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "normal"
                },
                "severity": {
                  "const": "warning"
                },
                "category": {
                  "const": "billing"
                },
                "object_type": {
                  "const": "subscription"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "thread_key": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "amount_minor": {
                  "type": "integer",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "action_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            "examples": [
              {
                "title": "Subscription trial ending soon",
                "body": "Subscription trial ending soon.",
                "surface": "notification",
                "priority": "normal",
                "severity": "warning",
                "category": "billing",
                "object_type": "subscription",
                "object_id": "subscription_123",
                "thread_key": "billing:subscription:subscription_123",
                "occurred_at": "2026-07-20T12:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-pay:(?:trial-ending):"
            }
          },
          {
            "type": "billing.winback.followup",
            "version": 1,
            "description": "Cancelled subscription follow-up",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "thread_key",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "normal"
                },
                "severity": {
                  "const": "info"
                },
                "category": {
                  "const": "billing"
                },
                "object_type": {
                  "const": "subscription"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "thread_key": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "amount_minor": {
                  "type": "integer",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "action_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            "examples": [
              {
                "title": "Cancelled subscription follow-up",
                "body": "Cancelled subscription follow-up.",
                "surface": "notification",
                "priority": "normal",
                "severity": "info",
                "category": "billing",
                "object_type": "subscription",
                "object_id": "subscription_123",
                "thread_key": "billing:subscription:subscription_123",
                "occurred_at": "2026-07-20T12:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-pay:(?:winback):"
            }
          },
          {
            "type": "pay.payout.failed",
            "version": 1,
            "description": "Connected-account payout failed",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "thread_key",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "high"
                },
                "severity": {
                  "const": "critical"
                },
                "category": {
                  "const": "payments"
                },
                "object_type": {
                  "const": "payout"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "thread_key": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "amount_minor": {
                  "type": "integer",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "action_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            "examples": [
              {
                "title": "Connected-account payout failed",
                "body": "Connected-account payout failed.",
                "surface": "notification",
                "priority": "high",
                "severity": "critical",
                "category": "payments",
                "object_type": "payout",
                "object_id": "payout_123",
                "thread_key": "payments:payout:payout_123",
                "occurred_at": "2026-07-20T12:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-pay:(?:payout-failed):"
            }
          },
          {
            "type": "pay.settlement.completed",
            "version": 1,
            "description": "Inter-organization settlement completed",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "thread_key",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "normal"
                },
                "severity": {
                  "const": "success"
                },
                "category": {
                  "const": "payments"
                },
                "object_type": {
                  "const": "settlement"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "thread_key": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "amount_minor": {
                  "type": "integer",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "action_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            "examples": [
              {
                "title": "Inter-organization settlement completed",
                "body": "Inter-organization settlement completed.",
                "surface": "notification",
                "priority": "normal",
                "severity": "success",
                "category": "payments",
                "object_type": "settlement",
                "object_id": "settlement_123",
                "thread_key": "payments:settlement:settlement_123",
                "occurred_at": "2026-07-20T12:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-pay:(?:settlement-completed):"
            }
          }
        ]
      },
      "actions": [
        {
          "name": "widget.get",
          "title": "Get widget summary",
          "description": "Get the TopoloOne widget summary for this service.",
          "method": "GET",
          "path": "/api/widget",
          "permission": "dashboard:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/widget",
              "body": null
            },
            "effects": "Reads state through GET /api/widget without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/widget",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "analytics.get",
          "title": "Get Pay analytics",
          "description": "Get Pay analytics.",
          "method": "GET",
          "path": "/api/admin/analytics",
          "permission": "analytics:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "dateFrom": {
                "type": "string",
                "minLength": 1
              },
              "dateTo": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get Pay analytics.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "dateFrom": "example",
              "dateTo": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/admin/analytics",
              "body": null
            },
            "effects": "Reads state through GET /api/admin/analytics without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/admin/analytics",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "transactions.list",
          "title": "List transactions",
          "description": "List Pay transactions.",
          "method": "GET",
          "path": "/api/admin/transactions",
          "permission": "transactions:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "maximum": 9007199254740991
              },
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 10000
              },
              "search": {
                "type": "string",
                "minLength": 1
              },
              "merchant": {
                "type": "string",
                "minLength": 1
              },
              "status": {
                "type": "string",
                "minLength": 1
              },
              "method": {
                "type": "string",
                "minLength": 1
              },
              "workspaceId": {
                "type": "string",
                "minLength": 1
              },
              "dateFrom": {
                "type": "string",
                "minLength": 1
              },
              "dateTo": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List transactions.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "page": 1,
              "limit": 1,
              "search": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/admin/transactions",
              "body": null
            },
            "effects": "Reads state through GET /api/admin/transactions without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/admin/transactions",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "customers.list",
          "title": "List customers",
          "description": "List Pay customers.",
          "method": "GET",
          "path": "/api/admin/customers",
          "permission": "customers:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "search": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List customers.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "search": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/admin/customers",
              "body": null
            },
            "effects": "Reads state through GET /api/admin/customers without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/admin/customers",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "merchants.list",
          "title": "Merchants List",
          "description": "Call GET /api/merchants.",
          "method": "GET",
          "path": "/api/merchants",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Merchants List.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "public",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/merchants",
              "body": null
            },
            "effects": "Reads state through GET /api/merchants without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/merchants",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "subscriptions.checkout",
          "title": "Create subscription checkout",
          "description": "Create a subscription checkout session.",
          "method": "POST",
          "path": "/api/subscriptions/checkout",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "priceId": {
                "type": "string",
                "minLength": 1
              },
              "quantity": {
                "type": "integer",
                "minimum": 1,
                "maximum": 9007199254740991
              },
              "customerEmail": {
                "type": "string",
                "minLength": 1
              },
              "customerName": {
                "type": "string",
                "minLength": 1
              },
              "externalSystem": {
                "type": "string",
                "minLength": 1
              },
              "externalUserId": {
                "type": "string",
                "minLength": 1
              },
              "externalOrgId": {
                "type": "string",
                "minLength": 1
              },
              "workspaceId": {
                "type": "string",
                "minLength": 1
              },
              "successUrl": {
                "type": "string",
                "minLength": 1
              },
              "cancelUrl": {
                "type": "string",
                "minLength": 1
              },
              "trialPeriodDays": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "allowPromotionCodes": {
                "type": "boolean"
              },
              "metadata": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {
                  "type": "string"
                }
              },
              "inlinePrice": {
                "type": "object",
                "properties": {
                  "productName": {
                    "type": "string",
                    "minLength": 1
                  },
                  "unitAmount": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "currency": {
                    "type": "string",
                    "minLength": 1
                  },
                  "interval": {
                    "type": "string",
                    "enum": [
                      "day",
                      "week",
                      "month",
                      "year"
                    ]
                  }
                },
                "required": [
                  "productName",
                  "unitAmount",
                  "currency",
                  "interval"
                ],
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create subscription checkout.",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "priceId": "example",
              "quantity": 1,
              "customerEmail": "user@example.com"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/subscriptions/checkout",
              "body": {
                "priceId": "example",
                "quantity": 1,
                "customerEmail": "user@example.com"
              }
            },
            "effects": "May change state through POST /api/subscriptions/checkout. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/subscriptions/checkout",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "pricing_plans.list",
          "title": "List pricing plans",
          "description": "List platform pricing plans.",
          "method": "GET",
          "path": "/api/pricing-plans",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "appId": {
                "type": "string",
                "minLength": 1
              },
              "developerOrgId": {
                "type": "string",
                "minLength": 1
              },
              "includeInactive": {
                "type": "string",
                "enum": [
                  "true",
                  "false"
                ]
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List pricing plans.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "appId": "example",
              "developerOrgId": "example",
              "includeInactive": "true"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/pricing-plans",
              "body": null
            },
            "effects": "Reads state through GET /api/pricing-plans without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/pricing-plans",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "p2p.settlements.create",
          "title": "Create P2P settlement",
          "description": "Create a TopoloPay P2P settlement.",
          "method": "POST",
          "path": "/api/p2p/settlements",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "batch_id": {
                "type": "string",
                "minLength": 1
              },
              "buyer_org_id": {
                "type": "string",
                "minLength": 1
              },
              "seller_org_id": {
                "type": "string",
                "minLength": 1
              },
              "currency": {
                "type": "string",
                "minLength": 3,
                "maxLength": 3
              },
              "total_minor": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "trigger": {
                "type": "string",
                "enum": [
                  "threshold",
                  "schedule",
                  "manual",
                  "invoice",
                  "delivery"
                ]
              },
              "line_items": {
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "entry_id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "request_id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "capability_id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "pricing_component": {
                      "type": "string",
                      "minLength": 1
                    },
                    "amount_minor": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    "audit_correlation_id": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "entry_id",
                    "request_id",
                    "capability_id",
                    "pricing_component",
                    "amount_minor",
                    "audit_correlation_id"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "batch_id",
              "buyer_org_id",
              "seller_org_id",
              "currency",
              "total_minor",
              "trigger",
              "line_items"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create P2P settlement.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "batch_id": "00000000-0000-4000-8000-000000000000",
              "buyer_org_id": "00000000-0000-4000-8000-000000000000",
              "seller_org_id": "00000000-0000-4000-8000-000000000000",
              "currency": "USD",
              "total_minor": 1,
              "trigger": "threshold",
              "line_items": [
                {
                  "entry_id": "00000000-0000-4000-8000-000000000000",
                  "request_id": "00000000-0000-4000-8000-000000000000",
                  "capability_id": "00000000-0000-4000-8000-000000000000",
                  "pricing_component": "example",
                  "amount_minor": 1,
                  "audit_correlation_id": "00000000-0000-4000-8000-000000000000"
                }
              ]
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/p2p/settlements",
              "body": {
                "batch_id": "00000000-0000-4000-8000-000000000000",
                "buyer_org_id": "00000000-0000-4000-8000-000000000000",
                "seller_org_id": "00000000-0000-4000-8000-000000000000",
                "currency": "USD",
                "total_minor": 1,
                "trigger": "threshold",
                "line_items": [
                  {
                    "entry_id": "00000000-0000-4000-8000-000000000000",
                    "request_id": "00000000-0000-4000-8000-000000000000",
                    "capability_id": "00000000-0000-4000-8000-000000000000",
                    "pricing_component": "example",
                    "amount_minor": 1,
                    "audit_correlation_id": "00000000-0000-4000-8000-000000000000"
                  }
                ]
              }
            },
            "effects": "May change state through POST /api/p2p/settlements. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/p2p/settlements",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "p2p.settlements.complete",
          "title": "Complete P2P settlement",
          "description": "Persist a completed TopoloPay P2P settlement and publish its notification transition.",
          "method": "POST",
          "path": "/api/p2p/settlements/{batchId}/complete",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "batchId": {
                "type": "string",
                "minLength": 1
              },
              "provider_status": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "batchId",
              "provider_status"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Complete P2P settlement.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "batchId": "example",
              "provider_status": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/p2p/settlements/example/complete",
              "body": {
                "batchId": "example",
                "provider_status": "example"
              }
            },
            "effects": "May change state through POST /api/p2p/settlements/{batchId}/complete. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/p2p/settlements/*/complete",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "crypto_payments.create",
          "title": "Create crypto payment",
          "description": "Create a TopoloPay crypto payment.",
          "method": "POST",
          "path": "/pay/crypto",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "orderId": {
                "type": "string",
                "minLength": 1
              },
              "amountCents": {
                "type": "number",
                "exclusiveMinimum": 0
              },
              "currency": {
                "type": "string",
                "minLength": 1
              },
              "merchantId": {
                "type": "string",
                "minLength": 1
              },
              "customerEmail": {
                "type": "string",
                "minLength": 1
              },
              "description": {
                "type": "string",
                "minLength": 1
              },
              "metadata": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "redirectUrl": {
                "type": "string",
                "minLength": 1
              },
              "cancelUrl": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "orderId",
              "amountCents",
              "currency",
              "merchantId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create crypto payment.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "orderId": "example",
              "amountCents": 1,
              "currency": "USD",
              "merchantId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/pay/crypto",
              "body": {
                "orderId": "example",
                "amountCents": 1,
                "currency": "USD",
                "merchantId": "example"
              }
            },
            "effects": "May change state through POST /pay/crypto. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /pay/crypto",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "crypto_payments.status.get",
          "title": "Get crypto payment status",
          "description": "Get TopoloPay crypto payment status.",
          "method": "GET",
          "path": "/pay/crypto/{chargeId}/status",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "chargeId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "chargeId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get crypto payment status.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "chargeId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/pay/crypto/example/status",
              "body": null
            },
            "effects": "Reads state through GET /pay/crypto/{chargeId}/status without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /pay/crypto/*/status",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "merchants.fees.get",
          "title": "Get merchant fees",
          "description": "Get TopoloPay merchant fees.",
          "method": "GET",
          "path": "/api/merchants/{merchantId}/fees",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "merchantId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "merchantId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get merchant fees.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "public",
          "documentation": {
            "example_input": {
              "merchantId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/merchants/example/fees",
              "body": null
            },
            "effects": "Reads state through GET /api/merchants/{merchantId}/fees without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/merchants/*/fees",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "subscriptions.payment_intent.create",
          "title": "Create subscription payment intent",
          "description": "Create a subscription payment intent.",
          "method": "POST",
          "path": "/api/subscriptions/payment-intent",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "priceId": {
                "type": "string",
                "minLength": 1
              },
              "quantity": {
                "type": "integer",
                "minimum": 1,
                "maximum": 9007199254740991
              },
              "customerEmail": {
                "type": "string",
                "minLength": 1
              },
              "customerName": {
                "type": "string",
                "minLength": 1
              },
              "externalSystem": {
                "type": "string",
                "minLength": 1
              },
              "externalUserId": {
                "type": "string",
                "minLength": 1
              },
              "externalOrgId": {
                "type": "string",
                "minLength": 1
              },
              "workspaceId": {
                "type": "string",
                "minLength": 1
              },
              "trialPeriodDays": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "metadata": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {
                  "type": "string"
                }
              },
              "inlinePrice": {
                "type": "object",
                "properties": {
                  "productName": {
                    "type": "string",
                    "minLength": 1
                  },
                  "unitAmount": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "currency": {
                    "type": "string",
                    "minLength": 1
                  },
                  "interval": {
                    "type": "string",
                    "enum": [
                      "day",
                      "week",
                      "month",
                      "year"
                    ]
                  }
                },
                "required": [
                  "productName",
                  "unitAmount",
                  "currency",
                  "interval"
                ],
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create subscription payment intent.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "priceId": "example",
              "quantity": 1,
              "customerEmail": "user@example.com"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/subscriptions/payment-intent",
              "body": {
                "priceId": "example",
                "quantity": 1,
                "customerEmail": "user@example.com"
              }
            },
            "effects": "May change state through POST /api/subscriptions/payment-intent. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/subscriptions/payment-intent",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "subscriptions.by_external.get",
          "title": "Get subscription by external user",
          "description": "Get a subscription by external user id.",
          "method": "GET",
          "path": "/api/subscriptions/by-external/{userId}",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "userId": {
                "type": "string",
                "minLength": 1
              },
              "system": {
                "type": "string",
                "minLength": 1
              },
              "includeAll": {
                "type": "string",
                "enum": [
                  "true",
                  "false"
                ]
              }
            },
            "required": [
              "userId",
              "system"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get subscription by external user.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "userId": "example",
              "system": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/subscriptions/by-external/example",
              "body": null
            },
            "effects": "Reads state through GET /api/subscriptions/by-external/{userId} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/subscriptions/by-external/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "subscriptions.by_checkout_session.get",
          "title": "Get subscription by checkout session",
          "description": "Get a subscription by checkout session.",
          "method": "GET",
          "path": "/api/subscriptions/by-checkout-session/{sessionId}",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "sessionId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "sessionId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get subscription by checkout session.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "sessionId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/subscriptions/by-checkout-session/example",
              "body": null
            },
            "effects": "Reads state through GET /api/subscriptions/by-checkout-session/{sessionId} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/subscriptions/by-checkout-session/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "subscriptions.bind_external",
          "title": "Bind external subscription",
          "description": "Bind external subscription metadata.",
          "method": "POST",
          "path": "/api/subscriptions/{id}/bind-external",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "externalSystem": {
                "type": "string",
                "minLength": 1
              },
              "externalOrgId": {
                "type": "string",
                "minLength": 1
              },
              "externalUserId": {
                "type": "string",
                "minLength": 1
              },
              "workspaceId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Bind external subscription.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/subscriptions/00000000-0000-4000-8000-000000000000/bind-external",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000"
              }
            },
            "effects": "May change state through POST /api/subscriptions/{id}/bind-external. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/subscriptions/*/bind-external",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "subscriptions.get",
          "title": "Get subscription",
          "description": "Get a TopoloPay subscription.",
          "method": "GET",
          "path": "/api/subscriptions/{id}",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get subscription.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/subscriptions/00000000-0000-4000-8000-000000000000",
              "body": null
            },
            "effects": "Reads state through GET /api/subscriptions/{id} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/subscriptions/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "pricing_plans.create",
          "title": "Create pricing plan",
          "description": "Create a TopoloPay pricing plan.",
          "method": "POST",
          "path": "/api/pricing-plans",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "appId": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "developerOrgId": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "displayName": {
                "type": "string",
                "minLength": 1
              },
              "pricingModel": {
                "type": "string",
                "enum": [
                  "free",
                  "included",
                  "flat",
                  "per_seat",
                  "per_seat_tiered",
                  "metered",
                  "metered_tiered",
                  "flat_plus_metered",
                  "one_time",
                  "sales_led"
                ]
              },
              "unitLabel": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "billingCurrency": {
                "type": "string",
                "minLength": 1
              },
              "billingInterval": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "day",
                      "week",
                      "month",
                      "year"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "isDefault": {
                "type": "boolean"
              },
              "revShareBps": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "metadata": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "pricingDetails": {
                "type": "object",
                "properties": {
                  "productName": {
                    "type": "string",
                    "minLength": 1
                  },
                  "unitAmountCents": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "tiers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "upTo": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "exclusiveMinimum": 0,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "string",
                              "const": "inf"
                            }
                          ]
                        },
                        "unitAmountCents": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "flatAmountCents": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "upTo"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "tiersMode": {
                    "type": "string",
                    "enum": [
                      "graduated",
                      "volume"
                    ]
                  },
                  "meteredUnitAmountCents": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "flatBaseAmountCents": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  }
                },
                "additionalProperties": false
              }
            },
            "required": [
              "id",
              "displayName",
              "pricingModel"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create pricing plan.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000",
              "displayName": "example",
              "pricingModel": "free"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/pricing-plans",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000",
                "displayName": "example",
                "pricingModel": "free"
              }
            },
            "effects": "May change state through POST /api/pricing-plans. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/pricing-plans",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "pricing_plans.bulk_create",
          "title": "Bulk create pricing plans",
          "description": "Bulk create TopoloPay pricing plans.",
          "method": "POST",
          "path": "/api/pricing-plans/bulk-register",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "plans": {
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                }
              }
            },
            "required": [
              "plans"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Bulk create pricing plans.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "plans": [
                {}
              ]
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/pricing-plans/bulk-register",
              "body": {
                "plans": [
                  {}
                ]
              }
            },
            "effects": "May change state through POST /api/pricing-plans/bulk-register. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/pricing-plans/bulk-register",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "pricing_plans.by_app.list",
          "title": "List pricing by app",
          "description": "List TopoloPay pricing plans by app.",
          "method": "GET",
          "path": "/api/pricing-plans/by-app/{appId}",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "appId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "appId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List pricing by app.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "appId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/pricing-plans/by-app/example",
              "body": null
            },
            "effects": "Reads state through GET /api/pricing-plans/by-app/{appId} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/pricing-plans/by-app/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "pricing_plans.get",
          "title": "Get pricing plan",
          "description": "Get a TopoloPay pricing plan.",
          "method": "GET",
          "path": "/api/pricing-plans/{id}",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get pricing plan.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/pricing-plans/00000000-0000-4000-8000-000000000000",
              "body": null
            },
            "effects": "Reads state through GET /api/pricing-plans/{id} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/pricing-plans/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "platform_pricing.get",
          "title": "Get platform pricing",
          "description": "Get Topolo platform pricing.",
          "method": "GET",
          "path": "/api/platform-pricing",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get platform pricing.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "public",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/platform-pricing",
              "body": null
            },
            "effects": "Reads state through GET /api/platform-pricing without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/platform-pricing",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "platform_pricing.update",
          "title": "Update platform pricing",
          "description": "Update Topolo platform pricing.",
          "method": "PUT",
          "path": "/api/platform-pricing",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "base": {
                "type": "object",
                "properties": {
                  "planId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "monthlyCentsPerSeat": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "minimumSeats": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "seatTiers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "upTo": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "exclusiveMinimum": 0,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "string",
                              "const": "inf"
                            }
                          ]
                        },
                        "unitAmountCents": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "upTo",
                        "unitAmountCents"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "planId",
                  "monthlyCentsPerSeat"
                ],
                "additionalProperties": false
              },
              "includedFreeInBase": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "appId": {
                      "type": "string",
                      "minLength": 1
                    },
                    "headline": {
                      "type": "string",
                      "minLength": 1
                    },
                    "marketingPath": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "appId",
                    "headline"
                  ],
                  "additionalProperties": false
                }
              },
              "platformCapabilities": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "platformTagline": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "schemaVersion": {
                "type": "integer",
                "minimum": 1,
                "maximum": 9007199254740991
              },
              "editorUserId": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Update platform pricing.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "base": {
                "planId": "example",
                "monthlyCentsPerSeat": 1
              },
              "includedFreeInBase": [
                {
                  "appId": "example",
                  "headline": "example"
                }
              ],
              "platformCapabilities": [
                "example"
              ]
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "PUT",
              "path": "/api/platform-pricing",
              "body": {
                "base": {
                  "planId": "example",
                  "monthlyCentsPerSeat": 1
                },
                "includedFreeInBase": [
                  {
                    "appId": "example",
                    "headline": "example"
                  }
                ],
                "platformCapabilities": [
                  "example"
                ]
              }
            },
            "effects": "May change state through PUT /api/platform-pricing. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "PUT /api/platform-pricing",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "subscription_items.list",
          "title": "List subscription items",
          "description": "List subscription items.",
          "method": "GET",
          "path": "/api/subscriptions/{subId}/items",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "subId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "subId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List subscription items.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "subId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/subscriptions/example/items",
              "body": null
            },
            "effects": "Reads state through GET /api/subscriptions/{subId}/items without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/subscriptions/*/items",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "subscription_items.create",
          "title": "Create subscription item",
          "description": "Create a subscription item.",
          "method": "POST",
          "path": "/api/subscriptions/{subId}/items",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "subId": {
                "type": "string",
                "minLength": 1
              },
              "pricingPlanId": {
                "type": "string",
                "minLength": 1
              },
              "quantity": {
                "type": "number",
                "minimum": 0
              },
              "itemKind": {
                "type": "string",
                "enum": [
                  "base",
                  "app"
                ]
              }
            },
            "required": [
              "subId",
              "pricingPlanId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create subscription item.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "subId": "example",
              "pricingPlanId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/subscriptions/example/items",
              "body": {
                "subId": "example",
                "pricingPlanId": "example"
              }
            },
            "effects": "May change state through POST /api/subscriptions/{subId}/items. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/subscriptions/*/items",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "subscription_items.update",
          "title": "Update subscription item",
          "description": "Update a subscription item.",
          "method": "PATCH",
          "path": "/api/subscriptions/{subId}/items/{itemId}",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "subId": {
                "type": "string",
                "minLength": 1
              },
              "itemId": {
                "type": "string",
                "minLength": 1
              },
              "quantity": {
                "type": "number",
                "minimum": 0
              }
            },
            "required": [
              "subId",
              "itemId",
              "quantity"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Update subscription item.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "subId": "example",
              "itemId": "example",
              "quantity": 1
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "PATCH",
              "path": "/api/subscriptions/example/items/example",
              "body": {
                "subId": "example",
                "itemId": "example",
                "quantity": 1
              }
            },
            "effects": "May change state through PATCH /api/subscriptions/{subId}/items/{itemId}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "PATCH /api/subscriptions/*/items/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "subscription_items.delete",
          "title": "Delete subscription item",
          "description": "Delete a subscription item.",
          "method": "DELETE",
          "path": "/api/subscriptions/{subId}/items/{itemId}",
          "requiresConfirmation": true,
          "destructive": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "subId": {
                "type": "string",
                "minLength": 1
              },
              "itemId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "subId",
              "itemId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Delete subscription item.",
            "additionalProperties": true
          },
          "readOnly": false,
          "agentAccess": "confirm",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "subId": "example",
              "itemId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "DELETE",
              "path": "/api/subscriptions/example/items/example",
              "body": null
            },
            "effects": "May change state through DELETE /api/subscriptions/{subId}/items/{itemId}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "DELETE /api/subscriptions/*/items/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "organization_subscription_items.list",
          "title": "List organization subscription items",
          "description": "List organization subscription items.",
          "method": "GET",
          "path": "/api/subscriptions/by-external-org/{orgId}/items",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "orgId": {
                "type": "string",
                "minLength": 1
              },
              "system": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "orgId",
              "system"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List organization subscription items.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "orgId": "example",
              "system": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/subscriptions/by-external-org/example/items",
              "body": null
            },
            "effects": "Reads state through GET /api/subscriptions/by-external-org/{orgId}/items without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/subscriptions/by-external-org/*/items",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "organization_subscriptions.summary.get",
          "title": "Get organization subscription summary",
          "description": "Get organization subscription summary.",
          "method": "GET",
          "path": "/api/subscriptions/by-external-org/{orgId}/summary",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "orgId": {
                "type": "string",
                "minLength": 1
              },
              "system": {
                "type": "string",
                "minLength": 1
              },
              "workspaceId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "orgId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get organization subscription summary.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "orgId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/subscriptions/by-external-org/example/summary",
              "body": null
            },
            "effects": "Reads state through GET /api/subscriptions/by-external-org/{orgId}/summary without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/subscriptions/by-external-org/*/summary",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "organization_subscriptions.base_seat_count.update",
          "title": "Update base seat count",
          "description": "Update organization subscription base seat count.",
          "method": "POST",
          "path": "/api/subscriptions/by-external-org/{orgId}/base-seat-count",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "orgId": {
                "type": "string",
                "minLength": 1
              },
              "system": {
                "type": "string",
                "minLength": 1
              },
              "seatCount": {
                "type": "number",
                "minimum": 0
              }
            },
            "required": [
              "orgId",
              "system",
              "seatCount"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Update base seat count.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "orgId": "example",
              "system": "example",
              "seatCount": 1
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/subscriptions/by-external-org/example/base-seat-count",
              "body": {
                "orgId": "example",
                "system": "example",
                "seatCount": 1
              }
            },
            "effects": "May change state through POST /api/subscriptions/by-external-org/{orgId}/base-seat-count. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/subscriptions/by-external-org/*/base-seat-count",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "connect.onboard",
          "title": "Start Connect onboarding",
          "description": "Start TopoloPay Connect onboarding.",
          "method": "POST",
          "path": "/admin/connect/onboard",
          "permission": "merchants:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "merchantId": {
                "type": "string",
                "minLength": 1
              },
              "returnUrl": {
                "type": "string",
                "minLength": 1
              },
              "refreshUrl": {
                "type": "string",
                "minLength": 1
              },
              "email": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "merchantId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Start Connect onboarding.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "merchantId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/admin/connect/onboard",
              "body": {
                "merchantId": "example"
              }
            },
            "effects": "May change state through POST /admin/connect/onboard. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /admin/connect/onboard",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "connect.status.get",
          "title": "Get Connect status",
          "description": "Get TopoloPay Connect status.",
          "method": "GET",
          "path": "/admin/connect/status",
          "permission": "merchants:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "merchantId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "merchantId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get Connect status.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "merchantId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/admin/connect/status",
              "body": null
            },
            "effects": "Reads state through GET /admin/connect/status without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /admin/connect/status",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "connect.dashboard_link.create",
          "title": "Create Connect dashboard link",
          "description": "Create a TopoloPay Connect dashboard link.",
          "method": "POST",
          "path": "/admin/connect/dashboard-link",
          "permission": "merchants:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "merchantId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "merchantId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create Connect dashboard link.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "merchantId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/admin/connect/dashboard-link",
              "body": {
                "merchantId": "example"
              }
            },
            "effects": "May change state through POST /admin/connect/dashboard-link. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /admin/connect/dashboard-link",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "admin.transactions.results.list",
          "title": "List transaction results",
          "description": "List TopoloPay transaction search results.",
          "method": "GET",
          "path": "/admin/transactions/results",
          "permission": "transactions:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "maximum": 9007199254740991
              },
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 10000
              },
              "search": {
                "type": "string",
                "minLength": 1
              },
              "merchant": {
                "type": "string",
                "minLength": 1
              },
              "status": {
                "type": "string",
                "minLength": 1
              },
              "method": {
                "type": "string",
                "minLength": 1
              },
              "workspaceId": {
                "type": "string",
                "minLength": 1
              },
              "dateFrom": {
                "type": "string",
                "minLength": 1
              },
              "dateTo": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List transaction results.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "page": 1,
              "limit": 1,
              "search": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/admin/transactions/results",
              "body": null
            },
            "effects": "Reads state through GET /admin/transactions/results without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /admin/transactions/results",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "admin.transactions.search",
          "title": "Search transactions",
          "description": "Search TopoloPay transactions.",
          "method": "GET",
          "path": "/admin/transactions/search",
          "permission": "transactions:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "maximum": 9007199254740991
              },
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 10000
              },
              "search": {
                "type": "string",
                "minLength": 1
              },
              "merchant": {
                "type": "string",
                "minLength": 1
              },
              "status": {
                "type": "string",
                "minLength": 1
              },
              "method": {
                "type": "string",
                "minLength": 1
              },
              "workspaceId": {
                "type": "string",
                "minLength": 1
              },
              "dateFrom": {
                "type": "string",
                "minLength": 1
              },
              "dateTo": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Search transactions.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "page": 1,
              "limit": 1,
              "search": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/admin/transactions/search",
              "body": null
            },
            "effects": "Reads state through GET /admin/transactions/search without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /admin/transactions/search",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "admin.customers.search",
          "title": "Search customers",
          "description": "Search TopoloPay customers.",
          "method": "GET",
          "path": "/admin/customers/search",
          "permission": "customers:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "customerSearch": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Search customers.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "customerSearch": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/admin/customers/search",
              "body": null
            },
            "effects": "Reads state through GET /admin/customers/search without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /admin/customers/search",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "admin.customers.history.get",
          "title": "Get customer history",
          "description": "Get TopoloPay customer history.",
          "method": "GET",
          "path": "/api/admin/customers/{email}/history",
          "permission": "customers:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "email"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Get customer history.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "email": "user@example.com"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/admin/customers/user%40example.com/history",
              "body": null
            },
            "effects": "Reads state through GET /api/admin/customers/{email}/history without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/admin/customers/*/history",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "admin.audit.list",
          "title": "List audit logs",
          "description": "List TopoloPay audit logs.",
          "method": "GET",
          "path": "/api/admin/audit",
          "permission": "audit:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "maximum": 9007199254740991
              },
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 10000
              },
              "action": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List audit logs.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "page": 1,
              "limit": 1,
              "action": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/admin/audit",
              "body": null
            },
            "effects": "Reads state through GET /api/admin/audit without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/admin/audit",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "admin.export.transactions",
          "title": "Export transactions",
          "description": "Export TopoloPay transactions.",
          "method": "GET",
          "path": "/api/admin/export",
          "permission": "reports:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "format": {
                "type": "string",
                "enum": [
                  "csv"
                ]
              },
              "type": {
                "type": "string",
                "enum": [
                  "transactions",
                  "reconciliation",
                  "summary"
                ]
              },
              "search": {
                "type": "string",
                "minLength": 1
              },
              "merchant": {
                "type": "string",
                "minLength": 1
              },
              "status": {
                "type": "string",
                "minLength": 1
              },
              "method": {
                "type": "string",
                "minLength": 1
              },
              "dateFrom": {
                "type": "string",
                "minLength": 1
              },
              "dateTo": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Export transactions.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "format": "csv",
              "type": "transactions",
              "search": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/admin/export",
              "body": null
            },
            "effects": "Reads state through GET /api/admin/export without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/admin/export",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "orders.create",
          "title": "Orders Create",
          "description": "Call POST /order.",
          "method": "POST",
          "path": "/order",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "orderId": {
                "type": "string",
                "minLength": 1
              },
              "amount": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "currency": {
                "type": "string",
                "minLength": 1
              },
              "merchantId": {
                "type": "string",
                "minLength": 1
              },
              "venueId": {
                "type": "string",
                "minLength": 1
              },
              "description": {
                "type": "string",
                "minLength": 1
              },
              "customer": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string",
                    "minLength": 1
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "additionalProperties": false
              },
              "customerEmail": {
                "type": "string",
                "minLength": 1
              },
              "metadata": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "receipt_email": {
                "type": "string",
                "minLength": 1
              },
              "statement_descriptor": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "orderId",
              "amount",
              "currency",
              "merchantId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Orders Create.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "orderId": "example",
              "amount": 1,
              "currency": "USD",
              "merchantId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/order",
              "body": {
                "orderId": "example",
                "amount": 1,
                "currency": "USD",
                "merchantId": "example"
              }
            },
            "effects": "May change state through POST /order. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /order",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "orders.cancel",
          "title": "Orders Cancel",
          "description": "Call POST /order/{paymentId}/cancel.",
          "method": "POST",
          "path": "/order/{paymentId}/cancel",
          "requiresConfirmation": true,
          "destructive": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "paymentId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "paymentId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Orders Cancel.",
            "additionalProperties": true
          },
          "readOnly": false,
          "agentAccess": "confirm",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "paymentId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/order/example/cancel",
              "body": {
                "paymentId": "example"
              }
            },
            "effects": "May change state through POST /order/{paymentId}/cancel. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /order/*/cancel",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "payment.status.get",
          "title": "Payment Status Get",
          "description": "Call GET /payment/{sessionId}/status.",
          "method": "GET",
          "path": "/payment/{sessionId}/status",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "sessionId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "sessionId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Payment Status Get.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "runtime",
          "documentation": {
            "example_input": {
              "sessionId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/payment/example/status",
              "body": null
            },
            "effects": "Reads state through GET /payment/{sessionId}/status without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /payment/*/status",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "admin.transactions.page.list",
          "title": "Admin Transactions Page List",
          "description": "Call GET /admin/transactions.",
          "method": "GET",
          "path": "/admin/transactions",
          "permission": "transactions:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "maximum": 9007199254740991
              },
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 10000
              },
              "search": {
                "type": "string",
                "minLength": 1
              },
              "merchant": {
                "type": "string",
                "minLength": 1
              },
              "status": {
                "type": "string",
                "minLength": 1
              },
              "method": {
                "type": "string",
                "minLength": 1
              },
              "workspaceId": {
                "type": "string",
                "minLength": 1
              },
              "dateFrom": {
                "type": "string",
                "minLength": 1
              },
              "dateTo": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Admin Transactions Page List.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "page": 1,
              "limit": 1,
              "search": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/admin/transactions",
              "body": null
            },
            "effects": "Reads state through GET /admin/transactions without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /admin/transactions",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "admin.customers.page.list",
          "title": "Admin Customers Page List",
          "description": "Call GET /admin/customers.",
          "method": "GET",
          "path": "/admin/customers",
          "permission": "customers:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Admin Customers Page List.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/admin/customers",
              "body": null
            },
            "effects": "Reads state through GET /admin/customers without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /admin/customers",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "admin.customers.list",
          "title": "Admin Customers List",
          "description": "Call GET /admin/customers/list.",
          "method": "GET",
          "path": "/admin/customers/list",
          "permission": "customers:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Admin Customers List.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/admin/customers/list",
              "body": null
            },
            "effects": "Reads state through GET /admin/customers/list without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /admin/customers/list",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "admin.audit.page.get",
          "title": "Admin Audit Page Get",
          "description": "Call GET /admin/audit.",
          "method": "GET",
          "path": "/admin/audit",
          "permission": "audit:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Admin Audit Page Get.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/admin/audit",
              "body": null
            },
            "effects": "Reads state through GET /admin/audit without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /admin/audit",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "admin.audit.logs.list",
          "title": "Admin Audit Logs List",
          "description": "Call GET /admin/audit/logs.",
          "method": "GET",
          "path": "/admin/audit/logs",
          "permission": "audit:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "maximum": 9007199254740991
              },
              "auditAction": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Admin Audit Logs List.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "page": 1,
              "auditAction": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/admin/audit/logs",
              "body": null
            },
            "effects": "Reads state through GET /admin/audit/logs without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /admin/audit/logs",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "admin.export.transactions_page",
          "title": "Admin Export Transactions Page",
          "description": "Call GET /admin/export/transactions.",
          "method": "GET",
          "path": "/admin/export/transactions",
          "permission": "reports:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "format": {
                "type": "string",
                "enum": [
                  "csv"
                ]
              },
              "type": {
                "type": "string",
                "enum": [
                  "transactions",
                  "reconciliation",
                  "summary"
                ]
              },
              "search": {
                "type": "string",
                "minLength": 1
              },
              "merchant": {
                "type": "string",
                "minLength": 1
              },
              "status": {
                "type": "string",
                "minLength": 1
              },
              "method": {
                "type": "string",
                "minLength": 1
              },
              "dateFrom": {
                "type": "string",
                "minLength": 1
              },
              "dateTo": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Admin Export Transactions Page.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "format": "csv",
              "type": "transactions",
              "search": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/admin/export/transactions",
              "body": null
            },
            "effects": "Reads state through GET /admin/export/transactions without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /admin/export/transactions",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "admin.transaction.get",
          "title": "Admin Transaction Get",
          "description": "Call GET /api/admin/transaction/{id}.",
          "method": "GET",
          "path": "/api/admin/transaction/{id}",
          "permission": "transactions:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Admin Transaction Get.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/admin/transaction/00000000-0000-4000-8000-000000000000",
              "body": null
            },
            "effects": "Reads state through GET /api/admin/transaction/{id} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/admin/transaction/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "admin.refund.create",
          "title": "Admin Refund Create",
          "description": "Call POST /api/admin/refund/{id}.",
          "method": "POST",
          "path": "/api/admin/refund/{id}",
          "permission": "transactions:refund",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "amount": {
                "type": "number",
                "exclusiveMinimum": 0
              },
              "reason": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id",
              "amount",
              "reason"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Admin Refund Create.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000",
              "amount": 1,
              "reason": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/admin/refund/00000000-0000-4000-8000-000000000000",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000",
                "amount": 1,
                "reason": "example"
              }
            },
            "effects": "May change state through POST /api/admin/refund/{id}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/admin/refund/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "admin.invoices.list",
          "title": "List invoices",
          "description": "List Stripe invoices visible to the current organization or platform operator.",
          "method": "GET",
          "path": "/api/admin/invoices",
          "permission": "invoices:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 9007199254740991
              },
              "starting_after": {
                "type": "string",
                "minLength": 1
              },
              "status": {
                "type": "string",
                "minLength": 1
              },
              "organizationId": {
                "type": "string",
                "minLength": 1
              },
              "workspaceId": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "limit": 1,
              "starting_after": "example",
              "status": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/admin/invoices",
              "body": null
            },
            "effects": "Reads state through GET /api/admin/invoices without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/admin/invoices",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "admin.invoices.link.get",
          "title": "Get invoice link",
          "description": "Get the hosted link for an accessible invoice.",
          "method": "GET",
          "path": "/api/admin/invoices/{invoiceId}/link",
          "permission": "invoices:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "invoiceId": {
                "type": "string",
                "minLength": 1
              },
              "organizationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "invoiceId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "invoiceId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/admin/invoices/example/link",
              "body": null
            },
            "effects": "Reads state through GET /api/admin/invoices/{invoiceId}/link without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/admin/invoices/*/link",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "admin.merchants.list",
          "title": "List admin merchants",
          "description": "List merchant accounts visible to the current workspace.",
          "method": "GET",
          "path": "/api/admin/merchants",
          "permission": "merchants:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "workspaceId": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "workspaceId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/admin/merchants",
              "body": null
            },
            "effects": "Reads state through GET /api/admin/merchants without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/admin/merchants",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "admin.merchants.get",
          "title": "Get admin merchant",
          "description": "Get a merchant account visible to the current workspace.",
          "method": "GET",
          "path": "/api/admin/merchants/{merchantId}",
          "permission": "merchants:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "merchantId": {
                "type": "string",
                "minLength": 1
              },
              "workspaceId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "merchantId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "merchantId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/admin/merchants/example",
              "body": null
            },
            "effects": "Reads state through GET /api/admin/merchants/{merchantId} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/admin/merchants/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "workspaces.delete",
          "title": "Delete Pay workspace",
          "description": "Delete a non-default empty Pay workspace.",
          "method": "DELETE",
          "path": "/api/pay/workspaces/{workspaceId}",
          "permission": "workspace:delete",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "workspaceId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "workspaceId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": true,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "workspaceId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "DELETE",
              "path": "/api/pay/workspaces/example",
              "body": null
            },
            "effects": "May change state through DELETE /api/pay/workspaces/{workspaceId}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "DELETE /api/pay/workspaces/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "organizations.data.export",
          "title": "Export organization Pay data",
          "description": "Export the caller organization's billing, payment, settlement, usage, analytics, and attributed audit records across Pay's split stores.",
          "method": "GET",
          "path": "/api/organizations/{organizationId}/data",
          "permission": "privacy:read",
          "authorizationMode": "static",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "organizationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "organizationId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "organizationId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/organizations/example/data",
              "body": null
            },
            "effects": "Reads state through GET /api/organizations/{organizationId}/data without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/organizations/*/data",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "organizations.data.erase",
          "title": "Erase organization Pay data",
          "description": "Erase organization-authored Pay content while retaining immutable financial and provider reconciliation records.",
          "method": "DELETE",
          "path": "/api/organizations/{organizationId}/data",
          "permission": "privacy:write",
          "authorizationMode": "static",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "organizationId": {
                "type": "string",
                "minLength": 1
              },
              "confirmation": {
                "type": "string",
                "const": "ERASE"
              }
            },
            "required": [
              "organizationId",
              "confirmation"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": true,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "organizationId": "example",
              "confirmation": "ERASE"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "DELETE",
              "path": "/api/organizations/example/data",
              "body": null
            },
            "effects": "May change state through DELETE /api/organizations/{organizationId}/data. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "DELETE /api/organizations/*/data",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "organizations.data_protection.canary",
          "title": "Check organization Pay protection",
          "description": "Check whether retained merchant, customer, transaction, refund, and provider payload fields are encrypted for an organization.",
          "method": "GET",
          "path": "/api/organizations/{organizationId}/data-protection",
          "permission": "privacy:read",
          "authorizationMode": "static",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "organizationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "organizationId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "organizationId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-pay --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/organizations/example/data-protection",
              "body": null
            },
            "effects": "Reads state through GET /api/organizations/{organizationId}/data-protection without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/organizations/*/data-protection",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        }
      ],
      "action_coverage": {
        "status": "ok",
        "served_routes": 80,
        "matched_actions": 58,
        "declared_unserved_actions": [],
        "coverage_excluded_actions": [],
        "uncatalogued_routes": [
          {
            "key": "POST /internal/platform/encryption/master-key/rewrap",
            "method": "POST",
            "path": "/internal/platform/encryption/master-key/rewrap",
            "source": "apps/api/src/index.ts",
            "target": "api"
          }
        ],
        "ignored_routes": 21,
        "configured_exclusions": 20,
        "configuration_findings": [],
        "notes": []
      },
      "runtime_contract_audit": {
        "status": "verified",
        "actions": 58,
        "contracts": 58,
        "contract_module": "topolo.action-contracts.mjs",
        "validator_sources": [
          "apps/api/src/index.ts"
        ],
        "authorization_sources": [
          "apps/api/src/index.ts"
        ],
        "findings": []
      }
    }
  ],
  "mobile_contracts": [
    {
      "source_path": "apps/TopoloPay/topolo.mobile-experience.json",
      "contract": {
        "version": "2026-06-29",
        "status": "approved",
        "mode": "native_capability",
        "appId": "app_topolo_pay",
        "localizationNamespace": "pay",
        "permissions": [
          "transactions:read",
          "customers:read",
          "merchants:read"
        ],
        "offlinePolicy": "read_through_cache",
        "fallbackPath": "/transactions",
        "auth": {
          "audience": "topolo-pay",
          "scopes": [
            "transactions:read",
            "customers:read",
            "merchants:read"
          ]
        },
        "routes": [
          {
            "path": "/transactions",
            "apiPath": "/api/admin/transactions",
            "title": "Transactions",
            "titleKey": "pay.transactions.title",
            "template": "record.list",
            "dataSource": "pay.transactions.list",
            "detailRoute": "/transactions/:id"
          },
          {
            "path": "/transactions/:id",
            "apiPath": "/api/admin/transaction/:id",
            "title": "Transactions",
            "titleKey": "pay.transactions.title",
            "template": "record.detail",
            "dataSource": "pay.transactions.detail"
          },
          {
            "path": "/customers",
            "apiPath": "/api/admin/customers",
            "title": "Customers",
            "titleKey": "pay.shell.nav.customers",
            "template": "record.list",
            "dataSource": "pay.customers.list"
          },
          {
            "path": "/merchants",
            "apiPath": "/api/merchants",
            "title": "Merchants",
            "titleKey": "pay.shell.nav.merchants",
            "template": "record.list",
            "dataSource": "pay.merchants.list",
            "detailRoute": "/merchants/:id"
          },
          {
            "path": "/merchants/:id",
            "apiPath": "/api/admin/merchants/:id",
            "title": "Merchants",
            "titleKey": "pay.shell.nav.merchants",
            "template": "record.detail",
            "dataSource": "pay.merchants.detail"
          }
        ]
      }
    }
  ],
  "package_manifests": [],
  "deployment_configs": [],
  "source_signals": {
    "api_routes": [
      {
        "method": "POST",
        "path": "/internal/platform/encryption/master-key/rewrap",
        "source_path": "apps/TopoloPay/apps/api/src/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/p2p/settlements",
        "source_path": "apps/TopoloPay/apps/api/src/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/p2p/settlements/:batchId/complete",
        "source_path": "apps/TopoloPay/apps/api/src/index.ts"
      },
      {
        "method": "GET",
        "path": "/api",
        "source_path": "apps/TopoloPay/apps/api/src/index.ts"
      },
      {
        "method": "GET",
        "path": "/success",
        "source_path": "apps/TopoloPay/apps/api/src/index.ts"
      },
      {
        "method": "GET",
        "path": "/cancel",
        "source_path": "apps/TopoloPay/apps/api/src/index.ts"
      },
      {
        "method": "GET",
        "path": "/payment/:sessionId/status",
        "source_path": "apps/TopoloPay/apps/api/src/index.ts"
      },
      {
        "method": "POST",
        "path": "/order/:paymentId/cancel",
        "source_path": "apps/TopoloPay/apps/api/src/index.ts"
      },
      {
        "method": "GET",
        "path": "*",
        "source_path": "apps/TopoloPay/apps/api/src/index.ts"
      },
      {
        "method": "GET",
        "path": "/api/admin/transactions",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "GET",
        "path": "/api/admin/transaction/:id",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "GET",
        "path": "/api/admin/analytics",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "GET",
        "path": "/api/admin/merchants",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "GET",
        "path": "/api/admin/merchants/:id",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "GET",
        "path": "/api/admin/customers",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "GET",
        "path": "/api/admin/customers/:email/history",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "GET",
        "path": "/api/admin/invoices",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "GET",
        "path": "/api/admin/invoices/:id/link",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "GET",
        "path": "/api/admin/audit",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "POST",
        "path": "/api/admin/refund/:id",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "DELETE",
        "path": "/api/pay/workspaces/:workspaceId",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "GET",
        "path": "/api/organizations/:organizationId/data",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "DELETE",
        "path": "/api/organizations/:organizationId/data",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "GET",
        "path": "/api/organizations/:organizationId/data-protection",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "GET",
        "path": "/api/auth/me",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "ALL",
        "path": "/api/auth/*",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "GET",
        "path": "/api/admin/export",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "GET",
        "path": "/health",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "GET",
        "path": "/api/widget",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "GET",
        "path": "/",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "GET",
        "path": "/auth/callback",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      },
      {
        "method": "GET",
        "path": "*",
        "source_path": "apps/TopoloPay/apps/api/src/routes/misc-routes.ts"
      }
    ],
    "ui_routes": [
      {
        "path": "/dashboard",
        "source_path": "apps/TopoloPay/apps/web/src/App.tsx"
      },
      {
        "path": "/transactions",
        "source_path": "apps/TopoloPay/apps/web/src/App.tsx"
      },
      {
        "path": "/analytics",
        "source_path": "apps/TopoloPay/apps/web/src/App.tsx"
      },
      {
        "path": "/customers",
        "source_path": "apps/TopoloPay/apps/web/src/App.tsx"
      },
      {
        "path": "/merchants",
        "source_path": "apps/TopoloPay/apps/web/src/App.tsx"
      },
      {
        "path": "/audit",
        "source_path": "apps/TopoloPay/apps/web/src/App.tsx"
      },
      {
        "path": "/getting-started",
        "source_path": "apps/TopoloPay/apps/web/src/App.tsx"
      },
      {
        "path": "/settings",
        "source_path": "apps/TopoloPay/apps/web/src/App.tsx"
      },
      {
        "path": "/settings/:section",
        "source_path": "apps/TopoloPay/apps/web/src/App.tsx"
      }
    ],
    "test_cases": [],
    "database_tables": []
  },
  "documentation": {
    "declared_paths": [
      "applications/pay",
      "internal/apps/pay"
    ],
    "present_paths": [
      "applications/pay",
      "internal/apps/pay"
    ],
    "missing_paths": [],
    "human_reference": "/systems/topolo-pay",
    "machine_reference": "/machine/systems/topolo-pay.json",
    "action_examples": 58,
    "action_schemas": 58
  },
  "source_findings": [
    {
      "type": "uncatalogued_routes",
      "source_path": "apps/TopoloPay/topolo.app.json",
      "detail": [
        {
          "key": "POST /internal/platform/encryption/master-key/rewrap",
          "method": "POST",
          "path": "/internal/platform/encryption/master-key/rewrap",
          "source": "apps/api/src/index.ts",
          "target": "api"
        }
      ]
    }
  ]
}