{
  "components": {
    "parameters": {
      "APIVersionHeader": {
        "description": "API version date (YYYY-MM-DD). Defaults to current version if omitted.",
        "in": "header",
        "name": "API-Version",
        "schema": {
          "example": "2025-01-01",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "type": "string"
        }
      },
      "MerchantIDParam": {
        "description": "Filter by merchant ID",
        "in": "query",
        "name": "merchant_id",
        "schema": {
          "type": "string"
        }
      },
      "PageParam": {
        "description": "Page number (1-based)",
        "in": "query",
        "name": "page",
        "schema": {
          "default": 1,
          "minimum": 1,
          "type": "integer"
        }
      },
      "PerPageParam": {
        "description": "Items per page",
        "in": "query",
        "name": "per_page",
        "schema": {
          "default": 20,
          "maximum": 100,
          "minimum": 1,
          "type": "integer"
        }
      }
    },
    "schemas": {
      "APIVersion": {
        "properties": {
          "changelog": {
            "description": "Version changelog",
            "nullable": true,
            "type": "string"
          },
          "released_at": {
            "description": "Release date",
            "format": "date-time",
            "type": "string"
          },
          "status": {
            "description": "Version status",
            "enum": [
              "current",
              "supported",
              "deprecated",
              "sunset"
            ],
            "type": "string"
          },
          "sunset_at": {
            "description": "Sunset date (null if not scheduled)",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "version": {
            "description": "Version date string (YYYY-MM-DD)",
            "type": "string"
          }
        },
        "required": [
          "version",
          "status",
          "released_at"
        ],
        "type": "object"
      },
      "Account": {
        "properties": {
          "api_key_prefix": {
            "description": "API key prefix for identification",
            "nullable": true,
            "type": "string"
          },
          "capabilities": {
            "description": "Granted capabilities",
            "items": {
              "description": "Capability name",
              "type": "string"
            },
            "type": "array"
          },
          "created_at": {
            "description": "Creation timestamp",
            "format": "date-time",
            "type": "string"
          },
          "fee_tier_bps": {
            "description": "Custom fee tier in basis points",
            "nullable": true,
            "type": "integer"
          },
          "id": {
            "description": "Unique account ID",
            "type": "string"
          },
          "name": {
            "description": "Account display name",
            "type": "string"
          },
          "payout_destination": {
            "description": "Payout destination identifier",
            "nullable": true,
            "type": "string"
          },
          "payout_method": {
            "description": "Preferred payout method (bank_transfer, usdc_wallet)",
            "nullable": true,
            "type": "string"
          },
          "restrictions": {
            "description": "Active restrictions",
            "items": {
              "description": "Restriction name",
              "type": "string"
            },
            "type": "array"
          },
          "settlement_asset": {
            "description": "Preferred settlement asset (USD, USDC)",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "Account status",
            "enum": [
              "active",
              "suspended",
              "closed",
              "pending"
            ],
            "type": "string"
          },
          "updated_at": {
            "description": "Last update timestamp",
            "format": "date-time",
            "type": "string"
          },
          "webhook_url": {
            "description": "Registered webhook URL",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "status"
        ],
        "type": "object"
      },
      "AgentDiscoveryResponse": {
        "properties": {
          "authentication": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Auth scheme, token prefix, header name, and how to obtain a key",
            "type": "object"
          },
          "contact_email": {
            "description": "Support contact email",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "Human-readable service description",
            "type": "string"
          },
          "human_setup_url": {
            "description": "Human-facing setup documentation",
            "type": "string"
          },
          "onboarding_url": {
            "description": "Where a human/agent operator can self-serve a key",
            "type": "string"
          },
          "protocol_version": {
            "description": "MCP protocol version",
            "type": "string"
          },
          "service": {
            "description": "Service name",
            "type": "string"
          },
          "tools": {
            "description": "Tools available to an authenticated caller",
            "items": {
              "$ref": "#/components/schemas/ToolDefinition"
            },
            "type": "array"
          },
          "transports": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Available MCP transports (streamable_http, sse) with their URLs and spec links",
            "type": "object"
          },
          "version": {
            "description": "Service version",
            "type": "string"
          }
        },
        "required": [
          "service",
          "version",
          "protocol_version",
          "transports",
          "authentication",
          "tools"
        ],
        "type": "object"
      },
      "AgentKeyIssued": {
        "properties": {
          "created_at": {
            "description": "Creation timestamp",
            "format": "date-time",
            "type": "string"
          },
          "expires_at": {
            "description": "Expiry timestamp, if set",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "Agent key ID",
            "type": "string"
          },
          "name": {
            "description": "Display name",
            "type": "string"
          },
          "note": {
            "description": "Human-readable usage note",
            "type": "string"
          },
          "policy": {
            "$ref": "#/components/schemas/AgentPolicy"
          },
          "status": {
            "description": "Key status",
            "enum": [
              "active",
              "revoked",
              "expired"
            ],
            "type": "string"
          },
          "token": {
            "description": "Bearer token (agk_live_* or agk_test_*), shown once and never again",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "token",
          "policy",
          "status",
          "created_at"
        ],
        "type": "object"
      },
      "AgentKeyList": {
        "properties": {
          "agent_keys": {
            "description": "Agent keys issued by this merchant",
            "items": {
              "$ref": "#/components/schemas/AgentKeyRecord"
            },
            "type": "array"
          }
        },
        "required": [
          "agent_keys"
        ],
        "type": "object"
      },
      "AgentKeyRecord": {
        "properties": {
          "CallCount": {
            "description": "Total calls made with this key",
            "format": "int64",
            "type": "integer"
          },
          "CreatedAt": {
            "description": "Creation timestamp",
            "format": "date-time",
            "type": "string"
          },
          "ExpiresAt": {
            "description": "Expiry timestamp, if set",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "ID": {
            "description": "Agent key ID",
            "type": "string"
          },
          "IsSandbox": {
            "description": "Whether this is a sandbox (agk_test_*) key",
            "type": "boolean"
          },
          "LastUsedAt": {
            "description": "Last time this key was used",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "MerchantID": {
            "description": "Owning merchant ID",
            "type": "string"
          },
          "Name": {
            "description": "Display name",
            "type": "string"
          },
          "Policy": {
            "$ref": "#/components/schemas/AgentPolicy"
          },
          "Status": {
            "description": "Key status",
            "enum": [
              "active",
              "revoked",
              "expired"
            ],
            "type": "string"
          },
          "TokenHash": {
            "description": "SHA-256 hash of the token (never the plaintext token)",
            "type": "string"
          },
          "UpdatedAt": {
            "description": "Last update timestamp",
            "format": "date-time",
            "type": "string"
          },
          "Version": {
            "description": "Optimistic-lock version",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "ID",
          "MerchantID",
          "Name",
          "Status",
          "CreatedAt"
        ],
        "type": "object"
      },
      "AgentPolicy": {
        "properties": {
          "allowed_currencies": {
            "description": "Currencies this key may transact in",
            "items": {
              "description": "ISO 4217 currency code",
              "type": "string"
            },
            "type": "array"
          },
          "allowed_providers": {
            "description": "Providers this key may route through",
            "items": {
              "description": "Provider name",
              "type": "string"
            },
            "type": "array"
          },
          "allowed_tools": {
            "description": "MCP tool names this key may call",
            "items": {
              "description": "Tool name",
              "type": "string"
            },
            "type": "array"
          },
          "max_amount_minor_cents": {
            "description": "Per-transaction cap in minor units",
            "format": "int64",
            "type": "integer"
          },
          "rate_limit_per_minute": {
            "description": "Calls per minute allowed for this key",
            "format": "int64",
            "type": "integer"
          },
          "require_approval_above": {
            "description": "Amount above which execute_payment requires human approval",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "AgentSignupRequest": {
        "properties": {
          "agent_name": {
            "description": "Optional display name for the requesting agent",
            "nullable": true,
            "type": "string"
          },
          "contact": {
            "description": "Optional contact info for the requesting agent",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "AssistantActRequest": {
        "properties": {
          "action": {
            "description": "Action to execute",
            "enum": [
              "open_passthrough_payout_bank",
              "open_passthrough_business_verify",
              "open_onboarding_status",
              "accept_tos",
              "enable_go_live",
              "refresh_work_run",
              "create_passthrough_session",
              "apply_passthrough_prefill",
              "plaid_link_token",
              "plaid_exchange",
              "plaid_verify_payout",
              "plaid_processor_token"
            ],
            "type": "string"
          },
          "params": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Action-specific parameters",
            "type": "object"
          }
        },
        "required": [
          "action"
        ],
        "type": "object"
      },
      "AssistantActResponse": {
        "properties": {
          "action": {
            "description": "Action that was executed",
            "type": "string"
          },
          "message": {
            "description": "Human-readable result message",
            "nullable": true,
            "type": "string"
          },
          "result": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Action-specific result payload",
            "type": "object"
          },
          "status": {
            "description": "Outcome status",
            "type": "string"
          }
        },
        "required": [
          "action",
          "status"
        ],
        "type": "object"
      },
      "AssistantAskRequest": {
        "properties": {
          "question": {
            "description": "Free-text question for the merchant operator assistant",
            "type": "string"
          }
        },
        "required": [
          "question"
        ],
        "type": "object"
      },
      "AssistantAskResponse": {
        "properties": {
          "answer": {
            "description": "Assistant's answer",
            "type": "string"
          },
          "confidence": {
            "description": "Confidence score 0-1",
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "dashboard_path": {
            "description": "Dashboard route relevant to the answer",
            "nullable": true,
            "type": "string"
          },
          "goal_progress_pct": {
            "description": "Progress toward the current goal, 0-100",
            "nullable": true,
            "type": "integer"
          },
          "next_step_id": {
            "description": "Next onboarding step ID, if relevant",
            "nullable": true,
            "type": "string"
          },
          "passthrough_session_id": {
            "description": "Associated passthrough session ID, if any",
            "nullable": true,
            "type": "string"
          },
          "proposed_actions": {
            "description": "Actions the merchant can trigger via /assistant/act",
            "items": {
              "$ref": "#/components/schemas/ProposedAction"
            },
            "type": "array"
          },
          "referenced_topic": {
            "description": "Topic this answer was matched against",
            "nullable": true,
            "type": "string"
          },
          "work_run_id": {
            "description": "Associated work-run ID, if any",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "answer"
        ],
        "type": "object"
      },
      "BalanceAccount": {
        "properties": {
          "available": {
            "description": "Available balance in minor units",
            "format": "int64",
            "type": "integer"
          },
          "currency": {
            "description": "Account currency",
            "type": "string"
          },
          "id": {
            "description": "Unique balance account ID",
            "type": "string"
          },
          "pending": {
            "description": "Pending balance in minor units",
            "format": "int64",
            "type": "integer"
          },
          "reserved": {
            "description": "Reserved balance in minor units",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "available",
          "pending",
          "reserved",
          "currency"
        ],
        "type": "object"
      },
      "BillingCycle": {
        "properties": {
          "account_id": {
            "description": "Merchant account (tenant)",
            "type": "string"
          },
          "amount": {
            "description": "Charge amount in minor units, before proration",
            "format": "int64",
            "type": "integer"
          },
          "charged_at": {
            "description": "When the charge succeeded",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "created_at": {
            "description": "Creation timestamp",
            "format": "date-time",
            "type": "string"
          },
          "currency": {
            "description": "ISO 4217 currency code",
            "type": "string"
          },
          "due_date": {
            "description": "When the charge is due",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "Unique billing cycle ID (billcycle_...)",
            "type": "string"
          },
          "idempotency_key": {
            "description": "Derived key (bill_\u003csubscription_id\u003e_\u003cperiod_start\u003e) that makes a cycle unique per period",
            "type": "string"
          },
          "last_retry_at": {
            "description": "Most recent retry timestamp",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "max_retries": {
            "description": "Retry ceiling before the cycle hard-fails (default 4)",
            "format": "int64",
            "type": "integer"
          },
          "payment_intent_id": {
            "description": "Payment intent created for this cycle",
            "nullable": true,
            "type": "string"
          },
          "period_end": {
            "description": "End of the period being charged",
            "format": "date-time",
            "type": "string"
          },
          "period_start": {
            "description": "Start of the period being charged",
            "format": "date-time",
            "type": "string"
          },
          "plan_id": {
            "description": "Plan the amount was derived from",
            "type": "string"
          },
          "proration_adjustment": {
            "description": "Signed proration delta; positive charges more, negative credits. Effective charge is amount + proration_adjustment, floored at 0",
            "format": "int64",
            "type": "integer"
          },
          "retries": {
            "description": "Retry attempts so far",
            "format": "int64",
            "type": "integer"
          },
          "status": {
            "description": "Charge lifecycle",
            "enum": [
              "pending",
              "charged",
              "failed",
              "voided",
              "refunded"
            ],
            "type": "string"
          },
          "subscription_id": {
            "description": "Subscription this cycle belongs to",
            "type": "string"
          },
          "updated_at": {
            "description": "Last update timestamp",
            "format": "date-time",
            "type": "string"
          },
          "version": {
            "description": "Optimistic-concurrency version",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "subscription_id",
          "plan_id",
          "account_id",
          "period_start",
          "period_end",
          "amount",
          "currency",
          "status"
        ],
        "type": "object"
      },
      "CancelSubscriptionRequest": {
        "properties": {
          "at_period_end": {
            "description": "true schedules cancellation for the end of the paid period (status stays active, cancel_at_end becomes true); false cancels immediately",
            "type": "boolean"
          },
          "reason": {
            "description": "Cancellation reason",
            "enum": [
              "customer_request",
              "payment_failure",
              "merchant_action",
              "plan_archived"
            ],
            "type": "string"
          }
        },
        "required": [
          "reason"
        ],
        "type": "object"
      },
      "CreatePaymentIntentRequest": {
        "properties": {
          "amount": {
            "description": "Amount in minor units (cents)",
            "format": "int64",
            "type": "integer"
          },
          "currency": {
            "description": "ISO 4217 currency code",
            "type": "string"
          },
          "destination_currency": {
            "description": "Target settlement currency for cross-asset conversion",
            "nullable": true,
            "type": "string"
          },
          "idempotency_key": {
            "description": "Unique key for idempotent creation",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Arbitrary key-value metadata",
            "type": "object"
          }
        },
        "required": [
          "amount",
          "currency",
          "idempotency_key"
        ],
        "type": "object"
      },
      "CreatePlanRequest": {
        "properties": {
          "amount": {
            "description": "Recurring amount in minor units (cents); must be \u003e 0",
            "format": "int64",
            "type": "integer"
          },
          "billing_period": {
            "description": "Charge cadence",
            "enum": [
              "weekly",
              "monthly",
              "quarterly",
              "annual"
            ],
            "type": "string"
          },
          "currency": {
            "description": "ISO 4217 currency code",
            "type": "string"
          },
          "description": {
            "description": "Optional plan description",
            "type": "string"
          },
          "external_id": {
            "description": "Optional merchant-side identifier",
            "type": "string"
          },
          "grace_period_days": {
            "description": "Optional override for the post-due-date grace window (defaults to 3)",
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "description": "Plan display name",
            "type": "string"
          },
          "trial_period_days": {
            "description": "Optional free trial length in days",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "name",
          "amount",
          "currency",
          "billing_period"
        ],
        "type": "object"
      },
      "CreateSubscriptionRequest": {
        "properties": {
          "customer_id": {
            "description": "Merchant's end-customer reference",
            "type": "string"
          },
          "idempotency_key": {
            "description": "Required. Replaying a key returns the existing subscription with HTTP 200 instead of creating a second one",
            "type": "string"
          },
          "plan_id": {
            "description": "An ACTIVE plan ID; a draft or archived plan is rejected with 400",
            "type": "string"
          }
        },
        "required": [
          "plan_id",
          "customer_id",
          "idempotency_key"
        ],
        "type": "object"
      },
      "Dispute": {
        "properties": {
          "amount": {
            "description": "Disputed amount in minor units",
            "format": "int64",
            "type": "integer"
          },
          "created_at": {
            "description": "Creation timestamp",
            "format": "date-time",
            "type": "string"
          },
          "currency": {
            "description": "Currency",
            "type": "string"
          },
          "evidence_due_by": {
            "description": "Evidence submission deadline",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "Unique dispute ID",
            "type": "string"
          },
          "merchant_id": {
            "description": "Merchant account ID",
            "type": "string"
          },
          "payment_intent_id": {
            "description": "Related payment intent ID",
            "type": "string"
          },
          "reason": {
            "description": "Dispute reason code",
            "type": "string"
          },
          "status": {
            "description": "Dispute status",
            "enum": [
              "open",
              "under_review",
              "won",
              "lost",
              "accepted",
              "expired"
            ],
            "type": "string"
          },
          "updated_at": {
            "description": "Last update timestamp",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "merchant_id",
          "payment_intent_id",
          "amount",
          "currency",
          "reason",
          "status"
        ],
        "type": "object"
      },
      "Error": {
        "properties": {
          "details": {
            "description": "Additional error context"
          },
          "error": {
            "description": "Error code",
            "type": "string"
          },
          "message": {
            "description": "Human-readable message",
            "type": "string"
          }
        },
        "required": [
          "error",
          "message"
        ],
        "type": "object"
      },
      "FinancialEvent": {
        "properties": {
          "amount": {
            "description": "Amount in minor units",
            "format": "int64",
            "type": "integer"
          },
          "created_at": {
            "description": "Event timestamp",
            "format": "date-time",
            "type": "string"
          },
          "currency": {
            "description": "ISO 4217 currency code",
            "type": "string"
          },
          "direction": {
            "description": "Money direction",
            "enum": [
              "debit",
              "credit"
            ],
            "type": "string"
          },
          "event_hash": {
            "description": "SHA-256 event hash for chain integrity",
            "type": "string"
          },
          "event_type": {
            "description": "Ledger event type",
            "enum": [
              "payment_authorized",
              "payment_captured",
              "payment_refunded",
              "payment_failed",
              "fee_charged",
              "fee_refunded",
              "settlement_queued",
              "settlement_completed",
              "settlement_failed",
              "conversion_executed",
              "quote_generated",
              "dispute_opened",
              "dispute_won",
              "dispute_lost",
              "dispute_accepted",
              "dispute_expired",
              "reserve_held",
              "reserve_released",
              "reserve_forfeited",
              "payout_initiated",
              "payout_completed",
              "payout_failed",
              "payout_cancelled",
              "payout_returned",
              "orchestration_leg_debit",
              "orchestration_leg_credit",
              "orchestration_leg_reversed",
              "gift_card_issued",
              "gift_card_loaded",
              "gift_card_redeemed"
            ],
            "type": "string"
          },
          "id": {
            "description": "Unique event ID",
            "type": "string"
          },
          "idempotency_key": {
            "description": "Idempotency key",
            "type": "string"
          },
          "merchant_id": {
            "description": "Merchant account ID",
            "type": "string"
          },
          "previous_hash": {
            "description": "Previous event hash for chain linking",
            "type": "string"
          },
          "reconciliation_status": {
            "description": "Reconciliation state",
            "enum": [
              "pending",
              "matched",
              "mismatched",
              "unreconciled"
            ],
            "type": "string"
          },
          "sequence_id": {
            "description": "Monotonic sequence within merchant",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "merchant_id",
          "event_type",
          "amount",
          "currency",
          "direction",
          "idempotency_key",
          "event_hash",
          "sequence_id"
        ],
        "type": "object"
      },
      "HealthStatus": {
        "properties": {
          "cache": {
            "description": "Cache status",
            "enum": [
              "up",
              "down"
            ],
            "type": "string"
          },
          "database": {
            "description": "DB status",
            "enum": [
              "up",
              "down"
            ],
            "type": "string"
          },
          "status": {
            "description": "Overall health",
            "enum": [
              "healthy",
              "degraded",
              "unhealthy"
            ],
            "type": "string"
          },
          "uptime": {
            "description": "Service uptime",
            "type": "string"
          }
        },
        "required": [
          "status",
          "database",
          "cache"
        ],
        "type": "object"
      },
      "IssueAgentKeyRequest": {
        "properties": {
          "expires_at": {
            "description": "Optional expiry",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "Display name for the key",
            "type": "string"
          },
          "policy": {
            "$ref": "#/components/schemas/AgentPolicy"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "JsonRpcRequest": {
        "properties": {
          "id": {
            "description": "Request correlation ID (string, number, or null)"
          },
          "jsonrpc": {
            "description": "Must be \"2.0\"",
            "type": "string"
          },
          "method": {
            "description": "MCP method to invoke",
            "enum": [
              "initialize",
              "ping",
              "tools/list",
              "tools/call",
              "discover/catalog"
            ],
            "type": "string"
          },
          "params": {
            "description": "Method-specific parameters"
          }
        },
        "required": [
          "jsonrpc",
          "method"
        ],
        "type": "object"
      },
      "JsonRpcResponse": {
        "properties": {
          "error": {
            "$ref": "#/components/schemas/MCPErrorObject"
          },
          "id": {
            "description": "Echoes the request's correlation ID"
          },
          "jsonrpc": {
            "description": "Always \"2.0\"",
            "type": "string"
          },
          "result": {
            "description": "Method result (present on success)"
          }
        },
        "required": [
          "jsonrpc"
        ],
        "type": "object"
      },
      "LegalEntity": {
        "properties": {
          "country": {
            "description": "ISO 3166-1 alpha-2 country code",
            "type": "string"
          },
          "created_at": {
            "description": "Creation timestamp",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "Unique legal entity ID",
            "type": "string"
          },
          "legal_name": {
            "description": "Full legal name",
            "type": "string"
          },
          "type": {
            "description": "Entity type",
            "enum": [
              "individual",
              "organization"
            ],
            "type": "string"
          },
          "verification_status": {
            "description": "Verification status",
            "enum": [
              "pending",
              "verified",
              "failed",
              "requires_info"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "legal_name",
          "country",
          "verification_status"
        ],
        "type": "object"
      },
      "MCPErrorObject": {
        "properties": {
          "code": {
            "description": "JSON-RPC error code",
            "format": "int64",
            "type": "integer"
          },
          "data": {
            "description": "Structured error detail, e.g. {\"code\": \"AGENT_TOOL_NOT_ALLOWED\", \"detail\": ...}"
          },
          "message": {
            "description": "Human-readable error message",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "type": "object"
      },
      "PaginatedList": {
        "properties": {
          "data": {
            "description": "Result items",
            "items": {
              "description": "Resource"
            },
            "type": "array"
          },
          "has_more": {
            "description": "Whether more pages exist",
            "type": "boolean"
          },
          "page": {
            "description": "Current page (1-based)",
            "format": "int64",
            "type": "integer"
          },
          "per_page": {
            "description": "Items per page",
            "format": "int64",
            "type": "integer"
          },
          "total": {
            "description": "Total matching items",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "data",
          "total",
          "page",
          "per_page",
          "has_more"
        ],
        "type": "object"
      },
      "PaymentIntent": {
        "properties": {
          "amount": {
            "description": "Amount in minor units (cents)",
            "format": "int64",
            "type": "integer"
          },
          "created_at": {
            "description": "Creation timestamp",
            "format": "date-time",
            "type": "string"
          },
          "currency": {
            "description": "ISO 4217 currency code",
            "type": "string"
          },
          "destination_currency": {
            "description": "Target settlement currency (null = same as currency)",
            "nullable": true,
            "type": "string"
          },
          "failure_reason": {
            "description": "Failure reason if state=failed",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "Unique payment intent ID",
            "type": "string"
          },
          "idempotency_key": {
            "description": "Idempotency key for replay safety",
            "type": "string"
          },
          "merchant_id": {
            "description": "Merchant account ID",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Arbitrary key-value metadata",
            "type": "object"
          },
          "provider_reference": {
            "description": "External provider reference",
            "nullable": true,
            "type": "string"
          },
          "selected_rail": {
            "description": "Rail chosen by intent engine routing",
            "nullable": true,
            "type": "string"
          },
          "state": {
            "description": "Intent lifecycle state",
            "enum": [
              "created",
              "authorized",
              "captured",
              "refunded",
              "failed",
              "pending",
              "blocked",
              "cancelled"
            ],
            "type": "string"
          },
          "updated_at": {
            "description": "Last update timestamp",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "merchant_id",
          "amount",
          "currency",
          "state",
          "idempotency_key"
        ],
        "type": "object"
      },
      "Payout": {
        "properties": {
          "amount": {
            "description": "Payout amount in minor units",
            "format": "int64",
            "type": "integer"
          },
          "created_at": {
            "description": "Creation timestamp",
            "format": "date-time",
            "type": "string"
          },
          "currency": {
            "description": "Payout currency",
            "type": "string"
          },
          "destination_id": {
            "description": "Transfer instrument ID",
            "type": "string"
          },
          "id": {
            "description": "Unique payout ID",
            "type": "string"
          },
          "merchant_id": {
            "description": "Merchant account ID",
            "type": "string"
          },
          "status": {
            "description": "Payout status",
            "enum": [
              "pending",
              "processing",
              "completed",
              "failed",
              "cancelled"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "merchant_id",
          "amount",
          "currency",
          "status",
          "destination_id"
        ],
        "type": "object"
      },
      "Plan": {
        "properties": {
          "account_id": {
            "description": "Merchant account that owns this plan",
            "type": "string"
          },
          "allow_proration": {
            "description": "Whether mid-cycle plan changes are prorated",
            "type": "boolean"
          },
          "amount": {
            "description": "Recurring amount in minor units (cents)",
            "format": "int64",
            "type": "integer"
          },
          "billing_period": {
            "description": "Charge cadence",
            "enum": [
              "weekly",
              "monthly",
              "quarterly",
              "annual"
            ],
            "type": "string"
          },
          "created_at": {
            "description": "Creation timestamp",
            "format": "date-time",
            "type": "string"
          },
          "currency": {
            "description": "ISO 4217 currency code",
            "type": "string"
          },
          "description": {
            "description": "Plan description",
            "type": "string"
          },
          "external_id": {
            "description": "Merchant's own identifier for the plan",
            "type": "string"
          },
          "grace_period_days": {
            "description": "Days after the due date before a failed cycle hard-fails (default 3)",
            "format": "int64",
            "type": "integer"
          },
          "id": {
            "description": "Unique plan ID (plan_...)",
            "type": "string"
          },
          "name": {
            "description": "Plan display name",
            "type": "string"
          },
          "status": {
            "description": "Plan availability — new plans are created as draft and must be activated before a subscription can reference them",
            "enum": [
              "draft",
              "active",
              "archived"
            ],
            "type": "string"
          },
          "trial_period_days": {
            "description": "Free trial length in days (0 = no trial)",
            "format": "int64",
            "type": "integer"
          },
          "updated_at": {
            "description": "Last update timestamp",
            "format": "date-time",
            "type": "string"
          },
          "version": {
            "description": "Optimistic-concurrency version",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "account_id",
          "name",
          "amount",
          "currency",
          "billing_period",
          "status"
        ],
        "type": "object"
      },
      "ProposedAction": {
        "properties": {
          "flow_kind": {
            "description": "Passthrough flow kind, if applicable",
            "nullable": true,
            "type": "string"
          },
          "kind": {
            "description": "Action kind",
            "enum": [
              "open_passthrough_payout_bank",
              "open_passthrough_business_verify",
              "open_onboarding_status",
              "accept_tos",
              "enable_go_live",
              "refresh_work_run",
              "create_passthrough_session",
              "apply_passthrough_prefill",
              "plaid_link_token",
              "plaid_exchange",
              "plaid_verify_payout",
              "plaid_processor_token"
            ],
            "type": "string"
          },
          "label": {
            "description": "Human-readable action label",
            "type": "string"
          },
          "passthrough_session_id": {
            "description": "Passthrough session ID, if applicable",
            "nullable": true,
            "type": "string"
          },
          "path": {
            "description": "Dashboard path to navigate to, if a UI action",
            "nullable": true,
            "type": "string"
          },
          "primary": {
            "description": "Whether this is the primary/recommended action",
            "type": "boolean"
          },
          "server_act": {
            "description": "Whether this action can be executed directly via /assistant/act",
            "type": "boolean"
          }
        },
        "required": [
          "kind",
          "label"
        ],
        "type": "object"
      },
      "Quote": {
        "properties": {
          "conversion_rate": {
            "description": "FX conversion rate if cross-asset",
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "created_at": {
            "description": "Creation timestamp",
            "format": "date-time",
            "type": "string"
          },
          "expires_at": {
            "description": "Quote expiration (5 min default)",
            "format": "date-time",
            "type": "string"
          },
          "fee_amount": {
            "description": "Platform fee in minor units",
            "format": "int64",
            "type": "integer"
          },
          "id": {
            "description": "Unique quote ID",
            "type": "string"
          },
          "source_amount": {
            "description": "Source amount in minor units",
            "format": "int64",
            "type": "integer"
          },
          "source_currency": {
            "description": "Source currency",
            "type": "string"
          },
          "target_amount": {
            "description": "Target amount after fees and conversion",
            "format": "int64",
            "type": "integer"
          },
          "target_currency": {
            "description": "Target currency",
            "type": "string"
          }
        },
        "required": [
          "id",
          "source_amount",
          "source_currency",
          "target_amount",
          "target_currency",
          "fee_amount",
          "expires_at"
        ],
        "type": "object"
      },
      "RecordChargeResultRequest": {
        "properties": {
          "payment_intent_id": {
            "description": "Payment intent the charge was attempted under",
            "type": "string"
          },
          "success": {
            "description": "true marks the cycle charged; false records a retry, hard-failing once max_retries is reached",
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ],
        "type": "object"
      },
      "SandboxSignupResponse": {
        "properties": {
          "agent_key_id": {
            "description": "Issued agent key ID",
            "type": "string"
          },
          "endpoints": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "MCP endpoint URLs: mcp_streamable, mcp_sse, mcp_messages, discovery",
            "type": "object"
          },
          "expires_at": {
            "description": "Sandbox key expiry (24h TTL)",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "merchant_id": {
            "description": "Auto-provisioned sandbox merchant ID",
            "type": "string"
          },
          "mode": {
            "description": "Key mode",
            "enum": [
              "sandbox"
            ],
            "type": "string"
          },
          "note": {
            "description": "Human-readable usage note",
            "type": "string"
          },
          "onboarding_url": {
            "description": "Documentation link",
            "type": "string"
          },
          "policy": {
            "$ref": "#/components/schemas/AgentPolicy"
          },
          "token": {
            "description": "Bearer token (agk_test_*), shown once",
            "type": "string"
          }
        },
        "required": [
          "merchant_id",
          "agent_key_id",
          "token",
          "policy",
          "mode"
        ],
        "type": "object"
      },
      "Settlement": {
        "properties": {
          "amount": {
            "description": "Settlement amount in minor units",
            "format": "int64",
            "type": "integer"
          },
          "completed_at": {
            "description": "Completion timestamp",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "created_at": {
            "description": "Creation timestamp",
            "format": "date-time",
            "type": "string"
          },
          "currency": {
            "description": "Settlement currency",
            "type": "string"
          },
          "failure_reason": {
            "description": "Failure reason if status=failed",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "Unique settlement ID",
            "type": "string"
          },
          "merchant_id": {
            "description": "Merchant account ID",
            "type": "string"
          },
          "payment_intent_id": {
            "description": "Related payment intent ID",
            "type": "string"
          },
          "payout_destination": {
            "description": "Destination for payout",
            "nullable": true,
            "type": "string"
          },
          "payout_method": {
            "description": "Payout method used",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "Settlement status",
            "enum": [
              "queued",
              "processing",
              "completed",
              "failed"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "merchant_id",
          "payment_intent_id",
          "amount",
          "currency",
          "status"
        ],
        "type": "object"
      },
      "Subscription": {
        "properties": {
          "account_id": {
            "description": "Merchant account (tenant)",
            "type": "string"
          },
          "cancel_at_end": {
            "description": "Cancellation is scheduled for the end of the current period rather than immediate",
            "type": "boolean"
          },
          "cancel_reason": {
            "description": "Why it was canceled: customer_request, payment_failure, merchant_action, plan_archived",
            "nullable": true,
            "type": "string"
          },
          "canceled_at": {
            "description": "When the subscription was canceled",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "created_at": {
            "description": "Creation timestamp",
            "format": "date-time",
            "type": "string"
          },
          "current_period_end": {
            "description": "End of the current billing period",
            "format": "date-time",
            "type": "string"
          },
          "current_period_start": {
            "description": "Start of the current billing period",
            "format": "date-time",
            "type": "string"
          },
          "customer_id": {
            "description": "End-customer reference",
            "type": "string"
          },
          "failed_attempts": {
            "description": "Consecutive failed charge attempts (reset on success)",
            "format": "int64",
            "type": "integer"
          },
          "id": {
            "description": "Unique subscription ID (sub_...)",
            "type": "string"
          },
          "idempotency_key": {
            "description": "Key supplied at creation; replaying it returns this same subscription",
            "type": "string"
          },
          "last_payment_intent_id": {
            "description": "Payment intent from the most recent successful charge",
            "nullable": true,
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Merchant metadata copied from the originating checkout session; echoed on every subscription.* webhook",
            "type": "object"
          },
          "next_billing_date": {
            "description": "When the renewal scheduler will next charge",
            "format": "date-time",
            "type": "string"
          },
          "payment_method_id": {
            "description": "Vaulted payment method (pm_...) the renewal scheduler charges",
            "type": "string"
          },
          "plan_id": {
            "description": "Plan this subscription bills against",
            "type": "string"
          },
          "status": {
            "description": "Lifecycle state",
            "enum": [
              "trialing",
              "active",
              "past_due",
              "paused",
              "canceled"
            ],
            "type": "string"
          },
          "trial_end": {
            "description": "End of the trial (null = no trial)",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "updated_at": {
            "description": "Last update timestamp",
            "format": "date-time",
            "type": "string"
          },
          "version": {
            "description": "Optimistic-concurrency version",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "plan_id",
          "account_id",
          "customer_id",
          "status",
          "current_period_start",
          "current_period_end",
          "next_billing_date"
        ],
        "type": "object"
      },
      "ToolDefinition": {
        "properties": {
          "description": {
            "description": "Human-readable tool description",
            "type": "string"
          },
          "inputSchema": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "JSON Schema for the tool's arguments",
            "type": "object"
          },
          "name": {
            "description": "Tool name, e.g. get_quote, execute_payment",
            "type": "string"
          }
        },
        "required": [
          "name",
          "description",
          "inputSchema"
        ],
        "type": "object"
      },
      "TransferInstrument": {
        "properties": {
          "created_at": {
            "description": "Creation timestamp",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "Unique transfer instrument ID",
            "type": "string"
          },
          "is_default": {
            "description": "Whether this is the default instrument",
            "type": "boolean"
          },
          "legal_entity_id": {
            "description": "Owning legal entity ID",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "Instrument status",
            "enum": [
              "pending",
              "verified",
              "active",
              "archived",
              "failed"
            ],
            "type": "string"
          },
          "type": {
            "description": "Instrument type",
            "enum": [
              "bank_account",
              "card",
              "usdc_wallet"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "status"
        ],
        "type": "object"
      },
      "WebhookDelivery": {
        "properties": {
          "api_version": {
            "description": "API version this payload was serialised under",
            "type": "string"
          },
          "created_at": {
            "description": "Event timestamp",
            "format": "date-time",
            "type": "string"
          },
          "data": {
            "description": "The subject object — a Subscription for subscription.*, a BillingCycle for billing_cycle.*, a PaymentIntent for payment_intent.*"
          },
          "id": {
            "description": "Unique event ID (also sent as the Webhook-Id header)",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Emitter-set routing hints (e.g. subscription_id, status, provider_reference, failed_attempts, next_retry_at) — NOT merchant metadata. Your own checkout metadata is at data.metadata. Absent on events emitted by the direct billing API.",
            "type": "object"
          },
          "type": {
            "description": "Event type — the field to switch on",
            "enum": [
              "payment_intent.created",
              "payment_intent.authorized",
              "payment_intent.captured",
              "payment_intent.refunded",
              "payment_intent.failed",
              "payment_intent.cancelled",
              "subscription.created",
              "subscription.updated",
              "subscription.canceled",
              "subscription.paused",
              "subscription.resumed",
              "subscription.renewed",
              "subscription.payment_failed",
              "subscription.renewal_upcoming",
              "billing_cycle.created",
              "billing_cycle.charged",
              "billing_cycle.failed",
              "checkout.session.completed",
              "checkout.session.expired",
              "checkout.session.abandoned",
              "customer_portal.session.created",
              "customer_portal.session.expired",
              "customer_portal.session.revoked",
              "customer_portal.plan_changed",
              "settlement.processing",
              "settlement.completed",
              "settlement.failed",
              "conversion.executed",
              "dispute.created",
              "dispute.updated",
              "dispute.evidence_submitted",
              "dispute.won",
              "dispute.lost",
              "dispute.closed",
              "invoice.created",
              "invoice.finalized",
              "invoice.paid",
              "invoice.voided",
              "invoice.uncollectible",
              "invoice.sent",
              "payment_method.created",
              "payment_method.revoked",
              "payment_method.updated",
              "order.fulfilled"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "created_at",
          "data"
        ],
        "type": "object"
      },
      "WebhookEvent": {
        "properties": {
          "attempts": {
            "description": "Delivery attempt count",
            "format": "int64",
            "type": "integer"
          },
          "created_at": {
            "description": "Event timestamp",
            "format": "date-time",
            "type": "string"
          },
          "event_type": {
            "description": "Webhook event type",
            "enum": [
              "payment_intent.created",
              "payment_intent.authorized",
              "payment_intent.captured",
              "payment_intent.refunded",
              "payment_intent.failed",
              "settlement.completed",
              "settlement.failed",
              "conversion.executed"
            ],
            "type": "string"
          },
          "id": {
            "description": "Unique webhook event ID",
            "type": "string"
          },
          "payload": {
            "description": "Event payload"
          },
          "status": {
            "description": "Delivery status",
            "enum": [
              "pending",
              "delivered",
              "failed",
              "retrying"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "event_type",
          "payload",
          "status"
        ],
        "type": "object"
      },
      "X402ChallengeRequest": {
        "properties": {
          "amount_cents": {
            "description": "Amount in cents, if known up front",
            "nullable": true,
            "type": "integer"
          },
          "message": {
            "description": "Optional human-readable message",
            "nullable": true,
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Arbitrary key-value metadata",
            "type": "object"
          },
          "mode": {
            "description": "Agent budget mode, e.g. \"lite\"",
            "nullable": true,
            "type": "string"
          },
          "referral_token": {
            "description": "Referral token from a prior call, for micro-discounts",
            "nullable": true,
            "type": "string"
          },
          "tool": {
            "description": "Tool or resource being purchased",
            "type": "string"
          }
        },
        "required": [
          "tool"
        ],
        "type": "object"
      },
      "X402ChallengeResponse": {
        "properties": {
          "challenge_id": {
            "description": "Challenge ID to reference in the verify call",
            "type": "string"
          },
          "expires_at": {
            "description": "Challenge expiry",
            "format": "date-time",
            "type": "string"
          },
          "negotiation_body": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "x402 negotiation body: accepted schemes, prices, and payment instructions",
            "type": "object"
          }
        },
        "required": [
          "challenge_id",
          "expires_at",
          "negotiation_body"
        ],
        "type": "object"
      },
      "X402VerifyRequest": {
        "properties": {
          "challenge_id": {
            "description": "Challenge ID from the /v1/x402/challenge response",
            "type": "string"
          },
          "payment_receipt": {
            "description": "Opaque payment receipt/proof produced by the payment scheme",
            "type": "string"
          },
          "scheme": {
            "description": "Payment scheme used, if not implied by the receipt",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "challenge_id",
          "payment_receipt"
        ],
        "type": "object"
      },
      "X402VerifyResponse": {
        "properties": {
          "challenge_id": {
            "description": "Challenge ID this verification corresponds to",
            "type": "string"
          },
          "receipt_id": {
            "description": "Recorded settlement receipt ID",
            "type": "string"
          },
          "retry_hint": {
            "description": "Guidance if verification failed and a retry may succeed",
            "nullable": true,
            "type": "string"
          },
          "verified": {
            "description": "Whether the payment receipt was verified",
            "type": "boolean"
          },
          "verified_at": {
            "description": "Verification timestamp",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "verified",
          "challenge_id",
          "receipt_id",
          "verified_at"
        ],
        "type": "object"
      },
      "X402WellKnown": {
        "properties": {
          "accepted_payment_schemes": {
            "description": "Payment schemes this deployment accepts",
            "items": {
              "description": "Scheme identifier, e.g. mppx/stripe",
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "description": "Human-readable description",
            "type": "string"
          },
          "endpoints": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "discovery, agent_purchasing, challenge, verify endpoint paths",
            "type": "object"
          },
          "headers": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Header names used in the x402 handshake (budget, mode, payment_receipt, payment)",
            "type": "object"
          },
          "pricing_reference": {
            "description": "Where pricing tiers are documented",
            "type": "string"
          },
          "protocol": {
            "description": "Always \"x402\"",
            "type": "string"
          },
          "settlement_layer": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Service/role operating the settlement layer",
            "type": "object"
          },
          "version": {
            "description": "Protocol version",
            "type": "string"
          }
        },
        "required": [
          "protocol",
          "version",
          "endpoints",
          "accepted_payment_schemes"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "bearerFormat": "API Key",
        "description": "API key authentication: sk_live_* (legacy) or rk_live_* (scoped)",
        "scheme": "bearer",
        "type": "http"
      },
      "SessionAuth": {
        "description": "Session-based authentication for dashboard access",
        "in": "cookie",
        "name": "session_id",
        "type": "apiKey"
      }
    }
  },
  "info": {
    "contact": {
      "name": "No Fate Platform"
    },
    "description": "Complete payment processing platform with PSP parity: payments, settlements, disputes, billing, payouts, verification, webhooks, and platform management. Supports date-based API versioning via the API-Version header (default: 2025-01-01). All amounts are in minor units (cents). All timestamps are RFC 3339 UTC.",
    "title": "No Fate Payment Platform API",
    "version": "1.0.0",
    "x-api-versioning": "Date-based (YYYY-MM-DD) via API-Version header. See /v1/versions for all supported versions."
  },
  "openapi": "3.0.3",
  "paths": {
    "/.well-known/agent-purchasing": {
      "description": "Public, unauthenticated discovery document describing MCP transports, authentication, and the tool catalog available to agents. Also served at /v1/agent_discovery",
      "responses": {
        "200": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentDiscoveryResponse"
              }
            }
          },
          "description": "Success"
        },
        "400": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Error"
              }
            }
          },
          "description": "Bad request"
        },
        "401": {
          "description": "Unauthorized"
        },
        "404": {
          "description": "Not found"
        },
        "429": {
          "description": "Rate limited"
        },
        "500": {
          "description": "Internal server error"
        }
      },
      "summary": "Agent discovery document",
      "tags": [
        "MCP"
      ]
    },
    "/.well-known/oauth-protected-resource": {
      "get": {
        "description": "RFC 9728 protected-resource metadata for the MCP endpoint: bearer auth method, supported scopes (agent:get_quote, agent:list_providers, agent:get_payment_intent, agent:execute_payment), and token issuance endpoints",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "OAuth protected-resource metadata",
        "tags": [
          "MCP"
        ]
      }
    },
    "/.well-known/x402": {
      "description": "Public, unauthenticated discovery document listing accepted payment schemes and the challenge/verify endpoints",
      "responses": {
        "200": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/X402WellKnown"
              }
            }
          },
          "description": "Success"
        },
        "400": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Error"
              }
            }
          },
          "description": "Bad request"
        },
        "401": {
          "description": "Unauthorized"
        },
        "404": {
          "description": "Not found"
        },
        "429": {
          "description": "Rate limited"
        },
        "500": {
          "description": "Internal server error"
        }
      },
      "summary": "x402 protocol discovery",
      "tags": [
        "x402"
      ]
    },
    "/health": {
      "get": {
        "description": "Deep health check with DB and Redis status",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthStatus"
                }
              }
            },
            "description": "Service healthy"
          },
          "503": {
            "description": "Service unhealthy"
          }
        },
        "summary": "Health check",
        "tags": [
          "Health"
        ]
      }
    },
    "/metrics": {
      "get": {
        "description": "Prometheus-compatible metrics",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Metrics",
        "tags": [
          "Health"
        ]
      }
    },
    "/ready": {
      "get": {
        "description": "Kubernetes readiness probe",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Readiness check",
        "tags": [
          "Health"
        ]
      }
    },
    "/v1/account-updater": {
      "get": {
        "description": "List account update requests with optional status filter",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List updates",
        "tags": [
          "Account Updater"
        ]
      },
      "post": {
        "description": "Submit a single card for account updating",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Submit update",
        "tags": [
          "Account Updater"
        ]
      }
    },
    "/v1/account-updater/batch": {
      "post": {
        "description": "Submit a batch of cards for account updating",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Submit batch",
        "tags": [
          "Account Updater"
        ]
      }
    },
    "/v1/account-updater/batch/{id}": {
      "get": {
        "description": "Retrieve a batch with its requests",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get batch",
        "tags": [
          "Account Updater"
        ]
      }
    },
    "/v1/account-updater/batch/{id}/process": {
      "post": {
        "description": "Process all pending requests in a batch",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Process batch",
        "tags": [
          "Account Updater"
        ]
      }
    },
    "/v1/account-updater/{id}": {
      "get": {
        "description": "Retrieve a single account update request",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get update",
        "tags": [
          "Account Updater"
        ]
      }
    },
    "/v1/account-updater/{id}/process": {
      "post": {
        "description": "Process a pending update request",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Process update",
        "tags": [
          "Account Updater"
        ]
      }
    },
    "/v1/account_sessions": {
      "get": {
        "description": "List active account sessions",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List account sessions",
        "tags": [
          "Account Sessions"
        ]
      },
      "post": {
        "description": "Create a session token for embedded components",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create account session",
        "tags": [
          "Account Sessions"
        ]
      }
    },
    "/v1/account_sessions/cleanup": {
      "post": {
        "description": "Remove expired sessions",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Cleanup expired",
        "tags": [
          "Account Sessions"
        ]
      }
    },
    "/v1/account_sessions/validate": {
      "post": {
        "description": "Validate a session token and return components",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Validate token",
        "tags": [
          "Account Sessions"
        ]
      }
    },
    "/v1/account_sessions/{id}": {
      "get": {
        "description": "Retrieve an account session by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get account session",
        "tags": [
          "Account Sessions"
        ]
      }
    },
    "/v1/account_sessions/{id}/revoke": {
      "post": {
        "description": "Revoke an active session",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Revoke account session",
        "tags": [
          "Account Sessions"
        ]
      }
    },
    "/v1/accounts": {
      "get": {
        "description": "List all merchant accounts",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedList"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List accounts",
        "tags": [
          "Accounts"
        ]
      },
      "post": {
        "description": "Create a new merchant account",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Account"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create account",
        "tags": [
          "Accounts"
        ]
      }
    },
    "/v1/accounts/me/assistant/act": {
      "description": "Executes one of the assistant's proposed actions server-side (e.g. accept_tos, enable_go_live, plaid_link_token)",
      "requestBody": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AssistantActRequest"
            }
          }
        },
        "required": true
      },
      "responses": {
        "200": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssistantActResponse"
              }
            }
          },
          "description": "Success"
        },
        "400": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Error"
              }
            }
          },
          "description": "Bad request"
        },
        "401": {
          "description": "Unauthorized"
        },
        "404": {
          "description": "Not found"
        },
        "429": {
          "description": "Rate limited"
        },
        "500": {
          "description": "Internal server error"
        }
      },
      "summary": "Execute an operator assistant action",
      "tags": [
        "Merchant Assistant"
      ]
    },
    "/v1/accounts/me/assistant/ask": {
      "description": "Free-text Q\u0026A over the merchant's own onboarding/account state; returns an answer plus a list of proposed actions the merchant can trigger via /assistant/act",
      "requestBody": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AssistantAskRequest"
            }
          }
        },
        "required": true
      },
      "responses": {
        "200": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssistantAskResponse"
              }
            }
          },
          "description": "Success"
        },
        "400": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Error"
              }
            }
          },
          "description": "Bad request"
        },
        "401": {
          "description": "Unauthorized"
        },
        "404": {
          "description": "Not found"
        },
        "429": {
          "description": "Rate limited"
        },
        "500": {
          "description": "Internal server error"
        }
      },
      "summary": "Ask the operator assistant",
      "tags": [
        "Merchant Assistant"
      ]
    },
    "/v1/accounts/{id}": {
      "get": {
        "description": "Retrieve a merchant account by ID",
        "parameters": [
          {
            "description": "Account ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Account"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get account",
        "tags": [
          "Accounts"
        ]
      }
    },
    "/v1/accounts/{id}/consent-grants": {
      "get": {
        "description": "Returns every recorded consent decision (granted, declined, revoked) for this account, hash-chained and ISO 27560 receipt-carrying.",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List consent grant records",
        "tags": [
          "Consent"
        ]
      },
      "post": {
        "description": "Records a grant, decline, or revocation for one (rail, permission) pair. A refused subsequent operation on an ungranted permission returns apierror code=missing_grant with a detail.grant_url pointing back at this endpoint's UI surface.",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Record a consent decision",
        "tags": [
          "Consent"
        ]
      }
    },
    "/v1/accounts/{id}/consent-matrix": {
      "get": {
        "description": "Joins connection status with the consentmatrix grant ledger for every rail x permission pair. Every permission row carries recommended_enforcement plus inline disclosure template text/hash/id, even for not-yet-offered permissions -- an agent can render or reason about the full consent surface from this one call. Also carries coverage_tier: the founder's derived Tier 0-5 ladder position (CAND-UCM-COVERAGE-TIER-READMODEL) -- education/basic_receive/multi_rail/orchestration/tf_admitted/tf_certified, with the specific signals that produced it in coverage_tier.reasons.",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get the per-rail consent matrix",
        "tags": [
          "Consent"
        ]
      }
    },
    "/v1/accounts/{id}/fee_tier": {
      "delete": {
        "description": "Remove the custom fee tier",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Delete fee tier",
        "tags": [
          "Accounts"
        ]
      },
      "put": {
        "description": "Set the per-merchant fee tier in BPS",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Update fee tier",
        "tags": [
          "Accounts"
        ]
      }
    },
    "/v1/accounts/{id}/rail-fallback-notice": {
      "get": {
        "description": "Event-anchored notices: recent terminal payment failures on a rail for which the merchant has zero other connected rails as a fallback. A structural signal derived from the merchant's own failure history, never a 'would have succeeded' prediction.",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get structural fallback-gap notices",
        "tags": [
          "Consent"
        ]
      }
    },
    "/v1/accounts/{id}/rail-fallback-notice/dismiss": {
      "post": {
        "description": "Rate-limits (30 days) re-surfacing this rail's fallback-gap notice.",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Dismiss a fallback-gap notice",
        "tags": [
          "Consent"
        ]
      }
    },
    "/v1/accounts/{id}/rotate-key": {
      "post": {
        "description": "Generate a new API key for the account",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Rotate API key",
        "tags": [
          "Accounts"
        ]
      }
    },
    "/v1/accounts/{id}/settlement-preference": {
      "get": {
        "description": "Retrieve settlement timing preference",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get settlement preference",
        "tags": [
          "Accounts"
        ]
      },
      "put": {
        "description": "Set settlement timing preference",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Update settlement preference",
        "tags": [
          "Accounts"
        ]
      }
    },
    "/v1/accounts/{id}/shadow-value/digest": {
      "get": {
        "description": "Computes a shadow-value figure for every rail with a declined or revoked money_move.charge grant -- the always-on in-app digest tile.",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get the monthly per-disabled-rail digest",
        "tags": [
          "Consent"
        ]
      }
    },
    "/v1/accounts/{id}/shadow-value/{rail}": {
      "get": {
        "description": "The T2 backtest / T3 estimate of what an alternative rail would have cost or saved -- shown when a merchant declines or revokes a rail's consent grant, so the tradeoff is concrete rather than abstract.",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get foregone-value estimate for a rail",
        "tags": [
          "Consent"
        ]
      }
    },
    "/v1/accounts/{id}/webhook": {
      "delete": {
        "description": "Remove the webhook configuration",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Delete webhook",
        "tags": [
          "Accounts"
        ]
      },
      "put": {
        "description": "Set or update the webhook URL and signing key",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Update webhook",
        "tags": [
          "Accounts"
        ]
      }
    },
    "/v1/admin/consent-grants/verify-chain": {
      "get": {
        "description": "Re-walks the entire append-only consent-grant ledger from genesis, recomputing every hash and confirming the prev_hash linkage across every account -- the tamper-evidence check an examiner or court relies on. Admin-only.",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Verify the consent-grant hash chain (admin)",
        "tags": [
          "Consent"
        ]
      }
    },
    "/v1/agent_discovery": {
      "description": "Alias of GET /.well-known/agent-purchasing",
      "responses": {
        "200": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentDiscoveryResponse"
              }
            }
          },
          "description": "Success"
        },
        "400": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Error"
              }
            }
          },
          "description": "Bad request"
        },
        "401": {
          "description": "Unauthorized"
        },
        "404": {
          "description": "Not found"
        },
        "429": {
          "description": "Rate limited"
        },
        "500": {
          "description": "Internal server error"
        }
      },
      "summary": "Agent discovery document (alias)",
      "tags": [
        "MCP"
      ]
    },
    "/v1/agent_keys": {
      "get": {
        "description": "List agent keys issued by the authenticated merchant. Responses include each key's token hash, never the plaintext token",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentKeyList"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List agent keys",
        "tags": [
          "Agent Keys"
        ]
      },
      "post": {
        "description": "Issue a live agent key (agk_live_*) scoped by an AgentPolicy (spend cap, allowed tools/providers/currencies, rate limit). The plaintext token is returned once and never again",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IssueAgentKeyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentKeyIssued"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Issue an agent key",
        "tags": [
          "Agent Keys"
        ]
      }
    },
    "/v1/agent_keys/{id}": {
      "get": {
        "description": "Retrieve a single agent key record by ID",
        "parameters": [
          {
            "description": "Agent key ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentKeyRecord"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get an agent key",
        "tags": [
          "Agent Keys"
        ]
      }
    },
    "/v1/agent_keys/{id}/revoke": {
      "post": {
        "description": "Immediately revoke an agent key; subsequent MCP calls using its token are rejected with AGENT_KEY_REVOKED",
        "parameters": [
          {
            "description": "Agent key ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentKeyRecord"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Revoke an agent key",
        "tags": [
          "Agent Keys"
        ]
      }
    },
    "/v1/agent_signup": {
      "description": "Public, rate-limited endpoint that auto-provisions a sandbox merchant and a 24h sandbox agent key (agk_test_*, $1 cap, get_quote/list_providers/get_payment_intent only — no execute_payment). Returns 503 SANDBOX_FULL once the global sandbox-key cap is reached",
      "requestBody": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AgentSignupRequest"
            }
          }
        },
        "required": true
      },
      "responses": {
        "200": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SandboxSignupResponse"
              }
            }
          },
          "description": "Success"
        },
        "400": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Error"
              }
            }
          },
          "description": "Bad request"
        },
        "401": {
          "description": "Unauthorized"
        },
        "404": {
          "description": "Not found"
        },
        "429": {
          "description": "Rate limited"
        },
        "500": {
          "description": "Internal server error"
        }
      },
      "summary": "Self-serve sandbox agent key",
      "tags": [
        "Agent Keys"
      ]
    },
    "/v1/audit-events": {
      "get": {
        "description": "Query audit trail events with filters",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Query audit events",
        "tags": [
          "Audit"
        ]
      }
    },
    "/v1/audit-events/by-request/{request_id}": {
      "get": {
        "description": "Retrieve all audit events for a request",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get audit by request ID",
        "tags": [
          "Audit"
        ]
      }
    },
    "/v1/audit-events/{id}": {
      "get": {
        "description": "Retrieve a single audit event",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get audit event",
        "tags": [
          "Audit"
        ]
      }
    },
    "/v1/audit/export": {
      "get": {
        "description": "Export audit events for external analysis",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Export audit events",
        "tags": [
          "Audit"
        ]
      }
    },
    "/v1/audit/retention": {
      "delete": {
        "description": "Purge old audit events per retention policy",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Purge audit events",
        "tags": [
          "Audit"
        ]
      }
    },
    "/v1/audit/stats": {
      "get": {
        "description": "Aggregate audit event statistics",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get audit stats",
        "tags": [
          "Audit"
        ]
      }
    },
    "/v1/audit/verify": {
      "get": {
        "description": "Verify hash chain integrity of the audit trail",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Verify chain integrity",
        "tags": [
          "Audit"
        ]
      }
    },
    "/v1/auth/login": {
      "post": {
        "description": "Authenticate with credentials",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Login",
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/logout": {
      "post": {
        "description": "End the current session",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Logout",
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/me": {
      "get": {
        "description": "Retrieve authenticated user profile",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get current user",
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/mfa/enroll": {
      "post": {
        "description": "Enroll in multi-factor authentication",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "MFA enroll",
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/mfa/status": {
      "get": {
        "description": "Check MFA enrollment status",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "MFA status",
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/mfa/verify": {
      "post": {
        "description": "Verify MFA token",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "MFA verify",
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/sso/authorize": {
      "post": {
        "description": "Initiate SSO authorization flow",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "SSO authorize",
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/sso/callback": {
      "post": {
        "description": "Handle SSO provider callback",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "SSO callback",
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/sso/config": {
      "get": {
        "description": "Get SSO provider configuration",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "SSO config",
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/billing_cycles": {
      "get": {
        "description": "Lists billing cycles for the authenticated merchant.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "description": "Result page",
                      "items": {
                        "$ref": "#/components/schemas/BillingCycle"
                      },
                      "type": "array"
                    },
                    "limit": {
                      "description": "Page size",
                      "format": "int64",
                      "type": "integer"
                    },
                    "offset": {
                      "description": "Offset of this page. Supplying a cursor query parameter instead returns a cursor-paginated envelope with next_cursor/has_more.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List billing cycles",
        "tags": [
          "Billing"
        ]
      }
    },
    "/v1/billing_cycles/{id}": {
      "get": {
        "description": "Retrieves a billing cycle by ID.",
        "parameters": [
          {
            "description": "Billing cycle ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingCycle"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get billing cycle",
        "tags": [
          "Billing"
        ]
      }
    },
    "/v1/billing_cycles/{id}/charge_result": {
      "post": {
        "description": "Records the outcome of a charge attempt against a billing cycle. success=false increments retries and hard-fails the cycle once max_retries is reached.",
        "parameters": [
          {
            "description": "Billing cycle ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordChargeResultRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingCycle"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Record charge result",
        "tags": [
          "Billing"
        ]
      }
    },
    "/v1/checkout/initiate": {
      "post": {
        "description": "Start a checkout flow programmatically",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Initiate checkout",
        "tags": [
          "Checkout"
        ]
      }
    },
    "/v1/checkout/sessions": {
      "post": {
        "description": "Create a hosted checkout session",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create checkout session",
        "tags": [
          "Checkout"
        ]
      }
    },
    "/v1/checkout/theme": {
      "delete": {
        "description": "Remove the checkout theme",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Delete theme",
        "tags": [
          "Checkout Theme"
        ]
      },
      "get": {
        "description": "Get the merchant's checkout theme",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get theme",
        "tags": [
          "Checkout Theme"
        ]
      },
      "put": {
        "description": "Create or update the checkout theme",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Upsert theme",
        "tags": [
          "Checkout Theme"
        ]
      }
    },
    "/v1/compliance/reports": {
      "get": {
        "description": "List compliance reports with optional filters",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List reports",
        "tags": [
          "Compliance Reports"
        ]
      },
      "post": {
        "description": "Generate a compliance report on demand",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Generate report",
        "tags": [
          "Compliance Reports"
        ]
      }
    },
    "/v1/compliance/reports/{id}": {
      "get": {
        "description": "Retrieve a compliance report by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get report",
        "tags": [
          "Compliance Reports"
        ]
      }
    },
    "/v1/compliance/schedules": {
      "get": {
        "description": "List compliance report schedules",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List schedules",
        "tags": [
          "Compliance Reports"
        ]
      },
      "post": {
        "description": "Create a recurring compliance report schedule",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create schedule",
        "tags": [
          "Compliance Reports"
        ]
      }
    },
    "/v1/compliance/schedules/{id}": {
      "delete": {
        "description": "Delete a compliance report schedule",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Delete schedule",
        "tags": [
          "Compliance Reports"
        ]
      }
    },
    "/v1/compliance/schedules/{id}/toggle": {
      "post": {
        "description": "Enable or disable a compliance schedule",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Toggle schedule",
        "tags": [
          "Compliance Reports"
        ]
      }
    },
    "/v1/crypto/addresses": {
      "post": {
        "description": "Register a chain address for watch-only monitoring",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Register address",
        "tags": [
          "Crypto"
        ]
      }
    },
    "/v1/crypto/addresses/{address}/transactions": {
      "get": {
        "description": "List observed transactions for a watched address",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List transactions",
        "tags": [
          "Crypto"
        ]
      }
    },
    "/v1/crypto/block/height": {
      "get": {
        "description": "Current chain tip block height as reported by the indexer",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get block height",
        "tags": [
          "Crypto"
        ]
      }
    },
    "/v1/crypto/transactions/{tx_id}": {
      "get": {
        "description": "Retrieve a single observed transaction by id",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get transaction",
        "tags": [
          "Crypto"
        ]
      }
    },
    "/v1/crypto/transactions/{tx_id}/confirmations": {
      "get": {
        "description": "Confirmation count for an observed transaction",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get confirmations",
        "tags": [
          "Crypto"
        ]
      }
    },
    "/v1/disputes": {
      "get": {
        "description": "List disputes with filters",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List disputes",
        "tags": [
          "Disputes"
        ]
      },
      "post": {
        "description": "Open a new dispute/chargeback",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Open dispute",
        "tags": [
          "Disputes"
        ]
      }
    },
    "/v1/disputes/{id}": {
      "get": {
        "description": "Retrieve a dispute by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get dispute",
        "tags": [
          "Disputes"
        ]
      }
    },
    "/v1/disputes/{id}/accept": {
      "post": {
        "description": "Accept the dispute (concede)",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Accept dispute",
        "tags": [
          "Disputes"
        ]
      }
    },
    "/v1/disputes/{id}/evidence": {
      "post": {
        "description": "Submit evidence for a dispute",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Submit evidence",
        "tags": [
          "Disputes"
        ]
      }
    },
    "/v1/disputes/{id}/resolve": {
      "post": {
        "description": "Resolve a dispute with a network outcome",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Resolve dispute",
        "tags": [
          "Disputes"
        ]
      }
    },
    "/v1/disputes/{id}/submit": {
      "post": {
        "description": "Submit dispute evidence for network review",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Submit for review",
        "tags": [
          "Disputes"
        ]
      }
    },
    "/v1/financial_events": {
      "get": {
        "description": "Paginated ledger event query by merchant and sequence range",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Query financial events",
        "tags": [
          "Financial Events"
        ]
      }
    },
    "/v1/fraud/assess": {
      "post": {
        "description": "Generate a fraud risk assessment for a payment intent",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Assess payment",
        "tags": [
          "Fraud Signals"
        ]
      }
    },
    "/v1/fraud/assessments/{id}": {
      "get": {
        "description": "Retrieve a fraud assessment by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get assessment",
        "tags": [
          "Fraud Signals"
        ]
      }
    },
    "/v1/fraud/rules": {
      "get": {
        "description": "List fraud detection rules",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List rules",
        "tags": [
          "Fraud Signals"
        ]
      },
      "post": {
        "description": "Create a fraud detection rule",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create rule",
        "tags": [
          "Fraud Signals"
        ]
      }
    },
    "/v1/fraud/rules/{id}": {
      "delete": {
        "description": "Delete a fraud detection rule",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Delete rule",
        "tags": [
          "Fraud Signals"
        ]
      }
    },
    "/v1/fraud/rules/{id}/toggle": {
      "post": {
        "description": "Enable or disable a fraud rule",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Toggle rule",
        "tags": [
          "Fraud Signals"
        ]
      }
    },
    "/v1/fraud/signals": {
      "get": {
        "description": "List fraud signals with optional filters",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List signals",
        "tags": [
          "Fraud Signals"
        ]
      },
      "post": {
        "description": "Record a fraud signal for a payment or session",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Collect signal",
        "tags": [
          "Fraud Signals"
        ]
      }
    },
    "/v1/gift-cards": {
      "get": {
        "description": "List gift cards with optional status filter",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List gift cards",
        "tags": [
          "Gift Cards"
        ]
      },
      "post": {
        "description": "Issue a new stored-value gift card",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create gift card",
        "tags": [
          "Gift Cards"
        ]
      }
    },
    "/v1/gift-cards/lookup": {
      "get": {
        "description": "Look up a gift card by its code",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Lookup by code",
        "tags": [
          "Gift Cards"
        ]
      }
    },
    "/v1/gift-cards/{id}": {
      "get": {
        "description": "Retrieve a gift card by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get gift card",
        "tags": [
          "Gift Cards"
        ]
      }
    },
    "/v1/gift-cards/{id}/balance": {
      "get": {
        "description": "Check the balance of a gift card",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Check balance",
        "tags": [
          "Gift Cards"
        ]
      }
    },
    "/v1/gift-cards/{id}/cancel": {
      "post": {
        "description": "Cancel a gift card",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Cancel gift card",
        "tags": [
          "Gift Cards"
        ]
      }
    },
    "/v1/gift-cards/{id}/load": {
      "post": {
        "description": "Add funds to an existing gift card",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Load funds",
        "tags": [
          "Gift Cards"
        ]
      }
    },
    "/v1/gift-cards/{id}/redeem": {
      "post": {
        "description": "Redeem an amount from a gift card balance",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Redeem gift card",
        "tags": [
          "Gift Cards"
        ]
      }
    },
    "/v1/gift-cards/{id}/transactions": {
      "get": {
        "description": "List transactions for a gift card",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get transactions",
        "tags": [
          "Gift Cards"
        ]
      }
    },
    "/v1/installments": {
      "get": {
        "description": "List installment plans with optional status and provider filters",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List installment plans",
        "tags": [
          "Installments"
        ]
      },
      "post": {
        "description": "Create a BNPL or installment plan for a payment",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create installment plan",
        "tags": [
          "Installments"
        ]
      }
    },
    "/v1/installments/eligibility": {
      "post": {
        "description": "Check BNPL provider eligibility for a given amount",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Check eligibility",
        "tags": [
          "Installments"
        ]
      }
    },
    "/v1/installments/{id}": {
      "get": {
        "description": "Retrieve an installment plan by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get installment plan",
        "tags": [
          "Installments"
        ]
      }
    },
    "/v1/installments/{id}/activate": {
      "post": {
        "description": "Activate a pending installment plan",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Activate plan",
        "tags": [
          "Installments"
        ]
      }
    },
    "/v1/installments/{id}/cancel": {
      "post": {
        "description": "Cancel an active or pending installment plan",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Cancel plan",
        "tags": [
          "Installments"
        ]
      }
    },
    "/v1/installments/{id}/pay": {
      "post": {
        "description": "Record a payment on a specific installment entry",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Record payment",
        "tags": [
          "Installments"
        ]
      }
    },
    "/v1/mcp": {
      "post": {
        "description": "Model Context Protocol (MCP) JSON-RPC 2.0 endpoint. Supports initialize, ping, tools/list, tools/call, and the PAID-specific discover/catalog (unauthenticated tool browse). All other methods require a Bearer agk_live_*/agk_test_* agent key with a matching AllowedTools policy entry",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JsonRpcRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonRpcResponse"
                }
              }
            },
            "description": "JSON-RPC response (errors are carried in the body's error field, not the HTTP status)"
          },
          "400": {
            "description": "Malformed JSON-RPC envelope"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "MCP streamable-HTTP transport",
        "tags": [
          "MCP"
        ]
      }
    },
    "/v1/mcp/messages": {
      "post": {
        "description": "Submits a JSON-RPC request to an open MCP SSE session; the response is delivered asynchronously over the SSE stream opened via GET /v1/mcp/sse, not in this call's HTTP response",
        "parameters": [
          {
            "description": "SSE session ID delivered on connect via GET /v1/mcp/sse",
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JsonRpcRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Message accepted for async delivery over the SSE stream"
          },
          "400": {
            "description": "Malformed JSON-RPC envelope or unknown session_id"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Submit a message on an MCP SSE session",
        "tags": [
          "MCP"
        ]
      }
    },
    "/v1/mcp/sse": {
      "get": {
        "description": "Opens a Server-Sent Events stream for the legacy MCP SSE transport. Clients POST subsequent JSON-RPC messages to /v1/mcp/messages using the session_id delivered on the stream",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "MCP legacy SSE transport",
        "tags": [
          "MCP"
        ]
      }
    },
    "/v1/monitoring/alerts": {
      "get": {
        "description": "List monitoring alerts with status and severity filters",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List alerts",
        "tags": [
          "Transaction Monitoring"
        ]
      }
    },
    "/v1/monitoring/alerts/{id}": {
      "get": {
        "description": "Retrieve a monitoring alert by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get alert",
        "tags": [
          "Transaction Monitoring"
        ]
      }
    },
    "/v1/monitoring/alerts/{id}/acknowledge": {
      "post": {
        "description": "Mark a monitoring alert as acknowledged",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Acknowledge alert",
        "tags": [
          "Transaction Monitoring"
        ]
      }
    },
    "/v1/monitoring/alerts/{id}/dismiss": {
      "post": {
        "description": "Dismiss a monitoring alert",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Dismiss alert",
        "tags": [
          "Transaction Monitoring"
        ]
      }
    },
    "/v1/monitoring/alerts/{id}/resolve": {
      "post": {
        "description": "Resolve a monitoring alert",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Resolve alert",
        "tags": [
          "Transaction Monitoring"
        ]
      }
    },
    "/v1/monitoring/evaluate": {
      "post": {
        "description": "Evaluate a transaction against all enabled monitoring rules",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Evaluate transaction",
        "tags": [
          "Transaction Monitoring"
        ]
      }
    },
    "/v1/monitoring/rules": {
      "get": {
        "description": "List monitoring rules with optional type filter",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List monitoring rules",
        "tags": [
          "Transaction Monitoring"
        ]
      },
      "post": {
        "description": "Create a configurable transaction monitoring rule",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create monitoring rule",
        "tags": [
          "Transaction Monitoring"
        ]
      }
    },
    "/v1/monitoring/rules/{id}": {
      "delete": {
        "description": "Delete a monitoring rule",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Delete monitoring rule",
        "tags": [
          "Transaction Monitoring"
        ]
      },
      "get": {
        "description": "Retrieve a monitoring rule by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get monitoring rule",
        "tags": [
          "Transaction Monitoring"
        ]
      }
    },
    "/v1/monitoring/rules/{id}/toggle": {
      "post": {
        "description": "Enable or disable a monitoring rule",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Toggle monitoring rule",
        "tags": [
          "Transaction Monitoring"
        ]
      }
    },
    "/v1/payment_intents": {
      "get": {
        "description": "List payment intents with pagination",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedList"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List payment intents",
        "tags": [
          "Payment Intents"
        ]
      },
      "post": {
        "description": "Create a new payment intent with amount, currency, and routing constraints",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePaymentIntentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentIntent"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create payment intent",
        "tags": [
          "Payment Intents"
        ]
      }
    },
    "/v1/payment_intents/{id}": {
      "get": {
        "description": "Retrieve a payment intent by ID",
        "parameters": [
          {
            "description": "Payment intent ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentIntent"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get payment intent",
        "tags": [
          "Payment Intents"
        ]
      }
    },
    "/v1/payment_intents/{id}/authorize": {
      "post": {
        "description": "Route and authorize a payment via the intent engine",
        "parameters": [
          {
            "description": "Payment intent ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentIntent"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Authorize payment",
        "tags": [
          "Payment Intents"
        ]
      }
    },
    "/v1/payment_intents/{id}/capture": {
      "post": {
        "description": "Capture an authorized payment, recording fees and financial events",
        "parameters": [
          {
            "description": "Payment intent ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentIntent"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Capture payment",
        "tags": [
          "Payment Intents"
        ]
      }
    },
    "/v1/payment_intents/{id}/refund": {
      "post": {
        "description": "Refund a captured payment",
        "parameters": [
          {
            "description": "Payment intent ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentIntent"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Refund payment",
        "tags": [
          "Payment Intents"
        ]
      }
    },
    "/v1/payment_methods": {
      "get": {
        "description": "List vaulted payment methods",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List payment methods",
        "tags": [
          "Payment Methods"
        ]
      }
    },
    "/v1/payment_methods/bank_account": {
      "post": {
        "description": "Tokenize and vault a bank account",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Vault bank account",
        "tags": [
          "Payment Methods"
        ]
      }
    },
    "/v1/payment_methods/card": {
      "post": {
        "description": "Tokenize and vault a card",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Vault card",
        "tags": [
          "Payment Methods"
        ]
      }
    },
    "/v1/payment_methods/{id}": {
      "get": {
        "description": "Retrieve a vaulted payment method",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get payment method",
        "tags": [
          "Payment Methods"
        ]
      }
    },
    "/v1/payment_methods/{id}/attach_token": {
      "post": {
        "description": "Attach a provider-specific token to a vaulted method",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Attach provider token",
        "tags": [
          "Payment Methods"
        ]
      }
    },
    "/v1/payment_methods/{id}/revoke": {
      "post": {
        "description": "Revoke a vaulted payment method",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Revoke payment method",
        "tags": [
          "Payment Methods"
        ]
      }
    },
    "/v1/payment_methods/{id}/set_default": {
      "post": {
        "description": "Set a payment method as default",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Set default",
        "tags": [
          "Payment Methods"
        ]
      }
    },
    "/v1/plaid/accounts": {
      "get": {
        "description": "List bank accounts on a linked Plaid item",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List accounts",
        "tags": [
          "Plaid"
        ]
      }
    },
    "/v1/plaid/balance": {
      "post": {
        "description": "Fetch real-time balances for accounts on a Plaid item",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get balance",
        "tags": [
          "Plaid"
        ]
      }
    },
    "/v1/plaid/identity": {
      "post": {
        "description": "Fetch identity records (legal name, address) for the linked account holder — used to verify the linked bank account matches the merchant for compliance",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get identity",
        "tags": [
          "Plaid"
        ]
      }
    },
    "/v1/plaid/items": {
      "get": {
        "description": "List the merchant's currently-linked Plaid items",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List linked items",
        "tags": [
          "Plaid"
        ]
      }
    },
    "/v1/plaid/items/{item_id}": {
      "delete": {
        "description": "Remove a Plaid linked item",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Remove linked item",
        "tags": [
          "Plaid"
        ]
      },
      "get": {
        "description": "Retrieve a Plaid item by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get linked item",
        "tags": [
          "Plaid"
        ]
      }
    },
    "/v1/plaid/link/exchange": {
      "post": {
        "description": "Exchange a Plaid public_token for an access_token and store the linked item",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Exchange public token",
        "tags": [
          "Plaid"
        ]
      }
    },
    "/v1/plaid/link/token": {
      "post": {
        "description": "Create a Plaid Link token for the merchant to embed in the buyer onboarding flow",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create link token",
        "tags": [
          "Plaid"
        ]
      }
    },
    "/v1/plaid/processor-token": {
      "post": {
        "description": "Mint a processor-scoped token for downstream ACH providers (e.g. Dwolla)",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create processor token",
        "tags": [
          "Plaid"
        ]
      }
    },
    "/v1/plaid/transactions": {
      "post": {
        "description": "Fetch recent transactions on a Plaid item",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get transactions",
        "tags": [
          "Plaid"
        ]
      }
    },
    "/v1/plans": {
      "get": {
        "description": "Lists the authenticated merchant's billing plans.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "description": "Result page",
                      "items": {
                        "$ref": "#/components/schemas/Plan"
                      },
                      "type": "array"
                    },
                    "limit": {
                      "description": "Page size",
                      "format": "int64",
                      "type": "integer"
                    },
                    "offset": {
                      "description": "Offset of this page. Supplying a cursor query parameter instead returns a cursor-paginated envelope with next_cursor/has_more.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List plans",
        "tags": [
          "Billing"
        ]
      },
      "post": {
        "description": "Creates a billing plan in DRAFT status. A plan must be activated via POST /v1/plans/{id}/activate before any subscription can reference it — POST /v1/subscriptions against a draft plan returns 400 'Plan is not active'.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePlanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Plan"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create plan",
        "tags": [
          "Billing"
        ]
      }
    },
    "/v1/plans/{id}": {
      "get": {
        "description": "Retrieves a billing plan by ID.",
        "parameters": [
          {
            "description": "Plan ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Plan"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get plan",
        "tags": [
          "Billing"
        ]
      }
    },
    "/v1/plans/{id}/activate": {
      "post": {
        "description": "Moves a draft plan to active so subscriptions can be created against it. Only draft plans can be activated; any other status returns 400.",
        "parameters": [
          {
            "description": "Plan ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Plan"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Activate plan",
        "tags": [
          "Billing"
        ]
      }
    },
    "/v1/plans/{id}/archive": {
      "post": {
        "description": "Retires an active plan. Existing subscriptions keep billing; no new subscription may reference it. Only active plans can be archived.",
        "parameters": [
          {
            "description": "Plan ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Plan"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Archive plan",
        "tags": [
          "Billing"
        ]
      }
    },
    "/v1/platform/account_holders": {
      "get": {
        "description": "List account holders",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List account holders",
        "tags": [
          "Platform"
        ]
      },
      "post": {
        "description": "Create an account holder",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create account holder",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/account_holders/{id}": {
      "get": {
        "description": "Retrieve an account holder by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get account holder",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/account_holders/{id}/suspend": {
      "post": {
        "description": "Suspend an account holder",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Suspend account holder",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/accounts/{account_id}/keys": {
      "get": {
        "description": "List API keys for an account",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List keys",
        "tags": [
          "API Keys"
        ]
      },
      "post": {
        "description": "Create a scoped API key",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create key",
        "tags": [
          "API Keys"
        ]
      }
    },
    "/v1/platform/accounts/{id}/mode": {
      "get": {
        "description": "Get the current livemode/test mode setting",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get mode",
        "tags": [
          "Test Mode"
        ]
      },
      "post": {
        "description": "Toggle between live and test mode",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Set mode",
        "tags": [
          "Test Mode"
        ]
      }
    },
    "/v1/platform/actions": {
      "get": {
        "description": "List action-required notifications",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List actions",
        "tags": [
          "Actions"
        ]
      },
      "post": {
        "description": "Create an action-required notification",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create action",
        "tags": [
          "Actions"
        ]
      }
    },
    "/v1/platform/actions/{id}": {
      "get": {
        "description": "Retrieve an action-required notification by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get action",
        "tags": [
          "Actions"
        ]
      }
    },
    "/v1/platform/actions/{id}/acknowledge": {
      "post": {
        "description": "Acknowledge an action-required notification",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Acknowledge action",
        "tags": [
          "Actions"
        ]
      }
    },
    "/v1/platform/actions/{id}/dismiss": {
      "post": {
        "description": "Dismiss a low-severity action",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Dismiss action",
        "tags": [
          "Actions"
        ]
      }
    },
    "/v1/platform/actions/{id}/resolve": {
      "post": {
        "description": "Mark an action as resolved",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Resolve action",
        "tags": [
          "Actions"
        ]
      }
    },
    "/v1/platform/activity": {
      "get": {
        "description": "List activity stream events with filters",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List activity",
        "tags": [
          "Activity"
        ]
      }
    },
    "/v1/platform/activity/correlate/{request_id}": {
      "get": {
        "description": "Retrieve all events sharing a request ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get correlated events",
        "tags": [
          "Activity"
        ]
      }
    },
    "/v1/platform/activity/{id}": {
      "get": {
        "description": "Retrieve a single activity event",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get activity event",
        "tags": [
          "Activity"
        ]
      }
    },
    "/v1/platform/balance_accounts": {
      "get": {
        "description": "List balance accounts",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List balance accounts",
        "tags": [
          "Platform"
        ]
      },
      "post": {
        "description": "Create a balance account",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create balance account",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/balance_accounts/{id}": {
      "get": {
        "description": "Retrieve a balance account by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get balance account",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/balance_accounts/{id}/reserve_policies": {
      "get": {
        "description": "List reserve policies for a balance account",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List reserve policies",
        "tags": [
          "Platform"
        ]
      },
      "post": {
        "description": "Create an automatic reserve policy",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create reserve policy",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/balance_accounts/{id}/reserves": {
      "get": {
        "description": "List reserves on a balance account",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List reserves",
        "tags": [
          "Platform"
        ]
      },
      "post": {
        "description": "Hold funds in reserve on a balance account",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Hold reserve",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/balance_transactions": {
      "get": {
        "description": "List balance transactions with pagination",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List balance transactions",
        "tags": [
          "Observer"
        ]
      }
    },
    "/v1/platform/balance_transactions/{id}": {
      "get": {
        "description": "Retrieve a balance transaction by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get balance transaction",
        "tags": [
          "Observer"
        ]
      }
    },
    "/v1/platform/capabilities": {
      "get": {
        "description": "List all capabilities for the authenticated account",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List capabilities",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/capabilities/disable": {
      "post": {
        "description": "Disable a capability",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Disable capability",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/capabilities/grant": {
      "post": {
        "description": "Grant a requested capability",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Grant capability",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/capabilities/request": {
      "post": {
        "description": "Request a new capability",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Request capability",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/capabilities/restrict": {
      "post": {
        "description": "Restrict a capability with a reason",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Restrict capability",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/dcc/offers": {
      "get": {
        "description": "List DCC offers",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List DCC offers",
        "tags": [
          "DCC"
        ]
      },
      "post": {
        "description": "Create a dynamic currency conversion offer",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create DCC offer",
        "tags": [
          "DCC"
        ]
      }
    },
    "/v1/platform/dcc/offers/{id}": {
      "get": {
        "description": "Retrieve a DCC offer by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get DCC offer",
        "tags": [
          "DCC"
        ]
      }
    },
    "/v1/platform/dcc/offers/{id}/accept": {
      "post": {
        "description": "Accept a DCC offer",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Accept DCC offer",
        "tags": [
          "DCC"
        ]
      }
    },
    "/v1/platform/dcc/offers/{id}/decline": {
      "post": {
        "description": "Decline a DCC offer",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Decline DCC offer",
        "tags": [
          "DCC"
        ]
      }
    },
    "/v1/platform/geo-rules": {
      "get": {
        "description": "List active geo routing rules",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List geo rules",
        "tags": [
          "Geo Routing"
        ]
      },
      "post": {
        "description": "Create a geo routing rule",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create geo rule",
        "tags": [
          "Geo Routing"
        ]
      }
    },
    "/v1/platform/geo-rules/preview": {
      "post": {
        "description": "Preview which rails are eligible for a country pair",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Preview route",
        "tags": [
          "Geo Routing"
        ]
      }
    },
    "/v1/platform/geo-rules/{id}": {
      "delete": {
        "description": "Delete a geo routing rule",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Delete geo rule",
        "tags": [
          "Geo Routing"
        ]
      },
      "get": {
        "description": "Retrieve a geo routing rule by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get geo rule",
        "tags": [
          "Geo Routing"
        ]
      }
    },
    "/v1/platform/keys/{key_id}": {
      "get": {
        "description": "Retrieve an API key by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get key",
        "tags": [
          "API Keys"
        ]
      }
    },
    "/v1/platform/keys/{key_id}/revoke": {
      "post": {
        "description": "Revoke an API key",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Revoke key",
        "tags": [
          "API Keys"
        ]
      }
    },
    "/v1/platform/legal_entities": {
      "get": {
        "description": "List legal entities",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List legal entities",
        "tags": [
          "Platform"
        ]
      },
      "post": {
        "description": "Create a legal entity for KYC/KYB",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create legal entity",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/legal_entities/{id}": {
      "get": {
        "description": "Retrieve a legal entity by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get legal entity",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/legal_entities/{id}/verify": {
      "post": {
        "description": "Update verification status of a legal entity",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Update legal entity verification",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/notifications": {
      "get": {
        "description": "List platform notifications",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List platform notifications",
        "tags": [
          "Observer"
        ]
      }
    },
    "/v1/platform/notifications/{id}": {
      "get": {
        "description": "Retrieve a platform notification by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get notification",
        "tags": [
          "Observer"
        ]
      }
    },
    "/v1/platform/onboarding_links": {
      "get": {
        "description": "List onboarding links",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List onboarding links",
        "tags": [
          "Platform"
        ]
      },
      "post": {
        "description": "Generate an onboarding link for a sub-merchant",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create onboarding link",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/onboarding_links/{id}": {
      "get": {
        "description": "Retrieve an onboarding link by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get onboarding link",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/onboarding_links/{id}/expire": {
      "post": {
        "description": "Expire an onboarding link",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Expire onboarding link",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/orchestrations": {
      "get": {
        "description": "List orchestrations with filters",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List orchestrations",
        "tags": [
          "Orchestration"
        ]
      },
      "post": {
        "description": "Create a multi-party payout orchestration",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create orchestration",
        "tags": [
          "Orchestration"
        ]
      }
    },
    "/v1/platform/orchestrations/{id}": {
      "get": {
        "description": "Retrieve an orchestration by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get orchestration",
        "tags": [
          "Orchestration"
        ]
      }
    },
    "/v1/platform/orchestrations/{id}/execute": {
      "post": {
        "description": "Execute a pending orchestration",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Execute orchestration",
        "tags": [
          "Orchestration"
        ]
      }
    },
    "/v1/platform/payout_programs": {
      "get": {
        "description": "List payout programs",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List payout programs",
        "tags": [
          "Platform"
        ]
      },
      "post": {
        "description": "Create a payout program",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create payout program",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/payout_programs/{id}": {
      "get": {
        "description": "Retrieve a payout program by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get payout program",
        "tags": [
          "Platform"
        ]
      },
      "put": {
        "description": "Update a payout program",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Update payout program",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/payout_programs/{id}/activate": {
      "post": {
        "description": "Activate a payout program",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Activate payout program",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/payout_programs/{id}/deactivate": {
      "post": {
        "description": "Deactivate a payout program",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Deactivate payout program",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/payout_programs/{id}/suspend": {
      "post": {
        "description": "Suspend a payout program",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Suspend payout program",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/payouts": {
      "get": {
        "description": "List payouts with pagination",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List payouts",
        "tags": [
          "Payouts"
        ]
      },
      "post": {
        "description": "Create a payout to a transfer instrument",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create payout",
        "tags": [
          "Payouts"
        ]
      }
    },
    "/v1/platform/payouts/{id}": {
      "get": {
        "description": "Retrieve a payout by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get payout",
        "tags": [
          "Payouts"
        ]
      }
    },
    "/v1/platform/payouts/{id}/cancel": {
      "post": {
        "description": "Cancel a pending payout",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Cancel payout",
        "tags": [
          "Payouts"
        ]
      }
    },
    "/v1/platform/payouts/{id}/complete": {
      "post": {
        "description": "Mark a payout as completed",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Complete payout",
        "tags": [
          "Payouts"
        ]
      }
    },
    "/v1/platform/payouts/{id}/fail": {
      "post": {
        "description": "Mark a payout as failed",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Fail payout",
        "tags": [
          "Payouts"
        ]
      }
    },
    "/v1/platform/payouts/{id}/process": {
      "post": {
        "description": "Begin processing a payout",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Process payout",
        "tags": [
          "Payouts"
        ]
      }
    },
    "/v1/platform/rate-limits": {
      "delete": {
        "description": "Operator-only. Clear a per-merchant override, reverting to the default; requires ?account_id=",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Reset rate limit",
        "tags": [
          "Rate Limits"
        ]
      },
      "get": {
        "description": "Get your account's effective rate limit. Operators may pass ?account_id= to read another account.",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get rate limit",
        "tags": [
          "Rate Limits"
        ]
      },
      "post": {
        "description": "Operator-only. Set a per-merchant rate limit override; body must name account_id. Capped at 100000 requests_per_minute.",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Set rate limit",
        "tags": [
          "Rate Limits"
        ]
      }
    },
    "/v1/platform/reports/financial-events": {
      "get": {
        "description": "Export financial events for BI analysis",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Export financial events",
        "tags": [
          "Reports"
        ]
      }
    },
    "/v1/platform/reports/reconciliation": {
      "get": {
        "description": "Export reconciliation reports",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Export reconciliation",
        "tags": [
          "Reports"
        ]
      }
    },
    "/v1/platform/reports/settlements": {
      "get": {
        "description": "Export settlements for BI analysis",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Export settlements",
        "tags": [
          "Reports"
        ]
      }
    },
    "/v1/platform/reports/summary": {
      "get": {
        "description": "Export combined summary report",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Export summary",
        "tags": [
          "Reports"
        ]
      }
    },
    "/v1/platform/reserve_policies/{id}": {
      "get": {
        "description": "Retrieve a reserve policy by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get reserve policy",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/reserve_policies/{id}/disable": {
      "post": {
        "description": "Permanently disable a reserve policy",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Disable reserve policy",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/reserve_policies/{id}/pause": {
      "post": {
        "description": "Pause a reserve policy",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Pause reserve policy",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/reserve_policies/{id}/resume": {
      "post": {
        "description": "Resume a paused reserve policy",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Resume reserve policy",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/reserves/{id}": {
      "get": {
        "description": "Retrieve a reserve by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get reserve",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/reserves/{id}/forfeit": {
      "post": {
        "description": "Forfeit a reserve (non-reversible)",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Forfeit reserve",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/reserves/{id}/release": {
      "post": {
        "description": "Release a held reserve",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Release reserve",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/splits": {
      "post": {
        "description": "Create a multi-party split",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create split",
        "tags": [
          "Payouts"
        ]
      }
    },
    "/v1/platform/splits/{id}": {
      "get": {
        "description": "Retrieve a split by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get split",
        "tags": [
          "Payouts"
        ]
      }
    },
    "/v1/platform/transfer_instruments": {
      "get": {
        "description": "List transfer instruments",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List transfer instruments",
        "tags": [
          "Platform"
        ]
      },
      "post": {
        "description": "Create a transfer instrument (bank account, card)",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create transfer instrument",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/transfer_instruments/{id}": {
      "get": {
        "description": "Retrieve a transfer instrument by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get transfer instrument",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/transfer_instruments/{id}/activate": {
      "post": {
        "description": "Activate a verified transfer instrument",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Activate transfer instrument",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/transfer_instruments/{id}/archive": {
      "post": {
        "description": "Archive a transfer instrument",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Archive transfer instrument",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/transfer_instruments/{id}/set_default": {
      "post": {
        "description": "Set a transfer instrument as default",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Set default transfer instrument",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/transfer_instruments/{id}/submit_verification": {
      "post": {
        "description": "Submit verification for a transfer instrument",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Submit transfer instrument verification",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/platform/transfers": {
      "get": {
        "description": "List transfers with pagination",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List transfers",
        "tags": [
          "Payouts"
        ]
      },
      "post": {
        "description": "Create a platform transfer between balance accounts",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create transfer",
        "tags": [
          "Payouts"
        ]
      }
    },
    "/v1/platform/transfers/{id}": {
      "get": {
        "description": "Retrieve a transfer by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get transfer",
        "tags": [
          "Payouts"
        ]
      }
    },
    "/v1/platform/verification/check": {
      "post": {
        "description": "Check outstanding requirements for an entity",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Check requirements",
        "tags": [
          "Verification"
        ]
      }
    },
    "/v1/platform/verification/documents": {
      "get": {
        "description": "List verification documents",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List documents",
        "tags": [
          "Verification"
        ]
      },
      "post": {
        "description": "Upload a verification document",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Upload document",
        "tags": [
          "Verification"
        ]
      }
    },
    "/v1/platform/verification/documents/{id}": {
      "get": {
        "description": "Retrieve a verification document by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get document",
        "tags": [
          "Verification"
        ]
      }
    },
    "/v1/platform/verification/documents/{id}/accept": {
      "post": {
        "description": "Accept a verification document",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Accept document",
        "tags": [
          "Verification"
        ]
      }
    },
    "/v1/platform/verification/documents/{id}/reject": {
      "post": {
        "description": "Reject a verification document",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Reject document",
        "tags": [
          "Verification"
        ]
      }
    },
    "/v1/platform/verification/requirements": {
      "get": {
        "description": "List verification requirements",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List requirements",
        "tags": [
          "Verification"
        ]
      },
      "post": {
        "description": "Create a verification requirement",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create requirement",
        "tags": [
          "Verification"
        ]
      }
    },
    "/v1/platform/verification/requirements/{id}": {
      "get": {
        "description": "Retrieve a verification requirement by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get requirement",
        "tags": [
          "Verification"
        ]
      }
    },
    "/v1/platform/verification/requirements/{id}/waive": {
      "post": {
        "description": "Waive a verification requirement",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Waive requirement",
        "tags": [
          "Verification"
        ]
      }
    },
    "/v1/providers": {
      "get": {
        "description": "List available payment providers",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List providers",
        "tags": [
          "Providers"
        ]
      }
    },
    "/v1/providers/capabilities": {
      "get": {
        "description": "Get provider capabilities for the authenticated merchant",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get merchant capabilities",
        "tags": [
          "Providers"
        ]
      }
    },
    "/v1/providers/health": {
      "get": {
        "description": "Check health status of all providers",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get provider health",
        "tags": [
          "Providers"
        ]
      }
    },
    "/v1/providers/{provider_id}": {
      "get": {
        "description": "Get connection status of a specific provider",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get provider status",
        "tags": [
          "Providers"
        ]
      }
    },
    "/v1/providers/{provider_id}/capabilities": {
      "get": {
        "description": "List capabilities of a specific provider",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get provider capabilities",
        "tags": [
          "Providers"
        ]
      }
    },
    "/v1/providers/{provider_id}/complete": {
      "post": {
        "description": "Complete the provider connection with credentials",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Complete connection",
        "tags": [
          "Providers"
        ]
      }
    },
    "/v1/providers/{provider_id}/connect": {
      "post": {
        "description": "Start the provider connection flow",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Initiate connection",
        "tags": [
          "Providers"
        ]
      }
    },
    "/v1/providers/{provider_id}/disconnect": {
      "delete": {
        "description": "Remove the provider connection",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Disconnect provider",
        "tags": [
          "Providers"
        ]
      }
    },
    "/v1/public/checkout/{session_id}": {
      "get": {
        "description": "Retrieve a public checkout session by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get checkout session (public)",
        "tags": [
          "Checkout"
        ]
      }
    },
    "/v1/public/checkout/{session_id}/confirm": {
      "post": {
        "description": "Confirm and complete a checkout session",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Confirm checkout (public)",
        "tags": [
          "Checkout"
        ]
      }
    },
    "/v1/public/checkout/{session_id}/status": {
      "get": {
        "description": "Check the current status of a checkout session",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get checkout status (public)",
        "tags": [
          "Checkout"
        ]
      }
    },
    "/v1/public/checkout/{session_id}/theme": {
      "get": {
        "description": "Get the checkout theme for a session (no auth)",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get public theme",
        "tags": [
          "Checkout Theme"
        ]
      }
    },
    "/v1/public/onboarding/{token}": {
      "get": {
        "description": "Retrieve the onboarding form for a token",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get onboarding page",
        "tags": [
          "Onboarding"
        ]
      }
    },
    "/v1/public/onboarding/{token}/submit": {
      "post": {
        "description": "Submit completed onboarding form",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Submit onboarding",
        "tags": [
          "Onboarding"
        ]
      }
    },
    "/v1/public/platform/ops": {
      "get": {
        "description": "Non-secret runtime flags for founder ops probes (checkout_enabled, TOS version, wallet flags)",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Public platform ops",
        "tags": [
          "Platform"
        ]
      }
    },
    "/v1/public/tos/current": {
      "get": {
        "description": "Get the current terms of service version (public)",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get current TOS",
        "tags": [
          "TOS Acceptance"
        ]
      }
    },
    "/v1/public/tos/versions": {
      "get": {
        "description": "List all published terms of service versions (public)",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List TOS versions",
        "tags": [
          "TOS Acceptance"
        ]
      }
    },
    "/v1/quotes": {
      "post": {
        "description": "Create a cost quote for a payment",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create quote",
        "tags": [
          "Payment Intents"
        ]
      }
    },
    "/v1/quotes/{id}": {
      "get": {
        "description": "Retrieve a quote by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get quote",
        "tags": [
          "Payment Intents"
        ]
      }
    },
    "/v1/reconciliation/reports": {
      "get": {
        "description": "List completed reconciliation reports",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List reconciliation reports",
        "tags": [
          "Reconciliation"
        ]
      }
    },
    "/v1/reconciliation/reports/{id}": {
      "get": {
        "description": "Retrieve a reconciliation report by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get reconciliation report",
        "tags": [
          "Reconciliation"
        ]
      }
    },
    "/v1/reconciliation/run": {
      "post": {
        "description": "Execute a reconciliation run",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Run reconciliation",
        "tags": [
          "Reconciliation"
        ]
      }
    },
    "/v1/reconciliation/statements": {
      "post": {
        "description": "Ingest provider settlement statements",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Ingest statements",
        "tags": [
          "Reconciliation"
        ]
      }
    },
    "/v1/reconciliation/{merchant_id}": {
      "get": {
        "description": "Merchant-scoped reconciliation view",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get reconciliation",
        "tags": [
          "Financial Events"
        ]
      }
    },
    "/v1/reconciliation/{merchant_id}/audit-export": {
      "get": {
        "description": "Export cryptographic audit proof for a merchant",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Export audit proof",
        "tags": [
          "Reconciliation"
        ]
      }
    },
    "/v1/screening": {
      "get": {
        "description": "List screening results with optional status and type filters",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List screening results",
        "tags": [
          "Screening"
        ]
      },
      "post": {
        "description": "Perform PEP/sanctions/adverse media screening on an entity",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Screen entity",
        "tags": [
          "Screening"
        ]
      }
    },
    "/v1/screening/watchlist": {
      "get": {
        "description": "List internal watchlist entries",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List watchlist",
        "tags": [
          "Screening"
        ]
      },
      "post": {
        "description": "Add an entity to the internal watchlist",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Add watchlist entry",
        "tags": [
          "Screening"
        ]
      }
    },
    "/v1/screening/watchlist/{id}": {
      "delete": {
        "description": "Remove an entity from the internal watchlist",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Remove watchlist entry",
        "tags": [
          "Screening"
        ]
      }
    },
    "/v1/screening/{id}": {
      "get": {
        "description": "Retrieve a screening result by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get screening result",
        "tags": [
          "Screening"
        ]
      }
    },
    "/v1/screening/{id}/review": {
      "post": {
        "description": "Review a screening match with a clear or rejected decision",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Review result",
        "tags": [
          "Screening"
        ]
      }
    },
    "/v1/settlements": {
      "get": {
        "description": "List settlements with pagination",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedList"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List settlements",
        "tags": [
          "Settlements"
        ]
      }
    },
    "/v1/settlements/{id}": {
      "get": {
        "description": "Retrieve a settlement by ID",
        "parameters": [
          {
            "description": "Settlement ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Settlement"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get settlement",
        "tags": [
          "Settlements"
        ]
      }
    },
    "/v1/settlements/{id}/complete": {
      "post": {
        "description": "Mark a settlement as completed",
        "parameters": [
          {
            "description": "Settlement ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Settlement"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Complete settlement",
        "tags": [
          "Settlements"
        ]
      }
    },
    "/v1/settlements/{id}/fail": {
      "post": {
        "description": "Mark a settlement as failed",
        "parameters": [
          {
            "description": "Settlement ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Settlement"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Fail settlement",
        "tags": [
          "Settlements"
        ]
      }
    },
    "/v1/solana/authorize": {
      "post": {
        "description": "Create a deposit address for an inbound USDC SPL transfer. Returns the SPL token mint, deposit address, and replay window",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create deposit address",
        "tags": [
          "Solana"
        ]
      }
    },
    "/v1/solana/capture": {
      "post": {
        "description": "Confirm an inbound USDC SPL transfer reached on-chain finality. Live mode queries getTransaction(signature, commitment=finalized); offline mode is deterministic",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Confirm finality",
        "tags": [
          "Solana"
        ]
      }
    },
    "/v1/solana/disburse": {
      "post": {
        "description": "Send outbound SPL tokens (e.g. USDC payout). Admin-scope only; merchants must use the SettlementEngine. Refuses without a SolanaSigner in live mode",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Outbound SPL payout (admin)",
        "tags": [
          "Solana"
        ]
      }
    },
    "/v1/solana/health": {
      "get": {
        "description": "Return the Solana provider's health status (RPC reachability, network, mode)",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Provider health",
        "tags": [
          "Solana"
        ]
      }
    },
    "/v1/solana/refund": {
      "post": {
        "description": "Send SPL tokens back to the original sender. Refuses in live mode without a configured SolanaSigner (SIGNER_NOT_CONFIGURED)",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Refund SPL transfer",
        "tags": [
          "Solana"
        ]
      }
    },
    "/v1/solana/replay/{idempotency_key}": {
      "get": {
        "description": "Return a previously-recorded Solana operation outcome by idempotency key",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Replay operation",
        "tags": [
          "Solana"
        ]
      }
    },
    "/v1/subscriptions": {
      "get": {
        "description": "Lists the authenticated merchant's subscriptions.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "description": "Result page",
                      "items": {
                        "$ref": "#/components/schemas/Subscription"
                      },
                      "type": "array"
                    },
                    "limit": {
                      "description": "Page size",
                      "format": "int64",
                      "type": "integer"
                    },
                    "offset": {
                      "description": "Offset of this page. Supplying a cursor query parameter instead returns a cursor-paginated envelope with next_cursor/has_more.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List subscriptions",
        "tags": [
          "Billing"
        ]
      },
      "post": {
        "description": "Subscribes a customer to an ACTIVE plan. idempotency_key is required and travels in the BODY (this route does not read the Idempotency-Key header): replaying a key returns the existing subscription with HTTP 200 instead of creating a second one. A plan with trial_period_days \u003e 0 starts the subscription in 'trialing' and defers the first charge to trial_end.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSubscriptionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Subscription"
                }
              }
            },
            "description": "Idempotent replay — a subscription already exists for this idempotency_key and is returned unchanged"
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Subscription"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Create subscription",
        "tags": [
          "Billing"
        ]
      }
    },
    "/v1/subscriptions/{id}": {
      "get": {
        "description": "Retrieves a subscription by ID.",
        "parameters": [
          {
            "description": "Subscription ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Subscription"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get subscription",
        "tags": [
          "Billing"
        ]
      }
    },
    "/v1/subscriptions/{id}/cancel": {
      "post": {
        "description": "Cancels a subscription. at_period_end=true keeps status 'active' and sets cancel_at_end=true so the customer keeps access through the period already paid for; at_period_end=false (default) cancels immediately and stamps canceled_at.",
        "parameters": [
          {
            "description": "Subscription ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelSubscriptionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Subscription"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Cancel subscription",
        "tags": [
          "Billing"
        ]
      }
    },
    "/v1/subscriptions/{id}/generate_cycle": {
      "post": {
        "description": "Generates the next billing cycle for a subscription. Normally unnecessary — the renewal scheduler generates cycles automatically once next_billing_date arrives — but exposed for merchants driving their own billing clock.",
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingCycle"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Generate billing cycle",
        "tags": [
          "Billing"
        ]
      }
    },
    "/v1/subscriptions/{id}/pause": {
      "post": {
        "description": "Suspends billing on an active subscription. Only active subscriptions can be paused.",
        "parameters": [
          {
            "description": "Subscription ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Subscription"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Pause subscription",
        "tags": [
          "Billing"
        ]
      }
    },
    "/v1/subscriptions/{id}/resume": {
      "post": {
        "description": "Reactivates a paused subscription. Only paused subscriptions can be resumed.",
        "parameters": [
          {
            "description": "Subscription ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Subscription"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Resume subscription",
        "tags": [
          "Billing"
        ]
      }
    },
    "/v1/tax/reports": {
      "get": {
        "description": "List tax reports with optional type and year filters",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List tax reports",
        "tags": [
          "Tax Reporting"
        ]
      },
      "post": {
        "description": "Generate a tax report (1099-K, VAT, GST, DAC7, or summary)",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Generate tax report",
        "tags": [
          "Tax Reporting"
        ]
      }
    },
    "/v1/tax/reports/{id}": {
      "get": {
        "description": "Retrieve a tax report by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get tax report",
        "tags": [
          "Tax Reporting"
        ]
      }
    },
    "/v1/tax/reports/{id}/amend": {
      "post": {
        "description": "Create an amended version of a filed tax report",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Amend tax report",
        "tags": [
          "Tax Reporting"
        ]
      }
    },
    "/v1/tax/reports/{id}/file": {
      "post": {
        "description": "Mark a generated report as filed with a filing reference",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "File tax report",
        "tags": [
          "Tax Reporting"
        ]
      }
    },
    "/v1/tax/settings": {
      "get": {
        "description": "Retrieve the merchant tax configuration (TIN, country, VAT)",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get tax settings",
        "tags": [
          "Tax Reporting"
        ]
      },
      "put": {
        "description": "Create or update merchant tax configuration",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Upsert tax settings",
        "tags": [
          "Tax Reporting"
        ]
      }
    },
    "/v1/tax/summary": {
      "get": {
        "description": "Get an aggregated tax summary for a given year",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get tax summary",
        "tags": [
          "Tax Reporting"
        ]
      }
    },
    "/v1/tokens": {
      "get": {
        "description": "List network tokens with optional network and status filters",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List tokens",
        "tags": [
          "Network Tokenization"
        ]
      },
      "post": {
        "description": "Provision a network token for a payment method",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Provision token",
        "tags": [
          "Network Tokenization"
        ]
      }
    },
    "/v1/tokens/{id}": {
      "delete": {
        "description": "Soft-delete a network token",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Delete token",
        "tags": [
          "Network Tokenization"
        ]
      },
      "get": {
        "description": "Retrieve a network token by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get token",
        "tags": [
          "Network Tokenization"
        ]
      }
    },
    "/v1/tokens/{id}/cryptogram": {
      "post": {
        "description": "Generate a transaction-level cryptogram for an active token",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Request cryptogram",
        "tags": [
          "Network Tokenization"
        ]
      }
    },
    "/v1/tokens/{id}/resume": {
      "post": {
        "description": "Resume a suspended network token",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Resume token",
        "tags": [
          "Network Tokenization"
        ]
      }
    },
    "/v1/tokens/{id}/suspend": {
      "post": {
        "description": "Suspend an active network token",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Suspend token",
        "tags": [
          "Network Tokenization"
        ]
      }
    },
    "/v1/tos/accept": {
      "post": {
        "description": "Record merchant acceptance of a TOS version",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Accept TOS",
        "tags": [
          "TOS Acceptance"
        ]
      }
    },
    "/v1/tos/acceptances": {
      "get": {
        "description": "List all TOS acceptances for the merchant",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List acceptances",
        "tags": [
          "TOS Acceptance"
        ]
      }
    },
    "/v1/tos/current": {
      "get": {
        "description": "Get the current terms of service version (authenticated alias)",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get current TOS",
        "tags": [
          "TOS Acceptance"
        ]
      }
    },
    "/v1/tos/status": {
      "get": {
        "description": "Check whether the current TOS version has been accepted",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get acceptance status",
        "tags": [
          "TOS Acceptance"
        ]
      }
    },
    "/v1/tos/versions": {
      "get": {
        "description": "List all published terms of service versions (authenticated alias)",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List TOS versions",
        "tags": [
          "TOS Acceptance"
        ]
      }
    },
    "/v1/usdc/deposit": {
      "post": {
        "description": "Issue a deterministic USDC deposit address for the merchant",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Initiate deposit",
        "tags": [
          "USDC"
        ]
      }
    },
    "/v1/usdc/transactions": {
      "get": {
        "description": "List USDC deposit transactions for the merchant",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List transactions",
        "tags": [
          "USDC"
        ]
      }
    },
    "/v1/usdc/transactions/{ref}": {
      "get": {
        "description": "Retrieve a USDC deposit transaction by reference",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get transaction",
        "tags": [
          "USDC"
        ]
      }
    },
    "/v1/version": {
      "get": {
        "description": "Get the resolved API version for this request",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIVersion"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get current version",
        "tags": [
          "API Versioning"
        ]
      }
    },
    "/v1/versions": {
      "get": {
        "description": "List all supported API versions with status and sunset dates",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "API versions",
                  "items": {
                    "$ref": "#/components/schemas/APIVersion"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List versions",
        "tags": [
          "API Versioning"
        ]
      }
    },
    "/v1/webhook_events": {
      "get": {
        "description": "List webhook events with pagination",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List webhook events",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/webhook_events/failed": {
      "get": {
        "description": "List webhook events in failed state",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List failed webhook events",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/webhook_events/test": {
      "post": {
        "description": "Send a synthetic test ping webhook event",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Send test ping",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/webhook_events/{id}": {
      "get": {
        "description": "Retrieve a webhook event by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Get webhook event",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/webhook_events/{id}/attempts": {
      "get": {
        "description": "List delivery attempts for a webhook event",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "List delivery attempts",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/webhook_events/{id}/replay": {
      "post": {
        "description": "Re-deliver any webhook event with current config",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Replay webhook event",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/webhook_events/{id}/retry": {
      "post": {
        "description": "Retry delivery of a failed webhook event",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Retry webhook event",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/webhooks/binance-pay": {
      "post": {
        "description": "Receives Binance Pay event notifications. RSA-SHA256 over canonical (timestamp \\n nonce \\n body \\n) with ±5 minute skew window",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Binance Pay webhook",
        "tags": [
          "Binance Pay"
        ]
      }
    },
    "/v1/webhooks/clearbank": {
      "post": {
        "description": "Receives ClearBank Faster Payments / SEPA / CHAPS settlement events. RSA-SHA256 signature with a minimum 2048-bit key floor; supports PKIX and PKCS1 public keys",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "ClearBank webhook",
        "tags": [
          "ClearBank"
        ]
      }
    },
    "/v1/webhooks/crypto": {
      "post": {
        "description": "Receives indexer-signed chain events (new tx, confirmations).",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Crypto webhook",
        "tags": [
          "Crypto"
        ]
      }
    },
    "/v1/webhooks/dwolla": {
      "post": {
        "description": "Receives Dwolla customer / transfer / mass-payment events. HMAC-SHA256 over the raw body using the configured webhook secret. ACH R-codes propagate to bank-account state via the failure-reason inspector",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Dwolla webhook",
        "tags": [
          "Dwolla"
        ]
      }
    },
    "/v1/webhooks/paypal": {
      "post": {
        "description": "Receives PayPal order, capture, refund, and dispute events. Signature verified via PayPal's verify-webhook-signature REST API (RSA cert chain check). Deployments without webhook credentials are rejected by ValidateProduction",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "PayPal webhook",
        "tags": [
          "PayPal"
        ]
      }
    },
    "/v1/webhooks/plaid": {
      "post": {
        "description": "Receives Plaid webhook events. JWS / ES256 signature verification per Plaid's official signing scheme",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Plaid webhook",
        "tags": [
          "Plaid"
        ]
      }
    },
    "/v1/webhooks/stripe": {
      "post": {
        "description": "Receives inbound Stripe webhook events",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Stripe webhook",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/webhooks/usdc": {
      "post": {
        "description": "Receives chain-indexer signed deposit confirmation events",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "USDC webhook",
        "tags": [
          "USDC"
        ]
      }
    },
    "/v1/x402/challenge": {
      "post": {
        "description": "Issues an x402 payment challenge for a tool/resource. On success this returns HTTP 402 Payment Required (not 200) carrying the negotiation body an agent uses to complete payment before retrying",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/X402ChallengeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad request"
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/X402ChallengeResponse"
                }
              }
            },
            "description": "Payment required — negotiation body describing accepted schemes and prices"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "summary": "Request a payment challenge",
        "tags": [
          "x402"
        ]
      }
    },
    "/v1/x402/verify": {
      "description": "Verifies a payment receipt against a previously issued challenge and records the settlement",
      "requestBody": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/X402VerifyRequest"
            }
          }
        },
        "required": true
      },
      "responses": {
        "200": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/X402VerifyResponse"
              }
            }
          },
          "description": "Success"
        },
        "400": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Error"
              }
            }
          },
          "description": "Bad request"
        },
        "401": {
          "description": "Unauthorized"
        },
        "404": {
          "description": "Not found"
        },
        "429": {
          "description": "Rate limited"
        },
        "500": {
          "description": "Internal server error"
        }
      },
      "summary": "Verify a payment receipt",
      "tags": [
        "x402"
      ]
    }
  },
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "servers": [
    {
      "description": "Current environment",
      "url": "/"
    }
  ],
  "tags": [
    {
      "description": "Health, readiness, and metrics endpoints",
      "name": "Health"
    },
    {
      "description": "Authentication, SSO, and MFA",
      "name": "Auth"
    },
    {
      "description": "Merchant account management",
      "name": "Accounts"
    },
    {
      "description": "Payment intent lifecycle: create, authorize, capture, refund",
      "name": "Payment Intents"
    },
    {
      "description": "Ledger events and reconciliation queries",
      "name": "Financial Events"
    },
    {
      "description": "Settlement lifecycle management",
      "name": "Settlements"
    },
    {
      "description": "Webhook event management, testing, and replay",
      "name": "Webhooks"
    },
    {
      "description": "Provider registry and connection management",
      "name": "Providers"
    },
    {
      "description": "Hosted and embedded checkout sessions",
      "name": "Checkout"
    },
    {
      "description": "Hosted onboarding for sub-merchants",
      "name": "Onboarding"
    },
    {
      "description": "Per-rail consent matrix, grant ledger, and foregone-value (shadow-value) estimates",
      "name": "Consent"
    },
    {
      "description": "Statement ingestion, reconciliation runs, and reports",
      "name": "Reconciliation"
    },
    {
      "description": "Audit trail, chain verification, and export",
      "name": "Audit"
    },
    {
      "description": "Plans, subscriptions, and billing cycles",
      "name": "Billing"
    },
    {
      "description": "Embedded component authentication tokens",
      "name": "Account Sessions"
    },
    {
      "description": "Dispute/chargeback lifecycle and evidence",
      "name": "Disputes"
    },
    {
      "description": "Payment method vault: card and bank account tokenization",
      "name": "Payment Methods"
    },
    {
      "description": "Platform management: legal entities, account holders, balance accounts, transfer instruments, capabilities, payout programs, onboarding links, reserves",
      "name": "Platform"
    },
    {
      "description": "Payout, split, and transfer management",
      "name": "Payouts"
    },
    {
      "description": "Balance transactions and platform notifications",
      "name": "Observer"
    },
    {
      "description": "Document verification and requirement management",
      "name": "Verification"
    },
    {
      "description": "Scoped API key management",
      "name": "API Keys"
    },
    {
      "description": "Multi-party payout orchestration",
      "name": "Orchestration"
    },
    {
      "description": "Dynamic currency conversion offers",
      "name": "DCC"
    },
    {
      "description": "Activity stream and event correlation",
      "name": "Activity"
    },
    {
      "description": "BI export: financial events, settlements, reconciliation, summary",
      "name": "Reports"
    },
    {
      "description": "Sandbox/test mode toggle",
      "name": "Test Mode"
    },
    {
      "description": "Cross-border routing rules and preview",
      "name": "Geo Routing"
    },
    {
      "description": "Action-required notification inbox",
      "name": "Actions"
    },
    {
      "description": "Per-merchant rate limit configuration",
      "name": "Rate Limits"
    },
    {
      "description": "White-label checkout customization and branding",
      "name": "Checkout Theme"
    },
    {
      "description": "API version management and deprecation",
      "name": "API Versioning"
    },
    {
      "description": "Terms of service version management and acceptance tracking",
      "name": "TOS Acceptance"
    },
    {
      "description": "Fraud signal collection, risk assessment, and rule management",
      "name": "Fraud Signals"
    },
    {
      "description": "Configurable transaction monitoring rules, evaluation, and alert management",
      "name": "Transaction Monitoring"
    },
    {
      "description": "On-demand and scheduled compliance report generation",
      "name": "Compliance Reports"
    },
    {
      "description": "Platform tax report generation, filing, settings, and annual summaries (1099-K, VAT, GST, DAC7)",
      "name": "Tax Reporting"
    },
    {
      "description": "Installment plans and BNPL provider hooks (Klarna, Affirm, Afterpay, internal)",
      "name": "Installments"
    },
    {
      "description": "PEP, sanctions, and adverse media screening with watchlist management",
      "name": "Screening"
    },
    {
      "description": "Network token provisioning, lifecycle management, and cryptogram generation",
      "name": "Network Tokenization"
    },
    {
      "description": "Stored-value gift card issuance, redemption, reloading, and balance management",
      "name": "Gift Cards"
    },
    {
      "description": "Card account updater service for detecting expired, replaced, or closed cards",
      "name": "Account Updater"
    },
    {
      "description": "Plaid bank-account linking, balance / identity retrieval, item lifecycle",
      "name": "Plaid"
    },
    {
      "description": "Bitcoin / Ethereum watch-only address registration and inbound transaction monitoring",
      "name": "Crypto"
    },
    {
      "description": "USDC stablecoin deposit address issuance, transaction listing, and inbound finality",
      "name": "USDC"
    },
    {
      "description": "Solana SPL token (USDC) receive, refund, and disburse. Outbound paths refuse without a configured SolanaSigner",
      "name": "Solana"
    },
    {
      "description": "Dwolla ACH webhook ingestion and bank-account R-code propagation",
      "name": "Dwolla"
    },
    {
      "description": "PayPal webhook ingestion (order / capture / refund / dispute) with REST cert-chain signature verification",
      "name": "PayPal"
    },
    {
      "description": "ClearBank GBP/EUR domestic + SEPA Instant webhook ingestion with RSA-SHA256 verification",
      "name": "ClearBank"
    },
    {
      "description": "Binance Pay webhook ingestion with RSA-SHA256 verification over canonical timestamp+nonce+body",
      "name": "Binance Pay"
    },
    {
      "description": "Model Context Protocol agent surface: JSON-RPC tool calling (streamable HTTP + legacy SSE transports) and discovery documents",
      "name": "MCP"
    },
    {
      "description": "Self-serve sandbox and merchant-issued agent key management for MCP callers",
      "name": "Agent Keys"
    },
    {
      "description": "x402 payment-challenge protocol: discovery, challenge issuance, and payment-receipt verification",
      "name": "x402"
    },
    {
      "description": "AI operator assistant for merchants: free-text Q\u0026A over onboarding/account state and server-side action execution",
      "name": "Merchant Assistant"
    }
  ]
}
