{
  "openapi": "3.1.0",
  "info": {
    "title": "图奕统一认证与产品成员 API",
    "version": "2026-09-06",
    "description": "First-party Web/Native authentication, password management, and product membership activation. Features default disabled. OIDC, SMS business/payment contracts are documented separately at /docs. Examples are synthetic."
  },
  "servers": [
    {
      "url": "https://platform.too1.net"
    }
  ],
  "paths": {
    "/api/v1/native-auth/transactions": {
      "post": {
        "operationId": "native_login_create_post",
        "summary": "Create a fixed five-minute transaction. Creation is not automatically retried.",
        "security": [],
        "responses": {
          "201": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Created"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NativeCreate"
              }
            }
          }
        }
      }
    },
    "/api/v1/native-auth/transactions/{id}": {
      "get": {
        "operationId": "native_login___id__get",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "Native": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/State"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ]
      }
    },
    "/api/v1/native-auth/transactions/{id}/sms/send": {
      "post": {
        "operationId": "native_login___id__sms_send_post",
        "summary": "Require a single-use slider CAPTCHA proof before sending SMS. Reserve, send once and activate. 202 means uncertain delivery; never auto retry.",
        "security": [
          {
            "Native": []
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sent"
                }
              }
            }
          },
          "202": {
            "description": "Result unknown; challenge not activated; wait >=60 seconds, no auto retry.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sent"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SMSSend"
              }
            }
          }
        }
      }
    },
    "/api/v1/native-auth/transactions/{id}/sms/verify": {
      "post": {
        "operationId": "native_login___id__sms_verify_post",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "Native": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/State"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SMSVerify"
              }
            }
          }
        }
      }
    },
    "/api/v1/native-auth/transactions/{id}/complete": {
      "post": {
        "operationId": "native_login___id__complete_post",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "Native": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Completed"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginComplete"
              }
            }
          }
        }
      }
    },
    "/api/v1/native-auth/transactions/{id}/cancel": {
      "post": {
        "operationId": "native_login___id__cancel_post",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "Native": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/State"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Empty"
              }
            }
          }
        }
      }
    },
    "/api/v1/native-auth/transactions/{id}/password": {
      "post": {
        "operationId": "native_login___id__password_post",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "Native": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/State"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordVerify"
              }
            }
          }
        }
      }
    },
    "/api/v1/native-auth/transactions/{id}/qr": {
      "get": {
        "operationId": "native_login___id__qr_get",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "Native": []
          }
        ],
        "responses": {
          "200": {
            "description": "WeChat QR image authenticated by transaction header.",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "image/jpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ]
      }
    },
    "/api/v1/native-auth/password-transactions": {
      "post": {
        "operationId": "native_password_create_post",
        "summary": "Create a fixed five-minute transaction. Creation is not automatically retried.",
        "security": [
          {},
          {
            "UserBearer": []
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Created"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordCreate"
              }
            }
          }
        }
      }
    },
    "/api/v1/native-auth/password-transactions/{id}": {
      "get": {
        "operationId": "native_password___id__get",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "Native": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/State"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ]
      }
    },
    "/api/v1/native-auth/password-transactions/{id}/sms/send": {
      "post": {
        "operationId": "native_password___id__sms_send_post",
        "summary": "Require a single-use slider CAPTCHA proof before sending SMS. Reserve, send once and activate. 202 means uncertain delivery; never auto retry.",
        "security": [
          {
            "Native": []
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sent"
                }
              }
            }
          },
          "202": {
            "description": "Result unknown; challenge not activated; wait >=60 seconds, no auto retry.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sent"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SMSSend"
              }
            }
          }
        }
      }
    },
    "/api/v1/native-auth/password-transactions/{id}/sms/verify": {
      "post": {
        "operationId": "native_password___id__sms_verify_post",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "Native": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/State"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SMSVerify"
              }
            }
          }
        }
      }
    },
    "/api/v1/native-auth/password-transactions/{id}/complete": {
      "post": {
        "operationId": "native_password___id__complete_post",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "Native": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PasswordChanged"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordComplete"
              }
            }
          }
        }
      }
    },
    "/api/v1/native-auth/password-transactions/{id}/cancel": {
      "post": {
        "operationId": "native_password___id__cancel_post",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "Native": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/State"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Empty"
              }
            }
          }
        }
      }
    },
    "/api/v1/web-auth/transactions": {
      "post": {
        "operationId": "web_login_create_post",
        "summary": "Create a fixed five-minute transaction. Creation is not automatically retried.",
        "security": [
          {
            "WebBasic": []
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Created"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebCreate"
              }
            }
          }
        }
      },
      "options": {
        "summary": "Browser transaction creation forbidden",
        "responses": {
          "403": {
            "description": "Backend only"
          },
          "503": {
            "description": "Origin permission store unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/web-auth/transactions/{id}": {
      "get": {
        "operationId": "web_login___id__get",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "WebAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/State"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ]
      },
      "options": {
        "summary": "Exact-origin CORS preflight; no credentials allowed",
        "responses": {
          "204": {
            "description": "Allow GET/POST, Authorization/Content-Type, exact Origin; never wildcard or Allow-Credentials"
          },
          "503": {
            "description": "Origin permission store unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/web-auth/transactions/{id}/sms/send": {
      "post": {
        "operationId": "web_login___id__sms_send_post",
        "summary": "Require a single-use slider CAPTCHA proof before sending SMS. Reserve, send once and activate. 202 means uncertain delivery; never auto retry.",
        "security": [
          {
            "WebAuth": []
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sent"
                }
              }
            }
          },
          "202": {
            "description": "Result unknown; challenge not activated; wait >=60 seconds, no auto retry.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sent"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SMSSend"
              }
            }
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight; no credentials allowed",
        "responses": {
          "204": {
            "description": "Allow GET/POST, Authorization/Content-Type, exact Origin; never wildcard or Allow-Credentials"
          },
          "503": {
            "description": "Origin permission store unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/web-auth/transactions/{id}/sms/verify": {
      "post": {
        "operationId": "web_login___id__sms_verify_post",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "WebAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/State"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SMSVerify"
              }
            }
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight; no credentials allowed",
        "responses": {
          "204": {
            "description": "Allow GET/POST, Authorization/Content-Type, exact Origin; never wildcard or Allow-Credentials"
          },
          "503": {
            "description": "Origin permission store unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/web-auth/transactions/{id}/complete": {
      "post": {
        "operationId": "web_login___id__complete_post",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "WebAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Completed"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginComplete"
              }
            }
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight; no credentials allowed",
        "responses": {
          "204": {
            "description": "Allow GET/POST, Authorization/Content-Type, exact Origin; never wildcard or Allow-Credentials"
          },
          "503": {
            "description": "Origin permission store unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/web-auth/transactions/{id}/cancel": {
      "post": {
        "operationId": "web_login___id__cancel_post",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "WebAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/State"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Empty"
              }
            }
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight; no credentials allowed",
        "responses": {
          "204": {
            "description": "Allow GET/POST, Authorization/Content-Type, exact Origin; never wildcard or Allow-Credentials"
          },
          "503": {
            "description": "Origin permission store unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/web-auth/transactions/{id}/password": {
      "post": {
        "operationId": "web_login___id__password_post",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "WebAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/State"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordVerify"
              }
            }
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight; no credentials allowed",
        "responses": {
          "204": {
            "description": "Allow GET/POST, Authorization/Content-Type, exact Origin; never wildcard or Allow-Credentials"
          },
          "503": {
            "description": "Origin permission store unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/web-auth/transactions/{id}/qr": {
      "get": {
        "operationId": "web_login___id__qr_get",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "WebAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "WeChat QR image authenticated by transaction header.",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "image/jpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ]
      },
      "options": {
        "summary": "Exact-origin CORS preflight; no credentials allowed",
        "responses": {
          "204": {
            "description": "Allow GET/POST, Authorization/Content-Type, exact Origin; never wildcard or Allow-Credentials"
          },
          "503": {
            "description": "Origin permission store unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/web-auth/password-transactions": {
      "post": {
        "operationId": "web_password_create_post",
        "summary": "Create a fixed five-minute transaction. Creation is not automatically retried.",
        "security": [
          {
            "WebBasic": []
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Created"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebPasswordCreate"
              }
            }
          }
        }
      },
      "options": {
        "summary": "Browser transaction creation forbidden",
        "responses": {
          "403": {
            "description": "Backend only"
          },
          "503": {
            "description": "Origin permission store unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/web-auth/password-transactions/{id}": {
      "get": {
        "operationId": "web_password___id__get",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "WebAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/State"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ]
      },
      "options": {
        "summary": "Exact-origin CORS preflight; no credentials allowed",
        "responses": {
          "204": {
            "description": "Allow GET/POST, Authorization/Content-Type, exact Origin; never wildcard or Allow-Credentials"
          },
          "503": {
            "description": "Origin permission store unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/web-auth/password-transactions/{id}/sms/send": {
      "post": {
        "operationId": "web_password___id__sms_send_post",
        "summary": "Require a single-use slider CAPTCHA proof before sending SMS. Reserve, send once and activate. 202 means uncertain delivery; never auto retry.",
        "security": [
          {
            "WebAuth": []
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sent"
                }
              }
            }
          },
          "202": {
            "description": "Result unknown; challenge not activated; wait >=60 seconds, no auto retry.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sent"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SMSSend"
              }
            }
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight; no credentials allowed",
        "responses": {
          "204": {
            "description": "Allow GET/POST, Authorization/Content-Type, exact Origin; never wildcard or Allow-Credentials"
          },
          "503": {
            "description": "Origin permission store unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/web-auth/password-transactions/{id}/sms/verify": {
      "post": {
        "operationId": "web_password___id__sms_verify_post",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "WebAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/State"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SMSVerify"
              }
            }
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight; no credentials allowed",
        "responses": {
          "204": {
            "description": "Allow GET/POST, Authorization/Content-Type, exact Origin; never wildcard or Allow-Credentials"
          },
          "503": {
            "description": "Origin permission store unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/web-auth/password-transactions/{id}/complete": {
      "post": {
        "operationId": "web_password___id__complete_post",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "WebAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PasswordChanged"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordComplete"
              }
            }
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight; no credentials allowed",
        "responses": {
          "204": {
            "description": "Allow GET/POST, Authorization/Content-Type, exact Origin; never wildcard or Allow-Credentials"
          },
          "503": {
            "description": "Origin permission store unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/web-auth/password-transactions/{id}/cancel": {
      "post": {
        "operationId": "web_password___id__cancel_post",
        "summary": "Transaction credential required. No Cookie/query credentials. Completion is single-use and never automatically retried.",
        "security": [
          {
            "WebAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/State"
                }
              }
            }
          },
          "400": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Controlled error; see custom-web/passwords guide. request_id is safe to share.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Empty"
              }
            }
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight; no credentials allowed",
        "responses": {
          "204": {
            "description": "Allow GET/POST, Authorization/Content-Type, exact Origin; never wildcard or Allow-Credentials"
          },
          "503": {
            "description": "Origin permission store unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/managed-user-invitations": {
      "post": {
        "operationId": "managed_invitation_create",
        "summary": "Create a 15-minute product member invitation",
        "security": [
          {
            "ServiceBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ManagedInvitationCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Invitation and one-time transaction credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedInvitationCreated"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      },
      "get": {
        "operationId": "managed_invitation_reconcile",
        "summary": "Reconcile invitations by external_user_id within the current product",
        "security": [
          {
            "ServiceBearer": []
          }
        ],
        "parameters": [
          {
            "name": "external_user_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Product-scoped invitations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedInvitationList"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      }
    },
    "/api/v1/managed-user-invitations/{id}": {
      "get": {
        "operationId": "managed_invitation_get",
        "summary": "Get a product-scoped invitation",
        "security": [
          {
            "ServiceBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/InvitationID"
          }
        ],
        "responses": {
          "200": {
            "description": "Invitation state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedInvitationEnvelope"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      },
      "post": {
        "operationId": "managed_invitation_cancel",
        "summary": "Cancel a pending invitation",
        "security": [
          {
            "ServiceBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/InvitationID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action"
                ],
                "properties": {
                  "action": {
                    "const": "cancel"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Cancelled"
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      }
    },
    "/api/v1/managed-users": {
      "get": {
        "operationId": "managed_users_list",
        "summary": "List members of the current product",
        "security": [
          {
            "ServiceBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Product members",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedUserList"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      },
      "post": {
        "operationId": "hosted_member_create",
        "summary": "Create a hosted member (account name + password, no phone identity) that may only sign in to this product",
        "security": [
          {
            "ServiceBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HostedMemberCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created hosted member",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HostedMemberEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "Existing hosted member with the same external_user_id and account_name",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HostedMemberEnvelope"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      }
    },
    "/api/v1/managed-users/{subject}": {
      "get": {
        "operationId": "managed_user_get",
        "summary": "Get a member of the current product",
        "security": [
          {
            "ServiceBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ManagedSubject"
          }
        ],
        "responses": {
          "200": {
            "description": "Product member",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedUserEnvelope"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      }
    },
    "/api/v1/managed-users/{subject}/suspend": {
      "post": {
        "operationId": "managed_user_suspend",
        "summary": "Suspend only this product membership and revoke this product's credentials",
        "security": [
          {
            "ServiceBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ManagedSubject"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Empty"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Suspended member",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedUserEnvelope"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      }
    },
    "/api/v1/managed-users/{subject}/reactivate": {
      "post": {
        "operationId": "managed_user_reactivate",
        "summary": "Reactivate only this product membership",
        "security": [
          {
            "ServiceBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ManagedSubject"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Empty"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Active member",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedUserEnvelope"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      }
    },
    "/api/v1/managed-users/{subject}/password-reset-requests": {
      "post": {
        "operationId": "managed_user_password_reset_request",
        "summary": "Ask the member to reset their global password on the platform",
        "security": [
          {
            "ServiceBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ManagedSubject"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Empty"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "SMS accepted"
          },
          "202": {
            "description": "SMS outcome unknown; do not resend automatically"
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      }
    },
    "/api/v1/managed-user-activations/{id}": {
      "get": {
        "operationId": "managed_activation_get",
        "summary": "Read activation state from the exact registered browser Origin",
        "security": [
          {
            "ManagedAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/InvitationID"
          },
          {
            "$ref": "#/components/parameters/BrowserOrigin"
          }
        ],
        "responses": {
          "200": {
            "description": "Invitation, next action and current legal version"
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight",
        "responses": {
          "204": {
            "description": "Allow GET/POST and Authorization/Content-Type without credentials"
          }
        }
      }
    },
    "/api/v1/managed-user-activations/{id}/sms/send": {
      "post": {
        "operationId": "managed_activation_sms_send",
        "summary": "Require a single-use slider CAPTCHA proof before sending SMS. Send a five-minute activation code; never auto-resend an unknown outcome",
        "security": [
          {
            "ManagedAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/InvitationID"
          },
          {
            "$ref": "#/components/parameters/BrowserOrigin"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ManagedSMSSend"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Accepted"
          },
          "202": {
            "description": "Outcome unknown"
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight",
        "responses": {
          "204": {
            "description": "Allowed"
          }
        }
      }
    },
    "/api/v1/managed-user-activations/{id}/sms/verify": {
      "post": {
        "operationId": "managed_activation_sms_verify",
        "summary": "Verify the phone and return set_password or confirm_membership",
        "security": [
          {
            "ManagedAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/InvitationID"
          },
          {
            "$ref": "#/components/parameters/BrowserOrigin"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "code"
                ],
                "properties": {
                  "code": {
                    "type": "string",
                    "pattern": "^[0-9]{6}$"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Reusable verified proof recorded"
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight",
        "responses": {
          "204": {
            "description": "Allowed"
          }
        }
      }
    },
    "/api/v1/managed-user-activations/{id}/complete": {
      "post": {
        "operationId": "managed_activation_complete",
        "summary": "Atomically create or reuse a global user and create one product membership",
        "security": [
          {
            "ManagedAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/InvitationID"
          },
          {
            "$ref": "#/components/parameters/BrowserOrigin"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ManagedActivationComplete"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed invitation"
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight",
        "responses": {
          "204": {
            "description": "Allowed"
          }
        }
      }
    },
    "/api/v1/managed-user-activations/{id}/cancel": {
      "post": {
        "operationId": "managed_activation_cancel",
        "summary": "Cancel activation as the invited user",
        "security": [
          {
            "ManagedAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/InvitationID"
          },
          {
            "$ref": "#/components/parameters/BrowserOrigin"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Empty"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Cancelled"
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight",
        "responses": {
          "204": {
            "description": "Allowed"
          }
        }
      }
    },
    "/api/v1/managed-users/{subject}/password": {
      "post": {
        "operationId": "hosted_member_password_set",
        "summary": "Set a new password for an unclaimed hosted member; revokes all sessions and tokens and queues user.sessions_revoked",
        "security": [
          {
            "ServiceBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ManagedSubject"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HostedPassword"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Hosted member",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HostedMemberEnvelope"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      }
    },
    "/api/v1/managed-users/{subject}/claims": {
      "post": {
        "operationId": "hosted_member_claim_create",
        "summary": "Create a claim transaction; cancels the member's previous active claim",
        "security": [
          {
            "ServiceBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ManagedSubject"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ManagedClaimCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Claim and one-time transaction credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedClaimCreated"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      }
    },
    "/api/v1/managed-member-claims/{id}": {
      "get": {
        "operationId": "hosted_member_claim_get",
        "summary": "Get a product-scoped claim",
        "security": [
          {
            "ServiceBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ClaimID"
          }
        ],
        "responses": {
          "200": {
            "description": "Claim",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedClaimEnvelope"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      },
      "post": {
        "operationId": "hosted_member_claim_cancel",
        "summary": "Cancel a pending claim",
        "security": [
          {
            "ServiceBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ClaimID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action"
                ],
                "properties": {
                  "action": {
                    "const": "cancel"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Cancelled"
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      }
    },
    "/api/v1/managed-member-claim-activations/{id}": {
      "get": {
        "operationId": "managed_claim_activation_get",
        "summary": "Read claim state (masked phone, account name, expiry) and current legal version",
        "security": [
          {
            "ManagedAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ClaimID"
          },
          {
            "$ref": "#/components/parameters/BrowserOrigin"
          }
        ],
        "responses": {
          "200": {
            "description": "{claim, legal}"
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight",
        "responses": {
          "204": {
            "description": "Allowed"
          }
        }
      }
    },
    "/api/v1/managed-member-claim-activations/{id}/sms/send": {
      "post": {
        "operationId": "managed_claim_sms_send",
        "summary": "Require a single-use slider CAPTCHA proof before sending SMS. Record the claimant phone and send a code; 409 phone_taken when the phone belongs to another user",
        "security": [
          {
            "ManagedAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ClaimID"
          },
          {
            "$ref": "#/components/parameters/BrowserOrigin"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ManagedClaimSMSSend"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Accepted"
          },
          "202": {
            "description": "Outcome unknown"
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight",
        "responses": {
          "204": {
            "description": "Allowed"
          }
        }
      }
    },
    "/api/v1/managed-member-claim-activations/{id}/sms/verify": {
      "post": {
        "operationId": "managed_claim_sms_verify",
        "summary": "Verify the claimant phone",
        "security": [
          {
            "ManagedAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ClaimID"
          },
          {
            "$ref": "#/components/parameters/BrowserOrigin"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SMSVerify"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Claim",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedClaimEnvelope"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight",
        "responses": {
          "204": {
            "description": "Allowed"
          }
        }
      }
    },
    "/api/v1/managed-member-claim-activations/{id}/complete": {
      "post": {
        "operationId": "managed_claim_complete",
        "summary": "Bind phone, set password, clear the hosted flag, revoke all sessions/tokens and queue user.claimed",
        "security": [
          {
            "ManagedAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ClaimID"
          },
          {
            "$ref": "#/components/parameters/BrowserOrigin"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ManagedClaimComplete"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed claim",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedClaimEnvelope"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight",
        "responses": {
          "204": {
            "description": "Allowed"
          }
        }
      }
    },
    "/api/v1/managed-member-claim-activations/{id}/cancel": {
      "post": {
        "operationId": "managed_claim_cancel",
        "summary": "Claimant cancels",
        "security": [
          {
            "ManagedAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ClaimID"
          },
          {
            "$ref": "#/components/parameters/BrowserOrigin"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Empty"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Cancelled"
          },
          "default": {
            "$ref": "#/components/responses/ControlledError"
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight",
        "responses": {
          "204": {
            "description": "Allowed"
          }
        }
      }
    },
    "/api/v1/native-auth/transactions/{id}/sms/captcha": {
      "post": {
        "security": [
          {
            "Native": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "operationId": "native_login___id__sms_send_post_captcha",
        "summary": "Issue a disposable slider puzzle",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SliderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success, wrapped in data; Cache-Control: no-store",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/SliderChallenge"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "403 captcha_required, 429 captcha_limited, or 503 captcha_unavailable; original transaction errors remain possible."
          }
        }
      }
    },
    "/api/v1/native-auth/transactions/{id}/sms/captcha/verify": {
      "post": {
        "security": [
          {
            "Native": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "operationId": "native_login___id__sms_send_post_captcha_verify",
        "summary": "Consume one puzzle attempt and issue a 60-second, single-use SMS proof",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SliderVerify"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success, wrapped in data; Cache-Control: no-store",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/SliderProof"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "403 captcha_required, 429 captcha_limited, or 503 captcha_unavailable; original transaction errors remain possible."
          }
        }
      }
    },
    "/api/v1/native-auth/password-transactions/{id}/sms/captcha": {
      "post": {
        "security": [
          {
            "Native": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "operationId": "native_password___id__sms_send_post_captcha",
        "summary": "Issue a disposable slider puzzle",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SliderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success, wrapped in data; Cache-Control: no-store",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/SliderChallenge"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "403 captcha_required, 429 captcha_limited, or 503 captcha_unavailable; original transaction errors remain possible."
          }
        }
      }
    },
    "/api/v1/native-auth/password-transactions/{id}/sms/captcha/verify": {
      "post": {
        "security": [
          {
            "Native": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "operationId": "native_password___id__sms_send_post_captcha_verify",
        "summary": "Consume one puzzle attempt and issue a 60-second, single-use SMS proof",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SliderVerify"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success, wrapped in data; Cache-Control: no-store",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/SliderProof"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "403 captcha_required, 429 captcha_limited, or 503 captcha_unavailable; original transaction errors remain possible."
          }
        }
      }
    },
    "/api/v1/web-auth/transactions/{id}/sms/captcha": {
      "post": {
        "security": [
          {
            "WebAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "operationId": "web_login___id__sms_send_post_captcha",
        "summary": "Issue a disposable slider puzzle",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SliderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success, wrapped in data; Cache-Control: no-store",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/SliderChallenge"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "403 captcha_required, 429 captcha_limited, or 503 captcha_unavailable; original transaction errors remain possible."
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight; no credentials allowed",
        "responses": {
          "204": {
            "description": "Allow GET/POST, Authorization/Content-Type, exact Origin; never wildcard or Allow-Credentials"
          },
          "503": {
            "description": "Origin permission store unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/web-auth/transactions/{id}/sms/captcha/verify": {
      "post": {
        "security": [
          {
            "WebAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "operationId": "web_login___id__sms_send_post_captcha_verify",
        "summary": "Consume one puzzle attempt and issue a 60-second, single-use SMS proof",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SliderVerify"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success, wrapped in data; Cache-Control: no-store",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/SliderProof"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "403 captcha_required, 429 captcha_limited, or 503 captcha_unavailable; original transaction errors remain possible."
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight; no credentials allowed",
        "responses": {
          "204": {
            "description": "Allow GET/POST, Authorization/Content-Type, exact Origin; never wildcard or Allow-Credentials"
          },
          "503": {
            "description": "Origin permission store unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/web-auth/password-transactions/{id}/sms/captcha": {
      "post": {
        "security": [
          {
            "WebAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "operationId": "web_password___id__sms_send_post_captcha",
        "summary": "Issue a disposable slider puzzle",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SliderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success, wrapped in data; Cache-Control: no-store",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/SliderChallenge"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "403 captcha_required, 429 captcha_limited, or 503 captcha_unavailable; original transaction errors remain possible."
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight; no credentials allowed",
        "responses": {
          "204": {
            "description": "Allow GET/POST, Authorization/Content-Type, exact Origin; never wildcard or Allow-Credentials"
          },
          "503": {
            "description": "Origin permission store unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/web-auth/password-transactions/{id}/sms/captcha/verify": {
      "post": {
        "security": [
          {
            "WebAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "operationId": "web_password___id__sms_send_post_captcha_verify",
        "summary": "Consume one puzzle attempt and issue a 60-second, single-use SMS proof",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SliderVerify"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success, wrapped in data; Cache-Control: no-store",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/SliderProof"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "403 captcha_required, 429 captcha_limited, or 503 captcha_unavailable; original transaction errors remain possible."
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight; no credentials allowed",
        "responses": {
          "204": {
            "description": "Allow GET/POST, Authorization/Content-Type, exact Origin; never wildcard or Allow-Credentials"
          },
          "503": {
            "description": "Origin permission store unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/managed-user-activations/{id}/sms/captcha": {
      "post": {
        "security": [
          {
            "ManagedAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/InvitationID"
          },
          {
            "$ref": "#/components/parameters/BrowserOrigin"
          }
        ],
        "operationId": "managed_activation_sms_send_captcha",
        "summary": "Issue a disposable slider puzzle",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SliderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success, wrapped in data; Cache-Control: no-store",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/SliderChallenge"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "403 captcha_required, 429 captcha_limited, or 503 captcha_unavailable; original transaction errors remain possible."
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight",
        "responses": {
          "204": {
            "description": "Allowed"
          }
        }
      }
    },
    "/api/v1/managed-user-activations/{id}/sms/captcha/verify": {
      "post": {
        "security": [
          {
            "ManagedAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/InvitationID"
          },
          {
            "$ref": "#/components/parameters/BrowserOrigin"
          }
        ],
        "operationId": "managed_activation_sms_send_captcha_verify",
        "summary": "Consume one puzzle attempt and issue a 60-second, single-use SMS proof",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SliderVerify"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success, wrapped in data; Cache-Control: no-store",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/SliderProof"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "403 captcha_required, 429 captcha_limited, or 503 captcha_unavailable; original transaction errors remain possible."
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight",
        "responses": {
          "204": {
            "description": "Allowed"
          }
        }
      }
    },
    "/api/v1/managed-member-claim-activations/{id}/sms/captcha": {
      "post": {
        "security": [
          {
            "ManagedAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ClaimID"
          },
          {
            "$ref": "#/components/parameters/BrowserOrigin"
          }
        ],
        "operationId": "managed_claim_sms_send_captcha",
        "summary": "Issue a disposable slider puzzle",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SliderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success, wrapped in data; Cache-Control: no-store",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/SliderChallenge"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "403 captcha_required, 429 captcha_limited, or 503 captcha_unavailable; original transaction errors remain possible."
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight",
        "responses": {
          "204": {
            "description": "Allowed"
          }
        }
      }
    },
    "/api/v1/managed-member-claim-activations/{id}/sms/captcha/verify": {
      "post": {
        "security": [
          {
            "ManagedAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ClaimID"
          },
          {
            "$ref": "#/components/parameters/BrowserOrigin"
          }
        ],
        "operationId": "managed_claim_sms_send_captcha_verify",
        "summary": "Consume one puzzle attempt and issue a 60-second, single-use SMS proof",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SliderVerify"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success, wrapped in data; Cache-Control: no-store",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/SliderProof"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "403 captcha_required, 429 captcha_limited, or 503 captcha_unavailable; original transaction errors remain possible."
          }
        }
      },
      "options": {
        "summary": "Exact-origin CORS preflight",
        "responses": {
          "204": {
            "description": "Allowed"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "WebBasic": {
        "type": "http",
        "scheme": "basic",
        "description": "Confidential Web Client; backend only"
      },
      "WebAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "WebAuth <transaction_token>; exact registered browser Origin; credentials omit"
      },
      "Native": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "Native <transaction_token>; no browser Origin or Cookie"
      },
      "UserBearer": {
        "type": "http",
        "scheme": "bearer",
        "description": "Native password set creation only; active user token issued to the same Client"
      },
      "ServiceBearer": {
        "type": "http",
        "scheme": "bearer",
        "description": "Product backend Service Token; scopes, product and CIDR are enforced"
      },
      "ManagedAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "ManagedAuth <transaction_token>; exact Origin; Cookie omitted"
      }
    },
    "parameters": {
      "IdempotencyKey": {
        "name": "Idempotency-Key",
        "in": "header",
        "required": true,
        "schema": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      },
      "InvitationID": {
        "name": "id",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      "ManagedSubject": {
        "name": "subject",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      "BrowserOrigin": {
        "name": "Origin",
        "in": "header",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uri"
        }
      },
      "ClaimID": {
        "name": "id",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      }
    },
    "responses": {
      "ControlledError": {
        "description": "Controlled error with stable code and request_id",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "description": "Controlled errors. Password overload returns HTTP 503 authentication_busy with Retry-After: 1; it is not invalid_credentials. Password rate_limited is HTTP 429; Retry-After is a minimum, not a promise the failure window has expired. Never automatically loop authentication requests.",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "object",
            "required": [
              "code",
              "message",
              "request_id"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "request_id": {
                "type": "string"
              }
            }
          }
        }
      },
      "ManagedInvitationCreate": {
        "type": "object",
        "required": [
          "external_user_id",
          "phone_e164",
          "display_name",
          "browser_origin"
        ],
        "properties": {
          "external_user_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "phone_e164": {
            "type": "string",
            "pattern": "^\\+86[0-9]{11}$"
          },
          "display_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "browser_origin": {
            "type": "string",
            "format": "uri"
          }
        },
        "additionalProperties": false
      },
      "ManagedInvitation": {
        "type": "object",
        "required": [
          "invitation_id",
          "external_user_id",
          "display_name",
          "phone_masked",
          "status",
          "delivery_status",
          "expires_at"
        ],
        "properties": {
          "invitation_id": {
            "type": "string",
            "format": "uuid"
          },
          "external_user_id": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "phone_masked": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "phone_verified",
              "completed",
              "cancelled",
              "expired"
            ]
          },
          "delivery_status": {
            "type": "string",
            "enum": [
              "not_sent",
              "accepted",
              "unknown",
              "failed"
            ]
          },
          "next_action": {
            "type": "string",
            "enum": [
              "set_password",
              "confirm_membership"
            ]
          },
          "account_name": {
            "type": "string",
            "description": "Completed invitation: existing or newly created account name when present; existing identities cannot be renamed."
          },
          "user_sub": {
            "type": "string",
            "format": "uuid"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "completed_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ManagedInvitationEnvelope": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ManagedInvitation"
          }
        }
      },
      "ManagedInvitationList": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ManagedInvitation"
            }
          }
        }
      },
      "ManagedInvitationCreated": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "invitation",
              "transaction_token",
              "activation_api"
            ],
            "properties": {
              "invitation": {
                "$ref": "#/components/schemas/ManagedInvitation"
              },
              "transaction_token": {
                "type": "string",
                "minLength": 43,
                "maxLength": 43
              },
              "activation_api": {
                "type": "string",
                "format": "uri"
              }
            }
          }
        }
      },
      "ManagedUser": {
        "type": "object",
        "required": [
          "subject",
          "external_user_id",
          "display_name",
          "phone_masked",
          "status",
          "provisioning_source",
          "created_at",
          "updated_at",
          "hosted"
        ],
        "properties": {
          "subject": {
            "type": "string",
            "format": "uuid"
          },
          "external_user_id": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "phone_masked": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "suspended"
            ]
          },
          "provisioning_source": {
            "type": "string",
            "enum": [
              "import",
              "managed_invitation",
              "hosted"
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "suspended_at": {
            "type": "string",
            "format": "date-time"
          },
          "account_name": {
            "type": "string"
          },
          "hosted": {
            "type": "boolean",
            "description": "true while the member is an unclaimed hosted account of this product"
          }
        },
        "additionalProperties": false
      },
      "ManagedUserEnvelope": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ManagedUser"
          }
        }
      },
      "ManagedUserList": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ManagedUser"
            }
          }
        }
      },
      "ManagedActivationComplete": {
        "type": "object",
        "required": [
          "accept_terms",
          "legal_version"
        ],
        "properties": {
          "account_name": {
            "type": "string",
            "minLength": 4,
            "maxLength": 32,
            "pattern": "^[a-z][a-z0-9_.-]{3,31}$",
            "description": "Optional for a new identity after phone verification; existing identities cannot be renamed."
          },
          "new_password": {
            "type": "string",
            "minLength": 10,
            "maxLength": 128
          },
          "accept_terms": {
            "const": true
          },
          "legal_version": {
            "type": "string",
            "minLength": 1
          }
        },
        "additionalProperties": false
      },
      "NativeCreate": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "client_id",
          "method",
          "redirect_uri",
          "scope",
          "state",
          "nonce",
          "code_challenge",
          "code_challenge_method"
        ],
        "properties": {
          "client_id": {
            "type": "string",
            "maxLength": 128
          },
          "method": {
            "type": "string",
            "enum": [
              "sms",
              "password",
              "wechat"
            ]
          },
          "redirect_uri": {
            "type": "string",
            "maxLength": 512
          },
          "scope": {
            "type": "string",
            "maxLength": 128
          },
          "state": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{22,128}$"
          },
          "nonce": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{22,128}$"
          },
          "code_challenge": {
            "type": "string",
            "minLength": 43,
            "maxLength": 43
          },
          "code_challenge_method": {
            "type": "string",
            "const": "S256"
          }
        }
      },
      "PasswordCreate": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "client_id",
          "operation"
        ],
        "properties": {
          "client_id": {
            "type": "string",
            "maxLength": 128
          },
          "operation": {
            "type": "string",
            "enum": [
              "set",
              "reset"
            ]
          }
        }
      },
      "SMSSend": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "phone_e164": {
            "type": "string",
            "pattern": "^\\+86[0-9]{11}$",
            "description": "Login/reset required; set derives phone from user Access Token."
          },
          "captcha_token": {
            "type": "string",
            "minLength": 43,
            "maxLength": 43,
            "description": "Single-use CAPTCHA proof, expires after 60 seconds."
          }
        },
        "required": [
          "captcha_token"
        ]
      },
      "SMSVerify": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code"
        ],
        "properties": {
          "phone_e164": {
            "type": "string",
            "pattern": "^\\+86[0-9]{11}$"
          },
          "code": {
            "type": "string",
            "pattern": "^[0-9]{6}$"
          }
        }
      },
      "PasswordVerify": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "phone_e164",
          "password"
        ],
        "properties": {
          "phone_e164": {
            "type": "string"
          },
          "password": {
            "type": "string",
            "maxLength": 1024,
            "writeOnly": true
          }
        }
      },
      "LoginComplete": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "accept_terms",
          "legal_version"
        ],
        "properties": {
          "accept_terms": {
            "const": true
          },
          "legal_version": {
            "type": "string"
          }
        }
      },
      "PasswordComplete": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "new_password"
        ],
        "properties": {
          "new_password": {
            "type": "string",
            "minLength": 10,
            "maxLength": 128,
            "writeOnly": true,
            "description": "Length checked in UTF-8 bytes; must contain ASCII letter and digit."
          }
        }
      },
      "Empty": {
        "type": "object",
        "additionalProperties": false
      },
      "Legal": {
        "type": "object",
        "required": [
          "version",
          "terms_url",
          "privacy_url"
        ],
        "properties": {
          "version": {
            "type": "string"
          },
          "terms_url": {
            "type": "string",
            "format": "uri"
          },
          "privacy_url": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "WebCreate": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "client_id",
          "method",
          "redirect_uri",
          "scope",
          "state",
          "nonce",
          "code_challenge",
          "code_challenge_method",
          "browser_origin"
        ],
        "properties": {
          "client_id": {
            "type": "string",
            "maxLength": 128
          },
          "method": {
            "type": "string",
            "enum": [
              "sms",
              "password",
              "wechat"
            ]
          },
          "redirect_uri": {
            "type": "string",
            "maxLength": 512
          },
          "scope": {
            "type": "string",
            "maxLength": 128
          },
          "state": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{22,128}$"
          },
          "nonce": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{22,128}$"
          },
          "code_challenge": {
            "type": "string",
            "minLength": 43,
            "maxLength": 43
          },
          "code_challenge_method": {
            "type": "string",
            "const": "S256"
          },
          "browser_origin": {
            "type": "string",
            "format": "uri",
            "description": "Exact allowlisted origin, no trailing slash/path; browser generated Origin must match."
          }
        }
      },
      "WebPasswordCreate": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "client_id",
          "operation",
          "browser_origin"
        ],
        "properties": {
          "client_id": {
            "type": "string",
            "maxLength": 128
          },
          "operation": {
            "type": "string",
            "enum": [
              "set",
              "reset"
            ]
          },
          "browser_origin": {
            "type": "string",
            "format": "uri",
            "description": "Exact allowlisted origin, no trailing slash/path; browser generated Origin must match."
          },
          "user_access_token": {
            "type": "string",
            "maxLength": 8192,
            "writeOnly": true,
            "description": "Required for set; supplied only by the product backend from its business session."
          }
        }
      },
      "Created": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "transaction_id": {
                "type": "string",
                "format": "uuid"
              },
              "transaction_token": {
                "type": "string",
                "minLength": 43,
                "maxLength": 43
              },
              "status": {
                "const": "waiting"
              },
              "expires_in": {
                "const": 300
              },
              "expires_at": {
                "type": "string",
                "format": "date-time"
              },
              "poll_interval": {
                "const": 2
              },
              "legal": {
                "$ref": "#/components/schemas/Legal"
              },
              "qr_url": {
                "type": "string",
                "format": "uri"
              },
              "phone_masked": {
                "type": "string"
              },
              "operation": {
                "type": "string",
                "enum": [
                  "set",
                  "reset"
                ]
              }
            }
          }
        }
      },
      "State": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "waiting",
                  "phone_required",
                  "ready",
                  "completed",
                  "cancelled",
                  "error"
                ]
              },
              "expires_at": {
                "type": "string",
                "format": "date-time"
              },
              "poll_interval": {
                "const": 2
              },
              "legal": {
                "$ref": "#/components/schemas/Legal"
              },
              "phone_masked": {
                "type": "string"
              }
            }
          }
        }
      },
      "Sent": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "accepted",
                  "unknown"
                ]
              },
              "message": {
                "type": "string"
              },
              "retry_after": {
                "const": 60
              }
            }
          }
        }
      },
      "Completed": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "status": {
                "const": "completed"
              },
              "code": {
                "type": "string"
              },
              "state": {
                "type": "string"
              },
              "redirect_uri": {
                "type": "string"
              },
              "issuer": {
                "type": "string"
              },
              "expires_in": {
                "const": 60
              },
              "token_endpoint": {
                "type": "string"
              }
            }
          }
        }
      },
      "PasswordChanged": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "status": {
                "const": "completed"
              },
              "relogin_required": {
                "const": true
              }
            }
          }
        }
      },
      "HostedMemberCreate": {
        "type": "object",
        "required": [
          "external_user_id",
          "account_name",
          "display_name"
        ],
        "properties": {
          "external_user_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "account_name": {
            "type": "string",
            "pattern": "^[A-Za-z][A-Za-z0-9_.-]{3,31}$",
            "description": "Normalized to lower case; globally unique"
          },
          "display_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "password": {
            "type": "string",
            "minLength": 10,
            "maxLength": 128,
            "description": "Optional; only the Argon2id hash is stored. Omitted means password_required=true"
          }
        },
        "additionalProperties": false
      },
      "HostedMember": {
        "type": "object",
        "required": [
          "subject",
          "external_user_id",
          "account_name",
          "display_name",
          "status",
          "hosted",
          "password_required",
          "created_at"
        ],
        "properties": {
          "subject": {
            "type": "string",
            "format": "uuid"
          },
          "external_user_id": {
            "type": "string"
          },
          "account_name": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "suspended"
            ]
          },
          "hosted": {
            "type": "boolean"
          },
          "password_required": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "HostedMemberEnvelope": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/HostedMember"
          }
        }
      },
      "HostedPassword": {
        "type": "object",
        "required": [
          "password"
        ],
        "properties": {
          "password": {
            "type": "string",
            "minLength": 10,
            "maxLength": 128
          }
        },
        "additionalProperties": false
      },
      "ManagedClaimCreate": {
        "type": "object",
        "required": [
          "external_ref",
          "browser_origin"
        ],
        "properties": {
          "external_ref": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "description": "Unique per Service Client"
          },
          "browser_origin": {
            "type": "string",
            "format": "uri"
          },
          "expires_in_hours": {
            "type": "integer",
            "minimum": 1,
            "maximum": 168,
            "default": 168
          }
        },
        "additionalProperties": false
      },
      "ManagedClaim": {
        "type": "object",
        "required": [
          "claim_id",
          "subject",
          "external_ref",
          "account_name",
          "display_name",
          "status",
          "expires_at",
          "created_at"
        ],
        "properties": {
          "claim_id": {
            "type": "string",
            "format": "uuid"
          },
          "subject": {
            "type": "string",
            "format": "uuid"
          },
          "external_ref": {
            "type": "string"
          },
          "account_name": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "phone_masked": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "phone_verified",
              "completed",
              "cancelled",
              "expired"
            ]
          },
          "next_action": {
            "type": "string",
            "enum": [
              "verify_phone",
              "set_password"
            ]
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "completed_at": {
            "type": "string",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ManagedClaimEnvelope": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ManagedClaim"
          }
        }
      },
      "ManagedClaimCreated": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "claim",
              "transaction_token",
              "activation_api"
            ],
            "properties": {
              "claim": {
                "$ref": "#/components/schemas/ManagedClaim"
              },
              "transaction_token": {
                "type": "string",
                "description": "43 characters; only its hash is stored"
              },
              "activation_api": {
                "type": "string",
                "format": "uri"
              }
            }
          }
        }
      },
      "ManagedClaimPhone": {
        "type": "object",
        "required": [
          "phone_e164"
        ],
        "properties": {
          "phone_e164": {
            "type": "string",
            "description": "+86 mobile number"
          }
        },
        "additionalProperties": false
      },
      "ManagedClaimComplete": {
        "type": "object",
        "required": [
          "new_password",
          "accept_terms",
          "legal_version"
        ],
        "properties": {
          "new_password": {
            "type": "string",
            "minLength": 10,
            "maxLength": 128
          },
          "accept_terms": {
            "const": true
          },
          "legal_version": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ManagedSMSSend": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "captcha_token"
        ],
        "properties": {
          "captcha_token": {
            "type": "string",
            "minLength": 43,
            "maxLength": 43,
            "description": "Single-use CAPTCHA proof, expires after 60 seconds."
          }
        }
      },
      "ManagedClaimSMSSend": {
        "type": "object",
        "required": [
          "phone_e164",
          "captcha_token"
        ],
        "properties": {
          "phone_e164": {
            "type": "string",
            "description": "+86 mobile number"
          },
          "captcha_token": {
            "type": "string",
            "minLength": 43,
            "maxLength": 43,
            "description": "Single-use CAPTCHA proof, expires after 60 seconds."
          }
        },
        "additionalProperties": false
      },
      "SliderRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "phone_e164": {
            "type": "string",
            "pattern": "^\\+86[0-9]{11}$",
            "description": "Login/reset required; set derives phone from user Access Token."
          }
        }
      },
      "SliderVerify": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "phone_e164": {
            "type": "string",
            "pattern": "^\\+86[0-9]{11}$",
            "description": "Login/reset required; set derives phone from user Access Token."
          },
          "captcha_id": {
            "type": "string",
            "minLength": 43,
            "maxLength": 43
          },
          "x": {
            "type": "integer",
            "minimum": 0,
            "maximum": 264,
            "description": "Piece left edge in original image pixels, independent of display scale."
          }
        },
        "required": [
          "captcha_id",
          "x"
        ]
      },
      "SliderChallenge": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "captcha_id",
          "background",
          "piece",
          "width",
          "height",
          "piece_size",
          "y",
          "expires_in"
        ],
        "properties": {
          "captcha_id": {
            "type": "string",
            "minLength": 43,
            "maxLength": 43
          },
          "background": {
            "type": "string"
          },
          "piece": {
            "type": "string"
          },
          "width": {
            "type": "integer",
            "const": 320
          },
          "height": {
            "type": "integer",
            "const": 168
          },
          "piece_size": {
            "type": "integer",
            "const": 56
          },
          "y": {
            "type": "integer",
            "minimum": 0
          },
          "expires_in": {
            "type": "integer",
            "const": 120
          }
        }
      },
      "SliderProof": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "captcha_token",
          "expires_in"
        ],
        "properties": {
          "captcha_token": {
            "type": "string",
            "minLength": 43,
            "maxLength": 43,
            "description": "Single-use CAPTCHA proof, expires after 60 seconds."
          },
          "expires_in": {
            "type": "integer",
            "const": 60
          }
        }
      }
    }
  }
}
